/*
 * FigtreeWeb v5.2.25-stable
 * Copyright(c) 2016, Figtree Systems.
 */


Ext={version:'2.3.0'};window["undefined"]=window["undefined"];Ext.apply=function(o,c,defaults){if(defaults){Ext.apply(o,defaults);}
if(o&&c&&typeof c=='object'){for(var p in c){o[p]=c[p];}}
return o;};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase(),check=function(r){return r.test(ua);},isStrict=document.compatMode=="CSS1Compat",isOpera=check(/opera/),isChrome=check(/chrome/),isWebKit=check(/webkit/),isSafari=!isChrome&&check(/safari/),isSafari2=isSafari&&check(/applewebkit\/4/),isSafari3=isSafari&&check(/version\/3/),isSafari4=isSafari&&check(/version\/4/),isIE=!isOpera&&check(/msie/),isIE7=isIE&&check(/msie 7/),isIE8=isIE&&check(/msie 8/),isIE6=isIE&&!isIE7&&!isIE8,isGecko=!isWebKit&&check(/gecko/),isGecko2=isGecko&&check(/rv:1\.8/),isGecko3=isGecko&&check(/rv:1\.9/),isBorderBox=isIE&&!isStrict,isWindows=check(/windows|win32/),isMac=check(/macintosh|mac os x/),isAir=check(/adobeair/),isLinux=check(/linux/),isSecure=/^https/i.test(window.location.protocol);if(isIE6){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}
Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}
return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}
var cache={};for(var b in o){var parts=b.split('@');if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s);}
cache[s].on(parts[1],o[b]);}}
cache=null;},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=='object'){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments);};}
var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp;}
sb.override=function(o){Ext.override(sb,o);};sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o);};return sb;};}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method];}
if(Ext.isIE&&overrides.toString!=origclass.toString){p.toString=overrides.toString;}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i<a.length;++i){d=a[i].split(".");rt=d[0];eval('if (typeof '+rt+' == "undefined"){'+rt+' = {};} o = '+rt+';');for(j=1;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}},urlEncode:function(o){if(!o){return"";}
var buf=[];for(var key in o){var ov=o[key],k=encodeURIComponent(key);var type=typeof ov;if(type=='undefined'){buf.push(k,"=&");}else if(type!="function"&&type!="object"){buf.push(k,"=",encodeURIComponent(ov),"&");}else if(Ext.isDate(ov)){var s=Ext.encode(ov).replace(/"/g,'');buf.push(k,"=",s,"&");}else if(Ext.isArray(ov)){if(ov.length){for(var i=0,len=ov.length;i<len;i++){buf.push(k,"=",encodeURIComponent(ov[i]===undefined?'':ov[i]),"&");}}else{buf.push(k,"=&");}}}
buf.pop();return buf.join("");},urlDecode:function(string,overwrite){if(!string||!string.length){return{};}
var obj={};var pairs=string.split('&');var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split('=');name=decodeURIComponent(pair[0]);value=decodeURIComponent(pair[1]);if(overwrite!==true){if(typeof obj[name]=="undefined"){obj[name]=value;}else if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value);}else{obj[name].push(value);}}else{obj[name]=value;}}
return obj;},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array];}
for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i;};}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(Ext.isArray(a)){r=r.concat(a);}else if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}
return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[]);}else{cb.apply(scope,args||[]);}}},getDom:function(el){if(!el||!document){return null;}
return el.dom?el.dom:(typeof el=='string'?document.getElementById(el):el);},getDoc:function(){return Ext.get(document);},getBody:function(){return Ext.get(document.body||document.documentElement);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,defaultValue){v=Number(v==null||typeof v=='boolean'?NaN:v);return isNaN(v)?defaultValue:v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(typeof as.destroy=='function'){as.destroy();}
else if(as.dom){as.removeAllListeners();as.remove();}}}},removeNode:isIE?function(){var d;return function(n){if(n&&n.tagName!='BODY'){d=d||document.createElement('div');d.appendChild(n);d.innerHTML='';}}}():function(n){if(n&&n.parentNode&&n.tagName!='BODY'){n.parentNode.removeChild(n);}},type:function(o){if(o===undefined||o===null){return false;}
if(o.htmlElement){return'element';}
var t=typeof o;if(t=='object'&&o.nodeName){switch(o.nodeType){case 1:return'element';case 3:return(/\S/).test(o.nodeValue)?'textnode':'whitespace';}}
if(t=='object'||t=='function'){switch(o.constructor){case Array:return'array';case RegExp:return'regexp';case Date:return'date';}
if(typeof o.length=='number'&&typeof o.item=='function'){return'nodelist';}}
return t;},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);},value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v;},isArray:function(v){return v&&typeof v.length=='number'&&typeof v.splice=='function';},isDate:function(v){return v&&typeof v.getFullYear=='function';},isOpera:isOpera,isWebKit:isWebKit,isChrome:isChrome,isSafari:isSafari,isSafari4:isSafari4,isSafari3:isSafari3,isSafari2:isSafari2,isIE:isIE,isIE6:isIE6,isIE7:isIE7,isIE8:isIE8,isGecko:isGecko,isGecko2:isGecko2,isGecko3:isGecko3,isBorderBox:isBorderBox,isLinux:isLinux,isWindows:isWindows,isMac:isMac,isAir:isAir,useShims:((isIE&&!(isIE7||isIE8))||(isMac&&isGecko&&!isGecko3))});Ext.ns=Ext.namespace;})();Ext.ns("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux");Ext.apply(Function.prototype,{createCallback:function(){var args=arguments;var method=this;return function(){return method.apply(window,args);};},createDelegate:function(obj,args,appendArgs){var method=this;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=Array.prototype.slice.call(arguments,0);callArgs=callArgs.concat(args);}else if(typeof appendArgs=="number"){callArgs=Array.prototype.slice.call(arguments,0);var applyArgs=[appendArgs,0].concat(args);Array.prototype.splice.apply(callArgs,applyArgs);}
return method.apply(obj||window,callArgs);};},defer:function(millis,obj,args,appendArgs){var fn=this.createDelegate(obj,args,appendArgs);if(millis){return setTimeout(fn,millis);}
fn();return 0;},createSequence:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){var retval=method.apply(this||window,arguments);fcn.apply(scope||this||window,arguments);return retval;};},createInterceptor:function(fcn,scope){if(typeof fcn!="function"){return this;}
var method=this;return function(){fcn.target=this;fcn.method=method;if(fcn.apply(scope||this||window,arguments)===false){return;}
return method.apply(this||window,arguments);};}});Ext.applyIf(String,{escape:function(string){return string.replace(/('|\\)/g,"\\$1");},leftPad:function(val,size,ch){var result=new String(val);if(!ch){ch=" ";}
while(result.length<size){result=ch+result;}
return result.toString();},format:function(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}});String.prototype.toggle=function(value,other){return this==value?other:value;};String.prototype.trim=function(){var re=/^\s+|\s+$/g;return function(){return this.replace(re,"");};}();Ext.applyIf(Number.prototype,{constrain:function(min,max){return Math.min(Math.max(this,min),max);}});Ext.applyIf(Array.prototype,{indexOf:function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o)return i;}
return-1;},remove:function(o){var index=this.indexOf(o);if(index!=-1){this.splice(index,1);}
return this;}});Date.prototype.getElapsed=function(date){return Math.abs((date||new Date()).getTime()-this.getTime());};

(function(){var libFlyweight;Ext.lib.Dom={getViewWidth:function(full){return full?this.getDocumentWidth():this.getViewportWidth();},getViewHeight:function(full){return full?this.getDocumentHeight():this.getViewportHeight();},getDocumentHeight:function(){var scrollHeight=(document.compatMode!="CSS1Compat")?document.body.scrollHeight:document.documentElement.scrollHeight;return Math.max(scrollHeight,this.getViewportHeight());},getDocumentWidth:function(){var scrollWidth=(document.compatMode!="CSS1Compat")?document.body.scrollWidth:document.documentElement.scrollWidth;return Math.max(scrollWidth,this.getViewportWidth());},getViewportHeight:function(){if(Ext.isIE){return Ext.isStrict?document.documentElement.clientHeight:document.body.clientHeight;}else{return self.innerHeight;}},getViewportWidth:function(){if(Ext.isIE){return Ext.isStrict?document.documentElement.clientWidth:document.body.clientWidth;}else{return self.innerWidth;}},isAncestor:function(p,c){p=Ext.getDom(p);c=Ext.getDom(c);if(!p||!c){return false;}
if(p.contains&&!Ext.isWebKit){return p.contains(c);}else if(p.compareDocumentPosition){return!!(p.compareDocumentPosition(c)&16);}else{var parent=c.parentNode;while(parent){if(parent==p){return true;}
else if(!parent.tagName||parent.tagName.toUpperCase()=="HTML"){return false;}
parent=parent.parentNode;}
return false;}},getRegion:function(el){return Ext.lib.Region.getRegion(el);},getY:function(el){return this.getXY(el)[1];},getX:function(el){return this.getXY(el)[0];},getXY:function(el){var p,pe,b,scroll,bd=(document.body||document.documentElement);el=Ext.getDom(el);if(el==bd){return[0,0];}
if(el.getBoundingClientRect){b=el.getBoundingClientRect();scroll=fly(document).getScroll();return[b.left+scroll.left,b.top+scroll.top];}
var x=0,y=0;p=el;var hasAbsolute=fly(el).getStyle("position")=="absolute";while(p){x+=p.offsetLeft;y+=p.offsetTop;if(!hasAbsolute&&fly(p).getStyle("position")=="absolute"){hasAbsolute=true;}
if(Ext.isGecko){pe=fly(p);var bt=parseInt(pe.getStyle("borderTopWidth"),10)||0;var bl=parseInt(pe.getStyle("borderLeftWidth"),10)||0;x+=bl;y+=bt;if(p!=el&&pe.getStyle('overflow')!='visible'){x+=bl;y+=bt;}}
p=p.offsetParent;}
if(Ext.isWebKit&&hasAbsolute){x-=bd.offsetLeft;y-=bd.offsetTop;}
if(Ext.isGecko&&!hasAbsolute){var dbd=fly(bd);x+=parseInt(dbd.getStyle("borderLeftWidth"),10)||0;y+=parseInt(dbd.getStyle("borderTopWidth"),10)||0;}
p=el.parentNode;while(p&&p!=bd){if(!Ext.isOpera||(p.tagName!='TR'&&fly(p).getStyle("display")!="inline")){x-=p.scrollLeft;y-=p.scrollTop;}
p=p.parentNode;}
return[x,y];},setXY:function(el,xy){el=Ext.fly(el,'_setXY');el.position();var pts=el.translatePoints(xy);if(xy[0]!==false){el.dom.style.left=pts.left+"px";}
if(xy[1]!==false){el.dom.style.top=pts.top+"px";}},setX:function(el,x){this.setXY(el,[x,false]);},setY:function(el,y){this.setXY(el,[false,y]);}};Ext.lib.Event=function(){var loadComplete=false;var listeners={};var indexCounter=0;var oldIndexes=[];var unloadListeners={};var retryCount=0;var onAvailStack=[];var counter=0;var lastError=null;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,eventName,fn){el=Ext.getDom(el);if(!el||!fn){return false;}
var index;if("unload"==eventName){if(oldIndexes.length>0){index=oldIndexes[0];oldIndexes.splice(0,1);}else{index=indexCounter;indexCounter++;}
unloadListeners[index]=[el,eventName,fn];return true;}
var wrappedFn=function(e){return typeof Ext!='undefined'?fn(Ext.lib.Event.getEvent(e)):false;};var li=[el,eventName,fn,wrappedFn];if(oldIndexes.length>0){index=oldIndexes[0];oldIndexes.splice(0,1);}else{index=indexCounter;indexCounter++;}
listeners[index]=li;this.doAdd(el,eventName,wrappedFn,false);return{index:index};},removeListener:function(el,eventName,fn){var i,len;el=Ext.getDom(el);if(!fn){return this.purgeElement(el,false,eventName);}
if("unload"==eventName){for(var i in unloadListeners){var li=unloadListeners[i];if(li&&li[0]==el&&li[1]==eventName&&li[2]==fn){delete unloadListeners[i];return true;}}
return false;}
var cacheItem=null;var index=arguments[3];if("undefined"==typeof index){index=this._getCacheIndex(el,eventName,fn);}
if("undefined"!=typeof index){cacheItem=listeners[index];}
if(!el||!cacheItem){return false;}
this.doRemove(el,eventName,cacheItem[this.WFN],false);delete listeners[index][this.WFN];delete listeners[index][this.FN];delete listeners[index];oldIndexes.push(index);return true;},getTarget:function(ev,resolveTextNode){ev=ev.browserEvent||ev;var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(node){if(Ext.isWebKit&&node&&3==node.nodeType){return node.parentNode;}else{return node;}},getPageX:function(ev){ev=ev.browserEvent||ev;var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(Ext.isIE){x+=this.getScroll()[1];}}
return x;},getPageY:function(ev){ev=ev.browserEvent||ev;var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(Ext.isIE){y+=this.getScroll()[0];}}
return y;},getXY:function(ev){ev=ev.browserEvent||ev;return[this.getPageX(ev),this.getPageY(ev)];},getRelatedTarget:function(ev){ev=ev.browserEvent||ev;var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else if(ev.type=="mouseover"){t=ev.fromElement;}}
return this.resolveTextNode(t);},getTime:function(ev){ev=ev.browserEvent||ev;if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(ex){this.lastError=ex;return t;}}
return ev.time;},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev);},stopPropagation:function(ev){ev=ev.browserEvent||ev;if(ev.stopPropagation){ev.stopPropagation();}else{ev.cancelBubble=true;}},preventDefault:function(ev){ev=ev.browserEvent||ev;if(ev.preventDefault){ev.preventDefault();}else{ev.returnValue=false;}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break;}
c=c.caller;}}
return ev;},getCharCode:function(ev){ev=ev.browserEvent||ev;return ev.charCode||ev.keyCode||0;},_getCacheIndex:function(el,eventName,fn){for(var i in listeners){var li=listeners[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==eventName){return i;}}
return undefined;},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){},_load:function(e){loadComplete=true;var EU=Ext.lib.Event;if(Ext.isIE){EU.doRemove(window,"load",EU._load);}},_tryPreloadAttach:function(){if(this.locked){return false;}
this.locked=true;var tryAgain=!loadComplete;if(!tryAgain){tryAgain=(retryCount>0);}
var notAvail=[];for(var i=0,len=onAvailStack.length;i<len;++i){var item=onAvailStack[i];if(item){var el=this.getEl(item.id);if(el){if(!item.checkReady||loadComplete||el.nextSibling||(document&&document.body)){var scope=el;if(item.override){if(item.override===true){scope=item.obj;}else{scope=item.override;}}
item.fn.call(scope,item.obj);onAvailStack[i]=null;}}else{notAvail.push(item);}}}
retryCount=(notAvail.length===0)?0:retryCount-1;if(tryAgain){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}
this.locked=false;return true;},purgeElement:function(el,recurse,eventName){var elListeners=this.getListeners(el,eventName);if(elListeners){for(var i=0,len=elListeners.length;i<len;++i){var l=elListeners[i];this.removeListener(el,l.type,l.fn);}}
if(recurse&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],recurse,eventName);}}},getListeners:function(el,eventName){var results=[],searchLists;if(!eventName){searchLists=[listeners,unloadListeners];}else if(eventName=="unload"){searchLists=[unloadListeners];}else{searchLists=[listeners];}
for(var j=0;j<searchLists.length;++j){var searchList=searchLists[j];if(searchList){for(var i in searchList){var l=searchList[i];if(l&&l[this.EL]===el&&(!eventName||eventName===l[this.TYPE])){results.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}}
return(results.length)?results:null;},_unload:function(e){var EU=Ext.lib.Event,i,j,l,len,index;for(var i in unloadListeners){l=unloadListeners[i];if(l){var scope=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){scope=l[EU.OBJ];}else{scope=l[EU.ADJ_SCOPE];}}
l[EU.FN].call(scope,EU.getEvent(e),l[EU.OBJ]);unloadListeners[i]=null;l=null;scope=null;}}
unloadListeners=null;if(listeners){for(var j in listeners){l=listeners[j];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],j);}}
l=null
EU.clearCache();}
listeners=null;oldIndexes=null;EU.doRemove(window,"unload",EU._unload);},getScroll:function(){var dd=document.documentElement,db=document.body;if(dd&&(dd.scrollTop||dd.scrollLeft)){return[dd.scrollTop,dd.scrollLeft];}else if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}},doAdd:function(){if(window.addEventListener){return function(el,eventName,fn,capture){el.addEventListener(eventName,fn,(capture));};}else if(window.attachEvent){return function(el,eventName,fn,capture){el.attachEvent("on"+eventName,fn);};}else{return function(){};}}(),doRemove:function(){if(window.removeEventListener){return function(el,eventName,fn,capture){el.removeEventListener(eventName,fn,(capture));};}else if(window.detachEvent){return function(el,eventName,fn){el.detachEvent("on"+eventName,fn);};}else{return function(){};}}()};}();var E=Ext.lib.Event;E.on=E.addListener;E.un=E.removeListener;if(document&&document.body){E._load();}else{E.doAdd(window,"load",E._load);}
E.doAdd(window,"unload",E._unload);E._tryPreloadAttach();Ext.lib.Ajax={request:function(method,uri,cb,data,options){if(options){var hs=options.headers;if(hs){for(var h in hs){if(hs.hasOwnProperty(h)){this.initHeader(h,hs[h],false);}}}
if(options.xmlData){if(!hs||!hs['Content-Type']){this.initHeader('Content-Type','text/xml',false);}
method=(method?method:(options.method?options.method:'POST'));data=options.xmlData;}else if(options.jsonData){if(!hs||!hs['Content-Type']){this.initHeader('Content-Type','application/json',false);}
method=(method?method:(options.method?options.method:'POST'));data=typeof options.jsonData=='object'?Ext.encode(options.jsonData):options.jsonData;}}
return this.asyncRequest(method,uri,cb,data);},serializeForm:function(form){if(typeof form=='string'){form=(document.getElementById(form)||document.forms[form]);}
var el,name,val,disabled,data='',hasSubmit=false;for(var i=0;i<form.elements.length;i++){el=form.elements[i];disabled=form.elements[i].disabled;name=form.elements[i].name;val=form.elements[i].value;if(!disabled&&name){switch(el.type)
{case'select-one':case'select-multiple':for(var j=0;j<el.options.length;j++){if(el.options[j].selected){var opt=el.options[j],sel=(opt.hasAttribute?opt.hasAttribute('value'):opt.getAttributeNode('value').specified)?opt.value:opt.text;data+=encodeURIComponent(name)+'='+encodeURIComponent(sel)+'&';}}
break;case'radio':case'checkbox':if(el.checked){data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';}
break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit==false){data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';hasSubmit=true;}
break;default:data+=encodeURIComponent(name)+'='+encodeURIComponent(val)+'&';break;}}}
data=data.substr(0,data.length-1);return data;},headers:{},hasHeaders:false,useDefaultHeader:true,defaultPostHeader:'application/x-www-form-urlencoded; charset=UTF-8',useDefaultXhrHeader:true,defaultXhrHeader:'XMLHttpRequest',hasDefaultHeaders:true,defaultHeaders:{},poll:{},timeout:{},pollInterval:50,transactionId:0,setProgId:function(id)
{this.activeX.unshift(id);},setDefaultPostHeader:function(b)
{this.useDefaultHeader=b;},setDefaultXhrHeader:function(b)
{this.useDefaultXhrHeader=b;},setPollingInterval:function(i)
{if(typeof i=='number'&&isFinite(i)){this.pollInterval=i;}},createXhrObject:function(transactionId)
{var obj,http;try
{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}
catch(e)
{for(var i=0;i<this.activeX.length;++i){try
{http=new ActiveXObject(this.activeX[i]);obj={conn:http,tId:transactionId};break;}
catch(e){}}}
finally
{return obj;}},getConnectionObject:function()
{var o;var tId=this.transactionId;try
{o=this.createXhrObject(tId);if(o){this.transactionId++;}}
catch(e){}
finally
{return o;}},asyncRequest:function(method,uri,callback,postData)
{var o=this.getConnectionObject();if(!o){return null;}
else{o.conn.open(method,uri,true);if(this.useDefaultXhrHeader){if(!this.defaultHeaders['X-Requested-With']){this.initHeader('X-Requested-With',this.defaultXhrHeader,true);}}
if(postData&&this.useDefaultHeader&&(!this.hasHeaders||!this.headers['Content-Type'])){this.initHeader('Content-Type',this.defaultPostHeader);}
if(this.hasDefaultHeaders||this.hasHeaders){this.setHeader(o);}
this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},handleReadyState:function(o,callback)
{var oConn=this;if(callback&&callback.timeout){this.timeout[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
this.poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState==4){window.clearInterval(oConn.poll[o.tId]);delete oConn.poll[o.tId];if(callback&&callback.timeout){window.clearTimeout(oConn.timeout[o.tId]);delete oConn.timeout[o.tId];}
oConn.handleTransactionResponse(o,callback);}},this.pollInterval);},handleTransactionResponse:function(o,callback,isAbort)
{if(!callback){this.releaseObject(o);return;}
var httpStatus,responseObject;try
{if(o.conn.status!==undefined&&o.conn.status!=0){httpStatus=o.conn.status;}
else{httpStatus=13030;}}
catch(e){httpStatus=13030;}
if((httpStatus>=200&&httpStatus<300)||(Ext.isIE&&httpStatus==1223)){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);}
else{callback.success.apply(callback.scope,[responseObject]);}}}
else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}
break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}}}
this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg)
{var obj={};var headerObj={};try
{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}
catch(e){}
obj.tId=o.tId;obj.status=o.conn.status;obj.statusText=o.conn.statusText;obj.getResponseHeader=function(header){return headerObj[header];};obj.getAllResponseHeaders=function(){return headerStr};obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}
return obj;},createExceptionObject:function(tId,callbackArg,isAbort)
{var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}
else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}
if(callbackArg){obj.argument=callbackArg;}
return obj;},initHeader:function(label,value,isDefault)
{var headerObj=(isDefault)?this.defaultHeaders:this.headers;if(headerObj[label]===undefined){headerObj[label]=value;}
else{headerObj[label]=value+","+headerObj[label];}
if(isDefault){this.hasDefaultHeaders=true;}
else{this.hasHeaders=true;}},setHeader:function(o)
{if(this.hasDefaultHeaders){for(var prop in this.defaultHeaders){if(this.defaultHeaders.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this.defaultHeaders[prop]);}}}
if(this.hasHeaders){for(var prop in this.headers){if(this.headers.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this.headers[prop]);}}
this.headers={};this.hasHeaders=false;}},resetDefaultHeaders:function(){delete this.defaultHeaders;this.defaultHeaders={};this.hasDefaultHeaders=false;},abort:function(o,callback,isTimeout)
{if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this.poll[o.tId]);delete this.poll[o.tId];if(isTimeout){delete this.timeout[o.tId];}
this.handleTransactionResponse(o,callback,true);return true;}
else{return false;}},isCallInProgress:function(o)
{if(o.conn){return o.conn.readyState!=4&&o.conn.readyState!=0;}
else{return false;}},releaseObject:function(o)
{o.conn=null;o=null;},activeX:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP']};Ext.lib.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};Ext.lib.Region.prototype={contains:function(region){return(region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom);},getArea:function(){return((this.bottom-this.top)*(this.right-this.left));},intersect:function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new Ext.lib.Region(t,r,b,l);}else{return null;}},union:function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new Ext.lib.Region(t,r,b,l);},constrainTo:function(r){this.top=this.top.constrain(r.top,r.bottom);this.bottom=this.bottom.constrain(r.top,r.bottom);this.left=this.left.constrain(r.left,r.right);this.right=this.right.constrain(r.left,r.right);return this;},adjust:function(t,l,b,r){this.top+=t;this.left+=l;this.right+=r;this.bottom+=b;return this;}};Ext.lib.Region.getRegion=function(el){var p=Ext.lib.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new Ext.lib.Region(t,r,b,l);};Ext.lib.Point=function(x,y){if(Ext.isArray(x)){y=x[1];x=x[0];}
this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.Scroll);},motion:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.Motion);},color:function(el,args,duration,easing,cb,scope){return this.run(el,args,duration,easing,cb,scope,Ext.lib.ColorAnim);},run:function(el,args,duration,easing,cb,scope,type){type=type||Ext.lib.AnimBase;if(typeof easing=="string"){easing=Ext.lib.Easing[easing];}
var anim=new type(el,args,duration,easing);anim.animateX(function(){Ext.callback(cb,scope);});return anim;}};function fly(el){if(!libFlyweight){libFlyweight=new Ext.Element.Flyweight();}
libFlyweight.dom=el;return libFlyweight;}
if(Ext.isIE){function fnCleanUp(){var p=Function.prototype;delete p.createSequence;delete p.defer;delete p.createDelegate;delete p.createCallback;delete p.createInterceptor;window.detachEvent("onunload",fnCleanUp);}
window.attachEvent("onunload",fnCleanUp);}
Ext.lib.AnimBase=function(el,attributes,duration,method){if(el){this.init(el,attributes,duration,method);}};Ext.lib.AnimBase.prototype={toString:function(){var el=this.getEl();var id=el.id||el.tagName;return("Anim "+id);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(attr,start,end){return this.method(this.currentFrame,start,end-start,this.totalFrames);},setAttribute:function(attr,val,unit){if(this.patterns.noNegatives.test(attr)){val=(val>0)?val:0;}
Ext.fly(this.getEl(),'_anim').setStyle(attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=fly(el).getStyle(attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);}
var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(fly(el).getStyle('position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;}
return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';}
return'';},animateX:function(callback,scope){var f=function(){this.onComplete.removeListener(f);if(typeof callback=="function"){callback.call(scope||this,this);}};this.onComplete.addListener(f,this);this.animate();},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;}
start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+attributes[attr]['by'][i];}}else{end=start+attributes[attr]['by'];}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;this.runtimeAttributes[attr].unit=(isset(attributes[attr].unit))?attributes[attr]['unit']:this.getDefaultUnit(attr);},init:function(el,attributes,duration,method){var isAnimated=false;var startTime=null;var actualFrames=0;el=Ext.getDom(el);this.attributes=attributes||{};this.duration=duration||1;this.method=method||Ext.lib.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=Ext.lib.AnimMgr.fps;this.getEl=function(){return el;};this.isAnimated=function(){return isAnimated;};this.getStartTime=function(){return startTime;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}
this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(Ext.lib.AnimMgr.fps*this.duration):this.duration;Ext.lib.AnimMgr.registerElement(this);};this.stop=function(finish){if(finish){this.currentFrame=this.totalFrames;this._onTween.fire();}
Ext.lib.AnimMgr.stop(this);};var onStart=function(){this.onStart.fire();this.runtimeAttributes={};for(var attr in this.attributes){this.setRuntimeAttribute(attr);}
isAnimated=true;actualFrames=0;startTime=new Date();};var onTween=function(){var data={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};data.toString=function(){return('duration: '+data.duration+', currentFrame: '+data.currentFrame);};this.onTween.fire(data);var runtimeAttributes=this.runtimeAttributes;for(var attr in runtimeAttributes){this.setAttribute(attr,this.doMethod(attr,runtimeAttributes[attr].start,runtimeAttributes[attr].end),runtimeAttributes[attr].unit);}
actualFrames+=1;};var onComplete=function(){var actual_duration=(new Date()-startTime)/1000;var data={duration:actual_duration,frames:actualFrames,fps:actualFrames/actual_duration};data.toString=function(){return('duration: '+data.duration+', frames: '+data.frames+', fps: '+data.fps);};isAnimated=false;actualFrames=0;this.onComplete.fire(data);};this._onStart=new Ext.util.Event(this);this.onStart=new Ext.util.Event(this);this.onTween=new Ext.util.Event(this);this._onTween=new Ext.util.Event(this);this.onComplete=new Ext.util.Event(this);this._onComplete=new Ext.util.Event(this);this._onStart.addListener(onStart);this._onTween.addListener(onTween);this._onComplete.addListener(onComplete);}};Ext.lib.AnimMgr=new function(){var thread=null;var queue=[];var tweenCount=0;this.fps=1000;this.delay=1;this.registerElement=function(tween){queue[queue.length]=tween;tweenCount+=1;tween._onStart.fire();this.start();};this.unRegister=function(tween,index){tween._onComplete.fire();index=index||getIndex(tween);if(index!=-1){queue.splice(index,1);}
tweenCount-=1;if(tweenCount<=0){this.stop();}};this.start=function(){if(thread===null){thread=setInterval(this.run,this.delay);}};this.stop=function(tween){if(!tween){clearInterval(thread);for(var i=0,len=queue.length;i<len;++i){if(queue[0].isAnimated()){this.unRegister(queue[0],0);}}
queue=[];thread=null;tweenCount=0;}
else{this.unRegister(tween);}};this.run=function(){for(var i=0,len=queue.length;i<len;++i){var tween=queue[i];if(!tween||!tween.isAnimated()){continue;}
if(tween.currentFrame<tween.totalFrames||tween.totalFrames===null)
{tween.currentFrame+=1;if(tween.useSeconds){correctFrame(tween);}
tween._onTween.fire();}
else{Ext.lib.AnimMgr.stop(tween,i);}}};var getIndex=function(anim){for(var i=0,len=queue.length;i<len;++i){if(queue[i]==anim){return i;}}
return-1;};var correctFrame=function(tween){var frames=tween.totalFrames;var frame=tween.currentFrame;var expected=(tween.currentFrame*tween.duration*1000/tween.totalFrames);var elapsed=(new Date()-tween.getStartTime());var tweak=0;if(elapsed<tween.duration*1000){tweak=Math.round((elapsed/expected-1)*tween.currentFrame);}else{tweak=frames-(frame+1);}
if(tweak>0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);}
tween.currentFrame+=tweak;}};};Ext.lib.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i<n;++i){tmp[i]=[points[i][0],points[i][1]];}
for(var j=1;j<n;++j){for(i=0;i<n-j;++i){tmp[i][0]=(1-t)*tmp[i][0]+t*tmp[parseInt(i+1,10)][0];tmp[i][1]=(1-t)*tmp[i][1]+t*tmp[parseInt(i+1,10)][1];}}
return[tmp[0][0],tmp[0][1]];};};(function(){Ext.lib.ColorAnim=function(el,attributes,duration,method){Ext.lib.ColorAnim.superclass.constructor.call(this,el,attributes,duration,method);};Ext.extend(Ext.lib.ColorAnim,Ext.lib.AnimBase);var Y=Ext.lib;var superclass=Y.ColorAnim.superclass;var proto=Y.ColorAnim.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("ColorAnim "+id);};proto.patterns.color=/color$/i;proto.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;proto.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;proto.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;proto.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;proto.parseColor=function(s){if(s.length==3){return s;}
var c=this.patterns.hex.exec(s);if(c&&c.length==4){return[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)];}
c=this.patterns.rgb.exec(s);if(c&&c.length==4){return[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)];}
c=this.patterns.hex3.exec(s);if(c&&c.length==4){return[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)];}
return null;};proto.getAttribute=function(attr){var el=this.getEl();if(this.patterns.color.test(attr)){var val=fly(el).getStyle(attr);if(this.patterns.transparent.test(val)){var parent=el.parentNode;val=fly(parent).getStyle(attr);while(parent&&this.patterns.transparent.test(val)){parent=parent.parentNode;val=fly(parent).getStyle(attr);if(parent.tagName.toUpperCase()=='HTML'){val='#fff';}}}}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val;if(this.patterns.color.test(attr)){val=[];for(var i=0,len=start.length;i<len;++i){val[i]=superclass.doMethod.call(this,attr,start[i],end[i]);}
val='rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')';}
else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){superclass.setRuntimeAttribute.call(this,attr);if(this.patterns.color.test(attr)){var attributes=this.attributes;var start=this.parseColor(this.runtimeAttributes[attr].start);var end=this.parseColor(this.runtimeAttributes[attr].end);if(typeof attributes[attr]['to']==='undefined'&&typeof attributes[attr]['by']!=='undefined'){end=this.parseColor(attributes[attr].by);for(var i=0,len=start.length;i<len;++i){end[i]=start[i]+end[i];}}
this.runtimeAttributes[attr].start=start;this.runtimeAttributes[attr].end=end;}};})();Ext.lib.Easing={easeNone:function(t,b,c,d){return c*t/d+b;},easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeBoth:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b;}
return-c/2*((--t)*(t-2)-1)+b;},easeInStrong:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutStrong:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeBothStrong:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b;}
return-c/2*((t-=2)*t*t*t-2)+b;},elasticIn:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},elasticOut:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d)==1){return b+c;}
if(!p){p=d*.3;}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},elasticBoth:function(t,b,c,d,a,p){if(t==0){return b;}
if((t/=d/2)==2){return b+c;}
if(!p){p=d*(.3*1.5);}
if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else{var s=p/(2*Math.PI)*Math.asin(c/a);}
if(t<1){return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},backIn:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backBoth:function(t,b,c,d,s){if(typeof s=='undefined'){s=1.70158;}
if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;}
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},bounceIn:function(t,b,c,d){return c-Ext.lib.Easing.bounceOut(d-t,0,c,d)+b;},bounceOut:function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}
return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;},bounceBoth:function(t,b,c,d){if(t<d/2){return Ext.lib.Easing.bounceIn(t*2,0,c,d)*.5+b;}
return Ext.lib.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};(function(){Ext.lib.Motion=function(el,attributes,duration,method){if(el){Ext.lib.Motion.superclass.constructor.call(this,el,attributes,duration,method);}};Ext.extend(Ext.lib.Motion,Ext.lib.ColorAnim);var Y=Ext.lib;var superclass=Y.Motion.superclass;var proto=Y.Motion.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Motion "+id);};proto.patterns.points=/^points$/i;proto.setAttribute=function(attr,val,unit){if(this.patterns.points.test(attr)){unit=unit||'px';superclass.setAttribute.call(this,'left',val[0],unit);superclass.setAttribute.call(this,'top',val[1],unit);}else{superclass.setAttribute.call(this,attr,val,unit);}};proto.getAttribute=function(attr){if(this.patterns.points.test(attr)){var val=[superclass.getAttribute.call(this,'left'),superclass.getAttribute.call(this,'top')];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.doMethod=function(attr,start,end){var val=null;if(this.patterns.points.test(attr)){var t=this.method(this.currentFrame,0,100,this.totalFrames)/100;val=Y.Bezier.getPosition(this.runtimeAttributes[attr],t);}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.setRuntimeAttribute=function(attr){if(this.patterns.points.test(attr)){var el=this.getEl();var attributes=this.attributes;var start;var control=attributes['points']['control']||[];var end;var i,len;if(control.length>0&&!Ext.isArray(control[0])){control=[control];}else{var tmp=[];for(i=0,len=control.length;i<len;++i){tmp[i]=control[i];}
control=tmp;}
Ext.fly(el,'_anim').position();if(isset(attributes['points']['from'])){Ext.lib.Dom.setXY(el,attributes['points']['from']);}
else{Ext.lib.Dom.setXY(el,Ext.lib.Dom.getXY(el));}
start=this.getAttribute('points');if(isset(attributes['points']['to'])){end=translateValues.call(this,attributes['points']['to'],start);var pageXY=Ext.lib.Dom.getXY(this.getEl());for(i=0,len=control.length;i<len;++i){control[i]=translateValues.call(this,control[i],start);}}else if(isset(attributes['points']['by'])){end=[start[0]+attributes['points']['by'][0],start[1]+attributes['points']['by'][1]];for(i=0,len=control.length;i<len;++i){control[i]=[start[0]+control[i][0],start[1]+control[i][1]];}}
this.runtimeAttributes[attr]=[start];if(control.length>0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);}
this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;}
else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Ext.lib.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){Ext.lib.Scroll=function(el,attributes,duration,method){if(el){Ext.lib.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var Y=Ext.lib;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);}
return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);}
return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();})();

Ext.DomHelper=function(){var tempTableEl=null;var emptyTags=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var tableRe=/^table|tbody|tr|td$/i;var createHtml=function(o){if(typeof o=='string'){return o;}
var b="";if(Ext.isArray(o)){for(var i=0,l=o.length;i<l;i++){b+=createHtml(o[i]);}
return b;}
if(!o.tag){o.tag="div";}
b+="<"+o.tag;for(var attr in o){if(attr=="tag"||attr=="children"||attr=="cn"||attr=="html"||typeof o[attr]=="function")continue;if(attr=="style"){var s=o["style"];if(typeof s=="function"){s=s.call();}
if(typeof s=="string"){b+=' style="'+s+'"';}else if(typeof s=="object"){b+=' style="';for(var key in s){if(typeof s[key]!="function"){b+=key+":"+s[key]+";";}}
b+='"';}}else{if(attr=="cls"){b+=' class="'+o["cls"]+'"';}else if(attr=="htmlFor"){b+=' for="'+o["htmlFor"]+'"';}else{b+=" "+attr+'="'+o[attr]+'"';}}}
if(emptyTags.test(o.tag)){b+="/>";}else{b+=">";var cn=o.children||o.cn;if(cn){b+=createHtml(cn);}else if(o.html){b+=o.html;}
b+="</"+o.tag+">";}
return b;};var createDom=function(o,parentNode){var el;if(Ext.isArray(o)){el=document.createDocumentFragment();for(var i=0,l=o.length;i<l;i++){createDom(o[i],el);}}else if(typeof o=="string"){el=document.createTextNode(o);}else{el=document.createElement(o.tag||'div');var useSet=!!el.setAttribute;for(var attr in o){if(attr=="tag"||attr=="children"||attr=="cn"||attr=="html"||attr=="style"||typeof o[attr]=="function")continue;if(attr=="cls"){el.className=o["cls"];}else{if(useSet)el.setAttribute(attr,o[attr]);else el[attr]=o[attr];}}
Ext.DomHelper.applyStyles(el,o.style);var cn=o.children||o.cn;if(cn){createDom(cn,el);}else if(o.html){el.innerHTML=o.html;}}
if(parentNode){parentNode.appendChild(el);}
return el;};var ieTable=function(depth,s,h,e){tempTableEl.innerHTML=[s,h,e].join('');var i=-1,el=tempTableEl;while(++i<depth){el=el.firstChild;}
return el;};var ts='<table>',te='</table>',tbs=ts+'<tbody>',tbe='</tbody>'+te,trs=tbs+'<tr>',tre='</tr>'+tbe;var insertIntoTable=function(tag,where,el,html){if(!tempTableEl){tempTableEl=document.createElement('div');}
var node;var before=null;if(tag=='td'){if(where=='afterbegin'||where=='beforeend'){return;}
if(where=='beforebegin'){before=el;el=el.parentNode;}else{before=el.nextSibling;el=el.parentNode;}
node=ieTable(4,trs,html,tre);}
else if(tag=='tr'){if(where=='beforebegin'){before=el;el=el.parentNode;node=ieTable(3,tbs,html,tbe);}else if(where=='afterend'){before=el.nextSibling;el=el.parentNode;node=ieTable(3,tbs,html,tbe);}else{if(where=='afterbegin'){before=el.firstChild;}
node=ieTable(4,trs,html,tre);}}else if(tag=='tbody'){if(where=='beforebegin'){before=el;el=el.parentNode;node=ieTable(2,ts,html,te);}else if(where=='afterend'){before=el.nextSibling;el=el.parentNode;node=ieTable(2,ts,html,te);}else{if(where=='afterbegin'){before=el.firstChild;}
node=ieTable(3,tbs,html,tbe);}}else{if(where=='beforebegin'||where=='afterend'){return;}
if(where=='afterbegin'){before=el.firstChild;}
node=ieTable(2,ts,html,te);}
el.insertBefore(node,before);return node;};return{useDom:false,markup:function(o){return createHtml(o);},applyStyles:function(el,styles){if(styles){el=Ext.fly(el);if(typeof styles=="string"){var re=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var matches;while((matches=re.exec(styles))!=null){el.setStyle(matches[1],matches[2]);}}else if(typeof styles=="object"){for(var style in styles){el.setStyle(style,styles[style]);}}else if(typeof styles=="function"){Ext.DomHelper.applyStyles(el,styles.call());}}},insertHtml:function(where,el,html){where=where.toLowerCase();if(el.insertAdjacentHTML){if(tableRe.test(el.tagName)){var rs;if(rs=insertIntoTable(el.tagName.toLowerCase(),where,el,html)){return rs;}}
switch(where){case"beforebegin":el.insertAdjacentHTML('BeforeBegin',html);return el.previousSibling;case"afterbegin":el.insertAdjacentHTML('AfterBegin',html);return el.firstChild;case"beforeend":el.insertAdjacentHTML('BeforeEnd',html);return el.lastChild;case"afterend":el.insertAdjacentHTML('AfterEnd',html);return el.nextSibling;}
throw'Illegal insertion point -> "'+where+'"';}
var range=el.ownerDocument.createRange();var frag;switch(where){case"beforebegin":range.setStartBefore(el);frag=range.createContextualFragment(html);el.parentNode.insertBefore(frag,el);return el.previousSibling;case"afterbegin":if(el.firstChild){range.setStartBefore(el.firstChild);frag=range.createContextualFragment(html);el.insertBefore(frag,el.firstChild);return el.firstChild;}else{el.innerHTML=html;return el.firstChild;}
case"beforeend":if(el.lastChild){range.setStartAfter(el.lastChild);frag=range.createContextualFragment(html);el.appendChild(frag);return el.lastChild;}else{el.innerHTML=html;return el.lastChild;}
case"afterend":range.setStartAfter(el);frag=range.createContextualFragment(html);el.parentNode.insertBefore(frag,el.nextSibling);return el.nextSibling;}
throw'Illegal insertion point -> "'+where+'"';},insertBefore:function(el,o,returnElement){return this.doInsert(el,o,returnElement,"beforeBegin");},insertAfter:function(el,o,returnElement){return this.doInsert(el,o,returnElement,"afterEnd","nextSibling");},insertFirst:function(el,o,returnElement){return this.doInsert(el,o,returnElement,"afterBegin","firstChild");},doInsert:function(el,o,returnElement,pos,sibling){el=Ext.getDom(el);var newNode;if(this.useDom){newNode=createDom(o,null);(sibling==="firstChild"?el:el.parentNode).insertBefore(newNode,sibling?el[sibling]:el);}else{var html=createHtml(o);newNode=this.insertHtml(pos,el,html);}
return returnElement?Ext.get(newNode,true):newNode;},append:function(el,o,returnElement){el=Ext.getDom(el);var newNode;if(this.useDom){newNode=createDom(o,null);el.appendChild(newNode);}else{var html=createHtml(o);newNode=this.insertHtml("beforeEnd",el,html);}
return returnElement?Ext.get(newNode,true):newNode;},overwrite:function(el,o,returnElement){el=Ext.getDom(el);el.innerHTML=createHtml(o);return returnElement?Ext.get(el.firstChild,true):el.firstChild;},createTemplate:function(o){var html=createHtml(o);return new Ext.Template(html);}};}();Ext.Template=function(html){var a=arguments;if(Ext.isArray(html)){html=html.join("");}else if(a.length>1){var buf=[];for(var i=0,len=a.length;i<len;i++){if(typeof a[i]=='object'){Ext.apply(this,a[i]);}else{buf[buf.length]=a[i];}}
html=buf.join('');}
this.html=html;if(this.compiled){this.compile();}};Ext.Template.prototype={applyTemplate:function(values){if(this.compiled){return this.compiled(values);}
var useF=this.disableFormats!==true;var fm=Ext.util.Format,tpl=this;var fn=function(m,name,format,args){if(format&&useF){if(format.substr(0,5)=="this."){return tpl.call(format.substr(5),values[name],values);}else{if(args){var re=/^\s*['"](.*)["']\s*$/;args=args.split(',');for(var i=0,len=args.length;i<len;i++){args[i]=args[i].replace(re,"$1");}
args=[values[name]].concat(args);}else{args=[values[name]];}
return fm[format].apply(fm,args);}}else{return values[name]!==undefined?values[name]:"";}};return this.html.replace(this.re,fn);},set:function(html,compile){this.html=html;this.compiled=null;if(compile){this.compile();}
return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Ext.util.Format;var useF=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,name,format,args){if(format&&useF){args=args?','+args:"";if(format.substr(0,5)!="this."){format="fm."+format+'(';}else{format='this.call("'+format.substr(5)+'", ';args=", values";}}else{args='';format="(values['"+name+"'] == undefined ? '' : ";}
return"'"+sep+format+"values['"+name+"']"+args+")"+sep+"'";};var body;if(Ext.isGecko){body="this.compiled = function(values){ return '"+
this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};";}else{body=["this.compiled = function(values){ return ['"];body.push(this.html.replace(/\\/g,'\\\\').replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));body.push("'].join('');};");body=body.join('');}
eval(body);return this;},call:function(fnName,value,allValues){return this[fnName](value,allValues);},insertFirst:function(el,values,returnElement){return this.doInsert('afterBegin',el,values,returnElement);},insertBefore:function(el,values,returnElement){return this.doInsert('beforeBegin',el,values,returnElement);},insertAfter:function(el,values,returnElement){return this.doInsert('afterEnd',el,values,returnElement);},append:function(el,values,returnElement){return this.doInsert('beforeEnd',el,values,returnElement);},doInsert:function(where,el,values,returnEl){el=Ext.getDom(el);var newNode=Ext.DomHelper.insertHtml(where,el,this.applyTemplate(values));return returnEl?Ext.get(newNode,true):newNode;},overwrite:function(el,values,returnElement){el=Ext.getDom(el);el.innerHTML=this.applyTemplate(values);return returnElement?Ext.get(el.firstChild,true):el.firstChild;}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template=Ext.Template;Ext.Template.from=function(el,config){el=Ext.getDom(el);return new Ext.Template(el.value||el.innerHTML,config||'');};Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={};var nonSpace=/\S/;var trimRe=/^\s+|\s+$/g;var tplRe=/\{(\d+)\}/g;var modeRe=/^(\s?[\/>+~]\s?|\s|$)/;var tagTokenRe=/^(#)?([\w-\*]+)/;var nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/;var opera=Ext.isOpera;function child(p,index){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n;}}
n=n.nextSibling;}
return null;};function next(n){while((n=n.nextSibling)&&n.nodeType!=1);return n;};function prev(n){while((n=n.previousSibling)&&n.nodeType!=1);return n;};function children(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}
n=nx;}
return this;};function byClassName(c,a,v){if(!v){return c;}
var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((' '+ci.className+' ').indexOf(v)!=-1){r[++ri]=ci;}}
return r;};function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0];}
if(!n){return null;}
if(attr=="for"){return n.htmlFor;}
if(attr=="class"||attr=="className"){return n.className;}
return n.getAttribute(attr)||n[attr];};function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result;}
tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns];}
if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci;}}}else if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=opera?ni.childNodes:(ni.children||ni.childNodes);for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=='*'){result[++ri]=cj;}}}}else if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1);if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=='*')){result[++ri]=n;}}}else if(mode=="~"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=='*'){result[++ri]=n;}}}}
return result;};function concat(a,b){if(b.slice){return a.concat(b);}
for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i];}
return a;}
function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs];}
if(!tagName){return cs;}
var r=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName){r[++ri]=ci;}}
return r;};function byId(cs,attr,id){if(cs.tagName||cs==document){cs=[cs];}
if(!id){return cs;}
var r=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){r[++ri]=ci;return r;}}
return r;};function byAttribute(cs,attr,value,op,custom){var r=[],ri=-1,st=custom=="{";var f=Ext.DomQuery.operators[op];for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType!=1){continue;}
var a;if(st){a=Ext.DomQuery.getStyle(ci,attr);}
else if(attr=="class"||attr=="className"){a=ci.className;}else if(attr=="for"){a=ci.htmlFor;}else if(attr=="href"){a=ci.getAttribute("href",2);}else{a=ci.getAttribute(attr);}
if((f&&f(a,value))||(!f&&a)){r[++ri]=ci;}}
return r;};function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value);};var isIE=window.ActiveXObject?true:false;eval("var batch = 30803;");var key=30803;function nodupIEXml(cs){var d=++key;cs[0].setAttribute("_nodup",d);var r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c;}}
for(var i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup");}
return r;}
function nodup(cs){if(!cs){return[];}
var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs;}
if(isIE&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs);}
var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d;}else{r=[];for(var j=0;j<i;j++){r[++ri]=cs[j];}
for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj;}}
return r;}}
return r;}
function quickDiffIEXml(c1,c2){var d=++key;for(var i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d);}
var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i];}}
for(var i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff");}
return r;}
function quickDiff(c1,c2){var len1=c1.length;if(!len1){return c2;}
if(isIE&&c1[0].selectSingleNode){return quickDiffIEXml(c1,c2);}
var d=++key;for(var i=0;i<len1;i++){c1[i]._qdiff=d;}
var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i];}}
return r;}
function quickId(ns,mode,root,id){if(ns==root){var d=root.ownerDocument||root;return d.getElementById(id);}
ns=getNodes(ns,mode,"*");return byId(ns,null,id);}
return{getStyle:function(el,name){return Ext.fly(el).getStyle(name);},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"];var q=path,mode,lq;var tk=Ext.DomQuery.matchers;var tklen=tk.length;var mm;var lmode=q.match(modeRe);if(lmode&&lmode[1]){fn[fn.length]='mode="'+lmode[1].replace(trimRe,"")+'";';q=q.replace(lmode[1],"");}
while(path.substr(0,1)=="/"){path=path.substr(1);}
while(q&&lq!=q){lq=q;var tm=q.match(tagTokenRe);if(type=="select"){if(tm){if(tm[1]=="#"){fn[fn.length]='n = quickId(n, mode, root, "'+tm[2]+'");';}else{fn[fn.length]='n = getNodes(n, mode, "'+tm[2]+'");';}
q=q.replace(tm[0],"");}else if(q.substr(0,1)!='@'){fn[fn.length]='n = getNodes(n, mode, "*");';}}else{if(tm){if(tm[1]=="#"){fn[fn.length]='n = byId(n, null, "'+tm[2]+'");';}else{fn[fn.length]='n = byTag(n, "'+tm[2]+'");';}
q=q.replace(tm[0],"");}}
while(!(mm=q.match(modeRe))){var matched=false;for(var j=0;j<tklen;j++){var t=tk[j];var m=q.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i];});q=q.replace(m[0],"");matched=true;break;}}
if(!matched){throw'Error parsing selector, parsing failed at "'+q+'"';}}
if(mm[1]){fn[fn.length]='mode="'+mm[1].replace(trimRe,"")+'";';q=q.replace(mm[1],"");}}
fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f;},select:function(path,root,type){if(!root||root==document){root=document;}
if(typeof root=="string"){root=document.getElementById(root);}
var paths=path.split(",");var results=[];for(var i=0,len=paths.length;i<len;i++){var p=paths[i].replace(trimRe,"");if(!cache[p]){cache[p]=Ext.DomQuery.compile(p);if(!cache[p]){throw p+" is not a valid selector";}}
var result=cache[p](root);if(result&&result!=document){results=results.concat(result);}}
if(paths.length>1){return nodup(results);}
return results;},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0];},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select");}
var n=valueCache[path](root);n=n[0]?n[0]:n;var v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==='')?defaultValue:v);},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v);},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el);}
var isArray=Ext.isArray(el);var result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0);},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple");}
var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result;},matchers:[{re:/^\.([\w-]+)/,select:'n = byClassName(n, null, " {1} ");'},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w-]+)/,select:'n = byId(n, null, "{1}");'},{re:/^@([\w-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v;},"!=":function(a,v){return a!=v;},"^=":function(a,v){return a&&a.substr(0,v.length)==v;},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v;},"*=":function(a,v){return a&&a.indexOf(v)!==-1;},"%=":function(a,v){return(a%v)==0;},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+'-');},"~=":function(a,v){return a&&(' '+a+' ').indexOf(' '+v+' ')!=-1;}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1);if(!n){r[++ri]=ci;}}
return r;},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1);if(!n){r[++ri]=ci;}}
return r;},"nth-child":function(c,a){var r=[],ri=-1;var m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a);var f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j;}}
pn._batch=batch;}
if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n;}}else if((n.nodeIndex+l)%f==0){r[++ri]=n;}}
return r;},"only-child":function(c){var r=[],ri=-1;;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci;}}
return r;},"empty":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break;}}
if(empty){r[++ri]=ci;}}
return r;},"contains":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||'').indexOf(v)!=-1){r[++ri]=ci;}}
return r;},"nodeValue":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci;}}
return r;},"checked":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci;}}
return r;},"not":function(c,ss){return Ext.DomQuery.filter(c,ss,true);},"any":function(c,selectors){var ss=selectors.split('|');var r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break;}}}
return r;},"odd":function(c){return this["nth-child"](c,"odd");},"even":function(c){return this["nth-child"](c,"even");},"nth":function(c,a){return c[a-1]||[];},"first":function(c){return c[0]||[];},"last":function(c){return c[c.length-1]||[];},"has":function(c,ss){var s=Ext.DomQuery.select;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci;}}
return r;},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci;}}
return r;},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci;}}
return r;}}};}();Ext.query=Ext.DomQuery.select;Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}};Ext.util.Observable.prototype={fireEvent:function(){if(this.eventsSuspended!==true){var ce=this.events[arguments[0].toLowerCase()];if(typeof ce=="object"){return ce.fire.apply(ce,Array.prototype.slice.call(arguments,1));}}
return true;},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(eventName,fn,scope,o){if(typeof eventName=="object"){o=eventName;for(var e in o){if(this.filterOptRe.test(e)){continue;}
if(typeof o[e]=="function"){this.addListener(e,o[e],o.scope,o);}else{this.addListener(e,o[e].fn,o[e].scope,o[e]);}}
return;}
o=(!o||typeof o=="boolean")?{}:o;eventName=eventName.toLowerCase();var ce=this.events[eventName]||true;if(typeof ce=="boolean"){ce=new Ext.util.Event(this,eventName);this.events[eventName]=ce;}
ce.addListener(fn,scope,o);},removeListener:function(eventName,fn,scope){var ce=this.events[eventName.toLowerCase()];if(typeof ce=="object"){ce.removeListener(fn,scope);}},purgeListeners:function(){for(var evt in this.events){if(typeof this.events[evt]=="object"){this.events[evt].clearListeners();}}},relayEvents:function(o,events){var createHandler=function(ename){return function(){return this.fireEvent.apply(this,Ext.combine(ename,Array.prototype.slice.call(arguments,0)));};};for(var i=0,len=events.length;i<len;i++){var ename=events[i];if(!this.events[ename]){this.events[ename]=true;};o.on(ename,createHandler(ename),this);}},addEvents:function(o){if(!this.events){this.events={};}
if(typeof o=='string'){for(var i=0,a=arguments,v;v=a[i];i++){if(!this.events[a[i]]){this.events[a[i]]=true;}}}else{Ext.applyIf(this.events,o);}},hasListener:function(eventName){var e=this.events[eventName];return typeof e=="object"&&e.listeners.length>0;},suspendEvents:function(){this.eventsSuspended=true;},resumeEvents:function(){this.eventsSuspended=false;},getMethodEvent:function(method){if(!this.methodEvents){this.methodEvents={};}
var e=this.methodEvents[method];if(!e){e={};this.methodEvents[method]=e;e.originalFn=this[method];e.methodName=method;e.before=[];e.after=[];var returnValue,v,cancel;var obj=this;var makeCall=function(fn,scope,args){if((v=fn.apply(scope||obj,args))!==undefined){if(typeof v==='object'){if(v.returnValue!==undefined){returnValue=v.returnValue;}else{returnValue=v;}
if(v.cancel===true){cancel=true;}}else if(v===false){cancel=true;}else{returnValue=v;}}}
this[method]=function(){returnValue=v=undefined;cancel=false;var args=Array.prototype.slice.call(arguments,0);for(var i=0,len=e.before.length;i<len;i++){makeCall(e.before[i].fn,e.before[i].scope,args);if(cancel){return returnValue;}}
if((v=e.originalFn.apply(obj,args))!==undefined){returnValue=v;}
for(var i=0,len=e.after.length;i<len;i++){makeCall(e.after[i].fn,e.after[i].scope,args);if(cancel){return returnValue;}}
return returnValue;};}
return e;},beforeMethod:function(method,fn,scope){var e=this.getMethodEvent(method);e.before.push({fn:fn,scope:scope});},afterMethod:function(method,fn,scope){var e=this.getMethodEvent(method);e.after.push({fn:fn,scope:scope});},removeMethodListener:function(method,fn,scope){var e=this.getMethodEvent(method);for(var i=0,len=e.before.length;i<len;i++){if(e.before[i].fn==fn&&e.before[i].scope==scope){e.before.splice(i,1);return;}}
for(var i=0,len=e.after.length;i<len;i++){if(e.after[i].fn==fn&&e.after[i].scope==scope){e.after.splice(i,1);return;}}}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(o,fn,scope){o.fireEvent=o.fireEvent.createInterceptor(fn,scope);};Ext.util.Observable.releaseCapture=function(o){o.fireEvent=Ext.util.Observable.prototype.fireEvent;};(function(){var createBuffered=function(h,o,scope){var task=new Ext.util.DelayedTask();return function(){task.delay(o.buffer,h,scope,Array.prototype.slice.call(arguments,0));};};var createSingle=function(h,e,fn,scope){return function(){e.removeListener(fn,scope);return h.apply(scope,arguments);};};var createDelayed=function(h,o,scope){return function(){var args=Array.prototype.slice.call(arguments,0);setTimeout(function(){h.apply(scope,args);},o.delay||10);};};Ext.util.Event=function(obj,name){this.name=name;this.obj=obj;this.listeners=[];};Ext.util.Event.prototype={addListener:function(fn,scope,options){scope=scope||this.obj;if(!this.isListening(fn,scope)){var l=this.createListener(fn,scope,options);if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},createListener:function(fn,scope,o){o=o||{};scope=scope||this.obj;var l={fn:fn,scope:scope,options:o};var h=fn;if(o.delay){h=createDelayed(h,o,scope);}
if(o.single){h=createSingle(h,this,fn,scope);}
if(o.buffer){h=createBuffered(h,o,scope);}
l.fireFn=h;return l;},findListener:function(fn,scope){scope=scope||this.obj;var ls=this.listeners;for(var i=0,len=ls.length;i<len;i++){var l=ls[i];if(l.fn==fn&&l.scope==scope){return i;}}
return-1;},isListening:function(fn,scope){return this.findListener(fn,scope)!=-1;},removeListener:function(fn,scope){var index;if((index=this.findListener(fn,scope))!=-1){if(!this.firing){this.listeners.splice(index,1);}else{this.listeners=this.listeners.slice(0);this.listeners.splice(index,1);}
return true;}
return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,scope,len=ls.length;if(len>0){this.firing=true;var args=Array.prototype.slice.call(arguments,0);for(var i=0;i<len;i++){var l=ls[i];if(l.fireFn.apply(l.scope||this.obj||window,arguments)===false){this.firing=false;return false;}}
this.firing=false;}
return true;}};})();Ext.EventManager=function(){var docReadyEvent,docReadyProcId,docReadyState=false;var resizeEvent,resizeTask,textEvent,textSize;var E=Ext.lib.Event;var D=Ext.lib.Dom;var xname='Ex'+'t';var elHash={};var addListener=function(el,ename,fn,wrap,scope){var id=Ext.id(el);if(!elHash[id]){elHash[id]={};}
var es=elHash[id];if(!es[ename]){es[ename]=[];}
var ls=es[ename];var ei={id:id,ename:ename,fn:fn,wrap:wrap,scope:scope};ls.push(ei);var retval=E.on(el,ename,wrap);if(typeof retval.index=="number"){ei.index=retval.index;}
if(ename=="mousewheel"&&el.addEventListener){el.addEventListener("DOMMouseScroll",wrap,false);E.on(window,'unload',function(){el.removeEventListener("DOMMouseScroll",wrap,false);});}
if(ename=="mousedown"&&el==document){Ext.EventManager.stoppedMouseDownEvent.addListener(wrap);}}
var removeListener=function(el,ename,fn,scope){el=Ext.getDom(el);var id=Ext.id(el),es=elHash[id],wrap;if(es){var ls=es[ename],l;if(ls){for(var i=0,len=ls.length;i<len;i++){l=ls[i];if(l.fn==fn&&(!scope||l.scope==scope)){wrap=l.wrap;E.un(el,ename,wrap,l.index);ls.splice(i,1);break;}}}}
if(ename=="mousewheel"&&el.addEventListener&&wrap){el.removeEventListener("DOMMouseScroll",wrap,false);}
if(ename=="mousedown"&&el==document&&wrap){Ext.EventManager.stoppedMouseDownEvent.removeListener(wrap);}}
var removeAll=function(el){el=Ext.getDom(el);var id=Ext.id(el),es=elHash[id],ls;if(es){for(var ename in es){if(es.hasOwnProperty(ename)){ls=es[ename];for(var i=0,len=ls.length;i<len;i++){E.un(el,ename,ls[i].wrap,ls[i].index);ls[i]=null;}}
es[ename]=null;}
delete elHash[id];}}
var fireDocReady=function(){if(!docReadyState){docReadyState=true;Ext.isReady=true;if(docReadyProcId){clearInterval(docReadyProcId);}
if(Ext.isGecko||Ext.isOpera){document.removeEventListener("DOMContentLoaded",fireDocReady,false);}
if(Ext.isIE){var defer=document.getElementById("ie-deferred-loader");if(defer){defer.onreadystatechange=null;defer.parentNode.removeChild(defer);}}
if(docReadyEvent){docReadyEvent.fire();docReadyEvent.clearListeners();}}};var initDocReady=function(){docReadyEvent=new Ext.util.Event();if(Ext.isGecko||Ext.isOpera){document.addEventListener("DOMContentLoaded",fireDocReady,false);}else if(Ext.isIE){document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>");var defer=document.getElementById("ie-deferred-loader");defer.onreadystatechange=function(){if(this.readyState=="complete"){fireDocReady();}};}else if(Ext.isWebKit){docReadyProcId=setInterval(function(){var rs=document.readyState;if(rs=="complete"){fireDocReady();}},10);}
E.on(window,"load",fireDocReady);};var createBuffered=function(h,o){var task=new Ext.util.DelayedTask(h);return function(e){e=new Ext.EventObjectImpl(e);task.delay(o.buffer,h,null,[e]);};};var createSingle=function(h,el,ename,fn,scope){return function(e){Ext.EventManager.removeListener(el,ename,fn,scope);h(e);};};var createDelayed=function(h,o){return function(e){e=new Ext.EventObjectImpl(e);setTimeout(function(){h(e);},o.delay||10);};};var listen=function(element,ename,opt,fn,scope){var o=(!opt||typeof opt=="boolean")?{}:opt;fn=fn||o.fn;scope=scope||o.scope;var el=Ext.getDom(element);if(!el){throw"Error listening for \""+ename+'\". Element "'+element+'" doesn\'t exist.';}
var h=function(e){if(!window[xname]){return;}
e=Ext.EventObject.setEvent(e);var t;if(o.delegate){t=e.getTarget(o.delegate,el);if(!t){return;}}else{t=e.target;}
if(o.stopEvent===true){e.stopEvent();}
if(o.preventDefault===true){e.preventDefault();}
if(o.stopPropagation===true){e.stopPropagation();}
if(o.normalized===false){e=e.browserEvent;}
fn.call(scope||el,e,t,o);};if(o.delay){h=createDelayed(h,o);}
if(o.single){h=createSingle(h,el,ename,fn,scope);}
if(o.buffer){h=createBuffered(h,o);}
addListener(el,ename,fn,h,scope);return h;};var propRe=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,curWidth=0,curHeight=0;var pub={addListener:function(element,eventName,fn,scope,options){if(typeof eventName=="object"){var o=eventName;for(var e in o){if(propRe.test(e)){continue;}
if(typeof o[e]=="function"){listen(element,e,o,o[e],o.scope);}else{listen(element,e,o[e]);}}
return;}
return listen(element,eventName,options,fn,scope);},removeListener:function(element,eventName,fn,scope){return removeListener(element,eventName,fn,scope);},removeAll:function(element){return removeAll(element);},onDocumentReady:function(fn,scope,options){if(docReadyState){docReadyEvent.addListener(fn,scope,options);docReadyEvent.fire();docReadyEvent.clearListeners();return;}
if(!docReadyEvent){initDocReady();}
options=options||{};if(!options.delay){options.delay=1;}
docReadyEvent.addListener(fn,scope,options);},doResizeEvent:function(){var h=D.getViewHeight(),w=D.getViewWidth();if(curHeight!=h||curWidth!=w){resizeEvent.fire(curWidth=w,curHeight=h);}},onWindowResize:function(fn,scope,options){if(!resizeEvent){resizeEvent=new Ext.util.Event();resizeTask=new Ext.util.DelayedTask(this.doResizeEvent);E.on(window,"resize",this.fireWindowResize,this);}
resizeEvent.addListener(fn,scope,options);},fireWindowResize:function(){if(resizeEvent){if((Ext.isIE||Ext.isAir)&&resizeTask){resizeTask.delay(50);}else{resizeEvent.fire(D.getViewWidth(),D.getViewHeight());}}},onTextResize:function(fn,scope,options){if(!textEvent){textEvent=new Ext.util.Event();var textEl=new Ext.Element(document.createElement('div'));textEl.dom.className='x-text-resize';textEl.dom.innerHTML='X';textEl.appendTo(document.body);textSize=textEl.dom.offsetHeight;setInterval(function(){if(textEl.dom.offsetHeight!=textSize){textEvent.fire(textSize,textSize=textEl.dom.offsetHeight);}},this.textResizeInterval);}
textEvent.addListener(fn,scope,options);},removeResizeListener:function(fn,scope){if(resizeEvent){resizeEvent.removeListener(fn,scope);}},fireResize:function(){if(resizeEvent){resizeEvent.fire(D.getViewWidth(),D.getViewHeight());}},ieDeferSrc:false,textResizeInterval:50};pub.on=pub.addListener;pub.un=pub.removeListener;pub.stoppedMouseDownEvent=new Ext.util.Event();return pub;}();Ext.onReady=Ext.EventManager.onDocumentReady;(function(){var initExtCss=function(){var bd=document.body||document.getElementsByTagName('body')[0];if(!bd){return false;}
var cls=[' ',Ext.isIE?"ext-ie "+(Ext.isIE6?'ext-ie6':(Ext.isIE7?'ext-ie7':'ext-ie8')):Ext.isGecko?"ext-gecko "+(Ext.isGecko2?'ext-gecko2':'ext-gecko3'):Ext.isOpera?"ext-opera":Ext.isSafari?"ext-safari":Ext.isChrome?"ext-chrome":""];if(Ext.isMac){cls.push("ext-mac");}
if(Ext.isLinux){cls.push("ext-linux");}
if(Ext.isStrict||Ext.isBorderBox){var p=bd.parentNode;if(p){p.className+=Ext.isStrict?' ext-strict':' ext-border-box';}}
bd.className+=cls.join(' ');return true;}
if(!initExtCss()){Ext.onReady(initExtCss);}})();Ext.EventObject=function(){var E=Ext.lib.Event;var safariKeys={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35};var btnMap=Ext.isIE?{1:0,4:1,2:2}:(Ext.isWebKit?{1:0,2:1,3:2}:{0:0,1:1,2:2});Ext.EventObjectImpl=function(e){if(e){this.setEvent(e.browserEvent||e);}};Ext.EventObjectImpl.prototype={browserEvent:null,button:-1,shiftKey:false,ctrlKey:false,altKey:false,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,CONTROL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGEUP:33,PAGE_DOWN:34,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,setEvent:function(e){if(e==this||(e&&e.browserEvent)){return e;}
this.browserEvent=e;if(e){this.button=e.button?btnMap[e.button]:(e.which?e.which-1:-1);if(e.type=='click'&&this.button==-1){this.button=0;}
this.type=e.type;this.shiftKey=e.shiftKey;this.ctrlKey=e.ctrlKey||e.metaKey;this.altKey=e.altKey;this.keyCode=e.keyCode;this.charCode=e.charCode;this.target=E.getTarget(e);this.xy=E.getXY(e);}else{this.button=-1;this.shiftKey=false;this.ctrlKey=false;this.altKey=false;this.keyCode=0;this.charCode=0;this.target=null;this.xy=[0,0];}
return this;},stopEvent:function(){if(this.browserEvent){if(this.browserEvent.type=='mousedown'){Ext.EventManager.stoppedMouseDownEvent.fire(this);}
E.stopEvent(this.browserEvent);}},preventDefault:function(){if(this.browserEvent){E.preventDefault(this.browserEvent);}},isNavKeyPress:function(){var k=this.keyCode;k=Ext.isSafari?(safariKeys[k]||k):k;return(k>=33&&k<=40)||k==this.RETURN||k==this.TAB||k==this.ESC;},isSpecialKey:function(){var k=this.keyCode;k=Ext.isSafari?(safariKeys[k]||k):k;return(this.type=='keypress'&&this.ctrlKey)||this.isNavKeyPress()||(k==this.BACKSPACE)||(k>=16&&k<=20)||(k>=44&&k<=45);},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=='mousedown'){Ext.EventManager.stoppedMouseDownEvent.fire(this);}
E.stopPropagation(this.browserEvent);}},getCharCode:function(){return this.charCode||this.keyCode;},getKey:function(){var k=this.keyCode||this.charCode;return Ext.isSafari?(safariKeys[k]||k):k;},getPageX:function(){return this.xy[0];},getPageY:function(){return this.xy[1];},getTime:function(){if(this.browserEvent){return E.getTime(this.browserEvent);}
return null;},getXY:function(){return this.xy;},getTarget:function(selector,maxDepth,returnEl){return selector?Ext.fly(this.target).findParent(selector,maxDepth,returnEl):(returnEl?Ext.get(this.target):this.target);},getRelatedTarget:function(){if(this.browserEvent){return E.getRelatedTarget(this.browserEvent);}
return null;},getWheelDelta:function(){var e=this.browserEvent;var delta=0;if(e.wheelDelta){delta=e.wheelDelta/120;}else if(e.detail){delta=-e.detail/3;}
return delta;},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)?true:false;},within:function(el,related,allowEl){var t=this[related?"getRelatedTarget":"getTarget"]();return t&&((allowEl?(t===Ext.getDom(el)):false)||Ext.fly(el).contains(t));},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1]);}};return new Ext.EventObjectImpl();}();(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var propCache={};var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase();};var view=document.defaultView;Ext.Element=function(element,forceNew){var dom=typeof element=="string"?document.getElementById(element):element;if(!dom){return null;}
var id=dom.id;if(forceNew!==true&&id&&Ext.Element.cache[id]){return Ext.Element.cache[id];}
this.dom=dom;this.id=id||Ext.id(dom);};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(visMode){this.visibilityMode=visMode;return this;},enableDisplayMode:function(display){this.setVisibilityMode(El.DISPLAY);if(typeof display!="undefined")this.originalDisplay=display;return this;},findParent:function(simpleSelector,maxDepth,returnEl){var p=this.dom,b=document.body,depth=0,dq=Ext.DomQuery,stopEl;maxDepth=maxDepth||50;if(typeof maxDepth!="number"){stopEl=Ext.getDom(maxDepth);maxDepth=Number.MAX_VALUE;}
while(p&&p.nodeType==1&&depth<maxDepth&&p!=b&&p!=stopEl){if(dq.is(p,simpleSelector)){return returnEl?Ext.get(p):p;}
depth++;p=p.parentNode;}
return null;},findParentNode:function(simpleSelector,maxDepth,returnEl){var p=Ext.fly(this.dom.parentNode,'_internal');return p?p.findParent(simpleSelector,maxDepth,returnEl):null;},up:function(simpleSelector,maxDepth){return this.findParentNode(simpleSelector,maxDepth,true);},is:function(simpleSelector){return Ext.DomQuery.is(this.dom,simpleSelector);},animate:function(args,duration,onComplete,easing,animType){this.anim(args,{duration:duration,callback:onComplete,easing:easing},animType);return this;},anim:function(args,opt,animType,defaultDur,defaultEase,cb){animType=animType||'run';opt=opt||{};var anim=Ext.lib.Anim[animType](this.dom,args,(opt.duration||defaultDur)||.35,(opt.easing||defaultEase)||'easeOut',function(){Ext.callback(cb,this);Ext.callback(opt.callback,opt.scope||this,[this,opt]);},this);opt.anim=anim;return anim;},preanim:function(a,i){return!a[i]?false:(typeof a[i]=="object"?a[i]:{duration:a[i+1],callback:a[i+2],easing:a[i+3]});},clean:function(forceReclean){if(this.isCleaned&&forceReclean!==true){return this;}
var ns=/\S/;var d=this.dom,n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!ns.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}
n=nx;}
this.isCleaned=true;return this;},scrollIntoView:function(container,hscroll){var c=Ext.getDom(container)||Ext.getBody().dom;var el=this.dom;var o=this.getOffsetsTo(c),l=o[0]+c.scrollLeft,t=o[1]+c.scrollTop,b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;if(el.offsetHeight>ch||t<ct){c.scrollTop=t;}else if(b>cb){c.scrollTop=b-ch;}
c.scrollTop=c.scrollTop;if(hscroll!==false){if(el.offsetWidth>c.clientWidth||l<cl){c.scrollLeft=l;}else if(r>cr){c.scrollLeft=r-c.clientWidth;}
c.scrollLeft=c.scrollLeft;}
return this;},scrollChildIntoView:function(child,hscroll){Ext.fly(child,'_scrollChildIntoView').scrollIntoView(this,hscroll);},autoHeight:function(animate,duration,onComplete,easing){var oldHeight=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var height=parseInt(this.dom.scrollHeight,10);if(!animate){this.setHeight(height);this.unclip();if(typeof onComplete=="function"){onComplete();}}else{this.setHeight(oldHeight);this.setHeight(height,animate,duration,function(){this.unclip();if(typeof onComplete=="function")onComplete();}.createDelegate(this),easing);}}.createDelegate(this),0);return this;},contains:function(el){if(!el){return false;}
return D.isAncestor(this.dom,el.dom?el.dom:el);},isVisible:function(deep){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(deep!==true||!vis){return vis;}
var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,'_isVisible').isVisible()){return false;}
p=p.parentNode;}
return true;},select:function(selector,unique){return El.select(selector,unique,this.dom);},query:function(selector){return Ext.DomQuery.select(selector,this.dom);},child:function(selector,returnDom){var n=Ext.DomQuery.selectNode(selector,this.dom);return returnDom?n:Ext.get(n);},down:function(selector,returnDom){var n=Ext.DomQuery.selectNode(" > "+selector,this.dom);return returnDom?n:Ext.get(n);},initDD:function(group,config,overrides){var dd=new Ext.dd.DD(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides);},initDDProxy:function(group,config,overrides){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides);},initDDTarget:function(group,config,overrides){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides);},setVisible:function(visible,animate){if(!animate||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(visible);}else{this.fixDisplay();this.dom.style.visibility=visible?"visible":"hidden";}}else{var dom=this.dom;var visMode=this.visibilityMode;if(visible){this.setOpacity(.01);this.setVisible(true);}
this.anim({opacity:{to:(visible?1:0)}},this.preanim(arguments,1),null,.35,'easeIn',function(){if(!visible){if(visMode==El.DISPLAY){dom.style.display="none";}else{dom.style.visibility="hidden";}
Ext.get(dom).setOpacity(1);}});}
return this;},isDisplayed:function(){return this.getStyle("display")!="none";},toggle:function(animate){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this;},setDisplayed:function(value){if(typeof value=="boolean"){value=value?this.originalDisplay:"none";}
this.setStyle("display",value);return this;},focus:function(){try{this.dom.focus();}catch(e){}
return this;},blur:function(){try{this.dom.blur();}catch(e){}
return this;},addClass:function(className){if(Ext.isArray(className)){for(var i=0,len=className.length;i<len;i++){this.addClass(className[i]);}}else{if(className&&!this.hasClass(className)){this.dom.className=this.dom.className+" "+className;}}
return this;},radioClass:function(className){var siblings=this.dom.parentNode.childNodes;for(var i=0;i<siblings.length;i++){var s=siblings[i];if(s.nodeType==1){Ext.get(s).removeClass(className);}}
this.addClass(className);return this;},removeClass:function(className){if(!className||!this.dom.className){return this;}
if(Ext.isArray(className)){for(var i=0,len=className.length;i<len;i++){this.removeClass(className[i]);}}else{if(this.hasClass(className)){var re=this.classReCache[className];if(!re){re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)',"g");this.classReCache[className]=re;}
this.dom.className=this.dom.className.replace(re," ");}}
return this;},classReCache:{},toggleClass:function(className){if(this.hasClass(className)){this.removeClass(className);}else{this.addClass(className);}
return this;},hasClass:function(className){return className&&(' '+this.dom.className+' ').indexOf(' '+className+' ')!=-1;},replaceClass:function(oldClassName,newClassName){this.removeClass(oldClassName);this.addClass(newClassName);return this;},getStyles:function(){var a=arguments,len=a.length,r={};for(var i=0;i<len;i++){r[a[i]]=this.getStyle(a[i]);}
return r;},getStyle:function(){return view&&view.getComputedStyle?function(prop){var el=this.dom,v,cs,camel;if(prop=='float'){prop="cssFloat";}
if(v=el.style[prop]){return v;}
if(cs=view.getComputedStyle(el,"")){if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn);}
return cs[camel];}
return null;}:function(prop){var el=this.dom,v,cs,camel;if(prop=='opacity'){if(typeof el.style.filter=='string'){var m=el.style.filter.match(/alpha\(opacity=(.*)\)/i);if(m){var fv=parseFloat(m[1]);if(!isNaN(fv)){return fv?fv/100:0;}}}
return 1;}else if(prop=='float'){prop="styleFloat";}
if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn);}
if(v=el.style[camel]){return v;}
if(cs=el.currentStyle){return cs[camel];}
return null;};}(),setStyle:function(prop,value){if(typeof prop=="string"){var camel;if(!(camel=propCache[prop])){camel=propCache[prop]=prop.replace(camelRe,camelFn);}
if(camel=='opacity'){this.setOpacity(value);}else{this.dom.style[camel]=value;}}else{for(var style in prop){if(typeof prop[style]!="function"){this.setStyle(style,prop[style]);}}}
return this;},applyStyles:function(style){Ext.DomHelper.applyStyles(this.dom,style);return this;},getX:function(){return D.getX(this.dom);},getY:function(){return D.getY(this.dom);},getXY:function(){return D.getXY(this.dom);},getOffsetsTo:function(el){var o=this.getXY();var e=Ext.fly(el,'_internal').getXY();return[o[0]-e[0],o[1]-e[1]];},setX:function(x,animate){if(!animate||!A){D.setX(this.dom,x);}else{this.setXY([x,this.getY()],this.preanim(arguments,1));}
return this;},setY:function(y,animate){if(!animate||!A){D.setY(this.dom,y);}else{this.setXY([this.getX(),y],this.preanim(arguments,1));}
return this;},setLeft:function(left){this.setStyle("left",this.addUnits(left));return this;},setTop:function(top){this.setStyle("top",this.addUnits(top));return this;},setRight:function(right){this.setStyle("right",this.addUnits(right));return this;},setBottom:function(bottom){this.setStyle("bottom",this.addUnits(bottom));return this;},setXY:function(pos,animate){if(!animate||!A){D.setXY(this.dom,pos);}else{this.anim({points:{to:pos}},this.preanim(arguments,1),'motion');}
return this;},setLocation:function(x,y,animate){this.setXY([x,y],this.preanim(arguments,2));return this;},moveTo:function(x,y,animate){this.setXY([x,y],this.preanim(arguments,2));return this;},getRegion:function(){return D.getRegion(this.dom);},getHeight:function(contentHeight){var h=Math.max(this.dom.offsetHeight,this.dom.clientHeight)||0;h=contentHeight!==true?h:h-this.getBorderWidth("tb")-this.getPadding("tb");return h<0?0:h;},getWidth:function(contentWidth){var w=Math.max(this.dom.offsetWidth,this.dom.clientWidth)||0;w=contentWidth!==true?w:w-this.getBorderWidth("lr")-this.getPadding("lr");return w<0?0:w;},getComputedHeight:function(){var h=Math.max(this.dom.offsetHeight,this.dom.clientHeight);if(!h){h=parseInt(this.getStyle('height'),10)||0;if(!this.isBorderBox()){h+=this.getFrameWidth('tb');}}
return h;},getComputedWidth:function(){var w=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!w){w=parseInt(this.getStyle('width'),10)||0;if(!this.isBorderBox()){w+=this.getFrameWidth('lr');}}
return w;},getSize:function(contentSize){return{width:this.getWidth(contentSize),height:this.getHeight(contentSize)};},getStyleSize:function(){var w,h,d=this.dom,s=d.style;if(s.width&&s.width!='auto'){w=parseInt(s.width,10);if(Ext.isBorderBox){w-=this.getFrameWidth('lr');}}
if(s.height&&s.height!='auto'){h=parseInt(s.height,10);if(Ext.isBorderBox){h-=this.getFrameWidth('tb');}}
return{width:w||this.getWidth(true),height:h||this.getHeight(true)};},getViewSize:function(){var d=this.dom,doc=document,aw=0,ah=0;if(d==doc||d==doc.body){return{width:D.getViewWidth(),height:D.getViewHeight()};}else{return{width:d.clientWidth,height:d.clientHeight};}},getValue:function(asNumber){return asNumber?parseInt(this.dom.value,10):this.dom.value;},adjustWidth:function(width){if(typeof width=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){width-=(this.getBorderWidth("lr")+this.getPadding("lr"));}
if(width<0){width=0;}}
return width;},adjustHeight:function(height){if(typeof height=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){height-=(this.getBorderWidth("tb")+this.getPadding("tb"));}
if(height<0){height=0;}}
return height;},setWidth:function(width,animate){width=this.adjustWidth(width);if(!animate||!A){this.dom.style.width=this.addUnits(width);}else{this.anim({width:{to:width}},this.preanim(arguments,1));}
return this;},setHeight:function(height,animate){height=this.adjustHeight(height);if(!animate||!A){this.dom.style.height=this.addUnits(height);}else{this.anim({height:{to:height}},this.preanim(arguments,1));}
return this;},setSize:function(width,height,animate){if(typeof width=="object"){height=width.height;width=width.width;}
width=this.adjustWidth(width);height=this.adjustHeight(height);if(!animate||!A){this.dom.style.width=this.addUnits(width);this.dom.style.height=this.addUnits(height);}else{this.anim({width:{to:width},height:{to:height}},this.preanim(arguments,2));}
return this;},setBounds:function(x,y,width,height,animate){if(!animate||!A){this.setSize(width,height);this.setLocation(x,y);}else{width=this.adjustWidth(width);height=this.adjustHeight(height);this.anim({points:{to:[x,y]},width:{to:width},height:{to:height}},this.preanim(arguments,4),'motion');}
return this;},setRegion:function(region,animate){this.setBounds(region.left,region.top,region.right-region.left,region.bottom-region.top,this.preanim(arguments,1));return this;},addListener:function(eventName,fn,scope,options){Ext.EventManager.on(this.dom,eventName,fn,scope||this,options);},removeListener:function(eventName,fn,scope){Ext.EventManager.removeListener(this.dom,eventName,fn,scope||this);return this;},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this;},relayEvent:function(eventName,observable){this.on(eventName,function(e){observable.fireEvent(eventName,e);});},setOpacity:function(opacity,animate){if(!animate||!A){var s=this.dom.style;if(Ext.isIE){s.zoom=1;s.filter=(s.filter||'').replace(/alpha\([^\)]*\)/gi,"")+
(opacity==1?"":" alpha(opacity="+opacity*100+")");}else{s.opacity=opacity;}}else{this.anim({opacity:{to:opacity}},this.preanim(arguments,1),null,.35,'easeIn');}
return this;},getLeft:function(local){if(!local){return this.getX();}else{return parseInt(this.getStyle("left"),10)||0;}},getRight:function(local){if(!local){return this.getX()+this.getWidth();}else{return(this.getLeft(true)+this.getWidth())||0;}},getTop:function(local){if(!local){return this.getY();}else{return parseInt(this.getStyle("top"),10)||0;}},getBottom:function(local){if(!local){return this.getY()+this.getHeight();}else{return(this.getTop(true)+this.getHeight())||0;}},position:function(pos,zIndex,x,y){if(!pos){if(this.getStyle('position')=='static'){this.setStyle('position','relative');}}else{this.setStyle("position",pos);}
if(zIndex){this.setStyle("z-index",zIndex);}
if(x!==undefined&&y!==undefined){this.setXY([x,y]);}else if(x!==undefined){this.setX(x);}else if(y!==undefined){this.setY(y);}},clearPositioning:function(value){value=value||'';this.setStyle({"left":value,"right":value,"top":value,"bottom":value,"z-index":"","position":"static"});return this;},getPositioning:function(){var l=this.getStyle("left");var t=this.getStyle("top");return{"position":this.getStyle("position"),"left":l,"right":l?"":this.getStyle("right"),"top":t,"bottom":t?"":this.getStyle("bottom"),"z-index":this.getStyle("z-index")};},getBorderWidth:function(side){return this.addStyles(side,El.borders);},getPadding:function(side){return this.addStyles(side,El.paddings);},setPositioning:function(pc){this.applyStyles(pc);if(pc.right=="auto"){this.dom.style.right="";}
if(pc.bottom=="auto"){this.dom.style.bottom="";}
return this;},fixDisplay:function(){if(this.getStyle("display")=="none"){this.setStyle("visibility","hidden");this.setStyle("display",this.originalDisplay);if(this.getStyle("display")=="none"){this.setStyle("display","block");}}},setOverflow:function(v){if(v=='auto'&&Ext.isMac&&Ext.isGecko2){this.dom.style.overflow='hidden';(function(){this.dom.style.overflow='auto';}).defer(1,this);}else{this.dom.style.overflow=v;}},setLeftTop:function(left,top){this.dom.style.left=this.addUnits(left);this.dom.style.top=this.addUnits(top);return this;},move:function(direction,distance,animate){var xy=this.getXY();direction=direction.toLowerCase();switch(direction){case"l":case"left":this.moveTo(xy[0]-distance,xy[1],this.preanim(arguments,2));break;case"r":case"right":this.moveTo(xy[0]+distance,xy[1],this.preanim(arguments,2));break;case"t":case"top":case"up":this.moveTo(xy[0],xy[1]-distance,this.preanim(arguments,2));break;case"b":case"bottom":case"down":this.moveTo(xy[0],xy[1]+distance,this.preanim(arguments,2));break;}
return this;},clip:function(){if(!this.isClipped){this.isClipped=true;this.originalClip={"o":this.getStyle("overflow"),"x":this.getStyle("overflow-x"),"y":this.getStyle("overflow-y")};this.setStyle("overflow","hidden");this.setStyle("overflow-x","hidden");this.setStyle("overflow-y","hidden");}
return this;},unclip:function(){if(this.isClipped){this.isClipped=false;var o=this.originalClip;if(o.o){this.setStyle("overflow",o.o);}
if(o.x){this.setStyle("overflow-x",o.x);}
if(o.y){this.setStyle("overflow-y",o.y);}}
return this;},getAnchorXY:function(anchor,local,s){var w,h,vp=false;if(!s){var d=this.dom;if(d==document.body||d==document){vp=true;w=D.getViewWidth();h=D.getViewHeight();}else{w=this.getWidth();h=this.getHeight();}}else{w=s.width;h=s.height;}
var x=0,y=0,r=Math.round;switch((anchor||"tl").toLowerCase()){case"c":x=r(w*.5);y=r(h*.5);break;case"t":x=r(w*.5);y=0;break;case"l":x=0;y=r(h*.5);break;case"r":x=w;y=r(h*.5);break;case"b":x=r(w*.5);y=h;break;case"tl":x=0;y=0;break;case"bl":x=0;y=h;break;case"br":x=w;y=h;break;case"tr":x=w;y=0;break;}
if(local===true){return[x,y];}
if(vp){var sc=this.getScroll();return[x+sc.left,y+sc.top];}
var o=this.getXY();return[x+o[0],y+o[1]];},getAlignToXY:function(el,p,o){el=Ext.get(el);if(!el||!el.dom){throw"Element.alignToXY with an element that doesn't exist";}
var d=this.dom;var c=false;var p1="",p2="";o=o||[0,0];if(!p){p="tl-bl";}else if(p=="?"){p="tl-bl?";}else if(p.indexOf("-")==-1){p="tl-"+p;}
p=p.toLowerCase();var m=p.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!m){throw"Element.alignTo with an invalid alignment "+p;}
p1=m[1];p2=m[2];c=!!m[3];var a1=this.getAnchorXY(p1,true);var a2=el.getAnchorXY(p2,false);var x=a2[0]-a1[0]+o[0];var y=a2[1]-a1[1]+o[1];if(c){var w=this.getWidth(),h=this.getHeight(),r=el.getRegion();var dw=D.getViewWidth()-5,dh=D.getViewHeight()-5;var p1y=p1.charAt(0),p1x=p1.charAt(p1.length-1);var p2y=p2.charAt(0),p2x=p2.charAt(p2.length-1);var swapY=((p1y=="t"&&p2y=="b")||(p1y=="b"&&p2y=="t"));var swapX=((p1x=="r"&&p2x=="l")||(p1x=="l"&&p2x=="r"));var doc=document;var scrollX=(doc.documentElement.scrollLeft||doc.body.scrollLeft||0)+5;var scrollY=(doc.documentElement.scrollTop||doc.body.scrollTop||0)+5;if((x+w)>dw+scrollX){x=swapX?r.left-w:dw+scrollX-w;}
if(x<scrollX){x=swapX?r.right:scrollX;}
if((y+h)>dh+scrollY){y=swapY?r.top-h:dh+scrollY-h;}
if(y<scrollY){y=swapY?r.bottom:scrollY;}}
return[x,y];},getConstrainToXY:function(){var os={top:0,left:0,bottom:0,right:0};return function(el,local,offsets,proposedXY){el=Ext.get(el);offsets=offsets?Ext.applyIf(offsets,os):os;var vw,vh,vx=0,vy=0;if(el.dom==document.body||el.dom==document){vw=Ext.lib.Dom.getViewWidth();vh=Ext.lib.Dom.getViewHeight();}else{vw=el.dom.clientWidth;vh=el.dom.clientHeight;if(!local){var vxy=el.getXY();vx=vxy[0];vy=vxy[1];}}
var s=el.getScroll();vx+=offsets.left+s.left;vy+=offsets.top+s.top;vw-=offsets.right;vh-=offsets.bottom;var vr=vx+vw;var vb=vy+vh;var xy=proposedXY||(!local?this.getXY():[this.getLeft(true),this.getTop(true)]);var x=xy[0],y=xy[1];var w=this.dom.offsetWidth,h=this.dom.offsetHeight;var moved=false;if((x+w)>vr){x=vr-w;moved=true;}
if((y+h)>vb){y=vb-h;moved=true;}
if(x<vx){x=vx;moved=true;}
if(y<vy){y=vy;moved=true;}
return moved?[x,y]:false;};}(),adjustForConstraints:function(xy,parent,offsets){return this.getConstrainToXY(parent||document,false,offsets,xy)||xy;},alignTo:function(element,position,offsets,animate){var xy=this.getAlignToXY(element,position,offsets);this.setXY(xy,this.preanim(arguments,3));return this;},anchorTo:function(el,alignment,offsets,animate,monitorScroll,callback){var action=function(){this.alignTo(el,alignment,offsets,animate);Ext.callback(callback,this);};Ext.EventManager.onWindowResize(action,this);var tm=typeof monitorScroll;if(tm!='undefined'){Ext.EventManager.on(window,'scroll',action,this,{buffer:tm=='number'?monitorScroll:50});}
action.call(this);return this;},clearOpacity:function(){if(window.ActiveXObject){if(typeof this.dom.style.filter=='string'&&(/alpha/i).test(this.dom.style.filter)){this.dom.style.filter="";}}else{this.dom.style.opacity="";this.dom.style["-moz-opacity"]="";this.dom.style["-khtml-opacity"]="";}
return this;},hide:function(animate){this.setVisible(false,this.preanim(arguments,0));return this;},show:function(animate){this.setVisible(true,this.preanim(arguments,0));return this;},addUnits:function(size){return Ext.Element.addUnits(size,this.defaultUnit);},update:function(html,loadScripts,callback){if(typeof html=="undefined"){html="";}
if(loadScripts!==true){this.dom.innerHTML=html;if(typeof callback=="function"){callback();}
return this;}
var id=Ext.id();var dom=this.dom;html+='<span id="'+id+'"></span>';E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var srcRe=/\ssrc=([\'\"])(.*?)\1/i;var typeRe=/\stype=([\'\"])(.*?)\1/i;var match;while(match=re.exec(html)){var attrs=match[1];var srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){var s=document.createElement("script");s.src=srcMatch[2];var typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2];}
hd.appendChild(s);}else if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2]);}else{window.eval(match[2]);}}}
var el=document.getElementById(id);if(el){Ext.removeNode(el);}
if(typeof callback=="function"){callback();}});dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this;},load:function(){var um=this.getUpdater();um.update.apply(um,arguments);return this;},getUpdater:function(){if(!this.updateManager){this.updateManager=new Ext.Updater(this);}
return this.updateManager;},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this;},getCenterXY:function(){return this.getAlignToXY(document,'c-c');},center:function(centerIn){this.alignTo(centerIn||document,'c-c');return this;},isBorderBox:function(){return noBoxAdjust[this.dom.tagName.toLowerCase()]||Ext.isBorderBox;},getBox:function(contentBox,local){var xy;if(!local){xy=this.getXY();}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top];}
var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!contentBox){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h};}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)};}
bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx;},getFrameWidth:function(sides,onlyContentBox){return onlyContentBox&&Ext.isBorderBox?0:(this.getPadding(sides)+this.getBorderWidth(sides));},setBox:function(box,adjust,animate){var w=box.width,h=box.height;if((adjust&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"));}
this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this;},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint");},1);return this;},getMargins:function(side){if(!side){return{top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0};}else{return this.addStyles(side,El.margins);}},addStyles:function(sides,styles){var val=0,v,w;for(var i=0,len=sides.length;i<len;i++){v=this.getStyle(styles[sides.charAt(i)]);if(v){w=parseInt(v,10);if(w){val+=(w>=0?w:-1*w);}}}
return val;},createProxy:function(config,renderTo,matchBox){config=typeof config=="object"?config:{tag:"div",cls:config};var proxy;if(renderTo){proxy=Ext.DomHelper.append(renderTo,config,true);}else{proxy=Ext.DomHelper.insertBefore(this.dom,config,true);}
if(matchBox){proxy.setBox(this.getBox());}
return proxy;},mask:function(msg,msgCls){if(this.getStyle("position")=="static"){this.addClass("x-masked-relative");}
if(this._maskMsg){this._maskMsg.remove();}
if(this._mask){this._mask.remove();}
this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true);this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg=='string'){this._maskMsg=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask-msg",cn:{tag:'div'}},true);var mm=this._maskMsg;mm.dom.className=msgCls?"ext-el-mask-msg "+msgCls:"ext-el-mask-msg";mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(this);}
if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle('height')=='auto'){this._mask.setSize(this.getWidth(),this.getHeight());}
return this._mask;},unmask:function(){if(this._mask){if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg;}
this._mask.remove();delete this._mask;}
this.removeClass(["x-masked","x-masked-relative"]);},isMasked:function(){return this._mask&&this._mask.isVisible();},createShim:function(){var el=document.createElement('iframe');el.frameBorder='0';el.className='ext-shim';if(Ext.isIE&&Ext.isSecure){el.src=Ext.SSL_SECURE_URL;}
var shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim;},remove:function(){Ext.removeNode(this.dom);delete El.cache[this.dom.id];},hover:function(overFn,outFn,scope){var preOverFn=function(e){if(!e.within(this,true)){overFn.apply(scope||this,arguments);}};var preOutFn=function(e){if(!e.within(this,true)){outFn.apply(scope||this,arguments);}};this.on("mouseover",preOverFn,this.dom);this.on("mouseout",preOutFn,this.dom);return this;},addClassOnOver:function(className){this.hover(function(){Ext.fly(this,'_internal').addClass(className);},function(){Ext.fly(this,'_internal').removeClass(className);});return this;},addClassOnFocus:function(className){this.on("focus",function(){Ext.fly(this,'_internal').addClass(className);},this.dom);this.on("blur",function(){Ext.fly(this,'_internal').removeClass(className);},this.dom);return this;},addClassOnClick:function(className){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,'_internal').addClass(className);var d=Ext.getDoc();var fn=function(){Ext.fly(dom,'_internal').removeClass(className);d.removeListener("mouseup",fn);};d.on("mouseup",fn);});return this;},swallowEvent:function(eventName,preventDefault){var fn=function(e){e.stopPropagation();if(preventDefault){e.preventDefault();}};if(Ext.isArray(eventName)){for(var i=0,len=eventName.length;i<len;i++){this.on(eventName[i],fn);}
return this;}
this.on(eventName,fn);return this;},parent:function(selector,returnDom){return this.matchNode('parentNode','parentNode',selector,returnDom);},next:function(selector,returnDom){return this.matchNode('nextSibling','nextSibling',selector,returnDom);},prev:function(selector,returnDom){return this.matchNode('previousSibling','previousSibling',selector,returnDom);},first:function(selector,returnDom){return this.matchNode('nextSibling','firstChild',selector,returnDom);},last:function(selector,returnDom){return this.matchNode('previousSibling','lastChild',selector,returnDom);},matchNode:function(dir,start,selector,returnDom){var n=this.dom[start];while(n){if(n.nodeType==1&&(!selector||Ext.DomQuery.is(n,selector))){return!returnDom?Ext.get(n):n;}
n=n[dir];}
return null;},appendChild:function(el){el=Ext.get(el);el.appendTo(this);return this;},createChild:function(config,insertBefore,returnDom){config=config||{tag:'div'};if(insertBefore){return Ext.DomHelper.insertBefore(insertBefore,config,returnDom!==true);}
return Ext.DomHelper[!this.dom.firstChild?'overwrite':'append'](this.dom,config,returnDom!==true);},appendTo:function(el){el=Ext.getDom(el);el.appendChild(this.dom);return this;},insertBefore:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el);return this;},insertAfter:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el.nextSibling);return this;},insertFirst:function(el,returnDom){el=el||{};if(el.nodeType||el.dom){el=Ext.getDom(el);this.dom.insertBefore(el,this.dom.firstChild);return!returnDom?Ext.get(el):el;}else{return this.createChild(el,this.dom.firstChild,returnDom);}},insertSibling:function(el,where,returnDom){var rt;if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){rt=this.insertSibling(el[i],where,returnDom);}
return rt;}
where=where?where.toLowerCase():'before';el=el||{};var refNode=where=='before'?this.dom:this.dom.nextSibling;if(el.nodeType||el.dom){rt=this.dom.parentNode.insertBefore(Ext.getDom(el),refNode);if(!returnDom){rt=Ext.get(rt);}}else{if(where=='after'&&!this.dom.nextSibling){rt=Ext.DomHelper.append(this.dom.parentNode,el,!returnDom);}else{rt=Ext.DomHelper[where=='after'?'insertAfter':'insertBefore'](this.dom,el,!returnDom);}}
return rt;},wrap:function(config,returnDom){if(!config){config={tag:"div"};}
var newEl=Ext.DomHelper.insertBefore(this.dom,config,!returnDom);newEl.dom?newEl.dom.appendChild(this.dom):newEl.appendChild(this.dom);return newEl;},replace:function(el){el=Ext.get(el);this.insertBefore(el);el.remove();return this;},replaceWith:function(el){if(el.nodeType||el.dom){el=Ext.getDom(el);this.dom.parentNode.insertBefore(el,this.dom);}else{el=this.insertSibling(el,'before');}
El.uncache(this.id);Ext.removeNode(this.dom);this.dom=el;this.id=Ext.id(el);El.cache[this.id]=this;return this;},insertHtml:function(where,html,returnEl){var el=Ext.DomHelper.insertHtml(where,this.dom,html);return returnEl?Ext.get(el):el;},set:function(o,useSet){var el=this.dom;useSet=typeof useSet=='undefined'?(el.setAttribute?true:false):useSet;for(var attr in o){if(attr=="style"||typeof o[attr]=="function")continue;if(attr=="cls"){el.className=o["cls"];}else if(o.hasOwnProperty(attr)){if(useSet)el.setAttribute(attr,o[attr]);else el[attr]=o[attr];}}
if(o.style){Ext.DomHelper.applyStyles(el,o.style);}
return this;},addKeyListener:function(key,fn,scope){var config;if(typeof key!="object"||Ext.isArray(key)){config={key:key,fn:fn,scope:scope};}else{config={key:key.key,shift:key.shift,ctrl:key.ctrl,alt:key.alt,fn:fn,scope:scope};}
return new Ext.KeyMap(this,config);},addKeyMap:function(config){return new Ext.KeyMap(this,config);},isScrollable:function(){var dom=this.dom;return dom.scrollHeight>dom.clientHeight||dom.scrollWidth>dom.clientWidth;},scrollTo:function(side,value,animate){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!animate||!A){this.dom[prop]=value;}else{var to=prop=="scrollLeft"?[value,this.dom.scrollTop]:[this.dom.scrollLeft,value];this.anim({scroll:{"to":to}},this.preanim(arguments,2),'scroll');}
return this;},scroll:function(direction,distance,animate){if(!this.isScrollable()){return;}
var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;direction=direction.toLowerCase();var scrolled=false;var a=this.preanim(arguments,2);switch(direction){case"l":case"left":if(w-l>cw){var v=Math.min(l+distance,w-cw);this.scrollTo("left",v,a);scrolled=true;}
break;case"r":case"right":if(l>0){var v=Math.max(l-distance,0);this.scrollTo("left",v,a);scrolled=true;}
break;case"t":case"top":case"up":if(t>0){var v=Math.max(t-distance,0);this.scrollTo("top",v,a);scrolled=true;}
break;case"b":case"bottom":case"down":if(h-t>ch){var v=Math.min(t+distance,h-ch);this.scrollTo("top",v,a);scrolled=true;}
break;}
return scrolled;},translatePoints:function(x,y){if(typeof x=='object'||Ext.isArray(x)){y=x[1];x=x[0];}
var p=this.getStyle('position');var o=this.getXY();var l=parseInt(this.getStyle('left'),10);var t=parseInt(this.getStyle('top'),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft;}
if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop;}
return{left:(x-o[0]+l),top:(y-o[1]+t)};},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l,t;if(Ext.isIE&&Ext.isStrict){l=doc.documentElement.scrollLeft||(doc.body.scrollLeft||0);t=doc.documentElement.scrollTop||(doc.body.scrollTop||0);}else{l=window.pageXOffset||(doc.body.scrollLeft||0);t=window.pageYOffset||(doc.body.scrollTop||0);}
return{left:l,top:t};}else{return{left:d.scrollLeft,top:d.scrollTop};}},getColor:function(attr,defaultValue,prefix){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return defaultValue;}
var color=typeof prefix=="undefined"?"#":prefix;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]);var s=h.toString(16);if(h<16){s="0"+s;}
color+=s;}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);color+=c+c;}}else if(v.length==7){color+=v.substr(1);}}}
return(color.length>5?color.toLowerCase():defaultValue);},boxWrap:function(cls){cls=cls||'x-box';var el=Ext.get(this.insertHtml('beforeBegin',String.format('<div class="{0}">'+El.boxMarkup+'</div>',cls)));el.child('.'+cls+'-mc').dom.appendChild(this.dom);return el;},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!='undefined'&&type!='unknown'){return d[ns+":"+name];}
return d[name];}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name];},getTextWidth:function(text,min,max){return(Ext.util.TextMetrics.measure(this.dom,Ext.value(text,this.dom.innerHTML,true)).width).constrain(min||0,max||1000000);}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.getUpdateManager=ep.getUpdater;ep.un=ep.removeListener;ep.autoBoxAdjust=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,defaultUnit){if(v===""||v=="auto"){return v;}
if(v===undefined){return'';}
if(typeof v=="number"||!El.unitPattern.test(v)){return v+(defaultUnit||'px');}
return v;};El.boxMarkup='<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var docEl;El.get=function(el){var ex,elm,id;if(!el){return null;}
if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null;}
if(ex=El.cache[el]){ex.dom=elm;}else{ex=El.cache[el]=new El(elm);}
return ex;}else if(el.tagName){if(!(id=el.id)){id=Ext.id(el);}
if(ex=El.cache[id]){ex.dom=el;}else{ex=El.cache[id]=new El(el);}
return ex;}else if(el instanceof El){if(el!=docEl){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el;}
return el;}else if(el.isComposite){return el;}else if(Ext.isArray(el)){return El.select(el);}else if(el==document){if(!docEl){var f=function(){};f.prototype=El.prototype;docEl=new f();docEl.dom=document;}
return docEl;}
return null;};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i<len;i++){if(a[i]){delete El.cache[a[i].id||a[i]];}}};El.garbageCollect=function(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThread);return;}
for(var eid in El.cache){var el=El.cache[eid],d=el.dom;if(!d||!d.parentNode||(!d.offsetParent&&!document.getElementById(eid))){delete El.cache[eid];if(d&&Ext.enableListenerCollection){Ext.EventManager.removeAll(d);}}}}
El.collectorThreadId=setInterval(El.garbageCollect,30000);var flyFn=function(){};flyFn.prototype=El.prototype;var _cls=new flyFn();El.Flyweight=function(dom){this.dom=dom;};El.Flyweight.prototype=_cls;El.Flyweight.prototype.isFlyweight=true;El._flyweights={};El.fly=function(el,named){named=named||'_global';el=Ext.getDom(el);if(!el){return null;}
if(!El._flyweights[named]){El._flyweights[named]=new El.Flyweight();}
El._flyweights[named].dom=el;return El._flyweights[named];};Ext.get=El.get;Ext.fly=El.fly;var noBoxAdjust=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){noBoxAdjust['button']=1;}
Ext.EventManager.on(window,'unload',function(){delete El.cache;delete El._flyweights;});})();Ext.enableFx=true;Ext.Fx={slideIn:function(anchor,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){anchor=anchor||"t";this.fixDisplay();var r=this.getFxRestore();var b=this.getBox();this.setSize(b);var wrap=this.fxWrap(r.pos,o,"hidden");var st=this.dom.style;st.visibility="visible";st.position="absolute";var after=function(){el.fxUnwrap(wrap,r.pos,o);st.width=r.width;st.height=r.height;el.afterFx(o);};var a,pt={to:[b.x,b.y]},bw={to:b.width},bh={to:b.height};switch(anchor.toLowerCase()){case"t":wrap.setSize(b.width,0);st.left=st.bottom="0";a={height:bh};break;case"l":wrap.setSize(0,b.height);st.right=st.top="0";a={width:bw};break;case"r":wrap.setSize(0,b.height);wrap.setX(b.right);st.left=st.top="0";a={width:bw,points:pt};break;case"b":wrap.setSize(b.width,0);wrap.setY(b.bottom);st.left=st.top="0";a={height:bh,points:pt};break;case"tl":wrap.setSize(0,0);st.right=st.bottom="0";a={width:bw,height:bh};break;case"bl":wrap.setSize(0,0);wrap.setY(b.y+b.height);st.right=st.top="0";a={width:bw,height:bh,points:pt};break;case"br":wrap.setSize(0,0);wrap.setXY([b.right,b.bottom]);st.left=st.top="0";a={width:bw,height:bh,points:pt};break;case"tr":wrap.setSize(0,0);wrap.setX(b.x+b.width);st.left=st.bottom="0";a={width:bw,height:bh,points:pt};break;}
this.dom.style.visibility="visible";wrap.show();arguments.callee.anim=wrap.fxanim(a,o,'motion',.5,'easeOut',after);});return this;},slideOut:function(anchor,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){anchor=anchor||"t";var r=this.getFxRestore();var b=this.getBox();this.setSize(b);var wrap=this.fxWrap(r.pos,o,"visible");var st=this.dom.style;st.visibility="visible";st.position="absolute";wrap.setSize(b);var after=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}
el.fxUnwrap(wrap,r.pos,o);st.width=r.width;st.height=r.height;el.afterFx(o);};var a,zero={to:0};switch(anchor.toLowerCase()){case"t":st.left=st.bottom="0";a={height:zero};break;case"l":st.right=st.top="0";a={width:zero};break;case"r":st.left=st.top="0";a={width:zero,points:{to:[b.right,b.y]}};break;case"b":st.left=st.top="0";a={height:zero,points:{to:[b.x,b.bottom]}};break;case"tl":st.right=st.bottom="0";a={width:zero,height:zero};break;case"bl":st.right=st.top="0";a={width:zero,height:zero,points:{to:[b.x,b.bottom]}};break;case"br":st.left=st.top="0";a={width:zero,height:zero,points:{to:[b.x+b.width,b.bottom]}};break;case"tr":st.left=st.bottom="0";a={width:zero,height:zero,points:{to:[b.right,b.y]}};break;}
arguments.callee.anim=wrap.fxanim(a,o,'motion',.5,"easeOut",after);});return this;},puff:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.clearOpacity();this.show();var r=this.getFxRestore();var st=this.dom.style;var after=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}
el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;st.fontSize='';el.afterFx(o);};var width=this.getWidth();var height=this.getHeight();arguments.callee.anim=this.fxanim({width:{to:this.adjustWidth(width*2)},height:{to:this.adjustHeight(height*2)},points:{by:[-(width*.5),-(height*.5)]},opacity:{to:0},fontSize:{to:200,unit:"%"}},o,'motion',.5,"easeOut",after);});return this;},switchOff:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.clearOpacity();this.clip();var r=this.getFxRestore();var st=this.dom.style;var after=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}
el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};this.fxanim({opacity:{to:0.3}},null,null,.1,null,function(){this.clearOpacity();(function(){this.fxanim({height:{to:1},points:{by:[0,this.getHeight()*.5]}},o,'motion',0.3,'easeIn',after);}).defer(100,this);});});return this;},highlight:function(color,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){color=color||"ffff9c";var attr=o.attr||"backgroundColor";this.clearOpacity();this.show();var origColor=this.getColor(attr);var restoreColor=this.dom.style[attr];var endColor=(o.endColor||origColor)||"ffffff";var after=function(){el.dom.style[attr]=restoreColor;el.afterFx(o);};var a={};a[attr]={from:color,to:endColor};arguments.callee.anim=this.fxanim(a,o,'color',1,'easeIn',after);});return this;},frame:function(color,count,o){var el=this.getFxEl(),proxy,active;o=o||{};el.queueFx(o,function(){color=color||"#C3DAF9"
if(color.length==6){color="#"+color;}
count=count||1;this.show();var xy=this.getXY(),dom=this.dom,b={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:dom.offsetWidth,height:dom.offsetHeight},proxy,queue=function(){proxy=Ext.get(document.body||document.documentElement).createChild({style:{visbility:'hidden',position:'absolute',"z-index":35000,border:"0px solid "+color}});return proxy.queueFx({},animFn);};arguments.callee.anim={isAnimated:function(){return true;},stop:function(){count=0;proxy.stopFx();}};function animFn(){var scale=Ext.isBorderBox?2:1;active=proxy.anim({top:{from:b.y,to:b.y-20},left:{from:b.x,to:b.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:b.height,to:b.height+20*scale},width:{from:b.width,to:b.width+20*scale}},{duration:o.duration||1,callback:function(){proxy.remove();--count>0?queue():el.afterFx(o);}});arguments.callee.anim={isAnimated:function(){return true;},stop:function(){active.stop();}};};queue();});return this;},pause:function(seconds){var el=this.getFxEl(),t;el.queueFx({},function(){t=setTimeout(function(){el.afterFx({});},seconds*1000);arguments.callee.anim={isAnimated:function(){return true;},stop:function(){clearTimeout(t);el.afterFx({});}};});return this;},fadeIn:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility='visible';var to=o.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:to}},o,null,.5,"easeOut",function(){if(to==1){this.clearOpacity();}
el.afterFx(o);});});return this;},fadeOut:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){var to=o.endOpacity||0;arguments.callee.anim=this.fxanim({opacity:{to:to}},o,null,.5,"easeOut",function(){if(to===0){if(this.visibilityMode==Ext.Element.DISPLAY||o.useDisplay){this.dom.style.display="none";}else{this.dom.style.visibility="hidden";}
this.clearOpacity();}
el.afterFx(o);});});return this;},scale:function(w,h,o){this.shift(Ext.apply({},o,{width:w,height:h}));return this;},shift:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){var a={},w=o.width,h=o.height,x=o.x,y=o.y,op=o.opacity;if(w!==undefined){a.width={to:this.adjustWidth(w)};}
if(h!==undefined){a.height={to:this.adjustHeight(h)};}
if(o.left!==undefined){a.left={to:o.left};}
if(o.top!==undefined){a.top={to:o.top};}
if(o.right!==undefined){a.right={to:o.right};}
if(o.bottom!==undefined){a.bottom={to:o.bottom};}
if(x!==undefined||y!==undefined){a.points={to:[x!==undefined?x:this.getX(),y!==undefined?y:this.getY()]};}
if(op!==undefined){a.opacity={to:op};}
if(o.xy!==undefined){a.points={to:o.xy};}
arguments.callee.anim=this.fxanim(a,o,'motion',.35,"easeOut",function(){el.afterFx(o);});});return this;},ghost:function(anchor,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){anchor=anchor||"b";var r=this.getFxRestore();var w=this.getWidth(),h=this.getHeight();var st=this.dom.style;var after=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}
el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};var a={opacity:{to:0},points:{}},pt=a.points;switch(anchor.toLowerCase()){case"t":pt.by=[0,-h];break;case"l":pt.by=[-w,0];break;case"r":pt.by=[w,0];break;case"b":pt.by=[0,h];break;case"tl":pt.by=[-w,-h];break;case"bl":pt.by=[-w,h];break;case"br":pt.by=[w,h];break;case"tr":pt.by=[w,-h];break;}
arguments.callee.anim=this.fxanim(a,o,'motion',.5,"easeOut",after);});return this;},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this;},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this;},nextFx:function(){var ef=this.fxQueue[0];if(ef){ef.call(this);}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0];},stopFx:function(){if(this.hasActiveFx()){var cur=this.fxQueue[0];if(cur&&cur.anim&&cur.anim.isAnimated()){this.fxQueue=[cur];cur.anim.stop(true);}}
return this;},beforeFx:function(o){if(this.hasActiveFx()&&!o.concurrent){if(o.stopFx){this.stopFx();return true;}
return false;}
return true;},hasFxBlock:function(){var q=this.fxQueue;return q&&q[0]&&q[0].block;},queueFx:function(o,fn){if(!this.fxQueue){this.fxQueue=[];}
if(!this.hasFxBlock()){Ext.applyIf(o,this.fxDefaults);if(!o.concurrent){var run=this.beforeFx(o);fn.block=o.block;this.fxQueue.push(fn);if(run){this.nextFx();}}else{fn.call(this);}}
return this;},fxWrap:function(pos,o,vis){var wrap;if(!o.wrap||!(wrap=Ext.get(o.wrap))){var wrapXY;if(o.fixPosition){wrapXY=this.getXY();}
var div=document.createElement("div");div.style.visibility=vis;wrap=Ext.get(this.dom.parentNode.insertBefore(div,this.dom));wrap.setPositioning(pos);if(wrap.getStyle("position")=="static"){wrap.position("relative");}
this.clearPositioning('auto');wrap.clip();wrap.dom.appendChild(this.dom);if(wrapXY){wrap.setXY(wrapXY);}}
return wrap;},fxUnwrap:function(wrap,pos,o){this.clearPositioning();this.setPositioning(pos);if(!o.wrap){wrap.dom.parentNode.insertBefore(this.dom,wrap.dom);wrap.remove();}},getFxRestore:function(){var st=this.dom.style;return{pos:this.getPositioning(),width:st.width,height:st.height};},afterFx:function(o){if(o.afterStyle){this.applyStyles(o.afterStyle);}
if(o.afterCls){this.addClass(o.afterCls);}
if(o.remove===true){this.remove();}
if(!o.concurrent){this.fxQueue.shift();}
Ext.callback(o.callback,o.scope,[this]);if(!o.concurrent){this.nextFx();}},getFxEl:function(){return Ext.get(this.dom);},fxanim:function(args,opt,animType,defaultDur,defaultEase,cb){animType=animType||'run';opt=opt||{};var anim=Ext.lib.Anim[animType](this.dom,args,(opt.duration||defaultDur)||.35,(opt.easing||defaultEase)||'easeOut',function(){Ext.callback(cb,this);},this);opt.anim=anim;return anim;}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx);Ext.CompositeElement=function(els){this.elements=[];this.addElements(els);};Ext.CompositeElement.prototype={isComposite:true,addElements:function(els){if(!els)return this;if(typeof els=="string"){els=Ext.Element.selectorFunction(els);}
var yels=this.elements;var index=yels.length-1;for(var i=0,len=els.length;i<len;i++){yels[++index]=Ext.get(els[i]);}
return this;},fill:function(els){this.elements=[];this.add(els);return this;},filter:function(selector){var els=[];this.each(function(el){if(el.is(selector)){els[els.length]=el.dom;}});this.fill(els);return this;},invoke:function(fn,args){var els=this.elements;for(var i=0,len=els.length;i<len;i++){Ext.Element.prototype[fn].apply(els[i],args);}
return this;},add:function(els){if(typeof els=="string"){this.addElements(Ext.Element.selectorFunction(els));}else if(els.length!==undefined){this.addElements(els);}else{this.addElements([els]);}
return this;},each:function(fn,scope){var els=this.elements;for(var i=0,len=els.length;i<len;i++){if(fn.call(scope||els[i],els[i],this,i)===false){break;}}
return this;},item:function(index){return this.elements[index]||null;},first:function(){return this.item(0);},last:function(){return this.item(this.elements.length-1);},getCount:function(){return this.elements.length;},contains:function(el){return this.indexOf(el)!==-1;},indexOf:function(el){return this.elements.indexOf(Ext.get(el));},removeElement:function(el,removeDom){if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){this.removeElement(el[i]);}
return this;}
var index=typeof el=='number'?el:this.indexOf(el);if(index!==-1&&this.elements[index]){if(removeDom){var d=this.elements[index];if(d.dom){d.remove();}else{Ext.removeNode(d);}}
this.elements.splice(index,1);}
return this;},replaceElement:function(el,replacement,domReplace){var index=typeof el=='number'?el:this.indexOf(el);if(index!==-1){if(domReplace){this.elements[index].replaceWith(replacement);}else{this.elements.splice(index,1,Ext.get(replacement))}}
return this;},clear:function(){this.elements=[];}};(function(){Ext.CompositeElement.createCall=function(proto,fnName){if(!proto[fnName]){proto[fnName]=function(){return this.invoke(fnName,arguments);};}};for(var fnName in Ext.Element.prototype){if(typeof Ext.Element.prototype[fnName]=="function"){Ext.CompositeElement.createCall(Ext.CompositeElement.prototype,fnName);}};})();Ext.CompositeElementLite=function(els){Ext.CompositeElementLite.superclass.constructor.call(this,els);this.el=new Ext.Element.Flyweight();};Ext.extend(Ext.CompositeElementLite,Ext.CompositeElement,{addElements:function(els){if(els){if(Ext.isArray(els)){this.elements=this.elements.concat(els);}else{var yels=this.elements;var index=yels.length-1;for(var i=0,len=els.length;i<len;i++){yels[++index]=els[i];}}}
return this;},invoke:function(fn,args){var els=this.elements;var el=this.el;for(var i=0,len=els.length;i<len;i++){el.dom=els[i];Ext.Element.prototype[fn].apply(el,args);}
return this;},item:function(index){if(!this.elements[index]){return null;}
this.el.dom=this.elements[index];return this.el;},addListener:function(eventName,handler,scope,opt){var els=this.elements;for(var i=0,len=els.length;i<len;i++){Ext.EventManager.on(els[i],eventName,handler,scope||els[i],opt);}
return this;},each:function(fn,scope){var els=this.elements;var el=this.el;for(var i=0,len=els.length;i<len;i++){el.dom=els[i];if(fn.call(scope||el,el,this,i)===false){break;}}
return this;},indexOf:function(el){return this.elements.indexOf(Ext.getDom(el));},replaceElement:function(el,replacement,domReplace){var index=typeof el=='number'?el:this.indexOf(el);if(index!==-1){replacement=Ext.getDom(replacement);if(domReplace){var d=this.elements[index];d.parentNode.insertBefore(replacement,d);Ext.removeNode(d);}
this.elements.splice(index,1,replacement);}
return this;}});Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select;}
Ext.Element.select=function(selector,unique,root){var els;if(typeof selector=="string"){els=Ext.Element.selectorFunction(selector,root);}else if(selector.length!==undefined){els=selector;}else{throw"Invalid selector";}
if(unique===true){return new Ext.CompositeElement(els);}else{return new Ext.CompositeElementLite(els);}};Ext.select=Ext.Element.select;Ext.data.Connection=function(config){Ext.apply(this,config);this.addEvents("beforerequest","requestcomplete","requestexception");Ext.data.Connection.superclass.constructor.call(this);};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,disableCachingParam:'_dc',request:function(o){if(this.fireEvent("beforerequest",this,o)!==false){var p=o.params;if(typeof p=="function"){p=p.call(o.scope||window,o);}
if(typeof p=="object"){p=Ext.urlEncode(p);}
if(this.extraParams){var extras=Ext.urlEncode(this.extraParams);p=p?(p+'&'+extras):extras;}
var url=o.url||this.url;if(typeof url=='function'){url=url.call(o.scope||window,o);}
if(o.form){var form=Ext.getDom(o.form);url=url||form.action;var enctype=form.getAttribute("enctype");if(o.isUpload||(enctype&&enctype.toLowerCase()=='multipart/form-data')){return this.doFormUpload(o,p,url);}
var f=Ext.lib.Ajax.serializeForm(form);p=p?(p+'&'+f):f;}
var hs=o.headers;if(this.defaultHeaders){hs=Ext.apply(hs||{},this.defaultHeaders);if(!o.headers){o.headers=hs;}}
var cb={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{options:o},timeout:o.timeout||this.timeout};var method=o.method||this.method||((p||o.xmlData||o.jsonData)?"POST":"GET");if(method=='GET'&&(this.disableCaching&&o.disableCaching!==false)||o.disableCaching===true){var dcp=o.disableCachingParam||this.disableCachingParam;url+=(url.indexOf('?')!=-1?'&':'?')+dcp+'='+(new Date().getTime());}
if(typeof o.autoAbort=='boolean'){if(o.autoAbort){this.abort();}}else if(this.autoAbort!==false){this.abort();}
if((method=='GET'||o.xmlData||o.jsonData)&&p){url+=(url.indexOf('?')!=-1?'&':'?')+p;p='';}
this.transId=Ext.lib.Ajax.request(method,url,cb,p,o);return this.transId;}else{Ext.callback(o.callback,o.scope,[o,null,null]);return null;}},isLoading:function(transId){if(transId){return Ext.lib.Ajax.isCallInProgress(transId);}else{return this.transId?true:false;}},abort:function(transId){if(transId||this.isLoading()){Ext.lib.Ajax.abort(transId||this.transId);}},handleResponse:function(response){this.transId=false;var options=response.argument.options;response.argument=options?options.argument:null;this.fireEvent("requestcomplete",this,response,options);Ext.callback(options.success,options.scope,[response,options]);Ext.callback(options.callback,options.scope,[options,true,response]);},handleFailure:function(response,e){this.transId=false;var options=response.argument.options;response.argument=options?options.argument:null;this.fireEvent("requestexception",this,response,options,e);Ext.callback(options.failure,options.scope,[response,options]);Ext.callback(options.callback,options.scope,[options,false,response]);},doFormUpload:function(o,ps,url){var id=Ext.id();var frame=document.createElement('iframe');frame.id=id;frame.name=id;frame.className='x-hidden';if(Ext.isIE){frame.src=Ext.SSL_SECURE_URL;}
document.body.appendChild(frame);if(Ext.isIE){document.frames[id].name=id;}
var form=Ext.getDom(o.form),buf={target:form.target,method:form.method,encoding:form.encoding,enctype:form.enctype,action:form.action};form.target=id;form.method='POST';form.enctype=form.encoding='multipart/form-data';if(url){form.action=url;}
var hiddens,hd;if(ps){hiddens=[];ps=Ext.urlDecode(ps,false);for(var k in ps){if(ps.hasOwnProperty(k)){hd=document.createElement('input');hd.type='hidden';hd.name=k;hd.value=ps[k];form.appendChild(hd);hiddens.push(hd);}}}
function cb(){var r={responseText:'',responseXML:null};r.argument=o?o.argument:null;try{var doc;if(Ext.isIE){doc=frame.contentWindow.document;}else{doc=(frame.contentDocument||window.frames[id].document);}
if(doc&&doc.body){r.responseText=doc.body.innerHTML;}
if(doc&&doc.XMLDocument){r.responseXML=doc.XMLDocument;}else{r.responseXML=doc;}}
catch(e){}
Ext.EventManager.removeListener(frame,'load',cb,this);this.fireEvent("requestcomplete",this,r,o);Ext.callback(o.success,o.scope,[r,o]);Ext.callback(o.callback,o.scope,[o,true,r]);setTimeout(function(){Ext.removeNode(frame);},100);}
Ext.EventManager.on(frame,'load',cb,this);form.submit();form.target=buf.target;form.method=buf.method;form.enctype=buf.enctype;form.encoding=buf.encoding;form.action=buf.action;if(hiddens){for(var i=0,len=hiddens.length;i<len;i++){Ext.removeNode(hiddens[i]);}}}});Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(form){return Ext.lib.Ajax.serializeForm(form);}});Ext.Updater=Ext.extend(Ext.util.Observable,{constructor:function(el,forceNew){el=Ext.get(el);if(!forceNew&&el.updateManager){return el.updateManager;}
this.el=el;this.defaultUrl=null;this.addEvents("beforeupdate","update","failure");var d=Ext.Updater.defaults;this.sslBlankUrl=d.sslBlankUrl;this.disableCaching=d.disableCaching;this.indicatorText=d.indicatorText;this.showLoadIndicator=d.showLoadIndicator;this.timeout=d.timeout;this.loadScripts=d.loadScripts;this.transaction=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer=this.getDefaultRenderer();}
Ext.Updater.superclass.constructor.call(this);},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer();},getEl:function(){return this.el;},update:function(url,params,callback,discardUrl){if(this.fireEvent("beforeupdate",this.el,url,params)!==false){var cfg,callerScope;if(typeof url=="object"){cfg=url;url=cfg.url;params=params||cfg.params;callback=callback||cfg.callback;discardUrl=discardUrl||cfg.discardUrl;callerScope=cfg.scope;if(typeof cfg.nocache!="undefined"){this.disableCaching=cfg.nocache;};if(typeof cfg.text!="undefined"){this.indicatorText='<div class="loading-indicator">'+cfg.text+"</div>";};if(typeof cfg.scripts!="undefined"){this.loadScripts=cfg.scripts;};if(typeof cfg.timeout!="undefined"){this.timeout=cfg.timeout;};}
this.showLoading();if(!discardUrl){this.defaultUrl=url;}
if(typeof url=="function"){url=url.call(this);}
var o=Ext.apply({},{url:url,params:(typeof params=="function"&&callerScope)?params.createDelegate(callerScope):params,success:this.processSuccess,failure:this.processFailure,scope:this,callback:undefined,timeout:(this.timeout*1000),disableCaching:this.disableCaching,argument:{"options":cfg,"url":url,"form":null,"callback":callback,"scope":callerScope||window,"params":params}},cfg);this.transaction=Ext.Ajax.request(o);}},formUpdate:function(form,url,reset,callback){if(this.fireEvent("beforeupdate",this.el,form,url)!==false){if(typeof url=="function"){url=url.call(this);}
form=Ext.getDom(form)
this.transaction=Ext.Ajax.request({form:form,url:url,success:this.processSuccess,failure:this.processFailure,scope:this,timeout:(this.timeout*1000),argument:{"url":url,"form":form,"callback":callback,"reset":reset}});this.showLoading.defer(1,this);}},refresh:function(callback){if(this.defaultUrl==null){return;}
this.update(this.defaultUrl,null,callback,true);},startAutoRefresh:function(interval,url,params,callback,refreshNow){if(refreshNow){this.update(url||this.defaultUrl,params,callback,true);}
if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}
this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[url||this.defaultUrl,params,callback,true]),interval*1000);},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false;},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText);}},processSuccess:function(response){this.transaction=null;if(response.argument.form&&response.argument.reset){try{response.argument.form.reset();}catch(e){}}
if(this.loadScripts){this.renderer.render(this.el,response,this,this.updateComplete.createDelegate(this,[response]));}else{this.renderer.render(this.el,response,this);this.updateComplete(response);}},updateComplete:function(response){this.fireEvent("update",this.el,response);if(typeof response.argument.callback=="function"){response.argument.callback.call(response.argument.scope,this.el,true,response,response.argument.options);}},processFailure:function(response){this.transaction=null;this.fireEvent("failure",this.el,response);if(typeof response.argument.callback=="function"){response.argument.callback.call(response.argument.scope,this.el,false,response,response.argument.options);}},setRenderer:function(renderer){this.renderer=renderer;},getRenderer:function(){return this.renderer;},setDefaultUrl:function(defaultUrl){this.defaultUrl=defaultUrl;},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction);}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction);}
return false;}});Ext.Updater.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:'<div class="loading-indicator">Loading...</div>'};Ext.Updater.updateElement=function(el,url,params,options){var um=Ext.get(el).getUpdater();Ext.apply(um,options);um.update(url,params,options?options.callback:null);};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(el,response,updateManager,callback){el.update(response.responseText,updateManager.loadScripts,callback);}};Ext.UpdateManager=Ext.Updater;(function(){Date.useStrict=false;function xf(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i];});}
Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=typeof p=='function'?p():p;Date.parseCodes[character]=p;}
return p?Ext.applyIf({c:p.c?xf(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}}
var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{"M$":function(input,strict){var re=new RegExp('\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/');var r=(input||'').match(re);return r?new Date(((r[1]||'')+r[2])*1):null;}},parseRegexes:[],formatFunctions:{"M$":function(){return'\\/Date('+this.getTime()+')\\/';}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3);},getShortDayName:function(day){return Date.dayNames[day].substring(0,3);},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()];},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i<l;++i){var e=c.charAt(i);code.push(e=="T"?"'T'":Date.getFormatCode(e));}
return code.join(" + ");},U:"Math.round(this.getTime() / 1000)"},isValid:function(y,m,d,h,i,s,ms){h=h||0;i=i||0;s=s||0;ms=ms||0;var dt=new Date(y,m-1,d,h,i,s,ms);return y==dt.getFullYear()&&m==dt.getMonth()+1&&d==dt.getDate()&&h==dt.getHours()&&i==dt.getMinutes()&&s==dt.getSeconds()&&ms==dt.getMilliseconds();},parseDate:function(input,format,strict){var p=Date.parseFunctions;if(p[format]==null){Date.createParser(format);}
return p[format](input,strict===undefined?Date.useStrict:strict);},getFormatCode:function(character){var f=Date.formatCodes[character];if(f){f=typeof f=='function'?f():f;Date.formatCodes[character]=f;}
return f||("'"+String.escape(character)+"'");},createFormat:function(format){var code=[],special=false,ch='';for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else if(special){special=false;code.push("'"+String.escape(ch)+"'");}else{code.push(Date.getFormatCode(ch))}}
Date.formatFunctions[format]=new Function("return "+code.join('+'));},createParser:function(){var code=["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,","def = Date.defaults,","results = String(input).match(Date.parseRegexes[{0}]);","if(results){","{1}","if(u != null){","v = new Date(u * 1000);","}else{","dt = (new Date()).clearTime();","y = y >= 0? y : Ext.num(def.y, dt.getFullYear());","m = m >= 0? m : Ext.num(def.m - 1, dt.getMonth());","d = d >= 0? d : Ext.num(def.d, dt.getDate());","h  = h || Ext.num(def.h, dt.getHours());","i  = i || Ext.num(def.i, dt.getMinutes());","s  = s || Ext.num(def.s, dt.getSeconds());","ms = ms || Ext.num(def.ms, dt.getMilliseconds());","if(z >= 0 && y >= 0){","v = new Date(y, 0, 1, h, i, s, ms);","v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);","}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = new Date(y, m, d, h, i, s, ms);","}","}","}","if(v){","if(zz != null){","v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join('\n');return function(format){var regexNum=Date.parseRegexes.length,currentGroup=1,calc=[],regex=[],special=false,ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else if(special){special=false;regex.push(String.escape(ch));}else{var obj=$f(ch,currentGroup);currentGroup+=obj.g;regex.push(obj.s);if(obj.g&&obj.c){calc.push(obj.c);}}}
Date.parseRegexes[regexNum]=new RegExp("^"+regex.join('')+"$","i");Date.parseFunctions[format]=new Function("input","strict",xf(code,regexNum,calc.join('')));}}(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i);return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:1,c:"z = parseInt(results[{0}], 10);\n",s:"(\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i);return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"));},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y");},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"
+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"
+"if (h == 12) { h = 0; }\n"
+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"
+"if (h == 12) { h = 0; }\n"
+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"},g:function(){return $f("G");},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return $f("H");},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+\-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+\-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\n"
+"zz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+\-]?\\d{1,5})"},c:function(){var calc=[],arr=[$f("Y",1),$f("m",2),$f("d",3),$f("h",4),$f("i",5),$f("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",$f("P",8).c,"}else{",$f("O",8).c,"}","}"].join('\n')}];for(var i=0,l=arr.length;i<l;++i){calc.push(arr[i].c);}
return{g:1,c:calc.join(""),s:[arr[0].s,"(?:","-",arr[1].s,"(?:","-",arr[2].s,"(?:","(?:T| )?",arr[3].s,":",arr[4].s,"(?::",arr[5].s,")?","(?:(?:\\.|,)(\\d+))?","(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?",")?",")?",")?"].join("")}},U:{g:1,c:"u = parseInt(results[{0}], 10);\n",s:"(-?\\d+)"}}});}());Ext.apply(Date.prototype,{dateFormat:function(format){if(Date.formatFunctions[format]==null){Date.createFormat(format);}
return Date.formatFunctions[format].call(this);},getTimezone:function(){return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"");},getGMTOffset:function(colon){return(this.getTimezoneOffset()>0?"-":"+")
+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")
+(colon?":":"")
+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0");},getDayOfYear:function(){var i=0,num=0,d=this.clone(),m=this.getMonth();for(i=0,d.setMonth(0);i<m;d.setMonth(++i)){num+=d.getDaysInMonth();}
return num+this.getDate()-1;},getWeekOfYear:function(){var ms1d=864e5,ms7d=7*ms1d;return function(){var DC3=Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+3)/ms1d,AWN=Math.floor(DC3/7),Wyr=new Date(AWN*ms7d).getUTCFullYear();return AWN-Math.floor(Date.UTC(Wyr,0,7)/ms7d)+1;}}(),isLeapYear:function(){var year=this.getFullYear();return!!((year&3)==0&&(year%100||(year%400==0&&year)));},getFirstDayOfMonth:function(){var day=(this.getDay()-(this.getDate()-1))%7;return(day<0)?(day+7):day;},getLastDayOfMonth:function(){return this.getLastDateOfMonth().getDay();},getFirstDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),1);},getLastDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),this.getDaysInMonth());},getDaysInMonth:function(){var daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];return function(){var m=this.getMonth();return m==1&&this.isLeapYear()?29:daysInMonth[m];}}(),getSuffix:function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}},clone:function(){return new Date(this.getTime());},isDST:function(){return new Date(this.getFullYear(),0,1).getTimezoneOffset()!=this.getTimezoneOffset();},clearTime:function(clone){if(clone){return this.clone().clearTime();}
var d=this.getDate();this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);if(this.getDate()!=d){for(var hr=1,c=this.add(Date.HOUR,hr);c.getDate()!=d;hr++,c=this.add(Date.HOUR,hr));this.setDate(d);this.setHours(c.getHours());}
return this;},add:function(interval,value){var d=this.clone();if(!interval||value===0)return d;switch(interval.toLowerCase()){case Date.MILLI:d.setMilliseconds(this.getMilliseconds()+value);break;case Date.SECOND:d.setSeconds(this.getSeconds()+value);break;case Date.MINUTE:d.setMinutes(this.getMinutes()+value);break;case Date.HOUR:d.setHours(this.getHours()+value);break;case Date.DAY:d.setDate(this.getDate()+value);break;case Date.MONTH:var day=this.getDate();if(day>28){day=Math.min(day,this.getFirstDateOfMonth().add('mo',value).getLastDateOfMonth().getDate());}
d.setDate(day);d.setMonth(this.getMonth()+value);break;case Date.YEAR:d.setFullYear(this.getFullYear()+value);break;}
return d;},between:function(start,end){var t=this.getTime();return start.getTime()<=t&&t<=end.getTime();}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari&&(navigator.userAgent.match(/WebKit\/(\d+)/)[1]||NaN)<420){Ext.apply(Date.prototype,{_xMonth:Date.prototype.setMonth,_xDate:Date.prototype.setDate,setMonth:function(num){if(num<=-1){var n=Math.ceil(-num),back_year=Math.ceil(n/12),month=(n%12)?12-n%12:0;this.setFullYear(this.getFullYear()-back_year);return this._xMonth(month);}else{return this._xMonth(num);}},setDate:function(d){return this.setTime(this.getTime()-(this.getDate()-d)*864e5);}});}
Ext.util.DelayedTask=function(fn,scope,args){var id=null;var call=function(){id=null;fn.apply(scope,args||[]);};this.delay=function(delay,newFn,newScope,newArgs){if(id){this.cancel();}
fn=newFn||fn;scope=newScope||scope;args=newArgs||args;if(!id){id=setTimeout(call,delay);}};this.cancel=function(){if(id){clearTimeout(id);id=null;}};};Ext.util.TaskRunner=function(interval){interval=interval||10;var tasks=[],removeQueue=[];var id=0;var running=false;var stopThread=function(){running=false;clearInterval(id);id=0;};var startThread=function(){if(!running){running=true;id=setInterval(runTasks,interval);}};var removeTask=function(t){removeQueue.push(t);if(t.onStop){t.onStop.apply(t.scope||t);}};var runTasks=function(){if(removeQueue.length>0){for(var i=0,len=removeQueue.length;i<len;i++){tasks.remove(removeQueue[i]);}
removeQueue=[];if(tasks.length<1){stopThread();return;}}
var c,now=new Date().getTime();for(var i=0,len=tasks.length;i<len;++i){var t=tasks[i];var itime=now-t.taskRunTime;if(t.interval<=itime){c=++t.taskRunCount;var rt=t.run.apply(t.scope||t,t.args||[c]);t.taskRunTime=now;if(rt===false||c===t.repeat){removeTask(t);return;}}
if(t.duration&&t.duration<=(now-t.taskStartTime)){removeTask(t);}}};this.start=function(task){tasks.push(task);task.taskStartTime=new Date().getTime();task.taskRunTime=0;task.taskRunCount=0;startThread();return task;};this.stop=function(task){removeTask(task);return task;};this.stopAll=function(){stopThread();for(var i=0,len=tasks.length;i<len;i++){if(tasks[i].onStop){tasks[i].onStop();}}
tasks=[];removeQueue=[];};};Ext.TaskMgr=new Ext.util.TaskRunner();Ext.util.MixedCollection=function(allowFunctions,keyFn){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions=allowFunctions===true;if(keyFn){this.getKey=keyFn;}
Ext.util.MixedCollection.superclass.constructor.call(this);};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(key,o){if(arguments.length==1){o=arguments[0];key=this.getKey(o);}
if(typeof key!='undefined'&&key!==null){var old=this.map[key];if(typeof old!='undefined'){return this.replace(key,o);}
this.map[key]=o;}
this.length++;this.items.push(o);this.keys.push(key);this.fireEvent('add',this.length-1,o,key);return o;},getKey:function(o){return o.id;},replace:function(key,o){if(arguments.length==1){o=arguments[0];key=this.getKey(o);}
var old=this.map[key];if(typeof key=="undefined"||key===null||typeof old=="undefined"){return this.add(key,o);}
var index=this.indexOfKey(key);this.items[index]=o;this.map[key]=o;this.fireEvent("replace",key,old,o);return o;},addAll:function(objs){if(arguments.length>1||Ext.isArray(objs)){var args=arguments.length>1?arguments:objs;for(var i=0,len=args.length;i<len;i++){this.add(args[i]);}}else{for(var key in objs){if(this.allowFunctions||typeof objs[key]!="function"){this.add(key,objs[key]);}}}},each:function(fn,scope){var items=[].concat(this.items);for(var i=0,len=items.length;i<len;i++){if(fn.call(scope||items[i],items[i],i,len)===false){break;}}},eachKey:function(fn,scope){for(var i=0,len=this.keys.length;i<len;i++){fn.call(scope||window,this.keys[i],this.items[i],i,len);}},find:function(fn,scope){for(var i=0,len=this.items.length;i<len;i++){if(fn.call(scope||window,this.items[i],this.keys[i])){return this.items[i];}}
return null;},insert:function(index,key,o){if(arguments.length==2){o=arguments[1];key=this.getKey(o);}
if(this.containsKey(key)){this.suspendEvents();this.removeKey(key);this.resumeEvents();}
if(index>=this.length){return this.add(key,o);}
this.length++;this.items.splice(index,0,o);if(typeof key!="undefined"&&key!=null){this.map[key]=o;}
this.keys.splice(index,0,key);this.fireEvent("add",index,o,key);return o;},remove:function(o){return this.removeAt(this.indexOf(o));},removeAt:function(index){if(index<this.length&&index>=0){this.length--;var o=this.items[index];this.items.splice(index,1);var key=this.keys[index];if(typeof key!="undefined"){delete this.map[key];}
this.keys.splice(index,1);this.fireEvent("remove",o,key);return o;}
return false;},removeKey:function(key){return this.removeAt(this.indexOfKey(key));},getCount:function(){return this.length;},indexOf:function(o){return this.items.indexOf(o);},indexOfKey:function(key){return this.keys.indexOf(key);},item:function(key){var mk=this.map[key],item=mk!==undefined?mk:(typeof key=='number')?this.items[key]:undefined;return typeof item!='function'||this.allowFunctions?item:null;},itemAt:function(index){return this.items[index];},key:function(key){return this.map[key];},contains:function(o){return this.indexOf(o)!=-1;},containsKey:function(key){return typeof this.map[key]!="undefined";},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear");},first:function(){return this.items[0];},last:function(){return this.items[this.length-1];},_sort:function(property,dir,fn){var dsc=String(dir).toUpperCase()=="DESC"?-1:1;fn=fn||function(a,b){return a-b;};var c=[],k=this.keys,items=this.items;for(var i=0,len=items.length;i<len;i++){c[c.length]={key:k[i],value:items[i],index:i};}
c.sort(function(a,b){var v=fn(a[property],b[property])*dsc;if(v==0){v=(a.index<b.index?-1:1);}
return v;});for(var i=0,len=c.length;i<len;i++){items[i]=c[i].value;k[i]=c[i].key;}
this.fireEvent("sort",this);},sort:function(dir,fn){this._sort("value",dir,fn);},keySort:function(dir,fn){this._sort("key",dir,fn||function(a,b){var v1=String(a).toUpperCase(),v2=String(b).toUpperCase();return v1>v2?1:(v1<v2?-1:0);});},getRange:function(start,end){var items=this.items;if(items.length<1){return[];}
start=start||0;end=Math.min(typeof end=="undefined"?this.length-1:end,this.length-1);var r=[];if(start<=end){for(var i=start;i<=end;i++){r[r.length]=items[i];}}else{for(var i=start;i>=end;i--){r[r.length]=items[i];}}
return r;},filter:function(property,value,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return this.clone();}
value=this.createValueMatcher(value,anyMatch,caseSensitive);return this.filterBy(function(o){return o&&value.test(o[property]);});},filterBy:function(fn,scope){var r=new Ext.util.MixedCollection();r.getKey=this.getKey;var k=this.keys,it=this.items;for(var i=0,len=it.length;i<len;i++){if(fn.call(scope||this,it[i],k[i])){r.add(k[i],it[i]);}}
return r;},findIndex:function(property,value,start,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return-1;}
value=this.createValueMatcher(value,anyMatch,caseSensitive);return this.findIndexBy(function(o){return o&&value.test(o[property]);},null,start);},findIndexBy:function(fn,scope,start){var k=this.keys,it=this.items;for(var i=(start||0),len=it.length;i<len;i++){if(fn.call(scope||this,it[i],k[i])){return i;}}
return-1;},createValueMatcher:function(value,anyMatch,caseSensitive){if(!value.exec){value=String(value);value=new RegExp((anyMatch===true?'':'^')+Ext.escapeRe(value),caseSensitive?'':'i');}
return value;},clone:function(){var r=new Ext.util.MixedCollection();var k=this.keys,it=this.items;for(var i=0,len=it.length;i<len;i++){r.add(k[i],it[i]);}
r.getKey=this.getKey;return r;}});Ext.util.MixedCollection.prototype.get=Ext.util.MixedCollection.prototype.item;Ext.util.JSON=new(function(){var useHasOwn=!!{}.hasOwnProperty;var pad=function(n){return n<10?"0"+n:n;};var m={"\b":'\\b',"\t":'\\t',"\n":'\\n',"\f":'\\f',"\r":'\\r','"':'\\"',"\\":'\\\\'};var encodeString=function(s){if(/["\\\x00-\x1f]/.test(s)){return'"'+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
c=b.charCodeAt();return"\\u00"+
Math.floor(c/16).toString(16)+
(c%16).toString(16);})+'"';}
return'"'+s+'"';};var encodeArray=function(o){var a=["["],b,i,l=o.length,v;for(i=0;i<l;i+=1){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(',');}
a.push(v===null?"null":Ext.util.JSON.encode(v));b=true;}}
a.push("]");return a.join("");};this.encodeDate=function(o){return'"'+o.getFullYear()+"-"+
pad(o.getMonth()+1)+"-"+
pad(o.getDate())+"T"+
pad(o.getHours())+":"+
pad(o.getMinutes())+":"+
pad(o.getSeconds())+'"';};this.encode=function(o){if(typeof o=="undefined"||o===null){return"null";}else if(Ext.isArray(o)){return encodeArray(o);}else if(Ext.isDate(o)){return Ext.util.JSON.encodeDate(o);}else if(typeof o=="string"){return encodeString(o);}else if(typeof o=="number"){return isFinite(o)?String(o):"null";}else if(typeof o=="boolean"){return String(o);}else{var a=["{"],b,i,v;for(i in o){if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(',');}
a.push(this.encode(i),":",v===null?"null":this.encode(v));b=true;}}}
a.push("}");return a.join("");}};this.decode=function(json){return eval("("+json+')');};})();Ext.encode=Ext.util.JSON.encode;Ext.decode=Ext.util.JSON.decode;Ext.util.Format=function(){var trimRe=/^\s+|\s+$/g;return{ellipsis:function(value,len){if(value&&value.length>len){return value.substr(0,len-3)+"...";}
return value;},undef:function(value){return value!==undefined?value:"";},defaultValue:function(value,defaultValue){return value!==undefined&&value!==''?value:defaultValue;},htmlEncode:function(value){return!value?value:String(value).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;");},htmlDecode:function(value){return!value?value:String(value).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&");},trim:function(value){return String(value).replace(trimRe,"");},substr:function(value,start,length){return String(value).substr(start,length);},lowercase:function(value){return String(value).toLowerCase();},uppercase:function(value){return String(value).toUpperCase();},capitalize:function(value){return!value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase();},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args);}else{return eval(fn).call(window,value);}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split('.');var whole=ps[0];var sub=ps[1]?'.'+ps[1]:'.00';var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,'$1'+','+'$2');}
v=whole+sub;if(v.charAt(0)=='-'){return'-$'+v.substr(1);}
return"$"+v;},date:function(v,format){if(!v){return"";}
if(!Ext.isDate(v)){v=new Date(Date.parse(v));}
return v.dateFormat(format||"m/d/Y");},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format);};},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return!v?v:String(v).replace(this.stripTagsRE,"");},stripScriptsRe:/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,stripScripts:function(v){return!v?v:String(v).replace(this.stripScriptsRe,"");},fileSize:function(size){if(size<1024){return size+" bytes";}else if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB";}else{return(Math.round(((size*10)/1048576))/10)+" MB";}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function('v','return v '+a+';');}
return fns[a](v);}}(),nl2br:function(v){return v===undefined||v===null?'':v.replace(/\n/g,'<br/>');}};}();Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var s=this.html;s=['<tpl>',s,'</tpl>'].join('');var re=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/;var nameRe=/^<tpl\b[^>]*?for="(.*?)"/;var ifRe=/^<tpl\b[^>]*?if="(.*?)"/;var execRe=/^<tpl\b[^>]*?exec="(.*?)"/;var m,id=0;var tpls=[];while(m=s.match(re)){var m2=m[0].match(nameRe);var m3=m[0].match(ifRe);var m4=m[0].match(execRe);var exp=null,fn=null,exec=null;var name=m2&&m2[1]?m2[1]:'';if(m3){exp=m3&&m3[1]?m3[1]:null;if(exp){fn=new Function('values','parent','xindex','xcount','with(values){ return '+(Ext.util.Format.htmlDecode(exp))+'; }');}}
if(m4){exp=m4&&m4[1]?m4[1]:null;if(exp){exec=new Function('values','parent','xindex','xcount','with(values){ '+(Ext.util.Format.htmlDecode(exp))+'; }');}}
if(name){switch(name){case'.':name=new Function('values','parent','with(values){ return values; }');break;case'..':name=new Function('values','parent','with(values){ return parent; }');break;default:name=new Function('values','parent','with(values){ return '+name+'; }');}}
tpls.push({id:id,target:name,exec:exec,test:fn,body:m[1]||''});s=s.replace(m[0],'{xtpl'+id+'}');++id;}
for(var i=tpls.length-1;i>=0;--i){this.compileTpl(tpls[i]);}
this.master=tpls[tpls.length-1];this.tpls=tpls;};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(id,values,parent,xindex,xcount){var t=this.tpls[id];if(t.test&&!t.test.call(this,values,parent,xindex,xcount)){return'';}
if(t.exec&&t.exec.call(this,values,parent,xindex,xcount)){return'';}
var vs=t.target?t.target.call(this,values,parent):values;parent=t.target?values:parent;if(t.target&&Ext.isArray(vs)){var buf=[];for(var i=0,len=vs.length;i<len;i++){buf[buf.length]=t.compiled.call(this,vs[i],parent,i+1,len);}
return buf.join('');}
return t.compiled.call(this,vs,parent,xindex,xcount);},compileTpl:function(tpl){var fm=Ext.util.Format;var useF=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,name,format,args,math){if(name.substr(0,4)=='xtpl'){return"'"+sep+'this.applySubTemplate('+name.substr(4)+', values, parent, xindex, xcount)'+sep+"'";}
var v;if(name==='.'){v='values';}else if(name==='#'){v='xindex';}else if(name.indexOf('.')!=-1){v=name;}else{v="values['"+name+"']";}
if(math){v='('+v+math+')';}
if(format&&useF){args=args?','+args:"";if(format.substr(0,5)!="this."){format="fm."+format+'(';}else{format='this.call("'+format.substr(5)+'", ';args=", values";}}else{args='';format="("+v+" === undefined ? '' : ";}
return"'"+sep+format+v+args+")"+sep+"'";};var codeFn=function(m,code){return"'"+sep+'('+code+')'+sep+"'";};var body;if(Ext.isGecko){body="tpl.compiled = function(values, parent, xindex, xcount){ return '"+
tpl.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn)+"';};";}else{body=["tpl.compiled = function(values, parent, xindex, xcount){ return ['"];body.push(tpl.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn));body.push("'].join('');};");body=body.join('');}
eval(body);return this;},applyTemplate:function(values){return this.master.compiled.call(this,values,{},1,1);},compile:function(){return this;}});Ext.XTemplate.prototype.apply=Ext.XTemplate.prototype.applyTemplate;Ext.XTemplate.from=function(el){el=Ext.getDom(el);return new Ext.XTemplate(el.value||el.innerHTML);};Ext.util.CSS=function(){var rules=null;var doc=document;var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase();};return{createStyleSheet:function(cssText,id){var ss;var head=doc.getElementsByTagName("head")[0];var rules=doc.createElement("style");rules.setAttribute("type","text/css");if(id){rules.setAttribute("id",id);}
if(Ext.isIE){head.appendChild(rules);ss=rules.styleSheet;ss.cssText=cssText;}else{try{rules.appendChild(doc.createTextNode(cssText));}catch(e){rules.cssText=cssText;}
head.appendChild(rules);ss=rules.styleSheet?rules.styleSheet:(rules.sheet||doc.styleSheets[doc.styleSheets.length-1]);}
this.cacheStyleSheet(ss);return ss;},removeStyleSheet:function(id){var existing=doc.getElementById(id);if(existing){existing.parentNode.removeChild(existing);}},swapStyleSheet:function(id,url){this.removeStyleSheet(id);var ss=doc.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("id",id);ss.setAttribute("href",url);doc.getElementsByTagName("head")[0].appendChild(ss);},refreshCache:function(){return this.getRules(true);},cacheStyleSheet:function(ss){if(!rules){rules={};}
try{var ssRules=ss.cssRules||ss.rules;for(var j=ssRules.length-1;j>=0;--j){rules[ssRules[j].selectorText]=ssRules[j];}}catch(e){}},getRules:function(refreshCache){if(rules==null||refreshCache){rules={};var ds=doc.styleSheets;for(var i=0,len=ds.length;i<len;i++){try{this.cacheStyleSheet(ds[i]);}catch(e){}}}
return rules;},getRule:function(selector,refreshCache){var rs=this.getRules(refreshCache);if(!Ext.isArray(selector)){return rs[selector];}
for(var i=0;i<selector.length;i++){if(rs[selector[i]]){return rs[selector[i]];}}
return null;},updateRule:function(selector,property,value){if(!Ext.isArray(selector)){var rule=this.getRule(selector);if(rule){rule.style[property.replace(camelRe,camelFn)]=value;return true;}}else{for(var i=0;i<selector.length;i++){if(this.updateRule(selector[i],property,value)){return true;}}}
return false;}};}();Ext.util.ClickRepeater=function(el,config)
{this.el=Ext.get(el);this.el.unselectable();Ext.apply(this,config);this.addEvents("mousedown","click","mouseup");if(!this.disabled){this.disabled=true;this.enable();}
if(this.handler){this.on("click",this.handler,this.scope||this);}
Ext.util.ClickRepeater.superclass.constructor.call(this);};Ext.extend(Ext.util.ClickRepeater,Ext.util.Observable,{interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,enable:function(){if(this.disabled){this.el.on('mousedown',this.handleMouseDown,this);if(this.preventDefault||this.stopDefault){this.el.on('click',this.eventOptions,this);}}
this.disabled=false;},disable:function(force){if(force||!this.disabled){clearTimeout(this.timer);if(this.pressClass){this.el.removeClass(this.pressClass);}
Ext.getDoc().un('mouseup',this.handleMouseUp,this);this.el.removeAllListeners();}
this.disabled=true;},setDisabled:function(disabled){this[disabled?'disable':'enable']();},eventOptions:function(e){if(this.preventDefault){e.preventDefault();}
if(this.stopDefault){e.stopEvent();}},destroy:function(){this.disable(true);Ext.destroy(this.el);this.purgeListeners();},handleMouseDown:function(){clearTimeout(this.timer);this.el.blur();if(this.pressClass){this.el.addClass(this.pressClass);}
this.mousedownTime=new Date();Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this);this.fireEvent("click",this);if(this.accelerate){this.delay=400;}
this.timer=this.click.defer(this.delay||this.interval,this);},click:function(){this.fireEvent("click",this);this.timer=this.click.defer(this.accelerate?this.easeOutExpo(this.mousedownTime.getElapsed(),400,-390,12000):this.interval,this);},easeOutExpo:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressClass){this.el.removeClass(this.pressClass);}
this.el.on("mouseover",this.handleMouseReturn,this);},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn,this);if(this.pressClass){this.el.addClass(this.pressClass);}
this.click();},handleMouseUp:function(){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn,this);this.el.un("mouseout",this.handleMouseOut,this);Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeClass(this.pressClass);this.fireEvent("mouseup",this);}});Ext.KeyNav=function(el,config){this.el=Ext.get(el);Ext.apply(this,config);if(!this.disabled){this.disabled=true;this.enable();}};Ext.KeyNav.prototype={disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,prepareEvent:function(e){var k=e.getKey();var h=this.keyToHandler[k];if(Ext.isSafari2&&h&&k>=37&&k<=40){e.stopEvent();}},relay:function(e){var k=e.getKey();var h=this.keyToHandler[k];if(h&&this[h]){if(this.doRelay(e,this[h],h)!==true){e[this.defaultEventAction]();}}},doRelay:function(e,h,hname){return h.call(this.scope||this,e);},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(this.isKeyDown()){this.el.on("keydown",this.relay,this);}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this);}
this.disabled=false;}},disable:function(){if(!this.disabled){if(this.isKeyDown()){this.el.un("keydown",this.relay,this);}else{this.el.un("keydown",this.prepareEvent,this);this.el.un("keypress",this.relay,this);}
this.disabled=true;}},isKeyDown:function(){return this.forceKeyDown||Ext.isIE||(Ext.isWebKit&&!Ext.isSafari2)||Ext.isAir;}};Ext.KeyMap=function(el,config,eventName){this.el=Ext.get(el);this.eventName=eventName||"keydown";this.bindings=[];if(config){this.addBinding(config);}
this.enable();};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(config){if(Ext.isArray(config)){for(var i=0,len=config.length;i<len;i++){this.addBinding(config[i]);}
return;}
var keyCode=config.key,shift=config.shift,ctrl=config.ctrl,alt=config.alt,fn=config.fn||config.handler,scope=config.scope;if(config.stopEvent){this.stopEvent=config.stopEvent;}
if(typeof keyCode=="string"){var ks=[];var keyString=keyCode.toUpperCase();for(var j=0,len=keyString.length;j<len;j++){ks.push(keyString.charCodeAt(j));}
keyCode=ks;}
var keyArray=Ext.isArray(keyCode);var handler=function(e){if((!shift||e.shiftKey)&&(!ctrl||e.ctrlKey)&&(!alt||e.altKey)){var k=e.getKey();if(keyArray){for(var i=0,len=keyCode.length;i<len;i++){if(keyCode[i]==k){if(this.stopEvent){e.stopEvent();}
fn.call(scope||window,k,e);return;}}}else{if(k==keyCode){if(this.stopEvent){e.stopEvent();}
fn.call(scope||window,k,e);}}}};this.bindings.push(handler);},on:function(key,fn,scope){var keyCode,shift,ctrl,alt;if(typeof key=="object"&&!Ext.isArray(key)){keyCode=key.key;shift=key.shift;ctrl=key.ctrl;alt=key.alt;}else{keyCode=key;}
this.addBinding({key:keyCode,shift:shift,ctrl:ctrl,alt:alt,fn:fn,scope:scope})},handleKeyDown:function(e){if(this.enabled){var b=this.bindings;for(var i=0,len=b.length;i<len;i++){b[i].call(this,e);}}},isEnabled:function(){return this.enabled;},enable:function(){if(!this.enabled){this.el.on(this.eventName,this.handleKeyDown,this);this.enabled=true;}},disable:function(){if(this.enabled){this.el.removeListener(this.eventName,this.handleKeyDown,this);this.enabled=false;}}};Ext.util.TextMetrics=function(){var shared;return{measure:function(el,text,fixedWidth){if(!shared){shared=Ext.util.TextMetrics.Instance(el,fixedWidth);}
shared.bind(el);shared.setFixedWidth(fixedWidth||'auto');return shared.getSize(text);},createInstance:function(el,fixedWidth){return Ext.util.TextMetrics.Instance(el,fixedWidth);}};}();Ext.util.TextMetrics.Instance=function(bindTo,fixedWidth){var ml=new Ext.Element(document.createElement('div'));document.body.appendChild(ml.dom);ml.position('absolute');ml.setLeftTop(-1000,-1000);ml.hide();if(fixedWidth){ml.setWidth(fixedWidth);}
var instance={getSize:function(text){ml.update(text);var s=ml.getSize();ml.update('');return s;},bind:function(el){ml.setStyle(Ext.fly(el).getStyles('font-size','font-style','font-weight','font-family','line-height','text-transform','letter-spacing'));},setFixedWidth:function(width){ml.setWidth(width);},getWidth:function(text){ml.dom.style.width='auto';return this.getSize(text).width;},getHeight:function(text){return this.getSize(text).height;}};instance.bind(bindTo);return instance;};Ext.Element.measureText=Ext.util.TextMetrics.measure;(function(){var Event=Ext.EventManager;var Dom=Ext.lib.Dom;Ext.dd.DragDrop=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},moveOnly:false,unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(constrainTo,pad,inContent){if(typeof pad=="number"){pad={left:pad,right:pad,top:pad,bottom:pad};}
pad=pad||this.defaultPadding;var b=Ext.get(this.getEl()).getBox();var ce=Ext.get(constrainTo);var s=ce.getScroll();var c,cd=ce.dom;if(cd==document.body){c={x:s.left,y:s.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()};}else{var xy=ce.getXY();c={x:xy[0]+s.left,y:xy[1]+s.top,width:cd.clientWidth,height:cd.clientHeight};}
var topSpace=b.y-c.y;var leftSpace=b.x-c.x;this.resetConstraints();this.setXConstraint(leftSpace-(pad.left||0),c.width-leftSpace-b.width-(pad.right||0),this.xTickSize);this.setYConstraint(topSpace-(pad.top||0),c.height-topSpace-b.height-(pad.bottom||0),this.yTickSize);},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id);}
return this._domRef;},getDragEl:function(){return Ext.getDom(this.dragElId);},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);Event.on(this.id,"mousedown",this.handleMouseDown,this);},initTarget:function(id,sGroup,config){this.config=config||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof id!=="string"){id=Ext.id(id);}
this.id=id;this.addToGroup((sGroup)?sGroup:"default");this.handleElId=id;this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(iTop,iRight,iBot,iLeft){if(!iRight&&0!==iRight){this.padding=[iTop,iTop,iTop,iTop];}else if(!iBot&&0!==iBot){this.padding=[iTop,iRight,iTop,iRight];}else{this.padding=[iTop,iRight,iBot,iLeft];}},setInitPosition:function(diffX,diffY){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;}
var dx=diffX||0;var dy=diffY||0;var p=Dom.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p);},setStartPosition:function(pos){var p=pos||Dom.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(sGroup){this.groups[sGroup]=true;this.DDM.regDragDrop(this,sGroup);},removeFromGroup:function(sGroup){if(this.groups[sGroup]){delete this.groups[sGroup];}
this.DDM.removeDDFromGroup(this,sGroup);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id);}
this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id);}
Event.on(id,"mousedown",this.handleMouseDown,this);this.setHandleElId(id);this.hasOuterHandles=true;},unreg:function(){Event.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},destroy:function(){this.unreg();},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(e,oDD){if(this.primaryButtonOnly&&e.button!=0){return;}
if(this.isLocked()){return;}
this.DDM.refreshCache(this.groups);var pt=new Ext.lib.Point(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}else{}}},clickValidator:function(e){var target=e.getTarget();return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDM.handleWasClicked(target,this.id)));},addInvalidHandleType:function(tagName){var type=tagName.toUpperCase();this.invalidHandleTypes[type]=type;},addInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id);}
this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(cssClass){this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType:function(tagName){var type=tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id);}
delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(cssClass){for(var i=0,len=this.invalidHandleClasses.length;i<len;++i){if(this.invalidHandleClasses[i]==cssClass){delete this.invalidHandleClasses[i];}}},isValidHandleChild:function(node){var valid=true;var nodeName;try{nodeName=node.nodeName.toUpperCase();}catch(e){nodeName=node.nodeName;}
valid=valid&&!this.invalidHandleTypes[nodeName];valid=valid&&!this.invalidHandleIds[node.id];for(var i=0,len=this.invalidHandleClasses.length;valid&&i<len;++i){valid=!Ext.fly(node).hasClass(this.invalidHandleClasses[i]);}
return valid;},setXTicks:function(iStartX,iTickSize){this.xTicks=[];this.xTickSize=iTickSize;var tickMap={};for(var i=this.initPageX;i>=this.minX;i=i-iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}}
for(i=this.initPageX;i<=this.maxX;i=i+iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}}
this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(iStartY,iTickSize){this.yTicks=[];this.yTickSize=iTickSize;var tickMap={};for(var i=this.initPageY;i>=this.minY;i=i-iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}}
for(i=this.initPageY;i<=this.maxY;i=i+iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}}
this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(iLeft,iRight,iTickSize){this.leftConstraint=iLeft;this.rightConstraint=iRight;this.minX=this.initPageX-iLeft;this.maxX=this.initPageX+iRight;if(iTickSize){this.setXTicks(this.initPageX,iTickSize);}
this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,iDown,iTickSize){this.topConstraint=iUp;this.bottomConstraint=iDown;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+iDown;if(iTickSize){this.setYTicks(this.initPageY,iTickSize);}
this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();}
if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}
if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,tickArray){if(!tickArray){return val;}else if(tickArray[0]>=val){return tickArray[0];}else{for(var i=0,len=tickArray.length;i<len;++i){var next=i+1;if(tickArray[next]&&tickArray[next]>=val){var diff1=val-tickArray[i];var diff2=tickArray[next]-val;return(diff2>diff1)?tickArray[i]:tickArray[next];}}
return tickArray[tickArray.length-1];}},toString:function(){return("DragDrop "+this.id);}};})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var Event=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(sMethod,args){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;}
oDD[sMethod].apply(oDD,args);}}},_onLoad:function(){this.init();Event.on(document,"mouseup",this.handleMouseUp,this,true);Event.on(document,"mousemove",this.handleMouseMove,this,true);Event.on(window,"unload",this._onUnload,this,true);Event.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){if(!this.initialized){this.init();}
if(!this.ids[sGroup]){this.ids[sGroup]={};}
this.ids[sGroup][oDD.id]=oDD;},removeDDFromGroup:function(oDD,sGroup){if(!this.ids[sGroup]){this.ids[sGroup]={};}
var obj=this.ids[sGroup];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g]&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}}
delete this.handleIds[oDD.id];},regHandle:function(sDDId,sHandleId){if(!this.handleIds[sDDId]){this.handleIds[sDDId]={};}
this.handleIds[sDDId][sHandleId]=sHandleId;},isDragDrop:function(id){return(this.getDDById(id))?true:false;},getRelated:function(p_oDD,bTargetsOnly){var oDDs=[];for(var i in p_oDD.groups){for(var j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;}
if(!bTargetsOnly||dd.isTarget){oDDs[oDDs.length]=dd;}}}
return oDDs;},isLegalTarget:function(oDD,oTargetDD){var targets=this.getRelated(oDD,true);for(var i=0,len=targets.length;i<len;++i){if(targets[i].id==oTargetDD.id){return true;}}
return false;},isTypeOfDD:function(oDD){return(oDD&&oDD.__ygDragDrop);},isHandle:function(sDDId,sHandleId){return(this.handleIds[sDDId]&&this.handleIds[sDDId][sHandleId]);},getDDById:function(id){for(var i in this.ids){if(this.ids[i][id]){return this.ids[i][id];}}
return null;},handleMouseDown:function(e,oDD){if(Ext.QuickTips){Ext.QuickTips.disable();}
if(this.dragCurrent){this.handleMouseUp(e);}
this.currentTarget=e.getTarget();this.dragCurrent=oDD;var el=oDD.getEl();this.startX=e.getPageX();this.startY=e.getPageY();this.deltaX=this.startX-el.offsetLeft;this.deltaY=this.startY-el.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var DDM=Ext.dd.DDM;DDM.startDrag(DDM.startX,DDM.startY);},this.clickTimeThresh);},startDrag:function(x,y){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(x,y);this.dragCurrent.startDrag(x,y);}
this.dragThreshMet=true;},handleMouseUp:function(e){if(Ext.QuickTips){Ext.QuickTips.enable();}
if(!this.dragCurrent){return;}
clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(e,true);}else{}
this.stopDrag(e);this.stopEvent(e);},stopEvent:function(e){if(this.stopPropagation){e.stopPropagation();}
if(this.preventDefault){e.preventDefault();}},stopDrag:function(e){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(e);this.dragCurrent.endDrag(e);}
this.dragCurrent.onMouseUp(e);}
this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(e){if(!this.dragCurrent){return true;}
if(Ext.isIE&&(e.button!==0&&e.button!==1&&e.button!==2)){this.stopEvent(e);return this.handleMouseUp(e);}
if(!this.dragThreshMet){var diffX=Math.abs(this.startX-e.getPageX());var diffY=Math.abs(this.startY-e.getPageY());if(diffX>this.clickPixelThresh||diffY>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}
if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);if(!this.dragCurrent.moveOnly){this.fireEvents(e,false);}}
this.stopEvent(e);return true;},fireEvents:function(e,isDrop){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;}
var pt=e.getPoint();var oldOvers=[];var outEvts=[];var overEvts=[];var dropEvts=[];var enterEvts=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;}
if(!this.isOverTarget(pt,ddo,this.mode)){outEvts.push(ddo);}
oldOvers[i]=true;delete this.dragOvers[i];}
for(var sGroup in dc.groups){if("string"!=typeof sGroup){continue;}
for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(!this.isTypeOfDD(oDD)){continue;}
if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(isDrop){dropEvts.push(oDD);}else{if(!oldOvers[oDD.id]){enterEvts.push(oDD);}else{overEvts.push(oDD);}
this.dragOvers[oDD.id]=oDD;}}}}}
if(this.mode){if(outEvts.length){dc.b4DragOut(e,outEvts);dc.onDragOut(e,outEvts);}
if(enterEvts.length){dc.onDragEnter(e,enterEvts);}
if(overEvts.length){dc.b4DragOver(e,overEvts);dc.onDragOver(e,overEvts);}
if(dropEvts.length){dc.b4DragDrop(e,dropEvts);dc.onDragDrop(e,dropEvts);}}else{var len=0;for(i=0,len=outEvts.length;i<len;++i){dc.b4DragOut(e,outEvts[i].id);dc.onDragOut(e,outEvts[i].id);}
for(i=0,len=enterEvts.length;i<len;++i){dc.onDragEnter(e,enterEvts[i].id);}
for(i=0,len=overEvts.length;i<len;++i){dc.b4DragOver(e,overEvts[i].id);dc.onDragOver(e,overEvts[i].id);}
for(i=0,len=dropEvts.length;i<len;++i){dc.b4DragDrop(e,dropEvts[i].id);dc.onDragDrop(e,dropEvts[i].id);}}
if(isDrop&&!dropEvts.length){dc.onInvalidDrop(e);}},getBestMatch:function(dds){var winner=null;var len=dds.length;if(len==1){winner=dds[0];}else{for(var i=0;i<len;++i){var dd=dds[i];if(dd.cursorIsOver){winner=dd;break;}else{if(!winner||winner.overlap.getArea()<dd.overlap.getArea()){winner=dd;}}}}
return winner;},refreshCache:function(groups){for(var sGroup in groups){if("string"!=typeof sGroup){continue;}
for(var i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(this.isTypeOfDD(oDD)){var loc=this.getLocation(oDD);if(loc){this.locationCache[oDD.id]=loc;}else{delete this.locationCache[oDD.id];}}}}},verifyEl:function(el){if(el){var parent;if(Ext.isIE){try{parent=el.offsetParent;}catch(e){}}else{parent=el.offsetParent;}
if(parent){return true;}}
return false;},getLocation:function(oDD){if(!this.isTypeOfDD(oDD)){return null;}
var el=oDD.getEl(),pos,x1,x2,y1,y2,t,r,b,l;try{pos=Ext.lib.Dom.getXY(el);}catch(e){}
if(!pos){return null;}
x1=pos[0];x2=x1+el.offsetWidth;y1=pos[1];y2=y1+el.offsetHeight;t=y1-oDD.padding[0];r=x2+oDD.padding[1];b=y2+oDD.padding[2];l=x1-oDD.padding[3];return new Ext.lib.Region(t,r,b,l);},isOverTarget:function(pt,oTarget,intersect){var loc=this.locationCache[oTarget.id];if(!loc||!this.useCache){loc=this.getLocation(oTarget);this.locationCache[oTarget.id]=loc;}
if(!loc){return false;}
oTarget.cursorIsOver=loc.contains(pt);var dc=this.dragCurrent;if(!dc||!dc.getTargetCoord||(!intersect&&!dc.constrainX&&!dc.constrainY)){return oTarget.cursorIsOver;}
oTarget.overlap=null;var pos=dc.getTargetCoord(pt.x,pt.y);var el=dc.getDragEl();var curRegion=new Ext.lib.Region(pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);var overlap=curRegion.intersect(loc);if(overlap){oTarget.overlap=overlap;return(intersect)?true:oTarget.cursorIsOver;}else{return false;}},_onUnload:function(e,me){Ext.dd.DragDropMgr.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}
this._execOnAll("unreg",[]);for(var i in this.elementCache){delete this.elementCache[i];}
this.elementCache={};this.ids={};},elementCache:{},getElWrapper:function(id){var oWrapper=this.elementCache[id];if(!oWrapper||!oWrapper.el){oWrapper=this.elementCache[id]=new this.ElementWrapper(Ext.getDom(id));}
return oWrapper;},getElement:function(id){return Ext.getDom(id);},getCss:function(id){var el=Ext.getDom(id);return(el)?el.style:null;},ElementWrapper:function(el){this.el=el||null;this.id=this.el&&el.id;this.css=this.el&&el.style;},getPosX:function(el){return Ext.lib.Dom.getX(el);},getPosY:function(el){return Ext.lib.Dom.getY(el);},swapNode:function(n1,n2){if(n1.swapNode){n1.swapNode(n2);}else{var p=n2.parentNode;var s=n2.nextSibling;if(s==n1){p.insertBefore(n1,n2);}else if(n2==n1.nextSibling){p.insertBefore(n2,n1);}else{n1.parentNode.replaceChild(n2,n1);p.insertBefore(n1,s);}}},getScroll:function(){var t,l,dde=document.documentElement,db=document.body;if(dde&&(dde.scrollTop||dde.scrollLeft)){t=dde.scrollTop;l=dde.scrollLeft;}else if(db){t=db.scrollTop;l=db.scrollLeft;}else{}
return{top:t,left:l};},getStyle:function(el,styleProp){return Ext.fly(el).getStyle(styleProp);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(moveEl,targetEl){var aCoord=Ext.lib.Dom.getXY(targetEl);Ext.lib.Dom.setXY(moveEl,aCoord);},numericSort:function(a,b){return(a-b);},_timeoutCount:0,_addListeners:function(){var DDM=Ext.dd.DDM;if(Ext.lib.Event&&document){DDM._onLoad();}else{if(DDM._timeoutCount>2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(node,id){if(this.isHandle(id,node.id)){return true;}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}}
return false;}};}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners();}
Ext.dd.DD=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(iPageX,iPageY){var x=iPageX-this.startPageX;var y=iPageY-this.startPageY;this.setDelta(x,y);},setDelta:function(iDeltaX,iDeltaY){this.deltaX=iDeltaX;this.deltaY=iDeltaY;},setDragElPos:function(iPageX,iPageY){var el=this.getDragEl();this.alignElWithMouse(el,iPageX,iPageY);},alignElWithMouse:function(el,iPageX,iPageY){var oCoord=this.getTargetCoord(iPageX,iPageY);var fly=el.dom?el:Ext.fly(el,'_dd');if(!this.deltaSetXY){var aCoord=[oCoord.x,oCoord.y];fly.setXY(aCoord);var newLeft=fly.getLeft(true);var newTop=fly.getTop(true);this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y];}else{fly.setLeftTop(oCoord.x+this.deltaSetXY[0],oCoord.y+this.deltaSetXY[1]);}
this.cachePosition(oCoord.x,oCoord.y);this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);return oCoord;},cachePosition:function(iPageX,iPageY){if(iPageX){this.lastPageX=iPageX;this.lastPageY=iPageY;}else{var aCoord=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=aCoord[0];this.lastPageY=aCoord[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var clientH=Ext.lib.Dom.getViewHeight();var clientW=Ext.lib.Dom.getViewWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var right=w+x;var toBot=(clientH+st-y-this.deltaY);var toRight=(clientW+sl-x-this.deltaX);var thresh=40;var scrAmt=(document.all)?80:30;if(bot>clientH&&toBot<thresh){window.scrollTo(sl,st+scrAmt);}
if(y<st&&st>0&&y-st<thresh){window.scrollTo(sl,st-scrAmt);}
if(right>clientW&&toRight<thresh){window.scrollTo(sl+scrAmt,st);}
if(x<sl&&sl>0&&x-sl<thresh){window.scrollTo(sl-scrAmt,st);}}},getTargetCoord:function(iPageX,iPageY){var x=iPageX-this.deltaX;var y=iPageY-this.deltaY;if(this.constrainX){if(x<this.minX){x=this.minX;}
if(x>this.maxX){x=this.maxX;}}
if(this.constrainY){if(y<this.minY){y=this.minY;}
if(y>this.maxY){y=this.maxY;}}
x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y};},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(e){this.autoOffset(e.getPageX(),e.getPageY());},b4Drag:function(e){this.setDragElPos(e.getPageX(),e.getPageY());},toString:function(){return("DD "+this.id);}});Ext.dd.DDProxy=function(id,sGroup,config){if(id){this.init(id,sGroup,config);this.initFrame();}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame();},50);return;}
var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId);},showFrame:function(iPageX,iPageY){var el=this.getEl();var dragEl=this.getDragEl();var s=dragEl.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));}
this.setDragElPos(iPageX,iPageY);Ext.fly(dragEl).show();},_resizeProxy:function(){if(this.resizeFrame){var el=this.getEl();Ext.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight);}},b4MouseDown:function(e){var x=e.getPageX();var y=e.getPageY();this.autoOffset(x,y);this.setDragElPos(x,y);},b4StartDrag:function(x,y){this.showFrame(x,y);},b4EndDrag:function(e){Ext.fly(this.getDragEl()).hide();},endDrag:function(e){var lel=this.getEl();var del=this.getDragEl();del.style.visibility="";this.beforeMove();lel.style.visibility="hidden";Ext.dd.DDM.moveToEl(lel,del);del.style.visibility="hidden";lel.style.visibility="";this.afterDrag();},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id);}});Ext.dd.DDTarget=function(id,sGroup,config){if(id){this.initTarget(id,sGroup,config);}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return("DDTarget "+this.id);}});Ext.dd.DragTracker=function(config){Ext.apply(this,config);this.addEvents('mousedown','mouseup','mousemove','dragstart','dragend','drag');this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el);}}
Ext.extend(Ext.dd.DragTracker,Ext.util.Observable,{active:false,tolerance:5,autoStart:false,initEl:function(el){this.el=Ext.get(el);el.on('mousedown',this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined);},destroy:function(){this.el.un('mousedown',this.onMouseDown,this);},onMouseDown:function(e,target){if(this.fireEvent('mousedown',this,e)!==false&&this.onBeforeStart(e)!==false){this.startXY=this.lastXY=e.getXY();this.dragTarget=this.delegate?target:this.el.dom;e.preventDefault();var doc=Ext.getDoc();doc.on('mouseup',this.onMouseUp,this);doc.on('mousemove',this.onMouseMove,this);doc.on('selectstart',this.stopSelect,this);if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this);}}},onMouseMove:function(e,target){if(this.active&&Ext.isIE&&!e.browserEvent.button){e.preventDefault();this.onMouseUp(e);return;}
e.preventDefault();var xy=e.getXY(),s=this.startXY;this.lastXY=xy;if(!this.active){if(Math.abs(s[0]-xy[0])>this.tolerance||Math.abs(s[1]-xy[1])>this.tolerance){this.triggerStart();}else{return;}}
this.fireEvent('mousemove',this,e);this.onDrag(e);this.fireEvent('drag',this,e);},onMouseUp:function(e){var doc=Ext.getDoc();doc.un('mousemove',this.onMouseMove,this);doc.un('mouseup',this.onMouseUp,this);doc.un('selectstart',this.stopSelect,this);e.preventDefault();this.clearStart();this.active=false;delete this.elRegion;this.fireEvent('mouseup',this,e);this.onEnd(e);this.fireEvent('dragend',this,e);},triggerStart:function(isTimer){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent('dragstart',this,this.startXY);},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer;}},stopSelect:function(e){e.stopEvent();return false;},onBeforeStart:function(e){},onStart:function(xy){},onDrag:function(e){},onEnd:function(e){},getDragTarget:function(){return this.dragTarget;},getDragCt:function(){return this.el;},getXY:function(constrain){return constrain?this.constrainModes[constrain].call(this,this.lastXY):this.lastXY;},getOffset:function(constrain){var xy=this.getXY(constrain);var s=this.startXY;return[s[0]-xy[0],s[1]-xy[1]];},constrainModes:{'point':function(xy){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion();}
var dr=this.dragRegion;dr.left=xy[0];dr.top=xy[1];dr.right=xy[0];dr.bottom=xy[1];dr.constrainTo(this.elRegion);return[dr.left,dr.top];}}});Ext.dd.ScrollManager=function(){var ddm=Ext.dd.DragDropMgr;var els={};var dragEl=null;var proc={};var onStop=function(e){dragEl=null;clearProc();};var triggerRefresh=function(){if(ddm.dragCurrent){ddm.refreshCache(ddm.dragCurrent.groups);}};var doScroll=function(){if(ddm.dragCurrent){var dds=Ext.dd.ScrollManager;var inc=proc.el.ddScrollConfig?proc.el.ddScrollConfig.increment:dds.increment;if(!dds.animate){if(proc.el.scroll(proc.dir,inc)){triggerRefresh();}}else{proc.el.scroll(proc.dir,inc,true,dds.animDuration,triggerRefresh);}}};var clearProc=function(){if(proc.id){clearInterval(proc.id);}
proc.id=0;proc.el=null;proc.dir="";};var startProc=function(el,dir){clearProc();proc.el=el;proc.dir=dir;var freq=(el.ddScrollConfig&&el.ddScrollConfig.frequency)?el.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;proc.id=setInterval(doScroll,freq);};var onFire=function(e,isDrop){if(isDrop||!ddm.dragCurrent){return;}
var dds=Ext.dd.ScrollManager;if(!dragEl||dragEl!=ddm.dragCurrent){dragEl=ddm.dragCurrent;dds.refreshCache();}
var xy=Ext.lib.Event.getXY(e);var pt=new Ext.lib.Point(xy[0],xy[1]);for(var id in els){var el=els[id],r=el._region;var c=el.ddScrollConfig?el.ddScrollConfig:dds;if(r&&r.contains(pt)&&el.isScrollable()){if(r.bottom-pt.y<=c.vthresh){if(proc.el!=el){startProc(el,"down");}
return;}else if(r.right-pt.x<=c.hthresh){if(proc.el!=el){startProc(el,"left");}
return;}else if(pt.y-r.top<=c.vthresh){if(proc.el!=el){startProc(el,"up");}
return;}else if(pt.x-r.left<=c.hthresh){if(proc.el!=el){startProc(el,"right");}
return;}}}
clearProc();};ddm.fireEvents=ddm.fireEvents.createSequence(onFire,ddm);ddm.stopDrag=ddm.stopDrag.createSequence(onStop,ddm);return{register:function(el){if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){this.register(el[i]);}}else{el=Ext.get(el);els[el.id]=el;}},unregister:function(el){if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){this.unregister(el[i]);}}else{el=Ext.get(el);delete els[el.id];}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:.4,refreshCache:function(){for(var id in els){if(typeof els[id]=='object'){els[id]._region=els[id].getRegion();}}}};}();Ext.dd.Registry=function(){var elements={};var handles={};var autoIdSeed=0;var getId=function(el,autogen){if(typeof el=="string"){return el;}
var id=el.id;if(!id&&autogen!==false){id="extdd-"+(++autoIdSeed);el.id=id;}
return id;};return{register:function(el,data){data=data||{};if(typeof el=="string"){el=document.getElementById(el);}
data.ddel=el;elements[getId(el)]=data;if(data.isHandle!==false){handles[data.ddel.id]=data;}
if(data.handles){var hs=data.handles;for(var i=0,len=hs.length;i<len;i++){handles[getId(hs[i])]=data;}}},unregister:function(el){var id=getId(el,false);var data=elements[id];if(data){delete elements[id];if(data.handles){var hs=data.handles;for(var i=0,len=hs.length;i<len;i++){delete handles[getId(hs[i],false)];}}}},getHandle:function(id){if(typeof id!="string"){id=id.id;}
return handles[id];},getHandleFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);return t?handles[t.id]:null;},getTarget:function(id){if(typeof id!="string"){id=id.id;}
return elements[id];},getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);return t?elements[t.id]||handles[t.id]:null;}};}();Ext.dd.StatusProxy=function(config){Ext.apply(this,config);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:"x-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drop-icon"},{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:!config||config.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed;};Ext.dd.StatusProxy.prototype={dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",setStatus:function(cssClass){cssClass=cssClass||this.dropNotAllowed;if(this.dropStatus!=cssClass){this.el.replaceClass(this.dropStatus,cssClass);this.dropStatus=cssClass;}},reset:function(clearGhost){this.el.dom.className="x-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(clearGhost){this.ghost.update("");}},update:function(html){if(typeof html=="string"){this.ghost.update(html);}else{this.ghost.update("");html.style.margin="0";this.ghost.dom.appendChild(html);}
var el=this.ghost.dom.firstChild;if(el){Ext.fly(el).setStyle(Ext.isIE?'styleFloat':'cssFloat','none');}},getEl:function(){return this.el;},getGhost:function(){return this.ghost;},hide:function(clear){this.el.hide();if(clear){this.reset(true);}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop();}},show:function(){this.el.show();},sync:function(){this.el.sync();},repair:function(xy,callback,scope){this.callback=callback;this.scope=scope;if(xy&&this.animRepair!==false){this.el.addClass("x-dd-drag-repair");this.el.hideUnders(true);this.anim=this.el.shift({duration:this.repairDuration||.5,easing:'easeOut',xy:xy,stopFx:true,callback:this.afterRepair,scope:this});}else{this.afterRepair();}},afterRepair:function(){this.hide(true);if(typeof this.callback=="function"){this.callback.call(this.scope||this);}
this.callback=null;this.scope=null;}};Ext.dd.DragSource=function(el,config){this.el=Ext.get(el);if(!this.dragData){this.dragData={};}
Ext.apply(this,config);if(!this.proxy){this.proxy=new Ext.dd.StatusProxy();}
Ext.dd.DragSource.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true});this.dragging=false;};Ext.extend(Ext.dd.DragSource,Ext.dd.DDProxy,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",getDragData:function(e){return this.dragData;},onDragEnter:function(e,id){var target=Ext.dd.DragDropMgr.getDDById(id);this.cachedTarget=target;if(this.beforeDragEnter(target,e,id)!==false){if(target.isNotifyTarget){var status=target.notifyEnter(this,e,this.dragData);this.proxy.setStatus(status);}else{this.proxy.setStatus(this.dropAllowed);}
if(this.afterDragEnter){this.afterDragEnter(target,e,id);}}},beforeDragEnter:function(target,e,id){return true;},alignElWithMouse:function(){Ext.dd.DragSource.superclass.alignElWithMouse.apply(this,arguments);this.proxy.sync();},onDragOver:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragOver(target,e,id)!==false){if(target.isNotifyTarget){var status=target.notifyOver(this,e,this.dragData);this.proxy.setStatus(status);}
if(this.afterDragOver){this.afterDragOver(target,e,id);}}},beforeDragOver:function(target,e,id){return true;},onDragOut:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragOut(target,e,id)!==false){if(target.isNotifyTarget){target.notifyOut(this,e,this.dragData);}
this.proxy.reset();if(this.afterDragOut){this.afterDragOut(target,e,id);}}
this.cachedTarget=null;},beforeDragOut:function(target,e,id){return true;},onDragDrop:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragDrop(target,e,id)!==false){if(target.isNotifyTarget){if(target.notifyDrop(this,e,this.dragData)){this.onValidDrop(target,e,id);}else{this.onInvalidDrop(target,e,id);}}else{this.onValidDrop(target,e,id);}
if(this.afterDragDrop){this.afterDragDrop(target,e,id);}}
delete this.cachedTarget;},beforeDragDrop:function(target,e,id){return true;},onValidDrop:function(target,e,id){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(target,e,id);}},getRepairXY:function(e,data){return this.el.getXY();},onInvalidDrop:function(target,e,id){this.beforeInvalidDrop(target,e,id);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,e,this.dragData);}
this.cacheTarget=null;}
this.proxy.repair(this.getRepairXY(e,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(e,id);}},afterRepair:function(){if(Ext.enableFx){this.el.highlight(this.hlColor||"c3daf9");}
this.dragging=false;},beforeInvalidDrop:function(target,e,id){return true;},handleMouseDown:function(e){if(this.dragging){return;}
var data=this.getDragData(e);if(data&&this.onBeforeDrag(data,e)!==false){this.dragData=data;this.proxy.stop();Ext.dd.DragSource.superclass.handleMouseDown.apply(this,arguments);}},onBeforeDrag:function(data,e){return true;},onStartDrag:Ext.emptyFn,startDrag:function(x,y){this.proxy.reset();this.dragging=true;this.proxy.update("");this.onInitDrag(x,y);this.proxy.show();},onInitDrag:function(x,y){var clone=this.el.dom.cloneNode(true);clone.id=Ext.id();this.proxy.update(clone);this.onStartDrag(x,y);return true;},getProxy:function(){return this.proxy;},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false;},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups);},b4EndDrag:function(e){},endDrag:function(e){this.onEndDrag(this.dragData,e);},onEndDrag:function(data,e){},autoOffset:function(x,y){this.setDelta(-12,-20);}});Ext.dd.DropTarget=function(el,config){this.el=Ext.get(el);Ext.apply(this,config);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el);}
Ext.dd.DropTarget.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{isTarget:true});};Ext.extend(Ext.dd.DropTarget,Ext.dd.DDTarget,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(dd,e,data){if(this.overClass){this.el.addClass(this.overClass);}
return this.dropAllowed;},notifyOver:function(dd,e,data){return this.dropAllowed;},notifyOut:function(dd,e,data){if(this.overClass){this.el.removeClass(this.overClass);}},notifyDrop:function(dd,e,data){return false;}});Ext.dd.DragZone=function(el,config){Ext.dd.DragZone.superclass.constructor.call(this,el,config);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el);}};Ext.extend(Ext.dd.DragZone,Ext.dd.DragSource,{getDragData:function(e){return Ext.dd.Registry.getHandleFromEvent(e);},onInitDrag:function(x,y){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(x,y);return true;},afterRepair:function(){if(Ext.enableFx){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9");}
this.dragging=false;},getRepairXY:function(e){return Ext.Element.fly(this.dragData.ddel).getXY();}});Ext.dd.DropZone=function(el,config){Ext.dd.DropZone.superclass.constructor.call(this,el,config);};Ext.extend(Ext.dd.DropZone,Ext.dd.DropTarget,{getTargetFromEvent:function(e){return Ext.dd.Registry.getTargetFromEvent(e);},onNodeEnter:function(n,dd,e,data){},onNodeOver:function(n,dd,e,data){return this.dropAllowed;},onNodeOut:function(n,dd,e,data){},onNodeDrop:function(n,dd,e,data){return false;},onContainerOver:function(dd,e,data){return this.dropNotAllowed;},onContainerDrop:function(dd,e,data){return false;},notifyEnter:function(dd,e,data){return this.dropNotAllowed;},notifyOver:function(dd,e,data){var n=this.getTargetFromEvent(e);if(!n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null;}
return this.onContainerOver(dd,e,data);}
if(this.lastOverNode!=n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);}
this.onNodeEnter(n,dd,e,data);this.lastOverNode=n;}
return this.onNodeOver(n,dd,e,data);},notifyOut:function(dd,e,data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null;}},notifyDrop:function(dd,e,data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null;}
var n=this.getTargetFromEvent(e);return n?this.onNodeDrop(n,dd,e,data):this.onContainerDrop(dd,e,data);},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups);}});Ext.data.SortTypes={none:function(s){return s;},stripTagsRE:/<\/?[^>]+>/gi,asText:function(s){return String(s).replace(this.stripTagsRE,"");},asUCText:function(s){return String(s).toUpperCase().replace(this.stripTagsRE,"");},asUCString:function(s){return String(s).toUpperCase();},asDate:function(s){if(!s){return 0;}
if(Ext.isDate(s)){return s.getTime();}
return Date.parse(String(s));},asFloat:function(s){var val=parseFloat(String(s).replace(/,/g,""));if(isNaN(val))val=0;return val;},asInt:function(s){var val=parseInt(String(s).replace(/,/g,""));if(isNaN(val))val=0;return val;}};Ext.data.Record=function(data,id){this.id=(id||id===0)?id:++Ext.data.Record.AUTO_ID;this.data=data||{};};Ext.data.Record.create=function(o){var f=Ext.extend(Ext.data.Record,{});var p=f.prototype;p.fields=new Ext.util.MixedCollection(false,function(field){return field.name;});for(var i=0,len=o.length;i<len;i++){p.fields.add(new Ext.data.Field(o[i]));}
f.getField=function(name){return p.fields.get(name);};return f;};Ext.data.Record.AUTO_ID=1000;Ext.data.Record.EDIT='edit';Ext.data.Record.REJECT='reject';Ext.data.Record.COMMIT='commit';Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,join:function(store){this.store=store;},set:function(name,value){if(String(this.data[name])==String(value)){return;}
this.dirty=true;if(!this.modified){this.modified={};}
if(typeof this.modified[name]=='undefined'){this.modified[name]=this.data[name];}
this.data[name]=value;if(!this.editing&&this.store){this.store.afterEdit(this);}},get:function(name){return this.data[name];},beginEdit:function(){this.editing=true;this.modified={};},cancelEdit:function(){this.editing=false;delete this.modified;},endEdit:function(){this.editing=false;if(this.dirty&&this.store){this.store.afterEdit(this);}},reject:function(silent){var m=this.modified;for(var n in m){if(typeof m[n]!="function"){this.data[n]=m[n];}}
this.dirty=false;delete this.modified;this.editing=false;if(this.store&&silent!==true){this.store.afterReject(this);}},commit:function(silent){this.dirty=false;delete this.modified;this.editing=false;if(this.store&&silent!==true){this.store.afterCommit(this);}},getChanges:function(){var m=this.modified,cs={};for(var n in m){if(m.hasOwnProperty(n)){cs[n]=this.data[n];}}
return cs;},hasError:function(){return this.error!=null;},clearError:function(){this.error=null;},copy:function(newId){return new this.constructor(Ext.apply({},this.data),newId||this.id);},isModified:function(fieldName){return!!(this.modified&&this.modified.hasOwnProperty(fieldName));}};Ext.StoreMgr=Ext.apply(new Ext.util.MixedCollection(),{register:function(){for(var i=0,s;s=arguments[i];i++){this.add(s);}},unregister:function(){for(var i=0,s;s=arguments[i];i++){this.remove(this.lookup(s));}},lookup:function(id){return typeof id=="object"?id:this.get(id);},getKey:function(o){return o.storeId||o.id;}});Ext.data.Store=function(config){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(o){return o.id;};this.baseParams={};this.paramNames={"start":"start","limit":"limit","sort":"sort","dir":"dir"};if(config&&config.data){this.inlineData=config.data;delete config.data;}
Ext.apply(this,config);if(this.url&&!this.proxy){this.proxy=new Ext.data.HttpProxy({url:this.url});}
if(this.reader){if(!this.recordType){this.recordType=this.reader.recordType;}
if(this.reader.onMetaChange){this.reader.onMetaChange=this.onMetaChange.createDelegate(this);}}
if(this.recordType){this.fields=this.recordType.prototype.fields;}
this.modified=[];this.addEvents('datachanged','metachange','add','remove','update','clear','beforeload','load','loadexception');if(this.proxy){this.relayEvents(this.proxy,["loadexception"]);}
this.sortToggle={};if(this.sortInfo){this.setDefaultSort(this.sortInfo.field,this.sortInfo.direction);}
Ext.data.Store.superclass.constructor.call(this);if(this.storeId||this.id){Ext.StoreMgr.register(this);}
if(this.inlineData){this.loadData(this.inlineData);delete this.inlineData;}else if(this.autoLoad){this.load.defer(10,this,[typeof this.autoLoad=='object'?this.autoLoad:undefined]);}};Ext.extend(Ext.data.Store,Ext.util.Observable,{remoteSort:false,pruneModifiedRecords:false,lastOptions:null,destroy:function(){if(this.storeId||this.id){Ext.StoreMgr.unregister(this);}
this.data=null;Ext.destroy(this.proxy);this.reader=null;this.purgeListeners();},add:function(records){records=[].concat(records);if(records.length<1){return;}
for(var i=0,len=records.length;i<len;i++){records[i].join(this);}
var index=this.data.length;this.data.addAll(records);if(this.snapshot){this.snapshot.addAll(records);}
this.fireEvent("add",this,records,index);},addSorted:function(record){var index=this.findInsertIndex(record);this.insert(index,record);},remove:function(record){var index=this.data.indexOf(record);if(index>-1){this.data.removeAt(index);if(this.pruneModifiedRecords){this.modified.remove(record);}
if(this.snapshot){this.snapshot.remove(record);}
this.fireEvent("remove",this,record,index);}},removeAt:function(index){this.remove(this.getAt(index));},removeAll:function(){this.data.clear();if(this.snapshot){this.snapshot.clear();}
if(this.pruneModifiedRecords){this.modified=[];}
this.fireEvent("clear",this);},insert:function(index,records){records=[].concat(records);for(var i=0,len=records.length;i<len;i++){this.data.insert(index,records[i]);records[i].join(this);}
this.fireEvent("add",this,records,index);},indexOf:function(record){return this.data.indexOf(record);},indexOfId:function(id){return this.data.indexOfKey(id);},getById:function(id){return this.data.key(id);},getAt:function(index){return this.data.itemAt(index);},getRange:function(start,end){return this.data.getRange(start,end);},storeOptions:function(o){o=Ext.apply({},o);delete o.callback;delete o.scope;this.lastOptions=o;},load:function(options){options=options||{};if(this.fireEvent("beforeload",this,options)!==false){this.storeOptions(options);var p=Ext.apply(options.params||{},this.baseParams);if(this.sortInfo&&this.remoteSort){var pn=this.paramNames;p[pn["sort"]]=this.sortInfo.field;p[pn["dir"]]=this.sortInfo.direction;}
this.proxy.load(p,this.reader,this.loadRecords,this,options);return true;}else{return false;}},reload:function(options){this.load(Ext.applyIf(options||{},this.lastOptions));},loadRecords:function(o,options,success){if(!o||success===false){if(success!==false){this.fireEvent("load",this,[],options);}
if(options.callback){options.callback.call(options.scope||this,[],options,false);}
return;}
var r=o.records,t=o.totalRecords||r.length;if(!options||options.add!==true){if(this.pruneModifiedRecords){this.modified=[];}
for(var i=0,len=r.length;i<len;i++){r[i].join(this);}
if(this.snapshot){this.data=this.snapshot;delete this.snapshot;}
this.data.clear();this.data.addAll(r);this.totalLength=t;this.applySort();this.fireEvent("datachanged",this);}else{this.totalLength=Math.max(t,this.data.length+r.length);this.add(r);}
this.fireEvent("load",this,r,options);if(options.callback){options.callback.call(options.scope||this,r,options,true);}},loadData:function(o,append){var r=this.reader.readRecords(o);this.loadRecords(r,{add:append},true);},getCount:function(){return this.data.length||0;},getTotalCount:function(){return this.totalLength||0;},getSortState:function(){return this.sortInfo;},applySort:function(){if(this.sortInfo&&!this.remoteSort){var s=this.sortInfo,f=s.field;this.sortData(f,s.direction);}},sortData:function(f,direction){direction=direction||'ASC';var st=this.fields.get(f).sortType;var fn=function(r1,r2){var v1=st(r1.data[f]),v2=st(r2.data[f]);return v1>v2?1:(v1<v2?-1:0);};this.data.sort(direction,fn);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(direction,fn);}},setDefaultSort:function(field,dir){dir=dir?dir.toUpperCase():"ASC";this.sortInfo={field:field,direction:dir};this.sortToggle[field]=dir;},sort:function(fieldName,dir){var f=this.fields.get(fieldName);if(!f){return false;}
if(!dir){if(this.sortInfo&&this.sortInfo.field==f.name){dir=(this.sortToggle[f.name]||"ASC").toggle("ASC","DESC");}else{dir=f.sortDir;}}
var st=(this.sortToggle)?this.sortToggle[f.name]:null;var si=(this.sortInfo)?this.sortInfo:null;this.sortToggle[f.name]=dir;this.sortInfo={field:f.name,direction:dir};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged",this);}else{if(!this.load(this.lastOptions)){if(st){this.sortToggle[f.name]=st;}
if(si){this.sortInfo=si;}}}},each:function(fn,scope){this.data.each(fn,scope);},getModifiedRecords:function(){return this.modified;},createFilterFn:function(property,value,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return false;}
value=this.data.createValueMatcher(value,anyMatch,caseSensitive);return function(r){return value.test(r.data[property]);};},sum:function(property,start,end){var rs=this.data.items,v=0;start=start||0;end=(end||end===0)?end:rs.length-1;for(var i=start;i<=end;i++){v+=(rs[i].data[property]||0);}
return v;},filter:function(property,value,anyMatch,caseSensitive){var fn=this.createFilterFn(property,value,anyMatch,caseSensitive);return fn?this.filterBy(fn):this.clearFilter();},filterBy:function(fn,scope){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(fn,scope||this);this.fireEvent("datachanged",this);},query:function(property,value,anyMatch,caseSensitive){var fn=this.createFilterFn(property,value,anyMatch,caseSensitive);return fn?this.queryBy(fn):this.data.clone();},queryBy:function(fn,scope){var data=this.snapshot||this.data;return data.filterBy(fn,scope||this);},find:function(property,value,start,anyMatch,caseSensitive){var fn=this.createFilterFn(property,value,anyMatch,caseSensitive);return fn?this.data.findIndexBy(fn,null,start):-1;},findBy:function(fn,scope,start){return this.data.findIndexBy(fn,scope,start);},collect:function(dataIndex,allowNull,bypassFilter){var d=(bypassFilter===true&&this.snapshot)?this.snapshot.items:this.data.items;var v,sv,r=[],l={};for(var i=0,len=d.length;i<len;i++){v=d[i].data[dataIndex];sv=String(v);if((allowNull||!Ext.isEmpty(v))&&!l[sv]){l[sv]=true;r[r.length]=v;}}
return r;},clearFilter:function(suppressEvent){if(this.isFiltered()){this.data=this.snapshot;delete this.snapshot;if(suppressEvent!==true){this.fireEvent("datachanged",this);}}},isFiltered:function(){return this.snapshot&&this.snapshot!=this.data;},afterEdit:function(record){if(this.modified.indexOf(record)==-1){this.modified.push(record);}
this.fireEvent("update",this,record,Ext.data.Record.EDIT);},afterReject:function(record){this.modified.remove(record);this.fireEvent("update",this,record,Ext.data.Record.REJECT);},afterCommit:function(record){this.modified.remove(record);this.fireEvent("update",this,record,Ext.data.Record.COMMIT);},commitChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,len=m.length;i<len;i++){m[i].commit();}},rejectChanges:function(){var m=this.modified.slice(0);this.modified=[];for(var i=0,len=m.length;i<len;i++){m[i].reject();}},onMetaChange:function(meta,rtype,o){this.recordType=rtype;this.fields=rtype.prototype.fields;delete this.snapshot;if(meta.sortInfo){this.sortInfo=meta.sortInfo;}else if(this.sortInfo&&!this.fields.get(this.sortInfo.field)){delete this.sortInfo;}
this.modified=[];this.fireEvent('metachange',this,this.reader.meta);},findInsertIndex:function(record){this.suspendEvents();var data=this.data.clone();this.data.add(record);this.applySort();var index=this.data.indexOf(record);this.data=data;this.resumeEvents();return index;}});Ext.data.SimpleStore=function(config){Ext.data.SimpleStore.superclass.constructor.call(this,Ext.apply(config,{reader:new Ext.data.ArrayReader({id:config.id},Ext.data.Record.create(config.fields))}));};Ext.extend(Ext.data.SimpleStore,Ext.data.Store,{loadData:function(data,append){if(this.expandData===true){var r=[];for(var i=0,len=data.length;i<len;i++){r[r.length]=[data[i]];}
data=r;}
Ext.data.SimpleStore.superclass.loadData.call(this,data,append);}});Ext.data.JsonStore=function(c){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(c,{proxy:c.proxy||(!c.data?new Ext.data.HttpProxy({url:c.url}):undefined),reader:new Ext.data.JsonReader(c,c.fields)}));};Ext.extend(Ext.data.JsonStore,Ext.data.Store);Ext.data.Field=function(config){if(typeof config=="string"){config={name:config};}
Ext.apply(this,config);if(!this.type){this.type="auto";}
var st=Ext.data.SortTypes;if(typeof this.sortType=="string"){this.sortType=st[this.sortType];}
if(!this.sortType){switch(this.type){case"string":this.sortType=st.asUCString;break;case"date":this.sortType=st.asDate;break;default:this.sortType=st.none;}}
var stripRe=/[\$,%]/g;if(!this.convert){var cv,dateFormat=this.dateFormat;switch(this.type){case"":case"auto":case undefined:cv=function(v){return v;};break;case"string":cv=function(v){return(v===undefined||v===null)?'':String(v);};break;case"int":cv=function(v){return v!==undefined&&v!==null&&v!==''?parseInt(String(v).replace(stripRe,""),10):'';};break;case"float":cv=function(v){return v!==undefined&&v!==null&&v!==''?parseFloat(String(v).replace(stripRe,""),10):'';};break;case"bool":case"boolean":cv=function(v){return v===true||v==="true"||v==1;};break;case"date":cv=function(v){if(!v){return'';}
if(Ext.isDate(v)){return v;}
if(dateFormat){if(dateFormat=="timestamp"){return new Date(v*1000);}
if(dateFormat=="time"){return new Date(parseInt(v,10));}
return Date.parseDate(v,dateFormat);}
var parsed=Date.parse(v);return parsed?new Date(parsed):null;};break;}
this.convert=cv;}};Ext.data.Field.prototype={dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC"};Ext.data.DataReader=function(meta,recordType){this.meta=meta;this.recordType=Ext.isArray(recordType)?Ext.data.Record.create(recordType):recordType;};Ext.data.DataReader.prototype={};Ext.data.DataProxy=function(){this.addEvents('beforeload','load');Ext.data.DataProxy.superclass.constructor.call(this);};Ext.extend(Ext.data.DataProxy,Ext.util.Observable,{destroy:function(){this.purgeListeners();}});Ext.data.MemoryProxy=function(data){Ext.data.MemoryProxy.superclass.constructor.call(this);this.data=data;};Ext.extend(Ext.data.MemoryProxy,Ext.data.DataProxy,{load:function(params,reader,callback,scope,arg){params=params||{};var result;try{result=reader.readRecords(this.data);}catch(e){this.fireEvent("loadexception",this,arg,null,e);callback.call(scope,null,arg,false);return;}
callback.call(scope,result,arg,true);},update:function(params,records){}});Ext.data.HttpProxy=function(conn){Ext.data.HttpProxy.superclass.constructor.call(this);this.conn=conn;this.useAjax=!conn||!conn.events;};Ext.extend(Ext.data.HttpProxy,Ext.data.DataProxy,{getConnection:function(){return this.useAjax?Ext.Ajax:this.conn;},load:function(params,reader,callback,scope,arg){if(this.fireEvent("beforeload",this,params)!==false){var o={params:params||{},request:{callback:callback,scope:scope,arg:arg},reader:reader,callback:this.loadResponse,scope:this};if(this.useAjax){Ext.applyIf(o,this.conn);if(this.activeRequest){Ext.Ajax.abort(this.activeRequest);}
this.activeRequest=Ext.Ajax.request(o);}else{this.conn.request(o);}}else{callback.call(scope||this,null,arg,false);}},loadResponse:function(o,success,response){delete this.activeRequest;if(!success){this.fireEvent("loadexception",this,o,response);o.request.callback.call(o.request.scope,null,o.request.arg,false);return;}
var result;try{result=o.reader.read(response);}catch(e){this.fireEvent("loadexception",this,o,response,e);o.request.callback.call(o.request.scope,null,o.request.arg,false);return;}
this.fireEvent("load",this,o,o.request.arg);o.request.callback.call(o.request.scope,result,o.request.arg,true);},update:function(dataSet){},updateResponse:function(dataSet){},destroy:function(){if(!this.useAjax){this.conn.abort();}else if(this.activeRequest){Ext.Ajax.abort(this.activeRequest);}
Ext.data.HttpProxy.superclass.destroy.call(this);}});Ext.data.ScriptTagProxy=function(config){Ext.data.ScriptTagProxy.superclass.constructor.call(this);Ext.apply(this,config);this.head=document.getElementsByTagName("head")[0];};Ext.data.ScriptTagProxy.TRANS_ID=1000;Ext.extend(Ext.data.ScriptTagProxy,Ext.data.DataProxy,{timeout:30000,callbackParam:"callback",nocache:true,load:function(params,reader,callback,scope,arg){if(this.fireEvent("beforeload",this,params)!==false){var p=Ext.urlEncode(Ext.apply(params,this.extraParams));var url=this.url;url+=(url.indexOf("?")!=-1?"&":"?")+p;if(this.nocache){url+="&_dc="+(new Date().getTime());}
var transId=++Ext.data.ScriptTagProxy.TRANS_ID;var trans={id:transId,cb:"stcCallback"+transId,scriptId:"stcScript"+transId,params:params,arg:arg,url:url,callback:callback,scope:scope,reader:reader};var conn=this;window[trans.cb]=function(o){conn.handleResponse(o,trans);};url+=String.format("&{0}={1}",this.callbackParam,trans.cb);if(this.autoAbort!==false){this.abort();}
trans.timeoutId=this.handleFailure.defer(this.timeout,this,[trans]);var script=document.createElement("script");script.setAttribute("src",url);script.setAttribute("type","text/javascript");script.setAttribute("id",trans.scriptId);this.head.appendChild(script);this.trans=trans;}else{callback.call(scope||this,null,arg,false);}},isLoading:function(){return this.trans?true:false;},abort:function(){if(this.isLoading()){this.destroyTrans(this.trans);}},destroyTrans:function(trans,isLoaded){this.head.removeChild(document.getElementById(trans.scriptId));clearTimeout(trans.timeoutId);if(isLoaded){window[trans.cb]=undefined;try{delete window[trans.cb];}catch(e){}}else{window[trans.cb]=function(){window[trans.cb]=undefined;try{delete window[trans.cb];}catch(e){}};}},handleResponse:function(o,trans){this.trans=false;this.destroyTrans(trans,true);var result;try{result=trans.reader.readRecords(o);}catch(e){this.fireEvent("loadexception",this,o,trans.arg,e);trans.callback.call(trans.scope||window,null,trans.arg,false);return;}
this.fireEvent("load",this,o,trans.arg);trans.callback.call(trans.scope||window,result,trans.arg,true);},handleFailure:function(trans){this.trans=false;this.destroyTrans(trans,false);this.fireEvent("loadexception",this,null,trans.arg);trans.callback.call(trans.scope||window,null,trans.arg,false);},destroy:function(){this.abort();Ext.data.ScriptTagProxy.superclass.destroy.call(this);}});Ext.data.JsonReader=function(meta,recordType){meta=meta||{};Ext.data.JsonReader.superclass.constructor.call(this,meta,recordType||meta.fields);};Ext.extend(Ext.data.JsonReader,Ext.data.DataReader,{read:function(response){var json=response.responseText;var o=eval("("+json+")");if(!o){throw{message:"JsonReader.read: Json object not found"};}
return this.readRecords(o);},onMetaChange:function(meta,recordType,o){},simpleAccess:function(obj,subsc){return obj[subsc];},getJsonAccessor:function(){var re=/[\[\.]/;return function(expr){try{return(re.test(expr))?new Function("obj","return obj."+expr):function(obj){return obj[expr];};}catch(e){}
return Ext.emptyFn;};}(),readRecords:function(o){this.jsonData=o;if(o.metaData){delete this.ef;this.meta=o.metaData;this.recordType=Ext.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta,this.recordType,o);}
var s=this.meta,Record=this.recordType,f=Record.prototype.fields,fi=f.items,fl=f.length;if(!this.ef){if(s.totalProperty){this.getTotal=this.getJsonAccessor(s.totalProperty);}
if(s.successProperty){this.getSuccess=this.getJsonAccessor(s.successProperty);}
this.getRoot=s.root?this.getJsonAccessor(s.root):function(p){return p;};if(s.id){var g=this.getJsonAccessor(s.id);this.getId=function(rec){var r=g(rec);return(r===undefined||r==="")?null:r;};}else{this.getId=function(){return null;};}
this.ef=[];for(var i=0;i<fl;i++){f=fi[i];var map=(f.mapping!==undefined&&f.mapping!==null)?f.mapping:f.name;this.ef[i]=this.getJsonAccessor(map);}}
var root=this.getRoot(o),c=root.length,totalRecords=c,success=true;if(s.totalProperty){var v=parseInt(this.getTotal(o),10);if(!isNaN(v)){totalRecords=v;}}
if(s.successProperty){var v=this.getSuccess(o);if(v===false||v==='false'){success=false;}}
var records=[];for(var i=0;i<c;i++){var n=root[i];var values={};var id=this.getId(n);for(var j=0;j<fl;j++){f=fi[j];var v=this.ef[j](n);values[f.name]=f.convert((v!==undefined)?v:f.defaultValue,n);}
var record=new Record(values,id);record.json=n;records[i]=record;}
return{success:success,records:records,totalRecords:totalRecords};}});Ext.data.XmlReader=function(meta,recordType){meta=meta||{};Ext.data.XmlReader.superclass.constructor.call(this,meta,recordType||meta.fields);};Ext.extend(Ext.data.XmlReader,Ext.data.DataReader,{read:function(response){var doc=response.responseXML;if(!doc){throw{message:"XmlReader.read: XML Document not available"};}
return this.readRecords(doc);},readRecords:function(doc){this.xmlData=doc;var root=doc.documentElement||doc;var q=Ext.DomQuery;var recordType=this.recordType,fields=recordType.prototype.fields;var sid=this.meta.id;var totalRecords=0,success=true;if(this.meta.totalRecords){totalRecords=q.selectNumber(this.meta.totalRecords,root,0);}
if(this.meta.success){var sv=q.selectValue(this.meta.success,root,true);success=sv!==false&&sv!=='false';}
var records=[];var ns=q.select(this.meta.record,root);for(var i=0,len=ns.length;i<len;i++){var n=ns[i];var values={};var id=sid?q.selectValue(sid,n):undefined;for(var j=0,jlen=fields.length;j<jlen;j++){var f=fields.items[j];var v=q.selectValue(Ext.isEmpty(f.mapping,true)?f.name:f.mapping,n,f.defaultValue);v=f.convert(v,n);values[f.name]=v;}
var record=new recordType(values,id);record.node=n;records[records.length]=record;}
return{success:success,records:records,totalRecords:totalRecords||records.length};}});Ext.data.ArrayReader=Ext.extend(Ext.data.JsonReader,{readRecords:function(o){var sid=this.meta?this.meta.id:null;var recordType=this.recordType,fields=recordType.prototype.fields;var records=[];var root=o;for(var i=0;i<root.length;i++){var n=root[i];var values={};var id=((sid||sid===0)&&n[sid]!==undefined&&n[sid]!==""?n[sid]:null);for(var j=0,jlen=fields.length;j<jlen;j++){var f=fields.items[j];var k=f.mapping!==undefined&&f.mapping!==null?f.mapping:j;var v=n[k]!==undefined?n[k]:f.defaultValue;v=f.convert(v,n);values[f.name]=v;}
var record=new recordType(values,id);record.json=n;records[records.length]=record;}
return{records:records,totalRecords:records.length};}});Ext.data.Tree=function(root){this.nodeHash={};this.root=null;if(root){this.setRootNode(root);}
this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this);};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments);},getRootNode:function(){return this.root;},setRootNode:function(node){this.root=node;node.ownerTree=this;node.isRoot=true;this.registerNode(node);return node;},getNodeById:function(id){return this.nodeHash[id];},registerNode:function(node){this.nodeHash[node.id]=node;},unregisterNode:function(node){delete this.nodeHash[node.id];},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]";}});Ext.data.Node=function(attributes){this.attributes=attributes||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"ynode-");this.attributes.id=this.id;}
this.childNodes=[];if(!this.childNodes.indexOf){this.childNodes.indexOf=function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o)return i;}
return-1;};}
this.parentNode=null;this.firstChild=null;this.lastChild=null;this.previousSibling=null;this.nextSibling=null;this.addEvents({"append":true,"remove":true,"move":true,"insert":true,"beforeappend":true,"beforeremove":true,"beforemove":true,"beforeinsert":true});this.listeners=this.attributes.listeners;Ext.data.Node.superclass.constructor.call(this);};Ext.extend(Ext.data.Node,Ext.util.Observable,{fireEvent:function(evtName){if(Ext.data.Node.superclass.fireEvent.apply(this,arguments)===false){return false;}
var ot=this.getOwnerTree();if(ot){if(ot.proxyNodeEvent.apply(ot,arguments)===false){return false;}}
return true;},isLeaf:function(){return this.leaf===true;},setFirstChild:function(node){this.firstChild=node;},setLastChild:function(node){this.lastChild=node;},isLast:function(){return(!this.parentNode?true:this.parentNode.lastChild==this);},isFirst:function(){return(!this.parentNode?true:this.parentNode.firstChild==this);},hasChildNodes:function(){return!this.isLeaf()&&this.childNodes.length>0;},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes();},appendChild:function(node){var multi=false;if(Ext.isArray(node)){multi=node;}else if(arguments.length>1){multi=arguments;}
if(multi){for(var i=0,len=multi.length;i<len;i++){this.appendChild(multi[i]);}}else{if(this.fireEvent("beforeappend",this.ownerTree,this,node)===false){return false;}
var index=this.childNodes.length;var oldParent=node.parentNode;if(oldParent){if(node.fireEvent("beforemove",node.getOwnerTree(),node,oldParent,this,index)===false){return false;}
oldParent.removeChild(node);}
index=this.childNodes.length;if(index==0){this.setFirstChild(node);}
this.childNodes.push(node);node.parentNode=this;var ps=this.childNodes[index-1];if(ps){node.previousSibling=ps;ps.nextSibling=node;}else{node.previousSibling=null;}
node.nextSibling=null;this.setLastChild(node);node.setOwnerTree(this.getOwnerTree());this.fireEvent("append",this.ownerTree,this,node,index);if(oldParent){node.fireEvent("move",this.ownerTree,node,oldParent,this,index);}
return node;}},removeChild:function(node){var index=this.childNodes.indexOf(node);if(index==-1){return false;}
if(this.fireEvent("beforeremove",this.ownerTree,this,node)===false){return false;}
this.childNodes.splice(index,1);if(node.previousSibling){node.previousSibling.nextSibling=node.nextSibling;}
if(node.nextSibling){node.nextSibling.previousSibling=node.previousSibling;}
if(this.firstChild==node){this.setFirstChild(node.nextSibling);}
if(this.lastChild==node){this.setLastChild(node.previousSibling);}
node.setOwnerTree(null);node.parentNode=null;node.previousSibling=null;node.nextSibling=null;this.fireEvent("remove",this.ownerTree,this,node);return node;},insertBefore:function(node,refNode){if(!refNode){return this.appendChild(node);}
if(node==refNode){return false;}
if(this.fireEvent("beforeinsert",this.ownerTree,this,node,refNode)===false){return false;}
var index=this.childNodes.indexOf(refNode);var oldParent=node.parentNode;var refIndex=index;if(oldParent==this&&this.childNodes.indexOf(node)<index){refIndex--;}
if(oldParent){if(node.fireEvent("beforemove",node.getOwnerTree(),node,oldParent,this,index,refNode)===false){return false;}
oldParent.removeChild(node);}
if(refIndex==0){this.setFirstChild(node);}
this.childNodes.splice(refIndex,0,node);node.parentNode=this;var ps=this.childNodes[refIndex-1];if(ps){node.previousSibling=ps;ps.nextSibling=node;}else{node.previousSibling=null;}
node.nextSibling=refNode;refNode.previousSibling=node;node.setOwnerTree(this.getOwnerTree());this.fireEvent("insert",this.ownerTree,this,node,refNode);if(oldParent){node.fireEvent("move",this.ownerTree,node,oldParent,this,refIndex,refNode);}
return node;},remove:function(){this.parentNode.removeChild(this);return this;},item:function(index){return this.childNodes[index];},replaceChild:function(newChild,oldChild){var s=oldChild?oldChild.nextSibling:null;this.removeChild(oldChild);this.insertBefore(newChild,s);return oldChild;},indexOf:function(child){return this.childNodes.indexOf(child);},getOwnerTree:function(){if(!this.ownerTree){var p=this;while(p){if(p.ownerTree){this.ownerTree=p.ownerTree;break;}
p=p.parentNode;}}
return this.ownerTree;},getDepth:function(){var depth=0;var p=this;while(p.parentNode){++depth;p=p.parentNode;}
return depth;},setOwnerTree:function(tree){if(tree!=this.ownerTree){if(this.ownerTree){this.ownerTree.unregisterNode(this);}
this.ownerTree=tree;var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].setOwnerTree(tree);}
if(tree){tree.registerNode(this);}}},getPath:function(attr){attr=attr||"id";var p=this.parentNode;var b=[this.attributes[attr]];while(p){b.unshift(p.attributes[attr]);p=p.parentNode;}
var sep=this.getOwnerTree().pathSeparator;return sep+b.join(sep);},bubble:function(fn,scope,args){var p=this;while(p){if(fn.apply(scope||p,args||[p])===false){break;}
p=p.parentNode;}},cascade:function(fn,scope,args){if(fn.apply(scope||this,args||[this])!==false){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].cascade(fn,scope,args);}}},eachChild:function(fn,scope,args){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){if(fn.apply(scope||this,args||[cs[i]])===false){break;}}},findChild:function(attribute,value){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){if(cs[i].attributes[attribute]==value){return cs[i];}}
return null;},findChildBy:function(fn,scope){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){if(fn.call(scope||cs[i],cs[i])===true){return cs[i];}}
return null;},sort:function(fn,scope){var cs=this.childNodes;var len=cs.length;if(len>0){var sortFn=scope?function(){fn.apply(scope,arguments);}:fn;cs.sort(sortFn);for(var i=0;i<len;i++){var n=cs[i];n.previousSibling=cs[i-1];n.nextSibling=cs[i+1];if(i==0){this.setFirstChild(n);}
if(i==len-1){this.setLastChild(n);}}}},contains:function(node){return node.isAncestor(this);},isAncestor:function(node){var p=this.parentNode;while(p){if(p==node){return true;}
p=p.parentNode;}
return false;},toString:function(){return"[Node"+(this.id?" "+this.id:"")+"]";}});Ext.data.GroupingStore=Ext.extend(Ext.data.Store,{constructor:function(config){Ext.data.GroupingStore.superclass.constructor.call(this,config);this.applyGroupField();},remoteGroup:false,groupOnSort:false,clearGrouping:function(){this.groupField=false;if(this.remoteGroup){if(this.baseParams){delete this.baseParams.groupBy;}
var lo=this.lastOptions;if(lo&&lo.params){delete lo.params.groupBy;}
this.reload();}else{this.applySort();this.fireEvent('datachanged',this);}},groupBy:function(field,forceRegroup){if(this.groupField==field&&!forceRegroup){return;}
this.groupField=field;this.applyGroupField();if(this.groupOnSort){this.sort(field);return;}
if(this.remoteGroup){this.reload();}else{var si=this.sortInfo||{};if(si.field!=field){this.applySort();}else{this.sortData(field);}
this.fireEvent('datachanged',this);}},applyGroupField:function(){if(this.remoteGroup){if(!this.baseParams){this.baseParams={};}
this.baseParams.groupBy=this.groupField;}},applySort:function(){Ext.data.GroupingStore.superclass.applySort.call(this);if(!this.groupOnSort&&!this.remoteGroup){var gs=this.getGroupState();if(gs&&gs!=this.sortInfo.field){this.sortData(this.groupField);}}},applyGrouping:function(alwaysFireChange){if(this.groupField!==false){this.groupBy(this.groupField,true);return true;}else{if(alwaysFireChange===true){this.fireEvent('datachanged',this);}
return false;}},getGroupState:function(){return this.groupOnSort&&this.groupField!==false?(this.sortInfo?this.sortInfo.field:undefined):this.groupField;}});Ext.ComponentMgr=function(){var all=new Ext.util.Observable();var types={};all.addEvents('add');all.items={};return{register:function(c){all.items[c.id]=c;all.fireEvent('add',c.id,c);},unregister:function(c){all.items[c.id]=null;},get:function(id){return all.items[id];},onAvailable:function(id,fn,scope){all.on("add",function(index,o){if(o.id==id){fn.call(scope||o,o);all.un("add",fn,scope);}});},all:all,registerType:function(xtype,cls){types[xtype]=cls;cls.xtype=xtype;},create:function(config,defaultType){return new types[config.xtype||defaultType](config);}};}();Ext.reg=Ext.ComponentMgr.registerType;Ext.Component=function(config){config=config||{};if(config.initialConfig){if(config.isAction){this.baseAction=config;}
config=config.initialConfig;}else if(config.tagName||config.dom||typeof config=="string"){config={applyTo:config,id:config.id||config};}
this.initialConfig=config;Ext.apply(this,config);this.addEvents('disable','enable','beforeshow','show','beforehide','hide','beforerender','render','beforedestroy','destroy','beforestaterestore','staterestore','beforestatesave','statesave');this.getId();Ext.ComponentMgr.register(this);Ext.Component.superclass.constructor.call(this);if(this.baseAction){this.baseAction.addComponent(this);}
this.initComponent();if(this.plugins){if(Ext.isArray(this.plugins)){for(var i=0,len=this.plugins.length;i<len;i++){this.plugins[i]=this.initPlugin(this.plugins[i]);}}else{this.plugins=this.initPlugin(this.plugins);}}
if(this.stateful!==false){this.initState(config);}
if(this.applyTo){this.applyToMarkup(this.applyTo);delete this.applyTo;}else if(this.renderTo){this.render(this.renderTo);delete this.renderTo;}};Ext.Component.AUTO_ID=1000;Ext.extend(Ext.Component,Ext.util.Observable,{disabledClass:"x-item-disabled",allowDomMove:true,autoShow:false,hideMode:'display',hideParent:false,hidden:false,disabled:false,rendered:false,ctype:"Ext.Component",actionMode:"el",getActionEl:function(){return this[this.actionMode];},initPlugin:function(p){p.init(this);return p;},initComponent:Ext.emptyFn,render:function(container,position){if(!this.rendered&&this.fireEvent("beforerender",this)!==false){if(!container&&this.el){this.el=Ext.get(this.el);container=this.el.dom.parentNode;this.allowDomMove=false;}
this.container=Ext.get(container);if(this.ctCls){this.container.addClass(this.ctCls);}
this.rendered=true;if(position!==undefined){if(typeof position=='number'){position=this.container.dom.childNodes[position];}else{position=Ext.getDom(position);}}
this.onRender(this.container,position||null);if(this.autoShow){this.el.removeClass(['x-hidden','x-hide-'+this.hideMode]);}
if(this.cls){this.el.addClass(this.cls);delete this.cls;}
if(this.style){this.el.applyStyles(this.style);delete this.style;}
if(this.overCls){this.el.addClassOnOver(this.overCls);}
this.fireEvent("render",this);this.afterRender(this.container);if(this.hidden){this.hide();}
if(this.disabled){this.disable();}
if(this.stateful!==false){this.initStateEvents();}}
return this;},initState:function(config){if(Ext.state.Manager){var id=this.getStateId();if(id){var state=Ext.state.Manager.get(id);if(state){if(this.fireEvent('beforestaterestore',this,state)!==false){this.applyState(state);this.fireEvent('staterestore',this,state);}}}}},getStateId:function(){return this.stateId||((this.id.indexOf('ext-comp-')==0||this.id.indexOf('ext-gen')==0)?null:this.id);},initStateEvents:function(){if(this.stateEvents){for(var i=0,e;e=this.stateEvents[i];i++){this.on(e,this.saveState,this,{delay:100});}}},applyState:function(state,config){if(state){Ext.apply(this,state);}},getState:function(){return null;},saveState:function(){if(Ext.state.Manager&&this.stateful!==false){var id=this.getStateId();if(id){var state=this.getState();if(this.fireEvent('beforestatesave',this,state)!==false){Ext.state.Manager.set(id,state);this.fireEvent('statesave',this,state);}}}},applyToMarkup:function(el){this.allowDomMove=false;this.el=Ext.get(el);this.render(this.el.dom.parentNode);},addClass:function(cls){if(this.el){this.el.addClass(cls);}else{this.cls=this.cls?this.cls+' '+cls:cls;}},removeClass:function(cls){if(this.el){this.el.removeClass(cls);}else if(this.cls){this.cls=this.cls.split(' ').remove(cls).join(' ');}},onRender:function(ct,position){if(this.autoEl){if(typeof this.autoEl=='string'){this.el=document.createElement(this.autoEl);}else{var div=document.createElement('div');Ext.DomHelper.overwrite(div,this.autoEl);this.el=div.firstChild;}
if(!this.el.id){this.el.id=this.getId();}}
if(this.el){this.el=Ext.get(this.el);if(this.allowDomMove!==false){ct.dom.insertBefore(this.el.dom,position);}}},getAutoCreate:function(){var cfg=typeof this.autoCreate=="object"?this.autoCreate:Ext.apply({},this.defaultAutoCreate);if(this.id&&!cfg.id){cfg.id=this.id;}
return cfg;},afterRender:Ext.emptyFn,destroy:function(){if(this.fireEvent("beforedestroy",this)!==false){this.beforeDestroy();if(this.rendered){this.el.removeAllListeners();this.el.remove();if(this.actionMode=="container"){this.container.remove();}}
this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy",this);this.purgeListeners();}},beforeDestroy:Ext.emptyFn,onDestroy:Ext.emptyFn,getEl:function(){return this.el;},getId:function(){return this.id||(this.id="ext-comp-"+(++Ext.Component.AUTO_ID));},getItemId:function(){return this.itemId||this.getId();},focus:function(selectText,delay){if(delay){this.focus.defer(typeof delay=='number'?delay:10,this,[selectText,false]);return;}
if(this.rendered){this.el.focus();if(selectText===true){this.el.dom.select();}}
return this;},blur:function(){if(this.rendered){this.el.blur();}
return this;},disable:function(){if(this.rendered){this.onDisable();}
this.disabled=true;this.fireEvent("disable",this);return this;},onDisable:function(){this.getActionEl().addClass(this.disabledClass);this.el.dom.disabled=true;},enable:function(){if(this.rendered){this.onEnable();}
this.disabled=false;this.fireEvent("enable",this);return this;},onEnable:function(){this.getActionEl().removeClass(this.disabledClass);this.el.dom.disabled=false;},setDisabled:function(disabled){this[disabled?"disable":"enable"]();},show:function(){if(this.fireEvent("beforeshow",this)!==false){this.hidden=false;if(this.autoRender){this.render(typeof this.autoRender=='boolean'?Ext.getBody():this.autoRender);}
if(this.rendered){this.onShow();}
this.fireEvent("show",this);}
return this;},onShow:function(){if(this.hideParent){this.container.removeClass('x-hide-'+this.hideMode);}else{this.getActionEl().removeClass('x-hide-'+this.hideMode);}},hide:function(){if(this.fireEvent("beforehide",this)!==false){this.hidden=true;if(this.rendered){this.onHide();}
this.fireEvent("hide",this);}
return this;},onHide:function(){if(this.hideParent){this.container.addClass('x-hide-'+this.hideMode);}else{this.getActionEl().addClass('x-hide-'+this.hideMode);}},setVisible:function(visible){if(visible){this.show();}else{this.hide();}
return this;},isVisible:function(){return this.rendered&&this.getActionEl().isVisible();},cloneConfig:function(overrides){overrides=overrides||{};var id=overrides.id||Ext.id();var cfg=Ext.applyIf(overrides,this.initialConfig);cfg.id=id;return new this.constructor(cfg);},getXType:function(){return this.constructor.xtype;},isXType:function(xtype,shallow){if(typeof xtype=='function'){xtype=xtype.xtype;}else if(typeof xtype=='object'){xtype=xtype.constructor.xtype;}
return!shallow?('/'+this.getXTypes()+'/').indexOf('/'+xtype+'/')!=-1:this.constructor.xtype==xtype;},getXTypes:function(){var tc=this.constructor;if(!tc.xtypes){var c=[],sc=this;while(sc&&sc.constructor.xtype){c.unshift(sc.constructor.xtype);sc=sc.constructor.superclass;}
tc.xtypeChain=c;tc.xtypes=c.join('/');}
return tc.xtypes;},findParentBy:function(fn){for(var p=this.ownerCt;(p!=null)&&!fn(p,this);p=p.ownerCt);return p||null;},findParentByType:function(xtype){return typeof xtype=='function'?this.findParentBy(function(p){return p.constructor===xtype;}):this.findParentBy(function(p){return p.constructor.xtype===xtype;});},mon:function(item,ename,fn,scope,opt){if(!this.mons){this.mons=[];this.on('beforedestroy',function(){for(var i=0,len=this.mons.length;i<len;i++){var m=this.mons[i];m.item.un(m.ename,m.fn,m.scope);}},this);}
this.mons.push({item:item,ename:ename,fn:fn,scope:scope});item.on(ename,fn,scope,opt);}});Ext.reg('component',Ext.Component);Ext.Action=function(config){this.initialConfig=config;this.items=[];}
Ext.Action.prototype={isAction:true,setText:function(text){this.initialConfig.text=text;this.callEach('setText',[text]);},getText:function(){return this.initialConfig.text;},setIconClass:function(cls){this.initialConfig.iconCls=cls;this.callEach('setIconClass',[cls]);},getIconClass:function(){return this.initialConfig.iconCls;},setDisabled:function(v){this.initialConfig.disabled=v;this.callEach('setDisabled',[v]);},enable:function(){this.setDisabled(false);},disable:function(){this.setDisabled(true);},isDisabled:function(){return this.initialConfig.disabled;},setHidden:function(v){this.initialConfig.hidden=v;this.callEach('setVisible',[!v]);},show:function(){this.setHidden(false);},hide:function(){this.setHidden(true);},isHidden:function(){return this.initialConfig.hidden;},setHandler:function(fn,scope){this.initialConfig.handler=fn;this.initialConfig.scope=scope;this.callEach('setHandler',[fn,scope]);},each:function(fn,scope){Ext.each(this.items,fn,scope);},callEach:function(fnName,args){var cs=this.items;for(var i=0,len=cs.length;i<len;i++){cs[i][fnName].apply(cs[i],args);}},addComponent:function(comp){this.items.push(comp);comp.on('destroy',this.removeComponent,this);},removeComponent:function(comp){this.items.remove(comp);},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||window,arguments);}};(function(){Ext.Layer=function(config,existingEl){config=config||{};var dh=Ext.DomHelper;var cp=config.parentEl,pel=cp?Ext.getDom(cp):document.body;if(existingEl){this.dom=Ext.getDom(existingEl);}
if(!this.dom){var o=config.dh||{tag:"div",cls:"x-layer"};this.dom=dh.append(pel,o);}
if(config.cls){this.addClass(config.cls);}
this.constrain=config.constrain!==false;this.visibilityMode=Ext.Element.VISIBILITY;if(config.id){this.id=this.dom.id=config.id;}else{this.id=Ext.id(this.dom);}
this.zindex=config.zindex||this.getZIndex();this.position("absolute",this.zindex);if(config.shadow){this.shadowOffset=config.shadowOffset||4;this.shadow=new Ext.Shadow({offset:this.shadowOffset,mode:config.shadow});}else{this.shadowOffset=0;}
this.useShim=config.shim!==false&&Ext.useShims;this.useDisplay=config.useDisplay;this.hide();};var supr=Ext.Element.prototype;var shims=[];Ext.extend(Ext.Layer,Ext.Element,{getZIndex:function(){return this.zindex||parseInt((this.getShim()||this).getStyle("z-index"),10)||11000;},getShim:function(){if(!this.useShim){return null;}
if(this.shim){return this.shim;}
var shim=shims.shift();if(!shim){shim=this.createShim();shim.enableDisplayMode('block');shim.dom.style.display='none';shim.dom.style.visibility='visible';}
var pn=this.dom.parentNode;if(shim.dom.parentNode!=pn){pn.insertBefore(shim.dom,this.dom);}
shim.setStyle('z-index',this.getZIndex()-2);this.shim=shim;return shim;},hideShim:function(){if(this.shim){this.shim.setDisplayed(false);shims.push(this.shim);delete this.shim;}},disableShadow:function(){if(this.shadow){this.shadowDisabled=true;this.shadow.hide();this.lastShadowOffset=this.shadowOffset;this.shadowOffset=0;}},enableShadow:function(show){if(this.shadow){this.shadowDisabled=false;this.shadowOffset=this.lastShadowOffset;delete this.lastShadowOffset;if(show){this.sync(true);}}},sync:function(doShow){var sw=this.shadow;if(!this.updating&&this.isVisible()&&(sw||this.useShim)){var sh=this.getShim();var w=this.getWidth(),h=this.getHeight();var l=this.getLeft(true),t=this.getTop(true);if(sw&&!this.shadowDisabled){if(doShow&&!sw.isVisible()){sw.show(this);}else{sw.realign(l,t,w,h);}
if(sh){if(doShow){sh.show();}
var a=sw.adjusts,s=sh.dom.style;s.left=(Math.min(l,l+a.l))+"px";s.top=(Math.min(t,t+a.t))+"px";s.width=(w+a.w)+"px";s.height=(h+a.h)+"px";}}else if(sh){if(doShow){sh.show();}
sh.setSize(w,h);sh.setLeftTop(l,t);}}},destroy:function(){this.hideShim();if(this.shadow){this.shadow.hide();}
this.removeAllListeners();Ext.removeNode(this.dom);Ext.Element.uncache(this.id);},remove:function(){this.destroy();},beginUpdate:function(){this.updating=true;},endUpdate:function(){this.updating=false;this.sync(true);},hideUnders:function(negOffset){if(this.shadow){this.shadow.hide();}
this.hideShim();},constrainXY:function(){if(this.constrain){var vw=Ext.lib.Dom.getViewWidth(),vh=Ext.lib.Dom.getViewHeight();var s=Ext.getDoc().getScroll();var xy=this.getXY();var x=xy[0],y=xy[1];var w=this.dom.offsetWidth+this.shadowOffset,h=this.dom.offsetHeight+this.shadowOffset;var moved=false;if((x+w)>vw+s.left){x=vw-w-this.shadowOffset;moved=true;}
if((y+h)>vh+s.top){y=vh-h-this.shadowOffset;moved=true;}
if(x<s.left){x=s.left;moved=true;}
if(y<s.top){y=s.top;moved=true;}
if(moved){if(this.avoidY){var ay=this.avoidY;if(y<=ay&&(y+h)>=ay){y=ay-h-5;}}
xy=[x,y];this.storeXY(xy);supr.setXY.call(this,xy);this.sync();}}},isVisible:function(){return this.visible;},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("");}else if(this.lastXY){supr.setXY.call(this,this.lastXY);}else if(this.lastLT){supr.setLeftTop.call(this,this.lastLT[0],this.lastLT[1]);}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false);}else{this.setLeftTop(-10000,-10000);}},setVisible:function(v,a,d,c,e){if(v){this.showAction();}
if(a&&v){var cb=function(){this.sync(true);if(c){c();}}.createDelegate(this);supr.setVisible.call(this,true,true,d,cb,e);}else{if(!v){this.hideUnders(true);}
var cb=c;if(a){cb=function(){this.hideAction();if(c){c();}}.createDelegate(this);}
supr.setVisible.call(this,v,a,d,cb,e);if(v){this.sync(true);}else if(!a){this.hideAction();}}},storeXY:function(xy){delete this.lastLT;this.lastXY=xy;},storeLeftTop:function(left,top){delete this.lastXY;this.lastLT=[left,top];},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments);},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible());},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide();}},setLeft:function(left){this.storeLeftTop(left,this.getTop(true));supr.setLeft.apply(this,arguments);this.sync();},setTop:function(top){this.storeLeftTop(this.getLeft(true),top);supr.setTop.apply(this,arguments);this.sync();},setLeftTop:function(left,top){this.storeLeftTop(left,top);supr.setLeftTop.apply(this,arguments);this.sync();},setXY:function(xy,a,d,c,e){this.fixDisplay();this.beforeAction();this.storeXY(xy);var cb=this.createCB(c);supr.setXY.call(this,xy,a,d,cb,e);if(!a){cb();}},createCB:function(c){var el=this;return function(){el.constrainXY();el.sync(true);if(c){c();}};},setX:function(x,a,d,c,e){this.setXY([x,this.getY()],a,d,c,e);},setY:function(y,a,d,c,e){this.setXY([this.getX(),y],a,d,c,e);},setSize:function(w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);supr.setSize.call(this,w,h,a,d,cb,e);if(!a){cb();}},setWidth:function(w,a,d,c,e){this.beforeAction();var cb=this.createCB(c);supr.setWidth.call(this,w,a,d,cb,e);if(!a){cb();}},setHeight:function(h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);supr.setHeight.call(this,h,a,d,cb,e);if(!a){cb();}},setBounds:function(x,y,w,h,a,d,c,e){this.beforeAction();var cb=this.createCB(c);if(!a){this.storeXY([x,y]);supr.setXY.call(this,[x,y]);supr.setSize.call(this,w,h,a,d,cb,e);cb();}else{supr.setBounds.call(this,x,y,w,h,a,d,cb,e);}
return this;},setZIndex:function(zindex){this.zindex=zindex;this.setStyle("z-index",zindex+2);if(this.shadow){this.shadow.setZIndex(zindex+1);}
if(this.shim){this.shim.setStyle("z-index",zindex);}}});})();Ext.Shadow=function(config){Ext.apply(this,config);if(typeof this.mode!="string"){this.mode=this.defaultMode;}
var o=this.offset,a={h:0};var rad=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":a.w=0;a.l=a.t=o;a.t-=1;if(Ext.isIE){a.l-=this.offset+rad;a.t-=this.offset+rad;a.w-=rad;a.h-=rad;a.t+=1;}
break;case"sides":a.w=(o*2);a.l=-o;a.t=o-1;if(Ext.isIE){a.l-=(this.offset-rad);a.t-=this.offset+rad;a.l+=1;a.w-=(this.offset-rad)*2;a.w-=rad+1;a.h-=1;}
break;case"frame":a.w=a.h=(o*2);a.l=a.t=-o;a.t+=1;a.h-=2;if(Ext.isIE){a.l-=(this.offset-rad);a.t-=(this.offset-rad);a.l+=1;a.w-=(this.offset+rad+1);a.h-=(this.offset+rad);a.h+=1;}
break;};this.adjusts=a;};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(target){target=Ext.get(target);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=target.dom){this.el.insertBefore(target);}}
this.el.setStyle("z-index",this.zIndex||parseInt(target.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")";}
this.realign(target.getLeft(true),target.getTop(true),target.getWidth(),target.getHeight());this.el.dom.style.display="block";},isVisible:function(){return this.el?true:false;},realign:function(l,t,w,h){if(!this.el){return;}
var a=this.adjusts,d=this.el.dom,s=d.style;var iea=0;s.left=(l+a.l)+"px";s.top=(t+a.t)+"px";var sw=(w+a.w),sh=(h+a.h),sws=sw+"px",shs=sh+"px";if(s.width!=sws||s.height!=shs){s.width=sws;s.height=shs;if(!Ext.isIE){var cn=d.childNodes;var sww=Math.max(0,(sw-12))+"px";cn[0].childNodes[1].style.width=sww;cn[1].childNodes[1].style.width=sww;cn[2].childNodes[1].style.width=sww;cn[1].style.height=Math.max(0,(sh-12))+"px";}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el;}},setZIndex:function(z){this.zIndex=z;if(this.el){this.el.setStyle("z-index",z);}}};Ext.Shadow.Pool=function(){var p=[];var markup=Ext.isIE?'<div class="x-ie-shadow"></div>':'<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>';return{pull:function(){var sh=p.shift();if(!sh){sh=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,markup));sh.autoBoxAdjust=false;}
return sh;},push:function(sh){p.push(sh);}};}();Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents('resize','move');},boxReady:false,deferHeight:false,setSize:function(w,h){if(typeof w=='object'){h=w.height;w=w.width;}
if(!this.boxReady){this.width=w;this.height=h;return this;}
if(this.lastSize&&this.lastSize.width==w&&this.lastSize.height==h){return this;}
this.lastSize={width:w,height:h};var adj=this.adjustSize(w,h);var aw=adj.width,ah=adj.height;if(aw!==undefined||ah!==undefined){var rz=this.getResizeEl();if(!this.deferHeight&&aw!==undefined&&ah!==undefined){rz.setSize(aw,ah);}else if(!this.deferHeight&&ah!==undefined){rz.setHeight(ah);}else if(aw!==undefined){rz.setWidth(aw);}
this.onResize(aw,ah,w,h);this.fireEvent('resize',this,aw,ah,w,h);}
return this;},setWidth:function(width){return this.setSize(width);},setHeight:function(height){return this.setSize(undefined,height);},getSize:function(){return this.el.getSize();},getPosition:function(local){if(local===true){return[this.el.getLeft(true),this.el.getTop(true)];}
return this.xy||this.el.getXY();},getBox:function(local){var s=this.el.getSize();if(local===true){s.x=this.el.getLeft(true);s.y=this.el.getTop(true);}else{var xy=this.xy||this.el.getXY();s.x=xy[0];s.y=xy[1];}
return s;},updateBox:function(box){this.setSize(box.width,box.height);this.setPagePosition(box.x,box.y);return this;},getResizeEl:function(){return this.resizeEl||this.el;},getPositionEl:function(){return this.positionEl||this.el;},setPosition:function(x,y){if(x&&typeof x[1]=='number'){y=x[1];x=x[0];}
this.x=x;this.y=y;if(!this.boxReady){return this;}
var adj=this.adjustPosition(x,y);var ax=adj.x,ay=adj.y;var el=this.getPositionEl();if(ax!==undefined||ay!==undefined){if(ax!==undefined&&ay!==undefined){el.setLeftTop(ax,ay);}else if(ax!==undefined){el.setLeft(ax);}else if(ay!==undefined){el.setTop(ay);}
this.onPosition(ax,ay);this.fireEvent('move',this,ax,ay);}
return this;},setPagePosition:function(x,y){if(x&&typeof x[1]=='number'){y=x[1];x=x[0];}
this.pageX=x;this.pageY=y;if(!this.boxReady){return;}
if(x===undefined||y===undefined){return;}
var p=this.el.translatePoints(x,y);this.setPosition(p.left,p.top);return this;},onRender:function(ct,position){Ext.BoxComponent.superclass.onRender.call(this,ct,position);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl);}
if(this.positionEl){this.positionEl=Ext.get(this.positionEl);}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady=true;this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y);}else if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY);}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.el.getWidth(),this.autoHeight?undefined:this.el.getHeight());return this;},onResize:function(adjWidth,adjHeight,rawWidth,rawHeight){},onPosition:function(x,y){},adjustSize:function(w,h){if(this.autoWidth){w='auto';}
if(this.autoHeight){h='auto';}
return{width:w,height:h};},adjustPosition:function(x,y){return{x:x,y:y};}});Ext.reg('box',Ext.BoxComponent);Ext.SplitBar=function(dragElement,resizingElement,orientation,placement,existingProxy){this.el=Ext.get(dragElement,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(resizingElement,true);this.orientation=orientation||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!existingProxy){this.proxy=Ext.SplitBar.createProxy(this.orientation);}else{this.proxy=Ext.get(existingProxy).dom;}
this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=placement||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h");}else{this.placement=placement||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v");}
this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this);};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(x,y){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:"&#160;"},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var size=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var c1=size-this.activeMinSize;var c2=Math.max(this.activeMaxSize-size,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?c1:c2,this.placement==Ext.SplitBar.LEFT?c2:c1);this.dd.setYConstraint(0,0);}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?c1:c2,this.placement==Ext.SplitBar.TOP?c2:c1);}
this.dragSpecs.startSize=size;this.dragSpecs.startPoint=[x,y];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,x,y);},onEndProxyDrag:function(e){Ext.get(this.proxy).setDisplayed(false);var endPoint=Ext.lib.Event.getXY(e);if(this.overlay){Ext.destroy(this.overlay);delete this.overlay;}
var newSize;if(this.orientation==Ext.SplitBar.HORIZONTAL){newSize=this.dragSpecs.startSize+
(this.placement==Ext.SplitBar.LEFT?endPoint[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-endPoint[0]);}else{newSize=this.dragSpecs.startSize+
(this.placement==Ext.SplitBar.TOP?endPoint[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-endPoint[1]);}
newSize=Math.min(Math.max(newSize,this.activeMinSize),this.activeMaxSize);if(newSize!=this.dragSpecs.startSize){if(this.fireEvent('beforeapply',this,newSize)!==false){this.adapter.setElementSize(this,newSize);this.fireEvent("moved",this,newSize);this.fireEvent("resize",this,newSize);}}},getAdapter:function(){return this.adapter;},setAdapter:function(adapter){this.adapter=adapter;this.adapter.init(this);},getMinimumSize:function(){return this.minSize;},setMinimumSize:function(minSize){this.minSize=minSize;},getMaximumSize:function(){return this.maxSize;},setMaximumSize:function(maxSize){this.maxSize=maxSize;},setCurrentSize:function(size){var oldAnimate=this.animate;this.animate=false;this.adapter.setElementSize(this,size);this.animate=oldAnimate;},destroy:function(removeEl){if(this.shim){this.shim.remove();}
this.dd.unreg();Ext.destroy(Ext.get(this.proxy));if(removeEl){this.el.remove();}}});Ext.SplitBar.createProxy=function(dir){var proxy=new Ext.Element(document.createElement("div"));proxy.unselectable();var cls='x-splitbar-proxy';proxy.addClass(cls+' '+(dir==Ext.SplitBar.HORIZONTAL?cls+'-h':cls+'-v'));document.body.appendChild(proxy.dom);return proxy.dom;};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(s){},getElementSize:function(s){if(s.orientation==Ext.SplitBar.HORIZONTAL){return s.resizingEl.getWidth();}else{return s.resizingEl.getHeight();}},setElementSize:function(s,newSize,onComplete){if(s.orientation==Ext.SplitBar.HORIZONTAL){if(!s.animate){s.resizingEl.setWidth(newSize);if(onComplete){onComplete(s,newSize);}}else{s.resizingEl.setWidth(newSize,true,.1,onComplete,'easeOut');}}else{if(!s.animate){s.resizingEl.setHeight(newSize);if(onComplete){onComplete(s,newSize);}}else{s.resizingEl.setHeight(newSize,true,.1,onComplete,'easeOut');}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(container){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(container);};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(s){this.basic.init(s);},getElementSize:function(s){return this.basic.getElementSize(s);},setElementSize:function(s,newSize,onComplete){this.basic.setElementSize(s,newSize,this.moveSplitter.createDelegate(this,[s]));},moveSplitter:function(s){var yes=Ext.SplitBar;switch(s.placement){case yes.LEFT:s.el.setX(s.resizingEl.getRight());break;case yes.RIGHT:s.el.setStyle("right",(this.container.getWidth()-s.resizingEl.getLeft())+"px");break;case yes.TOP:s.el.setY(s.resizingEl.getBottom());break;case yes.BOTTOM:s.el.setY(s.resizingEl.getTop()-s.el.getHeight());break;}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4;Ext.Container=Ext.extend(Ext.BoxComponent,{autoDestroy:true,defaultType:'panel',initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents('afterlayout','beforeadd','beforeremove','add','remove');var items=this.items;if(items){delete this.items;if(Ext.isArray(items)){if(items.length>0){this.add.apply(this,items);}}else{this.add(items);}}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout();}},setLayout:function(layout){if(this.layout&&this.layout!=layout){this.layout.setContainer(null);}
this.initItems();this.layout=layout;layout.setContainer(this);},render:function(){Ext.Container.superclass.render.apply(this,arguments);if(this.layout){if(typeof this.layout=='string'){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig);}
this.setLayout(this.layout);if(this.activeItem!==undefined){var item=this.activeItem;delete this.activeItem;this.layout.setActiveItem(item);return;}}
if(!this.ownerCt){this.doLayout();}
if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false]);}},getLayoutTarget:function(){return this.el;},getComponentId:function(comp){return comp.itemId||comp.id;},add:function(comp){this.initItems();var a=arguments,len=a.length;if(len>1){for(var i=0;i<len;i++){this.add(a[i]);}
return;}
var c=this.lookupComponent(this.applyDefaults(comp));var pos=this.items.length;if(this.fireEvent('beforeadd',this,c,pos)!==false&&this.onBeforeAdd(c)!==false){this.items.add(c);c.ownerCt=this;this.fireEvent('add',this,c,pos);}
return c;},insert:function(index,comp){this.initItems();var a=arguments,len=a.length;if(len>2){for(var i=len-1;i>=1;--i){this.insert(index,a[i]);}
return;}
var c=this.lookupComponent(this.applyDefaults(comp));if(c.ownerCt==this&&this.items.indexOf(c)<index){--index;}
if(this.fireEvent('beforeadd',this,c,index)!==false&&this.onBeforeAdd(c)!==false){this.items.insert(index,c);c.ownerCt=this;this.fireEvent('add',this,c,index);}
return c;},applyDefaults:function(c){if(this.defaults){if(typeof c=='string'){c=Ext.ComponentMgr.get(c);Ext.apply(c,this.defaults);}else if(!c.events){Ext.applyIf(c,this.defaults);}else{Ext.apply(c,this.defaults);}}
return c;},onBeforeAdd:function(item){if(item.ownerCt){item.ownerCt.remove(item,false);}
if(this.hideBorders===true){item.border=(item.border===true);}},remove:function(comp,autoDestroy){this.initItems();var c=this.getComponent(comp);if(c&&this.fireEvent('beforeremove',this,c)!==false){this.items.remove(c);delete c.ownerCt;if(autoDestroy===true||(autoDestroy!==false&&this.autoDestroy)){c.destroy();}
if(this.layout&&this.layout.activeItem==c){delete this.layout.activeItem;}
this.fireEvent('remove',this,c);}
return c;},removeAll:function(autoDestroy){this.initItems();var item,items=[];while((item=this.items.last())){items.unshift(this.remove(item,autoDestroy));}
return items;},getComponent:function(comp){if(typeof comp=='object'){return comp;}
return this.items.get(comp);},lookupComponent:function(comp){if(typeof comp=='string'){return Ext.ComponentMgr.get(comp);}else if(!comp.events){return this.createComponent(comp);}
return comp;},createComponent:function(config){return Ext.ComponentMgr.create(config,this.defaultType);},doLayout:function(shallow){if(this.rendered&&this.layout){this.layout.layout();}
if(shallow!==true&&this.items){var cs=this.items.items;for(var i=0,len=cs.length;i<len;i++){var c=cs[i];if(c.doLayout){c.doLayout();}}}},getLayout:function(){if(!this.layout){var layout=new Ext.layout.ContainerLayout(this.layoutConfig);this.setLayout(layout);}
return this.layout;},beforeDestroy:function(){if(this.items){Ext.destroy.apply(Ext,this.items.items);}
if(this.monitorResize){Ext.EventManager.removeResizeListener(this.doLayout,this);}
if(this.layout&&this.layout.destroy){this.layout.destroy();}
Ext.Container.superclass.beforeDestroy.call(this);},bubble:function(fn,scope,args){var p=this;while(p){if(fn.apply(scope||p,args||[p])===false){break;}
p=p.ownerCt;}},cascade:function(fn,scope,args){if(fn.apply(scope||this,args||[this])!==false){if(this.items){var cs=this.items.items;for(var i=0,len=cs.length;i<len;i++){if(cs[i].cascade){cs[i].cascade(fn,scope,args);}else{fn.apply(scope||cs[i],args||[cs[i]]);}}}}},findById:function(id){var m,ct=this;this.cascade(function(c){if(ct!=c&&c.id===id){m=c;return false;}});return m||null;},findByType:function(xtype,shallow){return this.findBy(function(c){return c.isXType(xtype,shallow);});},find:function(prop,value){return this.findBy(function(c){return c[prop]===value;});},findBy:function(fn,scope){var m=[],ct=this;this.cascade(function(c){if(ct!=c&&fn.call(scope||c,c,ct)===true){m.push(c);}});return m;}});Ext.Container.LAYOUTS={};Ext.reg('container',Ext.Container);Ext.layout.ContainerLayout=function(config){Ext.apply(this,config);};Ext.layout.ContainerLayout.prototype={monitorResize:false,activeItem:null,layout:function(){var target=this.container.getLayoutTarget();this.onLayout(this.container,target);this.container.fireEvent('afterlayout',this.container,this);},onLayout:function(ct,target){this.renderAll(ct,target);},isValidParent:function(c,target){var el=c.getPositionEl?c.getPositionEl():c.getEl();return el.dom.parentNode==target.dom;},renderAll:function(ct,target){var items=ct.items.items;for(var i=0,len=items.length;i<len;i++){var c=items[i];if(c&&(!c.rendered||!this.isValidParent(c,target))){this.renderItem(c,i,target);}}},renderItem:function(c,position,target){if(c&&!c.rendered){c.render(target,position);if(this.extraCls){var t=c.getPositionEl?c.getPositionEl():c;t.addClass(this.extraCls);}
if(this.renderHidden&&c!=this.activeItem){c.hide();}}else if(c&&!this.isValidParent(c,target)){if(this.extraCls){var t=c.getPositionEl?c.getPositionEl():c;t.addClass(this.extraCls);}
if(typeof position=='number'){position=target.dom.childNodes[position];}
target.dom.insertBefore(c.getEl().dom,position||null);if(this.renderHidden&&c!=this.activeItem){c.hide();}}},onResize:function(){if(this.container.collapsed){return;}
var b=this.container.bufferResize;if(b){if(!this.resizeTask){this.resizeTask=new Ext.util.DelayedTask(this.layout,this);this.resizeBuffer=typeof b=='number'?b:100;}
this.resizeTask.delay(this.resizeBuffer);}else{this.layout();}},setContainer:function(ct){if(this.monitorResize&&ct!=this.container){if(this.container){this.container.un('resize',this.onResize,this);}
if(ct){ct.on('resize',this.onResize,this);}}
this.container=ct;},parseMargins:function(v){var ms=v.split(' ');var len=ms.length;if(len==1){ms[1]=ms[0];ms[2]=ms[0];ms[3]=ms[0];}
if(len==2){ms[2]=ms[0];ms[3]=ms[1];}
return{top:parseInt(ms[0],10)||0,right:parseInt(ms[1],10)||0,bottom:parseInt(ms[2],10)||0,left:parseInt(ms[3],10)||0};},destroy:Ext.emptyFn};Ext.Container.LAYOUTS['auto']=Ext.layout.ContainerLayout;Ext.layout.FitLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,onLayout:function(ct,target){Ext.layout.FitLayout.superclass.onLayout.call(this,ct,target);if(!this.container.collapsed){var sz=(Ext.isIE6&&Ext.isStrict&&target.dom==document.body)?target.getViewSize():target.getStyleSize();this.setItemSize(this.activeItem||ct.items.itemAt(0),sz);}},setItemSize:function(item,size){if(item&&size.height>0){item.setSize(size);}}});Ext.Container.LAYOUTS['fit']=Ext.layout.FitLayout;Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,renderHidden:true,setActiveItem:function(item){item=this.container.getComponent(item);if(this.activeItem!=item){if(this.activeItem){this.activeItem.hide();}
this.activeItem=item;item.show();this.layout();}},renderAll:function(ct,target){if(this.deferredRender){this.renderItem(this.activeItem,undefined,target);}else{Ext.layout.CardLayout.superclass.renderAll.call(this,ct,target);}}});Ext.Container.LAYOUTS['card']=Ext.layout.CardLayout;Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,getAnchorViewSize:function(ct,target){return target.dom==document.body?target.getViewSize():target.getStyleSize();},onLayout:function(ct,target){Ext.layout.AnchorLayout.superclass.onLayout.call(this,ct,target);var size=this.getAnchorViewSize(ct,target);var w=size.width,h=size.height;if(w<20||h<20){return;}
var aw,ah;if(ct.anchorSize){if(typeof ct.anchorSize=='number'){aw=ct.anchorSize;}else{aw=ct.anchorSize.width;ah=ct.anchorSize.height;}}else{aw=ct.initialConfig.width;ah=ct.initialConfig.height;}
var cs=ct.items.items,len=cs.length,i,c,a,cw,ch;for(i=0;i<len;i++){c=cs[i];if(c.anchor){a=c.anchorSpec;if(!a){var vs=c.anchor.split(' ');c.anchorSpec=a={right:this.parseAnchor(vs[0],c.initialConfig.width,aw),bottom:this.parseAnchor(vs[1],c.initialConfig.height,ah)};}
cw=a.right?this.adjustWidthAnchor(a.right(w),c):undefined;ch=a.bottom?this.adjustHeightAnchor(a.bottom(h),c):undefined;if(cw||ch){c.setSize(cw||undefined,ch||undefined);}}}},parseAnchor:function(a,start,cstart){if(a&&a!='none'){var last;if(/^(r|right|b|bottom)$/i.test(a)){var diff=cstart-start;return function(v){if(v!==last){last=v;return v-diff;}}}else if(a.indexOf('%')!=-1){var ratio=parseFloat(a.replace('%',''))*.01;return function(v){if(v!==last){last=v;return Math.floor(v*ratio);}}}else{a=parseInt(a,10);if(!isNaN(a)){return function(v){if(v!==last){last=v;return v+a;}}}}}
return false;},adjustWidthAnchor:function(value,comp){return value;},adjustHeightAnchor:function(value,comp){return value;}});Ext.Container.LAYOUTS['anchor']=Ext.layout.AnchorLayout;Ext.layout.ColumnLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,extraCls:'x-column',scrollOffset:0,isValidParent:function(c,target){return(c.getPositionEl?c.getPositionEl():c.getEl()).dom.parentNode==this.innerCt.dom;},onLayout:function(ct,target){var cs=ct.items.items,len=cs.length,c,i;if(!this.innerCt){target.addClass('x-column-layout-ct');this.innerCt=target.createChild({cls:'x-column-inner'});this.innerCt.createChild({cls:'x-clear'});}
this.renderAll(ct,this.innerCt);var size=Ext.isIE&&target.dom!=Ext.getBody().dom?target.getStyleSize():target.getViewSize();if(size.width<1&&size.height<1){return;}
var w=size.width-target.getPadding('lr')-this.scrollOffset,h=size.height-target.getPadding('tb'),pw=w;this.innerCt.setWidth(w);for(i=0;i<len;i++){c=cs[i];if(!c.columnWidth){pw-=(c.getSize().width+c.getEl().getMargins('lr'));}}
pw=pw<0?0:pw;for(i=0;i<len;i++){c=cs[i];if(c.columnWidth){c.setSize(Math.floor(c.columnWidth*pw)-c.getEl().getMargins('lr'));}}}});Ext.Container.LAYOUTS['column']=Ext.layout.ColumnLayout;Ext.layout.BorderLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,rendered:false,onLayout:function(ct,target){var collapsed;if(!this.rendered){target.addClass('x-border-layout-ct');var items=ct.items.items;collapsed=[];for(var i=0,len=items.length;i<len;i++){var c=items[i];var pos=c.region;if(c.collapsed){collapsed.push(c);}
c.collapsed=false;if(!c.rendered){c.cls=c.cls?c.cls+' x-border-panel':'x-border-panel';c.render(target,i);}
this[pos]=pos!='center'&&c.split?new Ext.layout.BorderLayout.SplitRegion(this,c.initialConfig,pos):new Ext.layout.BorderLayout.Region(this,c.initialConfig,pos);this[pos].render(target,c);}
this.rendered=true;}
var size=target.getViewSize();if(size.width<20||size.height<20){if(collapsed){this.restoreCollapsed=collapsed;}
return;}else if(this.restoreCollapsed){collapsed=this.restoreCollapsed;delete this.restoreCollapsed;}
var w=size.width,h=size.height;var centerW=w,centerH=h,centerY=0,centerX=0;var n=this.north,s=this.south,west=this.west,e=this.east,c=this.center;if(!c&&Ext.layout.BorderLayout.WARN!==false){throw'No center region defined in BorderLayout '+ct.id;}
if(n&&n.isVisible()){var b=n.getSize();var m=n.getMargins();b.width=w-(m.left+m.right);b.x=m.left;b.y=m.top;centerY=b.height+b.y+m.bottom;centerH-=centerY;n.applyLayout(b);}
if(s&&s.isVisible()){var b=s.getSize();var m=s.getMargins();b.width=w-(m.left+m.right);b.x=m.left;var totalHeight=(b.height+m.top+m.bottom);b.y=h-totalHeight+m.top;centerH-=totalHeight;s.applyLayout(b);}
if(west&&west.isVisible()){var b=west.getSize();var m=west.getMargins();b.height=centerH-(m.top+m.bottom);b.x=m.left;b.y=centerY+m.top;var totalWidth=(b.width+m.left+m.right);centerX+=totalWidth;centerW-=totalWidth;west.applyLayout(b);}
if(e&&e.isVisible()){var b=e.getSize();var m=e.getMargins();b.height=centerH-(m.top+m.bottom);var totalWidth=(b.width+m.left+m.right);b.x=w-totalWidth+m.left;b.y=centerY+m.top;centerW-=totalWidth;e.applyLayout(b);}
if(c){var m=c.getMargins();var centerBox={x:centerX+m.left,y:centerY+m.top,width:centerW-(m.left+m.right),height:centerH-(m.top+m.bottom)};c.applyLayout(centerBox);}
if(collapsed){for(var i=0,len=collapsed.length;i<len;i++){collapsed[i].collapse(false);}}
if(Ext.isIE&&Ext.isStrict){target.repaint();}},destroy:function(){var r=['north','south','east','west'];for(var i=0;i<r.length;i++){var region=this[r[i]];if(region){if(region.destroy){region.destroy();}else if(region.split){region.split.destroy(true);}}}
Ext.layout.BorderLayout.superclass.destroy.call(this);}});Ext.layout.BorderLayout.Region=function(layout,config,pos){Ext.apply(this,config);this.layout=layout;this.position=pos;this.state={};if(typeof this.margins=='string'){this.margins=this.layout.parseMargins(this.margins);}
this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=='string'){this.cmargins=this.layout.parseMargins(this.cmargins);}
if(this.collapseMode=='mini'&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0};}else{this.cmargins=Ext.applyIf(this.cmargins||{},pos=='north'||pos=='south'?this.defaultNSCMargins:this.defaultEWCMargins);}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},isCollapsed:false,render:function(ct,p){this.panel=p;p.el.enableDisplayMode();this.targetEl=ct;this.el=p.el;var gs=p.getState,ps=this.position;p.getState=function(){return Ext.apply(gs.call(p)||{},this.state);}.createDelegate(this);if(ps!='center'){p.allowQueuedExpand=false;p.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible||this.floatable){p.collapseEl='el';p.slideAnchor=this.getSlideAnchor();}
if(p.tools&&p.tools.toggle){p.tools.toggle.addClass('x-tool-collapse-'+ps);p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var tt=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');tt.disableFormats=true;tt.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=tt;}
this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+'-xcollapsed'});this.collapsedEl.enableDisplayMode('block');if(this.collapseMode=='mini'){this.collapsedEl.addClass('x-layout-cmini-'+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:"&#160;"});this.miniCollapsedEl.addClassOnOver('x-layout-mini-over');this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on('click',this.onExpandClick,this,{stopEvent:true});}else{if(this.collapsible!==false&&!this.hideCollapseTool){var t=this.toolTemplate.append(this.collapsedEl.dom,{id:'expand-'+this.position},true);t.addClassOnOver('x-tool-expand-'+this.position+'-over');t.on('click',this.onExpandClick,this,{stopEvent:true});}
if(this.floatable!==false||this.titleCollapse){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this[this.floatable?'collapseClick':'onExpandClick'],this);}}}
return this.collapsedEl;},onExpandClick:function(e){if(this.isSlid){this.afterSlideIn();this.panel.expand(false);}else{this.panel.expand();}},onCollapseClick:function(e){this.panel.collapse();},beforeCollapse:function(p,animate){this.lastAnim=animate;if(this.splitEl){this.splitEl.hide();}
this.getCollapsedEl().show();this.panel.el.setStyle('z-index',100);this.isCollapsed=true;this.layout.layout();},onCollapse:function(animate){this.panel.el.setStyle('z-index',1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility='visible';}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:.2});}
this.state.collapsed=true;this.panel.saveState();},beforeExpand:function(animate){var c=this.getCollapsedEl();this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,c.getHeight());}else{this.panel.setSize(c.getWidth(),undefined);}
c.hide();c.dom.style.visibility='hidden';this.panel.el.setStyle('z-index',100);},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show();}
this.layout.layout();this.panel.el.setStyle('z-index',1);this.state.collapsed=false;this.panel.saveState();},collapseClick:function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.stopPropagation();this.slideOut();}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide();}else if(this.splitEl){this.splitEl.hide();}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show();}else if(this.splitEl){this.splitEl.show();}},isVisible:function(){return!this.panel.hidden;},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins;},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize();},setPanel:function(panel){this.panel=panel;},getMinWidth:function(){return this.minWidth;},getMinHeight:function(){return this.minHeight;},applyLayoutCollapsed:function(box){var ce=this.getCollapsedEl();ce.setLeftTop(box.x,box.y);ce.setSize(box.width,box.height);},applyLayout:function(box){if(this.isCollapsed){this.applyLayoutCollapsed(box);}else{this.panel.setPosition(box.x,box.y);this.panel.setSize(box.width,box.height);}},beforeSlide:function(){this.panel.beforeEffect();},afterSlide:function(){this.panel.afterEffect();},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var st=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(e){if(!e.within(this.el,true)){st.delay(500);}},"mouseover":function(e){st.cancel();},scope:this};}
this.el.on(this.autoHideHd);}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this);},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return;}
this.isSlid=true;var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.hide();}
this.el.show();if(this.position=='east'||this.position=='west'){this.panel.setSize(undefined,this.collapsedEl.getHeight());}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined);}
this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);this.panel.el.replaceClass('x-panel-collapsed','x-panel-floating');if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);},scope:this,block:true});}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this);}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.panel.el.replaceClass('x-panel-floating','x-panel-collapsed');this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var ts=this.panel.tools;if(ts&&ts.toggle){ts.toggle.show();}},slideIn:function(cb){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(cb);return;}
this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(cb);},scope:this,block:true});}else{this.el.hide();this.afterSlideIn();}},slideInIf:function(e){if(!e.within(this.el)){this.slideIn();}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position];},getCollapseAnchor:function(){return this.canchors[this.position];},getSlideAnchor:function(){return this.sanchors[this.position];},getAlignAdj:function(){var cm=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break;}},getExpandAdj:function(){var c=this.collapsedEl,cm=this.cmargins;switch(this.position){case"west":return[-(cm.right+c.getWidth()+cm.left),0];break;case"east":return[cm.right+c.getWidth()+cm.left,0];break;case"north":return[0,-(cm.top+cm.bottom+c.getHeight())];break;case"south":return[0,cm.top+cm.bottom+c.getHeight()];break;}}};Ext.layout.BorderLayout.SplitRegion=function(layout,config,pos){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,layout,config,pos);this.applyLayout=this.applyFns[pos];};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:'getVMaxSize',minProp:'minHeight',maxProp:'maxHeight'},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:'getHMaxSize',minProp:'minWidth',maxProp:'maxWidth'}},applyFns:{west:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;this.panel.setPosition(box.x,box.y);var sw=sd.offsetWidth;s.left=(box.x+box.width-sw)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},east:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;var sw=sd.offsetWidth;this.panel.setPosition(box.x+sw,box.y);s.left=(box.x)+'px';s.top=(box.y)+'px';s.height=Math.max(0,box.height)+'px';this.panel.setSize(box.width-sw,box.height);},north:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;var sh=sd.offsetHeight;this.panel.setPosition(box.x,box.y);s.left=(box.x)+'px';s.top=(box.y+box.height-sh)+'px';s.width=Math.max(0,box.width)+'px';this.panel.setSize(box.width,box.height-sh);},south:function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}
var sd=this.splitEl.dom,s=sd.style;var sh=sd.offsetHeight;this.panel.setPosition(box.x,box.y+sh);s.left=(box.x)+'px';s.top=(box.y)+'px';s.width=Math.max(0,box.width)+'px';this.panel.setSize(box.width,box.height-sh);}},render:function(ct,p){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,ct,p);var ps=this.position;this.splitEl=ct.createChild({cls:"x-layout-split x-layout-split-"+ps,html:"&#160;",id:this.panel.id+'-xsplit'});if(this.collapseMode=='mini'){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+ps,html:"&#160;"});this.miniSplitEl.addClassOnOver('x-layout-mini-over');this.miniSplitEl.on('click',this.onCollapseClick,this,{stopEvent:true});}
var s=this.splitSettings[ps];this.split=new Ext.SplitBar(this.splitEl.dom,p.el,s.orientation);this.split.placement=s.placement;this.split.getMaximumSize=this[s.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[s.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[s.maxProp];if(p.hidden){this.splitEl.hide();}
if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip;}
if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this);}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize();}
var s=this.panel.getSize();if(this.position=='north'||this.position=='south'){s.height+=this.splitEl.dom.offsetHeight;}else{s.width+=this.splitEl.dom.offsetWidth;}
return s;},getHMaxSize:function(){var cmax=this.maxSize||10000;var center=this.layout.center;return Math.min(cmax,(this.el.getWidth()+center.el.getWidth())-center.getMinWidth());},getVMaxSize:function(){var cmax=this.maxSize||10000;var center=this.layout.center;return Math.min(cmax,(this.el.getHeight()+center.el.getHeight())-center.getMinHeight());},onSplitMove:function(split,newSize){var s=this.panel.getSize();this.lastSplitSize=newSize;if(this.position=='north'||this.position=='south'){this.panel.setSize(s.width,newSize);this.state.height=newSize;}else{this.panel.setSize(newSize,s.height);this.state.width=newSize;}
this.layout.layout();this.panel.saveState();return false;},getSplitBar:function(){return this.split;},destroy:function(){Ext.destroy(this.miniSplitEl,this.split,this.splitEl);}});Ext.Container.LAYOUTS['border']=Ext.layout.BorderLayout;Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:':',getAnchorViewSize:function(ct,target){return(ct.body||ct.el).getStyleSize();},setContainer:function(ct){Ext.layout.FormLayout.superclass.setContainer.call(this,ct);if(ct.labelAlign){ct.addClass('x-form-label-'+ct.labelAlign);}
if(ct.hideLabels){this.labelStyle="display:none";this.elementStyle="padding-left:0;";this.labelAdjust=0;}else{this.labelSeparator=ct.labelSeparator||this.labelSeparator;ct.labelWidth=ct.labelWidth||100;if(typeof ct.labelWidth=='number'){var pad=(typeof ct.labelPad=='number'?ct.labelPad:5);this.labelAdjust=ct.labelWidth+pad;this.labelStyle="width:"+ct.labelWidth+"px;";this.elementStyle="padding-left:"+(ct.labelWidth+pad)+'px';}
if(ct.labelAlign=='top'){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;";}}
if(!this.fieldTpl){var t=new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">','<label for="{0}" style="{2}" class="x-form-item-label">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="{6}"></div>','</div>');t.disableFormats=true;t.compile();Ext.layout.FormLayout.prototype.fieldTpl=t;}},getLabelStyle:function(s){var ls='',items=[this.labelStyle,s];for(var i=0,len=items.length;i<len;++i){if(items[i]){ls+=items[i];if(ls.substr(-1,1)!=';'){ls+=';'}}}
return ls;},renderItem:function(c,position,target){if(c&&!c.rendered&&c.isFormField&&c.inputType!='hidden'){var args=[c.id,c.fieldLabel,this.getLabelStyle(c.labelStyle),this.elementStyle||'',typeof c.labelSeparator=='undefined'?this.labelSeparator:c.labelSeparator,(c.itemCls||this.container.itemCls||'')+(c.hideLabel?' x-hide-label':''),c.clearCls||'x-form-clear-left'];if(typeof position=='number'){position=target.dom.childNodes[position]||null;}
if(position){this.fieldTpl.insertBefore(position,args);}else{this.fieldTpl.append(target,args);}
c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor:function(value,comp){return value-(comp.isFormField?(comp.hideLabel?0:this.labelAdjust):0);},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['form']=Ext.layout.FormLayout;Ext.layout.Accordion=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,setActiveItem:function(item){item=this.container.getComponent(item);this.activeItem=item;this.layout();},renderItem:function(c){if(this.animate===false){c.animCollapse=false;}
c.collapsible=true;if(this.autoWidth){c.autoWidth=true;}
if(this.titleCollapse){c.titleCollapse=true;}
if(this.hideCollapseTool){c.hideCollapseTool=true;}
if(this.collapseFirst!==undefined){c.collapseFirst=this.collapseFirst;}
if(!this.activeItem&&!c.collapsed){this.activeItem=c;}else if(this.activeItem&&this.activeItem!=c){c.collapsed=true;}
Ext.layout.Accordion.superclass.renderItem.apply(this,arguments);c.header.addClass('x-accordion-hd');c.on('beforeexpand',this.beforeExpand,this);},beforeExpand:function(p,anim){var ai=this.activeItem;if(ai){if(this.sequence){delete this.activeItem;if(!ai.collapsed){ai.collapse({callback:function(){p.expand(anim||true);},scope:this});return false;}}else{ai.collapse(this.animate);}}
this.activeItem=p;if(this.activeOnTop){p.el.dom.parentNode.insertBefore(p.el.dom,p.el.dom.parentNode.firstChild);}
this.layout();},setItemSize:function(item,size){if(this.fill&&item){var items=this.container.items.items;var hh=0;for(var i=0,len=items.length;i<len;i++){var p=items[i];if(p!=item){hh+=(p.getSize().height-p.bwrap.getHeight());}}
size.height-=hh;item.setSize(size);}}});Ext.Container.LAYOUTS['accordion']=Ext.layout.Accordion;Ext.layout.TableLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:false,setContainer:function(ct){Ext.layout.TableLayout.superclass.setContainer.call(this,ct);this.currentRow=0;this.currentColumn=0;this.cells=[];},onLayout:function(ct,target){var cs=ct.items.items,len=cs.length,c,i;if(!this.table){target.addClass('x-table-layout-ct');this.table=target.createChild({tag:'table',cls:'x-table-layout',cellspacing:0,cn:{tag:'tbody'}},null,true);}
this.renderAll(ct,target);},getRow:function(index){var row=this.table.tBodies[0].childNodes[index];if(!row){row=document.createElement('tr');this.table.tBodies[0].appendChild(row);}
return row;},getNextCell:function(c){var cell=this.getNextNonSpan(this.currentColumn,this.currentRow);var curCol=this.currentColumn=cell[0],curRow=this.currentRow=cell[1];for(var rowIndex=curRow;rowIndex<curRow+(c.rowspan||1);rowIndex++){if(!this.cells[rowIndex]){this.cells[rowIndex]=[];}
for(var colIndex=curCol;colIndex<curCol+(c.colspan||1);colIndex++){this.cells[rowIndex][colIndex]=true;}}
var td=document.createElement('td');if(c.cellId){td.id=c.cellId;}
var cls='x-table-layout-cell';if(c.cellCls){cls+=' '+c.cellCls;}
td.className=cls;if(c.colspan){td.colSpan=c.colspan;}
if(c.rowspan){td.rowSpan=c.rowspan;}
this.getRow(curRow).appendChild(td);return td;},getNextNonSpan:function(colIndex,rowIndex){var cols=this.columns;while((cols&&colIndex>=cols)||(this.cells[rowIndex]&&this.cells[rowIndex][colIndex])){if(cols&&colIndex>=cols){rowIndex++;colIndex=0;}else{colIndex++;}}
return[colIndex,rowIndex];},renderItem:function(c,position,target){if(c&&!c.rendered){c.render(this.getNextCell(c));if(this.extraCls){var t=c.getPositionEl?c.getPositionEl():c;t.addClass(this.extraCls);}}},isValidParent:function(c,target){return true;}});Ext.Container.LAYOUTS['table']=Ext.layout.TableLayout;Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:'x-abs-layout-item',isForm:false,setContainer:function(ct){Ext.layout.AbsoluteLayout.superclass.setContainer.call(this,ct);if(ct.isXType('form')){this.isForm=true;}},onLayout:function(ct,target){if(this.isForm){ct.body.position();}else{target.position();}
Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,ct,target);},getAnchorViewSize:function(ct,target){return this.isForm?ct.body.getStyleSize():Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this,ct,target);},isValidParent:function(c,target){return this.isForm?true:Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this,c,target);},adjustWidthAnchor:function(value,comp){return value?value-comp.getPosition(true)[0]:value;},adjustHeightAnchor:function(value,comp){return value?value-comp.getPosition(true)[1]:value;}});Ext.Container.LAYOUTS['absolute']=Ext.layout.AbsoluteLayout;Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName('html')[0].className+=' x-viewport';this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll='no';this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el;},fireResize:function(w,h){this.fireEvent('resize',this,w,h,w,h);}});Ext.reg('viewport',Ext.Viewport);Ext.Panel=Ext.extend(Ext.Container,{baseCls:'x-panel',collapsedCls:'x-panel-collapsed',maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:'right',collapsed:false,collapseFirst:true,minButtonWidth:75,elements:'body',toolTarget:'header',collapseEl:'bwrap',slideAnchor:'t',disabledClass:'',deferHeight:true,expandDefaults:{duration:.25},collapseDefaults:{duration:.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents('bodyresize','titlechange','iconchange','collapse','expand','beforecollapse','beforeexpand','beforeclose','close','activate','deactivate');if(this.tbar){this.elements+=',tbar';if(typeof this.tbar=='object'){this.topToolbar=this.tbar;}
delete this.tbar;}
if(this.bbar){this.elements+=',bbar';if(typeof this.bbar=='object'){this.bottomToolbar=this.bbar;}
delete this.bbar;}
if(this.header===true){this.elements+=',header';delete this.header;}else if(this.headerCfg||(this.title&&this.header!==false)){this.elements+=',header';}
if(this.footerCfg||this.footer===true){this.elements+=',footer';delete this.footer;}
if(this.buttons){var btns=this.buttons;this.buttons=[];for(var i=0,len=btns.length;i<len;i++){if(btns[i].render){btns[i].ownerCt=this;this.buttons.push(btns[i]);}else{this.addButton(btns[i]);}}}
if(this.autoLoad){this.on('render',this.doAutoLoad,this,{delay:10});}},createElement:function(name,pnode){if(this[name]){pnode.appendChild(this[name].dom);return;}
if(name==='bwrap'||this.elements.indexOf(name)!=-1){if(this[name+'Cfg']){this[name]=Ext.fly(pnode).createChild(this[name+'Cfg']);}else{var el=document.createElement('div');el.className=this[name+'Cls'];this[name]=Ext.get(pnode.appendChild(el));}
if(this[name+'CssClass']){this[name].addClass(this[name+'CssClass']);}
if(this[name+'Style']){this[name].applyStyles(this[name+'Style']);}}},onRender:function(ct,position){Ext.Panel.superclass.onRender.call(this,ct,position);this.createClasses();if(this.el){this.el.addClass(this.baseCls);this.header=this.el.down('.'+this.headerCls);this.bwrap=this.el.down('.'+this.bwrapCls);var cp=this.bwrap?this.bwrap:this.el;this.tbar=cp.down('.'+this.tbarCls);this.body=cp.down('.'+this.bodyCls);this.bbar=cp.down('.'+this.bbarCls);this.footer=cp.down('.'+this.footerCls);this.fromMarkup=true;}else{this.el=ct.createChild({id:this.id,cls:this.baseCls},position);}
var el=this.el,d=el.dom;if(this.cls){this.el.addClass(this.cls);}
if(this.buttons){this.elements+=',footer';}
if(this.frame){el.insertHtml('afterBegin',String.format(Ext.Element.boxMarkup,this.baseCls));this.createElement('header',d.firstChild.firstChild.firstChild);this.createElement('bwrap',d);var bw=this.bwrap.dom;var ml=d.childNodes[1],bl=d.childNodes[2];bw.appendChild(ml);bw.appendChild(bl);var mc=bw.firstChild.firstChild.firstChild;this.createElement('tbar',mc);this.createElement('body',mc);this.createElement('bbar',mc);this.createElement('footer',bw.lastChild.firstChild.firstChild);if(!this.footer){this.bwrap.dom.lastChild.className+=' x-panel-nofooter';}}else{this.createElement('header',d);this.createElement('bwrap',d);var bw=this.bwrap.dom;this.createElement('tbar',bw);this.createElement('body',bw);this.createElement('bbar',bw);this.createElement('footer',bw);if(!this.header){this.body.addClass(this.bodyCls+'-noheader');if(this.tbar){this.tbar.addClass(this.tbarCls+'-noheader');}}}
if(this.border===false){this.el.addClass(this.baseCls+'-noborder');this.body.addClass(this.bodyCls+'-noborder');if(this.header){this.header.addClass(this.headerCls+'-noborder');}
if(this.footer){this.footer.addClass(this.footerCls+'-noborder');}
if(this.tbar){this.tbar.addClass(this.tbarCls+'-noborder');}
if(this.bbar){this.bbar.addClass(this.bbarCls+'-noborder');}}
if(this.bodyBorder===false){this.body.addClass(this.bodyCls+'-noborder');}
this.bwrap.enableDisplayMode('block');if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML='<span class="'+this.headerTextCls+'">'+this.header.dom.innerHTML+'</span>';if(this.iconCls){this.setIconClass(this.iconCls);}}}
if(this.floating){this.makeFloating(this.floating);}
if(this.collapsible){this.tools=this.tools?this.tools.slice(0):[];if(!this.hideCollapseTool){this.tools[this.collapseFirst?'unshift':'push']({id:'toggle',handler:this.toggleCollapse,scope:this});}
if(this.titleCollapse&&this.header){this.header.on('click',this.toggleCollapse,this);this.header.setStyle('cursor','pointer');}}
if(this.tools){var ts=this.tools;this.tools={};this.addTool.apply(this,ts);}else{this.tools={};}
if(this.buttons&&this.buttons.length>0){var tb=this.footer.createChild({cls:'x-panel-btns-ct',cn:{cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>'}},null,true);var tr=tb.getElementsByTagName('tr')[0];for(var i=0,len=this.buttons.length;i<len;i++){var b=this.buttons[i];var td=document.createElement('td');td.className='x-panel-btn-td';b.render(tr.appendChild(td));}}
if(this.tbar&&this.topToolbar){if(Ext.isArray(this.topToolbar)){this.topToolbar=new Ext.Toolbar(this.topToolbar);}
this.topToolbar.render(this.tbar);this.topToolbar.ownerCt=this;}
if(this.bbar&&this.bottomToolbar){if(Ext.isArray(this.bottomToolbar)){this.bottomToolbar=new Ext.Toolbar(this.bottomToolbar);}
this.bottomToolbar.render(this.bbar);this.bottomToolbar.ownerCt=this;}},setIconClass:function(cls){var old=this.iconCls;this.iconCls=cls;if(this.rendered&&this.header){if(this.frame){this.header.addClass('x-panel-icon');this.header.replaceClass(old,this.iconCls);}else{var hd=this.header.dom;var img=hd.firstChild&&String(hd.firstChild.tagName).toLowerCase()=='img'?hd.firstChild:null;if(img){Ext.fly(img).replaceClass(old,this.iconCls);}else{Ext.DomHelper.insertBefore(hd.firstChild,{tag:'img',src:Ext.BLANK_IMAGE_URL,cls:'x-panel-inline-icon '+this.iconCls});}}}
this.fireEvent('iconchange',this,cls,old);},makeFloating:function(cfg){this.floating=true;this.el=new Ext.Layer(typeof cfg=='object'?cfg:{shadow:this.shadow!==undefined?this.shadow:'sides',shadowOffset:this.shadowOffset,constrain:false,shim:this.shim===false?false:undefined},this.el);},getTopToolbar:function(){return this.topToolbar;},getBottomToolbar:function(){return this.bottomToolbar;},addButton:function(config,handler,scope){var bc={handler:handler,scope:scope,minWidth:this.minButtonWidth,hideParent:true};if(typeof config=="string"){bc.text=config;}else{Ext.apply(bc,config);}
var btn=new Ext.Button(bc);btn.ownerCt=this;if(!this.buttons){this.buttons=[];}
this.buttons.push(btn);return btn;},addTool:function(){if(!this[this.toolTarget]){return;}
if(!this.toolTemplate){var tt=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');tt.disableFormats=true;tt.compile();Ext.Panel.prototype.toolTemplate=tt;}
for(var i=0,a=arguments,len=a.length;i<len;i++){var tc=a[i];if(!this.tools[tc.id]){var overCls='x-tool-'+tc.id+'-over';var t=this.toolTemplate.insertFirst((tc.align!=='left')?this[this.toolTarget]:this[this.toolTarget].child('span'),tc,true);this.tools[tc.id]=t;t.enableDisplayMode('block');t.on('click',this.createToolHandler(t,tc,overCls,this));if(tc.on){t.on(tc.on);}
if(tc.hidden){t.hide();}
if(tc.qtip){if(typeof tc.qtip=='object'){Ext.QuickTips.register(Ext.apply({target:t.id},tc.qtip));}else{t.dom.qtip=tc.qtip;}}
t.addClassOnOver(overCls);}}},onShow:function(){if(this.floating){return this.el.show();}
Ext.Panel.superclass.onShow.call(this);},onHide:function(){if(this.floating){return this.el.hide();}
Ext.Panel.superclass.onHide.call(this);},createToolHandler:function(t,tc,overCls,panel){return function(e){t.removeClass(overCls);e.stopEvent();if(tc.handler){tc.handler.call(tc.scope||t,e,t,panel);}};},afterRender:function(){if(this.fromMarkup&&this.height===undefined&&!this.autoHeight){this.height=this.el.getHeight();}
if(this.floating&&!this.hidden&&!this.initHidden){this.el.show();}
if(this.title){this.setTitle(this.title);}
this.setAutoScroll();if(this.html){this.body.update(typeof this.html=='object'?Ext.DomHelper.markup(this.html):this.html);delete this.html;}
if(this.contentEl){var ce=Ext.getDom(this.contentEl);Ext.fly(ce).removeClass(['x-hidden','x-hide-display']);this.body.dom.appendChild(ce);}
if(this.collapsed){this.collapsed=false;this.collapse(false);}
Ext.Panel.superclass.afterRender.call(this);this.initEvents();},setAutoScroll:function(){if(this.rendered&&this.autoScroll){var el=this.body||this.el;if(el){el.setOverflow('auto');}}},getKeyMap:function(){if(!this.keyMap){this.keyMap=new Ext.KeyMap(this.el,this.keys);}
return this.keyMap;},initEvents:function(){if(this.keys){this.getKeyMap();}
if(this.draggable){this.initDraggable();}},initDraggable:function(){this.dd=new Ext.Panel.DD(this,typeof this.draggable=='boolean'?null:this.draggable);},beforeEffect:function(){if(this.floating){this.el.beforeAction();}
this.el.addClass('x-panel-animated');},afterEffect:function(){this.syncShadow();this.el.removeClass('x-panel-animated');},createEffect:function(a,cb,scope){var o={scope:scope,block:true};if(a===true){o.callback=cb;return o;}else if(!a.callback){o.callback=cb;}else{o.callback=function(){cb.call(scope);Ext.callback(a.callback,a.scope);};}
return Ext.applyIf(o,a);},collapse:function(animate){if(this.collapsed||this.el.hasFxBlock()||this.fireEvent('beforecollapse',this,animate)===false){return;}
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.beforeEffect();this.onCollapse(doAnim,animate);return this;},onCollapse:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterCollapse,this),this.collapseDefaults));}else{this[this.collapseEl].hide();this.afterCollapse();}},afterCollapse:function(){this.collapsed=true;this.el.addClass(this.collapsedCls);this.afterEffect();this.fireEvent('collapse',this);},expand:function(animate){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent('beforeexpand',this,animate)===false){return;}
var doAnim=animate===true||(animate!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect();this.onExpand(doAnim,animate);return this;},onExpand:function(doAnim,animArg){if(doAnim){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(animArg||true,this.afterExpand,this),this.expandDefaults));}else{this[this.collapseEl].show();this.afterExpand();}},afterExpand:function(){this.collapsed=false;this.afterEffect();this.fireEvent('expand',this);},toggleCollapse:function(animate){this[this.collapsed?'expand':'collapse'](animate);return this;},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask();}
Ext.Panel.superclass.onDisable.call(this);},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask();}
Ext.Panel.superclass.onEnable.call(this);},onResize:function(w,h){if(w!==undefined||h!==undefined){if(!this.collapsed){if(typeof w=='number'){this.body.setWidth(this.adjustBodyWidth(w-this.getFrameWidth()));}else if(w=='auto'){this.body.setWidth(w);}
if(typeof h=='number'){this.body.setHeight(this.adjustBodyHeight(h-this.getFrameHeight()));}else if(h=='auto'){this.body.setHeight(h);}
if(this.disabled&&this.el._mask){this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight());}}else{this.queuedBodySize={width:w,height:h};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on('expand',function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height);this.doLayout();},this,{single:true});}}
this.fireEvent('bodyresize',this,w,h);}
this.syncShadow();},adjustBodyHeight:function(h){return h;},adjustBodyWidth:function(w){return w;},onPosition:function(){this.syncShadow();},getFrameWidth:function(){var w=this.el.getFrameWidth('lr');if(this.frame){var l=this.bwrap.dom.firstChild;w+=(Ext.fly(l).getFrameWidth('l')+Ext.fly(l.firstChild).getFrameWidth('r'));var mc=this.bwrap.dom.firstChild.firstChild.firstChild;w+=Ext.fly(mc).getFrameWidth('lr');}
return w;},getFrameHeight:function(){var h=this.el.getFrameWidth('tb');h+=(this.tbar?this.tbar.getHeight():0)+
(this.bbar?this.bbar.getHeight():0);if(this.frame){var hd=this.el.dom.firstChild;var ft=this.bwrap.dom.lastChild;h+=(hd.offsetHeight+ft.offsetHeight);var mc=this.bwrap.dom.firstChild.firstChild.firstChild;h+=Ext.fly(mc).getFrameWidth('tb');}else{h+=(this.header?this.header.getHeight():0)+
(this.footer?this.footer.getHeight():0);}
return h;},getInnerWidth:function(){return this.getSize().width-this.getFrameWidth();},getInnerHeight:function(){return this.getSize().height-this.getFrameHeight();},syncShadow:function(){if(this.floating){this.el.sync(true);}},getLayoutTarget:function(){return this.body;},setTitle:function(title,iconCls){this.title=title;if(this.header&&this.headerAsText){this.header.child('span').update(title);}
if(iconCls){this.setIconClass(iconCls);}
this.fireEvent('titlechange',this,title);return this;},getUpdater:function(){return this.body.getUpdater();},load:function(){var um=this.body.getUpdater();um.update.apply(um,arguments);return this;},beforeDestroy:function(){if(this.header){this.header.removeAllListeners();if(this.headerAsText){Ext.Element.uncache(this.header.child('span'));}}
Ext.Element.uncache(this.header,this.tbar,this.bbar,this.footer,this.body,this.bwrap);if(this.tools){for(var k in this.tools){Ext.destroy(this.tools[k]);}}
if(this.buttons){for(var b in this.buttons){Ext.destroy(this.buttons[b]);}}
Ext.destroy(this.topToolbar,this.bottomToolbar);Ext.Panel.superclass.beforeDestroy.call(this);},createClasses:function(){this.headerCls=this.baseCls+'-header';this.headerTextCls=this.baseCls+'-header-text';this.bwrapCls=this.baseCls+'-bwrap';this.tbarCls=this.baseCls+'-tbar';this.bodyCls=this.baseCls+'-body';this.bbarCls=this.baseCls+'-bbar';this.footerCls=this.baseCls+'-footer';},createGhost:function(cls,useShim,appendTo){var el=document.createElement('div');el.className='x-panel-ghost '+(cls?cls:'');if(this.header){el.appendChild(this.el.dom.firstChild.cloneNode(true));}
Ext.fly(el.appendChild(document.createElement('ul'))).setHeight(this.bwrap.getHeight());el.style.width=this.el.dom.offsetWidth+'px';;if(!appendTo){this.container.dom.appendChild(el);}else{Ext.getDom(appendTo).appendChild(el);}
if(useShim!==false&&this.el.useShim!==false){var layer=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},el);layer.show();return layer;}else{return new Ext.Element(el);}},doAutoLoad:function(){var u=this.body.getUpdater();if(this.renderer){u.setRenderer(this.renderer);}
u.update(typeof this.autoLoad=='object'?this.autoLoad:{url:this.autoLoad});},getTool:function(id){return this.tools[id];}});Ext.reg('panel',Ext.Panel);Ext.Window=Ext.extend(Ext.Panel,{baseCls:'x-window',resizable:true,draggable:true,closable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,closeAction:'close',elements:'header,body',collapsible:false,initHidden:true,monitorResize:true,frame:true,floating:true,initComponent:function(){Ext.Window.superclass.initComponent.call(this);this.addEvents('resize','maximize','minimize','restore');},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox(true));},onRender:function(ct,position){Ext.Window.superclass.onRender.call(this,ct,position);if(this.plain){this.el.addClass('x-window-plain');}
this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:"&#160;"});this.focusEl.swallowEvent('click',true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode('block');if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mask.on('click',this.focus,this);}
this.initTools();},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget);}
if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction});this.resizer.window=this;this.resizer.on("beforeresize",this.beforeResize,this);}
if(this.draggable){this.header.addClass("x-window-draggable");}
this.el.on("mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);this.hidden=true;if(this.maximized){this.maximized=false;this.maximize();}
if(this.closable){var km=this.getKeyMap();km.on(27,this.onEsc,this);km.disable();}},initDraggable:function(){this.dd=new Ext.Window.DD(this);},onEsc:function(){this[this.closeAction]();},beforeDestroy:function(){if(this.rendered){this.hide();if(this.doAnchor){Ext.EventManager.removeResizeListener(this.doAnchor,this);Ext.EventManager.un(window,'scroll',this.doAnchor,this);}
Ext.destroy(this.focusEl,this.resizer,this.dd,this.proxy,this.mask);}
Ext.Window.superclass.beforeDestroy.call(this);},onDestroy:function(){if(this.manager){this.manager.unregister(this);}
Ext.Window.superclass.onDestroy.call(this);},initTools:function(){if(this.minimizable){this.addTool({id:'minimize',handler:this.minimize.createDelegate(this,[])});}
if(this.maximizable){this.addTool({id:'maximize',handler:this.maximize.createDelegate(this,[])});this.addTool({id:'restore',handler:this.restore.createDelegate(this,[]),hidden:true});this.header.on('dblclick',this.toggleMaximize,this);}
if(this.closable){this.addTool({id:'close',handler:this[this.closeAction].createDelegate(this,[])});}},resizerAction:function(){var box=this.proxy.getBox();this.proxy.hide();this.window.handleResize(box);return box;},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox();},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint();}},handleResize:function(box){var rz=this.resizeBox;if(rz.x!=box.x||rz.y!=box.y){this.updateBox(box);}else{this.setSize(box);}
this.focus();this.updateHandles();this.saveState();if(this.layout){this.doLayout();}
this.fireEvent("resize",this,box.width,box.height);},focus:function(){var f=this.focusEl,db=this.defaultButton,t=typeof db;if(t!='undefined'){if(t=='number'){f=this.buttons[db];}else if(t=='string'){f=Ext.getCmp(db);}else{f=db;}}
f.focus.defer(10,f);},setAnimateTarget:function(el){el=Ext.get(el);this.animateTarget=el;},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var xy=this.el.getAlignToXY(this.container,'c-c');var pos=this.el.translatePoints(xy[0],xy[1]);this.x=this.x===undefined?pos.left:this.x;this.y=this.y===undefined?pos.top:this.y;}
this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false);}
if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show();}},show:function(animateTarget,cb,scope){if(!this.rendered){this.render(Ext.getBody());}
if(this.hidden===false){this.toFront();return;}
if(this.fireEvent("beforeshow",this)===false){return;}
if(cb){this.on('show',cb,scope,{single:true});}
this.hidden=false;if(animateTarget!==undefined){this.setAnimateTarget(animateTarget);}
this.beforeShow();if(this.animateTarget){this.animShow();}else{this.afterShow();}},afterShow:function(){this.proxy.hide();this.el.setStyle('display','block');this.el.show();if(this.maximized){this.fitContainer();}
if(Ext.isMac&&Ext.isGecko){this.cascade(this.setAutoScroll);}
if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.onWindowResize(this.onWindowResize,this);}
this.doConstrain();if(this.layout){this.doLayout();}
if(this.keyMap){this.keyMap.enable();}
this.toFront();this.updateHandles();this.fireEvent("show",this);},animShow:function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var b=this.getBox(false);b.callback=this.afterShow;b.scope=this;b.duration=.25;b.easing='easeNone';b.opacity=.5;b.block=true;this.el.setStyle('display','none');this.proxy.shift(b);},hide:function(animateTarget,cb,scope){if(this.activeGhost){this.hide.defer(100,this,[animateTarget,cb,scope]);return;}
if(this.hidden||this.fireEvent("beforehide",this)===false){return;}
if(cb){this.on('hide',cb,scope,{single:true});}
this.hidden=true;if(animateTarget!==undefined){this.setAnimateTarget(animateTarget);}
if(this.animateTarget){this.animHide();}else{this.el.hide();this.afterHide();}},afterHide:function(){this.proxy.hide();if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.removeResizeListener(this.onWindowResize,this);}
if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked");}
if(this.keyMap){this.keyMap.disable();}
this.fireEvent("hide",this);},animHide:function(){this.proxy.setOpacity(.5);this.proxy.show();var tb=this.getBox(false);this.proxy.setBox(tb);this.el.hide();var b=this.animateTarget.getBox();b.callback=this.afterHide;b.scope=this;b.duration=.25;b.easing='easeNone';b.block=true;b.opacity=0;this.proxy.shift(b);},onWindowResize:function(){if(this.maximized){this.fitContainer();}
if(this.modal){this.mask.setSize('100%','100%');var force=this.mask.dom.offsetHeight;this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));}
this.doConstrain();},doConstrain:function(){if(this.constrain||this.constrainHeader){var offsets;if(this.constrain){offsets={right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset};}else{var s=this.getSize();offsets={right:-(s.width-100),bottom:-(s.height-25)};}
var xy=this.el.getConstrainToXY(this.container,true,offsets);if(xy){this.setPosition(xy[0],xy[1]);}}},ghost:function(cls){var ghost=this.createGhost(cls);var box=this.getBox(true);ghost.setLeftTop(box.x,box.y);ghost.setWidth(box.width);this.el.hide();this.activeGhost=ghost;return ghost;},unghost:function(show,matchPosition){if(show!==false){this.el.show();this.focus();if(Ext.isMac&&Ext.isGecko){this.cascade(this.setAutoScroll);}}
if(matchPosition!==false){this.setPosition(this.activeGhost.getLeft(true),this.activeGhost.getTop(true));}
this.activeGhost.hide();this.activeGhost.remove();delete this.activeGhost;},minimize:function(){this.fireEvent('minimize',this);},close:function(){if(this.fireEvent("beforeclose",this)!==false){this.hide(null,function(){this.fireEvent('close',this);this.destroy();},this);}},maximize:function(){if(!this.maximized){this.expand(false);this.restoreSize=this.getSize();this.restorePos=this.getPosition(true);if(this.maximizable){this.tools.maximize.hide();this.tools.restore.show();}
this.maximized=true;this.el.disableShadow();if(this.dd){this.dd.lock();}
if(this.collapsible){this.tools.toggle.hide();}
this.el.addClass('x-window-maximized');this.container.addClass('x-window-maximized-ct');this.setPosition(0,0);this.fitContainer();this.fireEvent('maximize',this);}},restore:function(){if(this.maximized){this.el.removeClass('x-window-maximized');this.tools.restore.hide();this.tools.maximize.show();this.setPosition(this.restorePos[0],this.restorePos[1]);this.setSize(this.restoreSize.width,this.restoreSize.height);delete this.restorePos;delete this.restoreSize;this.maximized=false;this.el.enableShadow(true);if(this.dd){this.dd.unlock();}
if(this.collapsible){this.tools.toggle.show();}
this.container.removeClass('x-window-maximized-ct');this.doConstrain();this.fireEvent('restore',this);}},toggleMaximize:function(){this[this.maximized?'restore':'maximize']();},fitContainer:function(){var vs=this.container.getViewSize();this.setSize(vs.width,vs.height);},setZIndex:function(index){if(this.modal){this.mask.setStyle("z-index",index);}
this.el.setZIndex(++index);index+=5;if(this.resizer){this.resizer.proxy.setStyle("z-index",++index);}
this.lastZIndex=index;},alignTo:function(element,position,offsets){var xy=this.el.getAlignToXY(element,position,offsets);this.setPagePosition(xy[0],xy[1]);return this;},anchorTo:function(el,alignment,offsets,monitorScroll){if(this.doAnchor){Ext.EventManager.removeResizeListener(this.doAnchor,this);Ext.EventManager.un(window,'scroll',this.doAnchor,this);}
this.doAnchor=function(){this.alignTo(el,alignment,offsets);};Ext.EventManager.onWindowResize(this.doAnchor,this);var tm=typeof monitorScroll;if(tm!='undefined'){Ext.EventManager.on(window,'scroll',this.doAnchor,this,{buffer:tm=='number'?monitorScroll:50});}
this.doAnchor();return this;},toFront:function(e){if(this.manager.bringToFront(this)){if(!e||!e.getTarget().focus){this.focus();}}
return this;},setActive:function(active){if(active){if(!this.maximized){this.el.enableShadow(true);}
this.fireEvent('activate',this);}else{this.el.disableShadow();this.fireEvent('deactivate',this);}},toBack:function(){this.manager.sendToBack(this);return this;},center:function(){var xy=this.el.getAlignToXY(this.container,'c-c');this.setPagePosition(xy[0],xy[1]);return this;}});Ext.reg('window',Ext.Window);Ext.Window.DD=function(win){this.win=win;Ext.Window.DD.superclass.constructor.call(this,win.el.id,'WindowDD-'+win.id);this.setHandleElId(win.header.id);this.scroll=false;};Ext.extend(Ext.Window.DD,Ext.dd.DD,{moveOnly:true,headerOffsets:[100,25],startDrag:function(){var w=this.win;this.proxy=w.ghost();if(w.constrain!==false){var so=w.el.shadowOffset;this.constrainTo(w.container,{right:so,left:so,bottom:so});}else if(w.constrainHeader!==false){var s=this.proxy.getSize();this.constrainTo(w.container,{right:-(s.width-this.headerOffsets[0]),bottom:-(s.height-this.headerOffsets[1])});}},b4Drag:Ext.emptyFn,onDrag:function(e){this.alignElWithMouse(this.proxy,e.getPageX(),e.getPageY());},endDrag:function(e){this.win.unghost();this.win.saveState();}});Ext.WindowGroup=function(){var list={};var accessList=[];var front=null;var sortWindows=function(d1,d2){return(!d1._lastAccess||d1._lastAccess<d2._lastAccess)?-1:1;};var orderWindows=function(){var a=accessList,len=a.length;if(len>0){a.sort(sortWindows);var seed=a[0].manager.zseed;for(var i=0;i<len;i++){var win=a[i];if(win&&!win.hidden){win.setZIndex(seed+(i*10));}}}
activateLast();};var setActiveWin=function(win){if(win!=front){if(front){front.setActive(false);}
front=win;if(win){win.setActive(true);}}};var activateLast=function(){for(var i=accessList.length-1;i>=0;--i){if(!accessList[i].hidden){setActiveWin(accessList[i]);return;}}
setActiveWin(null);};return{zseed:9000,register:function(win){list[win.id]=win;accessList.push(win);win.on('hide',activateLast);},unregister:function(win){delete list[win.id];win.un('hide',activateLast);accessList.remove(win);},get:function(id){return typeof id=="object"?id:list[id];},bringToFront:function(win){win=this.get(win);if(win!=front){win._lastAccess=new Date().getTime();orderWindows();return true;}
return false;},sendToBack:function(win){win=this.get(win);win._lastAccess=-(new Date().getTime());orderWindows();return win;},hideAll:function(){for(var id in list){if(list[id]&&typeof list[id]!="function"&&list[id].isVisible()){list[id].hide();}}},getActive:function(){return front;},getBy:function(fn,scope){var r=[];for(var i=accessList.length-1;i>=0;--i){var win=accessList[i];if(fn.call(scope||win,win)!==false){r.push(win);}}
return r;},each:function(fn,scope){for(var id in list){if(list[id]&&typeof list[id]!="function"){if(fn.call(scope||list[id],list[id])===false){return;}}}}};};Ext.WindowMgr=new Ext.WindowGroup();Ext.dd.PanelProxy=function(panel,config){this.panel=panel;this.id=this.panel.id+'-ddproxy';Ext.apply(this,config);};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost;},getGhost:function(){return this.ghost;},getProxy:function(){return this.proxy;},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy;}
this.panel.el.dom.style.display='';this.ghost.remove();delete this.ghost;}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY())
if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:'x-panel-dd-spacer'});this.proxy.setSize(this.panel.getSize());}
this.panel.el.dom.style.display='none';}},repair:function(xy,callback,scope){this.hide();if(typeof callback=="function"){callback.call(scope||this);}},moveProxy:function(parentNode,before){if(this.proxy){parentNode.insertBefore(this.proxy.dom,before);}}};Ext.Panel.DD=function(panel,cfg){this.panel=panel;this.dragData={panel:panel};this.proxy=new Ext.dd.PanelProxy(panel,cfg);Ext.Panel.DD.superclass.constructor.call(this,panel.el,cfg);var h=panel.header;if(h){this.setHandleElId(h.id);}
(h?h:this.panel.body).setStyle('cursor','move');this.scroll=false;};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(x,y){this.proxy.show();},b4MouseDown:function(e){var x=e.getPageX();var y=e.getPageY();this.autoOffset(x,y);},onInitDrag:function(x,y){this.onStartDrag(x,y);return true;},createFrame:Ext.emptyFn,getDragEl:function(e){return this.proxy.ghost.dom;},endDrag:function(e){this.proxy.hide();this.panel.saveState();},autoOffset:function(x,y){x-=this.startPageX;y-=this.startPageY;this.setDelta(x,y);}});Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this);};Ext.extend(Ext.state.Provider,Ext.util.Observable,{get:function(name,defaultValue){return typeof this.state[name]=="undefined"?defaultValue:this.state[name];},clear:function(name){delete this.state[name];this.fireEvent("statechange",this,name,null);},set:function(name,value){this.state[name]=value;this.fireEvent("statechange",this,name,value);},decodeValue:function(cookie){var re=/^(a|n|d|b|s|o)\:(.*)$/;var matches=re.exec(unescape(cookie));if(!matches||!matches[1])return;var type=matches[1];var v=matches[2];switch(type){case"n":return parseFloat(v);case"d":return new Date(Date.parse(v));case"b":return(v=="1");case"a":var all=[];var values=v.split("^");for(var i=0,len=values.length;i<len;i++){all.push(this.decodeValue(values[i]));}
return all;case"o":var all={};var values=v.split("^");for(var i=0,len=values.length;i<len;i++){var kv=values[i].split("=");all[kv[0]]=this.decodeValue(kv[1]);}
return all;default:return v;}},encodeValue:function(v){var enc;if(typeof v=="number"){enc="n:"+v;}else if(typeof v=="boolean"){enc="b:"+(v?"1":"0");}else if(Ext.isDate(v)){enc="d:"+v.toGMTString();}else if(Ext.isArray(v)){var flat="";for(var i=0,len=v.length;i<len;i++){flat+=this.encodeValue(v[i]);if(i!=len-1)flat+="^";}
enc="a:"+flat;}else if(typeof v=="object"){var flat="";for(var key in v){if(typeof v[key]!="function"&&v[key]!==undefined){flat+=key+"="+this.encodeValue(v[key])+"^";}}
enc="o:"+flat.substring(0,flat.length-1);}else{enc="s:"+v;}
return escape(enc);}});Ext.state.Manager=function(){var provider=new Ext.state.Provider();return{setProvider:function(stateProvider){provider=stateProvider;},get:function(key,defaultValue){return provider.get(key,defaultValue);},set:function(key,value){provider.set(key,value);},clear:function(key){provider.clear(key);},getProvider:function(){return provider;}};}();Ext.state.CookieProvider=function(config){Ext.state.CookieProvider.superclass.constructor.call(this);this.path="/";this.expires=new Date(new Date().getTime()+(1000*60*60*24*7));this.domain=null;this.secure=false;Ext.apply(this,config);this.state=this.readCookies();};Ext.extend(Ext.state.CookieProvider,Ext.state.Provider,{set:function(name,value){if(typeof value=="undefined"||value===null){this.clear(name);return;}
this.setCookie(name,value);Ext.state.CookieProvider.superclass.set.call(this,name,value);},clear:function(name){this.clearCookie(name);Ext.state.CookieProvider.superclass.clear.call(this,name);},readCookies:function(){var cookies={};var c=document.cookie+";";var re=/\s?(.*?)=(.*?);/g;var matches;while((matches=re.exec(c))!=null){var name=matches[1];var value=matches[2];if(name&&name.substring(0,3)=="ys-"){cookies[name.substr(3)]=this.decodeValue(value);}}
return cookies;},setCookie:function(name,value){document.cookie="ys-"+name+"="+this.encodeValue(value)+
((this.expires==null)?"":("; expires="+this.expires.toGMTString()))+
((this.path==null)?"":("; path="+this.path))+
((this.domain==null)?"":("; domain="+this.domain))+
((this.secure==true)?"; secure":"");},clearCookie:function(name){document.cookie="ys-"+name+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+
((this.path==null)?"":("; path="+this.path))+
((this.domain==null)?"":("; domain="+this.domain))+
((this.secure==true)?"; secure":"");}});Ext.DataView=Ext.extend(Ext.BoxComponent,{selectedClass:"x-view-selected",emptyText:"",deferEmptyText:true,trackOver:false,last:false,initComponent:function(){Ext.DataView.superclass.initComponent.call(this);if(typeof this.tpl=="string"||Ext.isArray(this.tpl)){this.tpl=new Ext.XTemplate(this.tpl);}
this.addEvents("beforeclick","click","mouseenter","mouseleave","containerclick","dblclick","contextmenu","selectionchange","beforeselect");this.all=new Ext.CompositeElementLite();this.selected=new Ext.CompositeElementLite();},onRender:function(){if(!this.el){this.el=document.createElement('div');this.el.id=this.id;}
Ext.DataView.superclass.onRender.apply(this,arguments);},afterRender:function(){Ext.DataView.superclass.afterRender.call(this);this.el.on({"click":this.onClick,"dblclick":this.onDblClick,"contextmenu":this.onContextMenu,scope:this});if(this.overClass||this.trackOver){this.el.on({"mouseover":this.onMouseOver,"mouseout":this.onMouseOut,scope:this});}
if(this.store){this.setStore(this.store,true);}},refresh:function(){this.clearSelections(false,true);this.el.update("");var records=this.store.getRange();if(records.length<1){if(!this.deferEmptyText||this.hasSkippedEmptyText){this.el.update(this.emptyText);}
this.all.clear();}else{this.tpl.overwrite(this.el,this.collectData(records,0));this.all.fill(Ext.query(this.itemSelector,this.el.dom));this.updateIndexes(0);}
this.hasSkippedEmptyText=true;},prepareData:function(data){return data;},collectData:function(records,startIndex){var r=[];for(var i=0,len=records.length;i<len;i++){r[r.length]=this.prepareData(records[i].data,startIndex+i,records[i]);}
return r;},bufferRender:function(records){var div=document.createElement('div');this.tpl.overwrite(div,this.collectData(records));return Ext.query(this.itemSelector,div);},onUpdate:function(ds,record){var index=this.store.indexOf(record);var sel=this.isSelected(index);var original=this.all.elements[index];var node=this.bufferRender([record],index)[0];this.all.replaceElement(index,node,true);if(sel){this.selected.replaceElement(original,node);this.all.item(index).addClass(this.selectedClass);}
this.updateIndexes(index,index);},onAdd:function(ds,records,index){if(this.all.getCount()==0){this.refresh();return;}
var nodes=this.bufferRender(records,index),n,a=this.all.elements;if(index<this.all.getCount()){n=this.all.item(index).insertSibling(nodes,'before',true);a.splice.apply(a,[index,0].concat(nodes));}else{n=this.all.last().insertSibling(nodes,'after',true);a.push.apply(a,nodes);}
this.updateIndexes(index);},onRemove:function(ds,record,index){this.deselect(index);this.all.removeElement(index,true);this.updateIndexes(index);if(this.store.getCount()==0){this.refresh();}},refreshNode:function(index){this.onUpdate(this.store,this.store.getAt(index));},updateIndexes:function(startIndex,endIndex){var ns=this.all.elements;startIndex=startIndex||0;endIndex=endIndex||((endIndex===0)?0:(ns.length-1));for(var i=startIndex;i<=endIndex;i++){ns[i].viewIndex=i;}},getStore:function(){return this.store;},setStore:function(store,initial){if(!initial&&this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("datachanged",this.refresh,this);this.store.un("add",this.onAdd,this);this.store.un("remove",this.onRemove,this);this.store.un("update",this.onUpdate,this);this.store.un("clear",this.refresh,this);}
if(store){store=Ext.StoreMgr.lookup(store);store.on("beforeload",this.onBeforeLoad,this);store.on("datachanged",this.refresh,this);store.on("add",this.onAdd,this);store.on("remove",this.onRemove,this);store.on("update",this.onUpdate,this);store.on("clear",this.refresh,this);}
this.store=store;if(store){this.refresh();}},findItemFromChild:function(node){return Ext.fly(node).findParent(this.itemSelector,this.el);},onClick:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item){var index=this.indexOf(item);if(this.onItemClick(item,index,e)!==false){this.fireEvent("click",this,index,item,e);}}else{if(this.fireEvent("containerclick",this,e)!==false){this.clearSelections();}}},onContextMenu:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item){this.fireEvent("contextmenu",this,this.indexOf(item),item,e);}},onDblClick:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item){this.fireEvent("dblclick",this,this.indexOf(item),item,e);}},onMouseOver:function(e){var item=e.getTarget(this.itemSelector,this.el);if(item&&item!==this.lastItem){this.lastItem=item;Ext.fly(item).addClass(this.overClass);this.fireEvent("mouseenter",this,this.indexOf(item),item,e);}},onMouseOut:function(e){if(this.lastItem){if(!e.within(this.lastItem,true,true)){Ext.fly(this.lastItem).removeClass(this.overClass);this.fireEvent("mouseleave",this,this.indexOf(this.lastItem),this.lastItem,e);delete this.lastItem;}}},onItemClick:function(item,index,e){if(this.fireEvent("beforeclick",this,index,item,e)===false){return false;}
if(this.multiSelect){this.doMultiSelection(item,index,e);e.preventDefault();}else if(this.singleSelect){this.doSingleSelection(item,index,e);e.preventDefault();}
return true;},doSingleSelection:function(item,index,e){if(e.ctrlKey&&this.isSelected(index)){this.deselect(index);}else{this.select(index,false);}},doMultiSelection:function(item,index,e){if(e.shiftKey&&this.last!==false){var last=this.last;this.selectRange(last,index,e.ctrlKey);this.last=last;}else{if((e.ctrlKey||this.simpleSelect)&&this.isSelected(index)){this.deselect(index);}else{this.select(index,e.ctrlKey||e.shiftKey||this.simpleSelect);}}},getSelectionCount:function(){return this.selected.getCount()},getSelectedNodes:function(){return this.selected.elements;},getSelectedIndexes:function(){var indexes=[],s=this.selected.elements;for(var i=0,len=s.length;i<len;i++){indexes.push(s[i].viewIndex);}
return indexes;},getSelectedRecords:function(){var r=[],s=this.selected.elements;for(var i=0,len=s.length;i<len;i++){r[r.length]=this.store.getAt(s[i].viewIndex);}
return r;},getRecords:function(nodes){var r=[],s=nodes;for(var i=0,len=s.length;i<len;i++){r[r.length]=this.store.getAt(s[i].viewIndex);}
return r;},getRecord:function(node){return this.store.getAt(node.viewIndex);},clearSelections:function(suppressEvent,skipUpdate){if((this.multiSelect||this.singleSelect)&&this.selected.getCount()>0){if(!skipUpdate){this.selected.removeClass(this.selectedClass);}
this.selected.clear();this.last=false;if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected.elements);}}},isSelected:function(node){return this.selected.contains(this.getNode(node));},deselect:function(node){if(this.isSelected(node)){node=this.getNode(node);this.selected.removeElement(node);if(this.last==node.viewIndex){this.last=false;}
Ext.fly(node).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements);}},select:function(nodeInfo,keepExisting,suppressEvent){if(Ext.isArray(nodeInfo)){if(!keepExisting){this.clearSelections(true);}
for(var i=0,len=nodeInfo.length;i<len;i++){this.select(nodeInfo[i],true,true);}
if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected.elements);}}else{var node=this.getNode(nodeInfo);if(!keepExisting){this.clearSelections(true);}
if(node&&!this.isSelected(node)){if(this.fireEvent("beforeselect",this,node,this.selected.elements)!==false){Ext.fly(node).addClass(this.selectedClass);this.selected.add(node);this.last=node.viewIndex;if(!suppressEvent){this.fireEvent("selectionchange",this,this.selected.elements);}}}}},selectRange:function(start,end,keepExisting){if(!keepExisting){this.clearSelections(true);}
this.select(this.getNodes(start,end),true);},getNode:function(nodeInfo){if(typeof nodeInfo=="string"){return document.getElementById(nodeInfo);}else if(typeof nodeInfo=="number"){return this.all.elements[nodeInfo];}
return nodeInfo;},getNodes:function(start,end){var ns=this.all.elements;start=start||0;end=typeof end=="undefined"?Math.max(ns.length-1,0):end;var nodes=[],i;if(start<=end){for(i=start;i<=end&&ns[i];i++){nodes.push(ns[i]);}}else{for(i=start;i>=end&&ns[i];i--){nodes.push(ns[i]);}}
return nodes;},indexOf:function(node){node=this.getNode(node);if(typeof node.viewIndex=="number"){return node.viewIndex;}
return this.all.indexOf(node);},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.el.update('<div class="loading-indicator">'+this.loadingText+'</div>');this.all.clear();}},onDestroy:function(){Ext.DataView.superclass.onDestroy.call(this);this.setStore(null);}});Ext.reg('dataview',Ext.DataView);Ext.ColorPalette=function(config){Ext.ColorPalette.superclass.constructor.call(this,config);this.addEvents('select');if(this.handler){this.on("select",this.handler,this.scope,true);}};Ext.extend(Ext.ColorPalette,Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:'click',ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],onRender:function(container,position){var t=this.tpl||new Ext.XTemplate('<tpl for="."><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on">&#160;</span></em></a></tpl>');var el=document.createElement("div");el.id=this.getId();el.className=this.itemCls;t.overwrite(el,this.colors);container.dom.insertBefore(el,position);this.el=Ext.get(el);this.el.on(this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!='click'){this.el.on('click',Ext.emptyFn,this,{delegate:"a",preventDefault:true});}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var s=this.value;this.value=null;this.select(s);}},handleClick:function(e,t){e.preventDefault();if(!this.disabled){var c=t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(c.toUpperCase());}},select:function(color){color=color.replace("#","");if(color!=this.value||this.allowReselect){var el=this.el;if(this.value){el.child("a.color-"+this.value).removeClass("x-color-palette-sel");}
el.child("a.color-"+color).addClass("x-color-palette-sel");this.value=color;this.fireEvent("select",this,color);}}});Ext.reg('colorpalette',Ext.ColorPalette);Ext.DatePicker=Ext.extend(Ext.Component,{todayText:"Today",okText:"&#160;OK&#160;",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:'Next Month (Control+Right)',prevText:'Previous Month (Control+Left)',monthYearText:'Choose a month (Control+Up/Down to move years)',startDay:0,showToday:true,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime():new Date().clearTime();this.addEvents('select');if(this.handler){this.on("select",this.handler,this.scope||this);}
this.initDisabledDays();},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
this.disabledDatesRE=new RegExp(re+")");}},setDisabledDates:function(dd){if(Ext.isArray(dd)){this.disabledDates=dd;this.disabledDatesRE=null;}else{this.disabledDatesRE=dd;}
this.initDisabledDays();this.update(this.value,true);},setDisabledDays:function(dd){this.disabledDays=dd;this.update(this.value,true);},setMinDate:function(dt){this.minDate=dt;this.update(this.value,true);},setMaxDate:function(dt){this.maxDate=dt;this.update(this.value,true);},setValue:function(value){var old=this.value;this.value=value.clearTime(true);if(this.el){this.update(this.value);}},getValue:function(){return this.value;},focus:function(){if(this.el){this.update(this.activeDate);}},onEnable:function(initial){Ext.DatePicker.superclass.onEnable.call(this);this.doDisabled(false);this.update(initial?this.value:this.activeDate);if(Ext.isIE){this.el.repaint();}},onDisable:function(){Ext.DatePicker.superclass.onDisable.call(this);this.doDisabled(true);if(Ext.isIE&&!Ext.isIE8){Ext.each([].concat(this.textNodes,this.el.query('th span')),function(el){Ext.fly(el).repaint();});}},doDisabled:function(disabled){this.keyNav[disabled?'disable':'enable'](disabled);this.leftClickRpt.setDisabled(disabled);this.rightClickRpt.setDisabled(disabled);if(this.showToday){this.todayKeyListener[disabled?'disable':'enable'](disabled);this.todayBtn.setDisabled(disabled);}},onRender:function(container,position){var m=['<table cellspacing="0">','<tr><td class="x-date-left"><a href="#" title="',this.prevText,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="',this.nextText,'">&#160;</a></td></tr>','<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'];var dn=this.dayNames;for(var i=0;i<7;i++){var d=this.startDay+i;if(d>6){d=d-7;}
m.push("<th><span>",dn[d].substr(0,1),"</span></th>");}
m[m.length]="</tr></thead><tbody><tr>";for(var i=0;i<42;i++){if(i%7==0&&i!=0){m[m.length]="</tr><tr>";}
m[m.length]='<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>';}
m.push('</tr></tbody></table></td></tr>',this.showToday?'<tr><td colspan="3" class="x-date-bottom" align="center"></td></tr>':'','</table><div class="x-date-mp"></div>');var el=document.createElement("div");el.className="x-date-picker";el.innerHTML=m.join("");container.dom.insertBefore(el,position);this.el=Ext.get(el);this.eventEl=Ext.get(el.firstChild);this.leftClickRpt=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.rightClickRpt=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel",this.handleMouseWheel,this);this.monthPicker=this.el.down('div.x-date-mp');this.monthPicker.enableDisplayMode('block');this.keyNav=new Ext.KeyNav(this.eventEl,{"left":function(e){e.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1));},"right":function(e){e.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1));},"up":function(e){e.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7));},"down":function(e){e.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7));},"pageUp":function(e){this.showNextMonth();},"pageDown":function(e){this.showPrevMonth();},"enter":function(e){e.stopPropagation();return true;},scope:this});this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:"&#160;",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.on('click',this.showMonthPicker,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var today=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,today),tooltip:String.format(this.todayTip,today),handler:this.selectToday,scope:this});}
if(Ext.isIE){this.el.repaint();}
this.onEnable(true);},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var buf=['<table border="0" cellspacing="0">'];for(var i=0;i<6;i++){buf.push('<tr><td class="x-date-mp-month"><a href="#">',Date.getShortMonthName(i),'</a></td>','<td class="x-date-mp-month x-date-mp-sep"><a href="#">',Date.getShortMonthName(i+6),'</a></td>',i==0?'<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>':'<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>');}
buf.push('<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">',this.okText,'</button><button type="button" class="x-date-mp-cancel">',this.cancelText,'</button></td></tr>','</table>');this.monthPicker.update(buf.join(''));this.monthPicker.on('click',this.onMonthClick,this);this.monthPicker.on('dblclick',this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select('td.x-date-mp-month');this.mpYears=this.monthPicker.select('td.x-date-mp-year');this.mpMonths.each(function(m,a,i){i+=1;if((i%2)==0){m.dom.xmonth=5+Math.round(i*.5);}else{m.dom.xmonth=Math.round((i-1)*.5);}});}},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var size=this.el.getSize();this.monthPicker.setSize(size);this.monthPicker.child('table').setSize(size);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn('t',{duration:.2});}},updateMPYear:function(y){this.mpyear=y;var ys=this.mpYears.elements;for(var i=1;i<=10;i++){var td=ys[i-1],y2;if((i%2)==0){y2=y+Math.round(i*.5);td.firstChild.innerHTML=y2;td.xyear=y2;}else{y2=y-(5-Math.round(i*.5));td.firstChild.innerHTML=y2;td.xyear=y2;}
this.mpYears.item(i-1)[y2==this.mpSelYear?'addClass':'removeClass']('x-date-mp-sel');}},updateMPMonth:function(sm){this.mpMonths.each(function(m,a,i){m[m.dom.xmonth==sm?'addClass':'removeClass']('x-date-mp-sel');});},selectMPMonth:function(m){},onMonthClick:function(e,t){e.stopEvent();var el=new Ext.Element(t),pn;if(el.is('button.x-date-mp-cancel')){this.hideMonthPicker();}
else if(el.is('button.x-date-mp-ok')){var d=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(d.getMonth()!=this.mpSelMonth){d=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth();}
this.update(d);this.hideMonthPicker();}
else if(pn=el.up('td.x-date-mp-month',2)){this.mpMonths.removeClass('x-date-mp-sel');pn.addClass('x-date-mp-sel');this.mpSelMonth=pn.dom.xmonth;}
else if(pn=el.up('td.x-date-mp-year',2)){this.mpYears.removeClass('x-date-mp-sel');pn.addClass('x-date-mp-sel');this.mpSelYear=pn.dom.xyear;}
else if(el.is('a.x-date-mp-prev')){this.updateMPYear(this.mpyear-10);}
else if(el.is('a.x-date-mp-next')){this.updateMPYear(this.mpyear+10);}},onMonthDblClick:function(e,t){e.stopEvent();var el=new Ext.Element(t),pn;if(pn=el.up('td.x-date-mp-month',2)){this.update(new Date(this.mpSelYear,pn.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker();}
else if(pn=el.up('td.x-date-mp-year',2)){this.update(new Date(pn.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker();}},hideMonthPicker:function(disableAnim){if(this.monthPicker){if(disableAnim===true){this.monthPicker.hide();}else{this.monthPicker.slideOut('t',{duration:.2});}}},showPrevMonth:function(e){this.update(this.activeDate.add("mo",-1));},showNextMonth:function(e){this.update(this.activeDate.add("mo",1));},showPrevYear:function(){this.update(this.activeDate.add("y",-1));},showNextYear:function(){this.update(this.activeDate.add("y",1));},handleMouseWheel:function(e){e.stopEvent();if(!this.disabled){var delta=e.getWheelDelta();if(delta>0){this.showPrevMonth();}else if(delta<0){this.showNextMonth();}}},handleDateClick:function(e,t){e.stopEvent();if(!this.disabled&&t.dateValue&&!Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(t.dateValue));this.fireEvent("select",this,this.value);}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value);}},update:function(date,forceRefresh){var vd=this.activeDate,vis=this.isVisible();this.activeDate=date;if(!forceRefresh&&vd&&this.el){var t=date.getTime();if(vd.getMonth()==date.getMonth()&&vd.getFullYear()==date.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(c){if(c.dom.firstChild.dateValue==t){c.addClass("x-date-selected");if(vis){setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}},50);}
return false;}});return;}}
var days=date.getDaysInMonth();var firstOfMonth=date.getFirstDateOfMonth();var startingPos=firstOfMonth.getDay()-this.startDay;if(startingPos<0){startingPos+=7;}
var pm=date.add("mo",-1);var prevStart=pm.getDaysInMonth()-startingPos;var cells=this.cells.elements;var textEls=this.textNodes;days+=startingPos;var day=86400000;var d=(new Date(pm.getFullYear(),pm.getMonth(),prevStart)).clearTime();var today=new Date().clearTime().getTime();var sel=date.clearTime().getTime();var min=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var max=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var ddMatch=this.disabledDatesRE;var ddText=this.disabledDatesText;var ddays=this.disabledDays?this.disabledDays.join(""):false;var ddaysText=this.disabledDaysText;var format=this.format;if(this.showToday){var td=new Date().clearTime();var disable=(td<min||td>max||(ddMatch&&format&&ddMatch.test(td.dateFormat(format)))||(ddays&&ddays.indexOf(td.getDay())!=-1));if(!this.disabled){this.todayBtn.setDisabled(disable);this.todayKeyListener[disable?'disable':'enable']();}}
var setCellClass=function(cal,cell){cell.title="";var t=d.getTime();cell.firstChild.dateValue=t;if(t==today){cell.className+=" x-date-today";cell.title=cal.todayText;}
if(t==sel){cell.className+=" x-date-selected";if(vis){setTimeout(function(){try{cell.firstChild.focus();}catch(e){}},50);}}
if(t<min){cell.className=" x-date-disabled";cell.title=cal.minText;return;}
if(t>max){cell.className=" x-date-disabled";cell.title=cal.maxText;return;}
if(ddays){if(ddays.indexOf(d.getDay())!=-1){cell.title=ddaysText;cell.className=" x-date-disabled";}}
if(ddMatch&&format){var fvalue=d.dateFormat(format);if(ddMatch.test(fvalue)){cell.title=ddText.replace("%0",fvalue);cell.className=" x-date-disabled";}}};var i=0;for(;i<startingPos;i++){textEls[i].innerHTML=(++prevStart);d.setDate(d.getDate()+1);cells[i].className="x-date-prevday";setCellClass(this,cells[i]);}
for(;i<days;i++){var intDay=i-startingPos+1;textEls[i].innerHTML=(intDay);d.setDate(d.getDate()+1);cells[i].className="x-date-active";setCellClass(this,cells[i]);}
var extraDays=0;for(;i<42;i++){textEls[i].innerHTML=(++extraDays);d.setDate(d.getDate()+1);cells[i].className="x-date-nextday";setCellClass(this,cells[i]);}
this.mbtn.setText(this.monthNames[date.getMonth()]+" "+date.getFullYear());if(!this.internalRender){var main=this.el.dom.firstChild;var w=main.offsetWidth;this.el.setWidth(w+this.el.getBorderWidth("lr"));Ext.fly(main).setWidth(w);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){main.rows[0].cells[1].style.width=(w-(main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[date]);}}},beforeDestroy:function(){if(this.rendered){this.keyNav.disable();this.keyNav=null;Ext.destroy(this.leftClickRpt,this.rightClickRpt,this.monthPicker,this.eventEl,this.mbtn,this.todayBtn);}}});Ext.reg('datepicker',Ext.DatePicker);Ext.TabPanel=Ext.extend(Ext.Panel,{monitorResize:true,deferredRender:true,tabWidth:120,minTabWidth:30,resizeTabs:false,enableTabScroll:false,scrollIncrement:0,scrollRepeatInterval:400,scrollDuration:.35,animScroll:true,tabPosition:'top',baseCls:'x-tab-panel',autoTabs:false,autoTabSelector:'div.x-tab',activeTab:null,tabMargin:2,plain:false,wheelIncrement:20,idDelimiter:'__',itemCls:'x-tab-item',elements:'body',headerAsText:false,frame:false,hideBorders:true,initComponent:function(){this.frame=false;Ext.TabPanel.superclass.initComponent.call(this);this.addEvents('beforetabchange','tabchange','contextmenu');this.setLayout(new Ext.layout.CardLayout({deferredRender:this.deferredRender}));if(this.tabPosition=='top'){this.elements+=',header';this.stripTarget='header';}else{this.elements+=',footer';this.stripTarget='footer';}
if(!this.stack){this.stack=Ext.TabPanel.AccessStack();}
this.initItems();},render:function(){Ext.TabPanel.superclass.render.apply(this,arguments);if(this.activeTab!==undefined){var item=this.activeTab;delete this.activeTab;this.setActiveTab(item);}},onRender:function(ct,position){Ext.TabPanel.superclass.onRender.call(this,ct,position);if(this.plain){var pos=this.tabPosition=='top'?'header':'footer';this[pos].addClass('x-tab-panel-'+pos+'-plain');}
var st=this[this.stripTarget];this.stripWrap=st.createChild({cls:'x-tab-strip-wrap',cn:{tag:'ul',cls:'x-tab-strip x-tab-strip-'+this.tabPosition}});var beforeEl=(this.tabPosition=='bottom'?this.stripWrap:null);this.stripSpacer=st.createChild({cls:'x-tab-strip-spacer'},beforeEl);this.strip=new Ext.Element(this.stripWrap.dom.firstChild);this.edge=this.strip.createChild({tag:'li',cls:'x-tab-edge'});this.strip.createChild({cls:'x-clear'});this.body.addClass('x-tab-panel-body-'+this.tabPosition);if(!this.itemTpl){var tt=new Ext.Template('<li class="{cls}" id="{id}"><a class="x-tab-strip-close" onclick="return false;"></a>','<a class="x-tab-right" href="#" onclick="return false;"><em class="x-tab-left">','<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>','</em></a></li>');tt.disableFormats=true;tt.compile();Ext.TabPanel.prototype.itemTpl=tt;}
this.items.each(this.initTab,this);},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false);}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.on('add',this.onAdd,this);this.on('remove',this.onRemove,this);this.strip.on('mousedown',this.onStripMouseDown,this);this.strip.on('contextmenu',this.onStripContextMenu,this);if(this.enableTabScroll){this.strip.on('mousewheel',this.onWheel,this);}},findTargets:function(e){var item=null;var itemEl=e.getTarget('li',this.strip);if(itemEl){item=this.getComponent(itemEl.id.split(this.idDelimiter)[1]);if(item.disabled){return{close:null,item:null,el:null};}}
return{close:e.getTarget('.x-tab-strip-close',this.strip),item:item,el:itemEl};},onStripMouseDown:function(e){if(e.button!=0){return;}
e.preventDefault();var t=this.findTargets(e);if(t.close){this.remove(t.item);return;}
if(t.item&&t.item!=this.activeTab){this.setActiveTab(t.item);}},onStripContextMenu:function(e){e.preventDefault();var t=this.findTargets(e);if(t.item){this.fireEvent('contextmenu',this,t.item,e);}},readTabs:function(removeExisting){if(removeExisting===true){this.items.each(function(item){this.remove(item);},this);}
var tabs=this.el.query(this.autoTabSelector);for(var i=0,len=tabs.length;i<len;i++){var tab=tabs[i];var title=tab.getAttribute('title');tab.removeAttribute('title');this.add({title:title,contentEl:tab});}},initTab:function(item,index){var before=this.strip.dom.childNodes[index];var cls=item.closable?'x-tab-strip-closable':'';if(item.disabled){cls+=' x-item-disabled';}
if(item.iconCls){cls+=' x-tab-with-icon';}
if(item.tabCls){cls+=' '+item.tabCls;}
var p={id:this.id+this.idDelimiter+item.getItemId(),text:item.title,cls:cls,iconCls:item.iconCls||''};var el=before?this.itemTpl.insertBefore(before,p):this.itemTpl.append(this.strip,p);Ext.fly(el).addClassOnOver('x-tab-strip-over');if(item.tabTip){Ext.fly(el).child('span.x-tab-strip-text',true).qtip=item.tabTip;}
item.tabEl=el;item.on('disable',this.onItemDisabled,this);item.on('enable',this.onItemEnabled,this);item.on('titlechange',this.onItemTitleChanged,this);item.on('iconchange',this.onItemIconChanged,this);item.on('beforeshow',this.onBeforeShowItem,this);},onAdd:function(tp,item,index){this.initTab(item,index);if(this.items.getCount()==1){this.syncSize();}
this.delegateUpdates();},onBeforeAdd:function(item){var existing=item.events?(this.items.containsKey(item.getItemId())?item:null):this.items.get(item);if(existing){this.setActiveTab(item);return false;}
Ext.TabPanel.superclass.onBeforeAdd.apply(this,arguments);var es=item.elements;item.elements=es?es.replace(',header',''):es;item.border=(item.border===true);},onRemove:function(tp,item){Ext.destroy(Ext.get(this.getTabEl(item)));this.stack.remove(item);item.un('disable',this.onItemDisabled,this);item.un('enable',this.onItemEnabled,this);item.un('titlechange',this.onItemTitleChanged,this);item.un('iconchange',this.onItemIconChanged,this);item.un('beforeshow',this.onBeforeShowItem,this);if(item==this.activeTab){var next=this.stack.next();if(next){this.setActiveTab(next);}else if(this.items.getCount()>0){this.setActiveTab(0);}else{this.activeTab=null;}}
this.delegateUpdates();},onBeforeShowItem:function(item){if(item!=this.activeTab){this.setActiveTab(item);return false;}},onItemDisabled:function(item){var el=this.getTabEl(item);if(el){Ext.fly(el).addClass('x-item-disabled');}
this.stack.remove(item);},onItemEnabled:function(item){var el=this.getTabEl(item);if(el){Ext.fly(el).removeClass('x-item-disabled');}},onItemTitleChanged:function(item){var el=this.getTabEl(item);if(el){Ext.fly(el).child('span.x-tab-strip-text',true).innerHTML=item.title;}},onItemIconChanged:function(item,iconCls,oldCls){var el=this.getTabEl(item);if(el){Ext.fly(el).child('span.x-tab-strip-text').replaceClass(oldCls,iconCls);}},getTabEl:function(item){var itemId=(typeof item==='number')?this.items.items[item].getItemId():item.getItemId();return document.getElementById(this.id+this.idDelimiter+itemId);},onResize:function(){Ext.TabPanel.superclass.onResize.apply(this,arguments);this.delegateUpdates();},beginUpdate:function(){this.suspendUpdates=true;},endUpdate:function(){this.suspendUpdates=false;this.delegateUpdates();},hideTabStripItem:function(item){item=this.getComponent(item);var el=this.getTabEl(item);if(el){el.style.display='none';this.delegateUpdates();}
this.stack.remove(item);},unhideTabStripItem:function(item){item=this.getComponent(item);var el=this.getTabEl(item);if(el){el.style.display='';this.delegateUpdates();}},delegateUpdates:function(){if(this.suspendUpdates){return;}
if(this.resizeTabs&&this.rendered){this.autoSizeTabs();}
if(this.enableTabScroll&&this.rendered){this.autoScrollTabs();}},autoSizeTabs:function(){var count=this.items.length;var ce=this.tabPosition!='bottom'?'header':'footer';var ow=this[ce].dom.offsetWidth;var aw=this[ce].dom.clientWidth;if(!this.resizeTabs||count<1||!aw){return;}
var each=Math.max(Math.min(Math.floor((aw-4)/count)-this.tabMargin,this.tabWidth),this.minTabWidth);this.lastTabWidth=each;var lis=this.stripWrap.dom.getElementsByTagName('li');for(var i=0,len=lis.length-1;i<len;i++){var li=lis[i];var inner=li.childNodes[1].firstChild.firstChild;var tw=li.offsetWidth;var iw=inner.offsetWidth;inner.style.width=(each-(tw-iw))+'px';}},adjustBodyWidth:function(w){if(this.header){this.header.setWidth(w);}
if(this.footer){this.footer.setWidth(w);}
return w;},setActiveTab:function(item){item=this.getComponent(item);if(!item||this.fireEvent('beforetabchange',this,item,this.activeTab)===false){return;}
if(!this.rendered){this.activeTab=item;return;}
if(this.activeTab!=item){if(this.activeTab){var oldEl=this.getTabEl(this.activeTab);if(oldEl){Ext.fly(oldEl).removeClass('x-tab-strip-active');}
this.activeTab.fireEvent('deactivate',this.activeTab);}
var el=this.getTabEl(item);Ext.fly(el).addClass('x-tab-strip-active');this.activeTab=item;this.stack.add(item);this.layout.setActiveItem(item);if(this.layoutOnTabChange&&item.doLayout){item.doLayout();}
if(this.scrolling){this.scrollToTab(item,this.animScroll);}
item.fireEvent('activate',item);this.fireEvent('tabchange',this,item);}},getActiveTab:function(){return this.activeTab||null;},getItem:function(item){return this.getComponent(item);},autoScrollTabs:function(){this.pos=this.tabPosition=='bottom'?this.footer:this.header;var count=this.items.length;var ow=this.pos.dom.offsetWidth;var tw=this.pos.dom.clientWidth;var wrap=this.stripWrap;var wd=wrap.dom;var cw=wd.offsetWidth;var pos=this.getScrollPos();var l=this.edge.getOffsetsTo(this.stripWrap)[0]+pos;if(!this.enableTabScroll||count<1||cw<20){return;}
if(l<=tw){wd.scrollLeft=0;wrap.setWidth(tw);if(this.scrolling){this.scrolling=false;this.pos.removeClass('x-tab-scrolling');this.scrollLeft.hide();this.scrollRight.hide();if(Ext.isAir||Ext.isWebKit){wd.style.marginLeft='';wd.style.marginRight='';}}}else{if(!this.scrolling){this.pos.addClass('x-tab-scrolling');if(Ext.isAir||Ext.isWebKit){wd.style.marginLeft='18px';wd.style.marginRight='18px';}}
tw-=wrap.getMargins('lr');wrap.setWidth(tw>20?tw:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers();}else{this.scrollLeft.show();this.scrollRight.show();}}
this.scrolling=true;if(pos>(l-tw)){wd.scrollLeft=l-tw;}else{this.scrollToTab(this.activeTab,false);}
this.updateScrollButtons();}},createScrollers:function(){this.pos.addClass('x-tab-scrolling-'+this.tabPosition);var h=this.stripWrap.dom.offsetHeight;var sl=this.pos.insertFirst({cls:'x-tab-scroller-left'});sl.setHeight(h);sl.addClassOnOver('x-tab-scroller-left-over');this.leftRepeater=new Ext.util.ClickRepeater(sl,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=sl;var sr=this.pos.insertFirst({cls:'x-tab-scroller-right'});sr.setHeight(h);sr.addClassOnOver('x-tab-scroller-right-over');this.rightRepeater=new Ext.util.ClickRepeater(sr,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=sr;},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos();},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0;},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0;},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this};},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100);},scrollToTab:function(item,animate){if(!item){return;}
var el=this.getTabEl(item);var pos=this.getScrollPos(),area=this.getScrollArea();var left=Ext.fly(el).getOffsetsTo(this.stripWrap)[0]+pos;var right=left+el.offsetWidth;if(left<pos){this.scrollTo(left,animate);}else if(right>(pos+area)){this.scrollTo(right-area,animate);}},scrollTo:function(pos,animate){this.stripWrap.scrollTo('left',pos,animate?this.getScrollAnim():false);if(!animate){this.updateScrollButtons();}},onWheel:function(e){var d=e.getWheelDelta()*this.wheelIncrement*-1;e.stopEvent();var pos=this.getScrollPos();var newpos=pos+d;var sw=this.getScrollWidth()-this.getScrollArea();var s=Math.max(0,Math.min(sw,newpos));if(s!=pos){this.scrollTo(s,false);}},onScrollRight:function(){var sw=this.getScrollWidth()-this.getScrollArea();var pos=this.getScrollPos();var s=Math.min(sw,pos+this.getScrollIncrement());if(s!=pos){this.scrollTo(s,this.animScroll);}},onScrollLeft:function(){var pos=this.getScrollPos();var s=Math.max(0,pos-this.getScrollIncrement());if(s!=pos){this.scrollTo(s,this.animScroll);}},updateScrollButtons:function(){var pos=this.getScrollPos();this.scrollLeft[pos==0?'addClass':'removeClass']('x-tab-scroller-left-disabled');this.scrollRight[pos>=(this.getScrollWidth()-this.getScrollArea())?'addClass':'removeClass']('x-tab-scroller-right-disabled');},beforeDestroy:function(){if(this.items){this.items.each(function(item){if(item&&item.tabEl){Ext.get(item.tabEl).removeAllListeners();item.tabEl=null;}},this);}
if(this.strip){this.strip.removeAllListeners();}
Ext.TabPanel.superclass.beforeDestroy.apply(this);}});Ext.reg('tabpanel',Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var items=[];return{add:function(item){items.push(item);if(items.length>10){items.shift();}},remove:function(item){var s=[];for(var i=0,len=items.length;i<len;i++){if(items[i]!=item){s.push(items[i]);}}
items=s;},next:function(){return items.pop();}};};Ext.Button=Ext.extend(Ext.Component,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first-child",initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
if(typeof this.toggleGroup==='string'){this.enableToggle=true;}},onRender:function(ct,position){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table border="0" cellpadding="0" cellspacing="0" class="x-btn-wrap"><tbody><tr>','<td class="x-btn-left"><i>&#160;</i></td><td class="x-btn-center"><em unselectable="on"><button class="x-btn-text" type="{1}">{0}</button></em></td><td class="x-btn-right"><i>&#160;</i></td>',"</tr></tbody></table>");}
this.template=Ext.Button.buttonTemplate;}
var btn,targs=[this.text||'&#160;',this.type];if(position){btn=this.template.insertBefore(position,targs,true);}else{btn=this.template.append(ct,targs,true);}
var btnEl=this.btnEl=btn.child(this.buttonSelector);btnEl.on('focus',this.onFocus,this);btnEl.on('blur',this.onBlur,this);this.initButtonEl(btn,btnEl);if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu");}
Ext.ButtonToggleMgr.register(this);},initButtonEl:function(btn,btnEl){this.el=btn;btn.addClass("x-btn");if(this.id){var d=this.el.dom,c=Ext.Element.cache;delete c[d.id];d.id=this.el.id=this.id;c[d.id]=this.el;}
if(this.icon){btnEl.setStyle('background-image','url('+this.icon+')');}
if(this.iconCls){btnEl.addClass(this.iconCls);if(!this.cls){btn.addClass(this.text?'x-btn-text-icon':'x-btn-icon');}}
if(this.tabIndex!==undefined){btnEl.dom.tabIndex=this.tabIndex;}
if(this.tooltip){if(typeof this.tooltip=='object'){Ext.QuickTips.register(Ext.apply({target:btnEl.id},this.tooltip));}else{btnEl.dom[this.tooltipType]=this.tooltip;}}
if(this.pressed){this.el.addClass("x-btn-pressed");}
if(this.handleMouseEvents){btn.on("mouseover",this.onMouseOver,this);btn.on("mousedown",this.onMouseDown,this);}
if(this.menu){this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this);}
if(this.repeat){var repeater=new Ext.util.ClickRepeater(btn,typeof this.repeat=="object"?this.repeat:{});repeater.on("click",this.onClick,this);}
btn.on(this.clickEvent,this.onClick,this);},afterRender:function(){Ext.Button.superclass.afterRender.call(this);if(Ext.isIE6){this.autoWidth.defer(1,this);}else{this.autoWidth();}},setIconClass:function(cls){if(this.el){this.btnEl.replaceClass(this.iconCls,cls);}
this.iconCls=cls;},beforeDestroy:function(){if(this.rendered){if(this.btnEl){if(typeof this.tooltip=='object'){Ext.QuickTips.unregister(this.btnEl);}
Ext.destroy(this.btnEl);}}
Ext.destroy(this.menu,this.repeater);},onDestroy:function(){var doc=Ext.getDoc();doc.un('mouseover',this.monitorMouseOver,this);doc.un('mouseup',this.onMouseUp,this);if(this.rendered){Ext.ButtonToggleMgr.unregister(this);}},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var ib=this.btnEl;if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth('lr'));}}
if(this.minWidth){if(this.el.getWidth()<this.minWidth){this.el.setWidth(this.minWidth);}}}},setHandler:function(handler,scope){this.handler=handler;this.scope=scope;},setText:function(text){this.text=text;if(this.el){this.el.child("td.x-btn-center "+this.buttonSelector).update(text);}
this.autoWidth();},getText:function(){return this.text;},toggle:function(state,suppressEvent){state=state===undefined?!this.pressed:!!state;if(state!=this.pressed){if(this.rendered){this.el[state?'addClass':'removeClass']("x-btn-pressed");}
this.pressed=state;if(!suppressEvent){this.fireEvent("toggle",this,state);if(this.toggleHandler){this.toggleHandler.call(this.scope||this,this,state);}}}},focus:function(){this.btnEl.focus();},onDisable:function(){this.onDisableChange(true);},onEnable:function(){this.onDisableChange(false);},onDisableChange:function(disabled){if(this.el){if(!Ext.isIE6||!this.text){this.el[disabled?'addClass':'removeClass'](this.disabledClass);}
this.el.dom.disabled=disabled;}
this.disabled=disabled;},showMenu:function(){if(this.menu){this.menu.show(this.el,this.menuAlign);}
return this;},hideMenu:function(){if(this.menu){this.menu.hide();}
return this;},hasVisibleMenu:function(){return this.menu&&this.menu.isVisible();},onClick:function(e){if(e){e.preventDefault();}
if(e.button!=0){return;}
if(!this.disabled){if(this.enableToggle&&(this.allowDepress!==false||!this.pressed)){this.toggle();}
if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu();}
this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}},isMenuTriggerOver:function(e,internal){return this.menu&&!internal;},isMenuTriggerOut:function(e,internal){return this.menu&&!internal;},onMouseOver:function(e){if(!this.disabled){var internal=e.within(this.el,true);if(!internal){this.el.addClass("x-btn-over");if(!this.monitoringMouseOver){Ext.getDoc().on('mouseover',this.monitorMouseOver,this);this.monitoringMouseOver=true;}
this.fireEvent('mouseover',this,e);}
if(this.isMenuTriggerOver(e,internal)){this.fireEvent('menutriggerover',this,this.menu,e);}}},monitorMouseOver:function(e){if(e.target!=this.el.dom&&!e.within(this.el)){if(this.monitoringMouseOver){Ext.getDoc().un('mouseover',this.monitorMouseOver,this);this.monitoringMouseOver=false;}
this.onMouseOut(e);}},onMouseOut:function(e){var internal=e.within(this.el)&&e.target!=this.el.dom;this.el.removeClass("x-btn-over");this.fireEvent('mouseout',this,e);if(this.isMenuTriggerOut(e,internal)){this.fireEvent('menutriggerout',this,this.menu,e);}},onFocus:function(e){if(!this.disabled){this.el.addClass("x-btn-focus");}},onBlur:function(e){this.el.removeClass("x-btn-focus");},getClickEl:function(e,isUp){return this.el;},onMouseDown:function(e){if(!this.disabled&&e.button==0){this.getClickEl(e).addClass("x-btn-click");Ext.getDoc().on('mouseup',this.onMouseUp,this);}},onMouseUp:function(e){if(e.button==0){this.getClickEl(e,true).removeClass("x-btn-click");Ext.getDoc().un('mouseup',this.onMouseUp,this);}},onMenuShow:function(e){this.ignoreNextClick=0;this.el.addClass("x-btn-menu-active");this.fireEvent('menushow',this,this.menu);},onMenuHide:function(e){this.el.removeClass("x-btn-menu-active");this.ignoreNextClick=this.restoreClick.defer(250,this);this.fireEvent('menuhide',this,this.menu);},restoreClick:function(){this.ignoreNextClick=0;}});Ext.reg('button',Ext.Button);Ext.ButtonToggleMgr=function(){var groups={};function toggleGroup(btn,state){if(state){var g=groups[btn.toggleGroup];for(var i=0,l=g.length;i<l;i++){if(g[i]!=btn){g[i].toggle(false);}}}}
return{register:function(btn){if(!btn.toggleGroup){return;}
var g=groups[btn.toggleGroup];if(!g){g=groups[btn.toggleGroup]=[];}
g.push(btn);btn.on("toggle",toggleGroup);},unregister:function(btn){if(!btn.toggleGroup){return;}
var g=groups[btn.toggleGroup];if(g){g.remove(btn);btn.un("toggle",toggleGroup);}}};}();Ext.SplitButton=Ext.extend(Ext.Button,{arrowSelector:'button:last',initComponent:function(){Ext.SplitButton.superclass.initComponent.call(this);this.addEvents("arrowclick");},onRender:function(ct,position){var tpl=new Ext.Template('<table cellspacing="0" class="x-btn-menu-wrap x-btn"><tr><td>','<table cellspacing="0" class="x-btn-wrap x-btn-menu-text-wrap"><tbody>','<tr><td class="x-btn-left"><i>&#160;</i></td><td class="x-btn-center"><button class="x-btn-text" type="{1}">{0}</button></td></tr>',"</tbody></table></td><td>",'<table cellspacing="0" class="x-btn-wrap x-btn-menu-arrow-wrap"><tbody>','<tr><td class="x-btn-center"><button class="x-btn-menu-arrow-el" type="button">&#160;</button></td><td class="x-btn-right"><i>&#160;</i></td></tr>',"</tbody></table></td></tr></table>");var btn,targs=[this.text||'&#160;',this.type];if(position){btn=tpl.insertBefore(position,targs,true);}else{btn=tpl.append(ct,targs,true);}
var btnEl=this.btnEl=btn.child(this.buttonSelector);this.initButtonEl(btn,btnEl);this.arrowBtnTable=btn.child("table:last");this.arrowEl=btn.child(this.arrowSelector);if(this.arrowTooltip){this.arrowEl.dom[this.tooltipType]=this.arrowTooltip;}},autoWidth:function(){if(this.el){var tbl=this.el.child("table:first");var tbl2=this.el.child("table:last");this.el.setWidth("auto");tbl.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var ib=this.btnEl;if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth('lr'));}}
if(this.minWidth){if((tbl.getWidth()+tbl2.getWidth())<this.minWidth){tbl.setWidth(this.minWidth-tbl2.getWidth());}}
this.el.setWidth(tbl.getWidth()+tbl2.getWidth());}},setArrowHandler:function(handler,scope){this.arrowHandler=handler;this.scope=scope;},onClick:function(e){e.preventDefault();if(!this.disabled){if(e.getTarget(".x-btn-menu-arrow-wrap")){if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu();}
this.fireEvent("arrowclick",this,e);if(this.arrowHandler){this.arrowHandler.call(this.scope||this,this,e);}}else{if(this.enableToggle){this.toggle();}
this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}}},getClickEl:function(e,isUp){if(!isUp){return(this.lastClickEl=e.getTarget("table",10,true));}
return this.lastClickEl;},onDisableChange:function(disabled){Ext.SplitButton.superclass.onDisableChange.call(this,disabled);if(this.arrowEl){this.arrowEl.dom.disabled=disabled;}},isMenuTriggerOver:function(e){return this.menu&&e.within(this.arrowBtnTable)&&!e.within(this.arrowBtnTable,true);},isMenuTriggerOut:function(e,internal){return this.menu&&!e.within(this.arrowBtnTable);},onDestroy:function(){Ext.destroy(this.arrowBtnTable);Ext.SplitButton.superclass.onDestroy.call(this);}});Ext.MenuButton=Ext.SplitButton;Ext.reg('splitbutton',Ext.SplitButton);Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(item){if(item&&this.showText===true){var text='';if(this.prependText){text+=this.prependText;}
text+=item.text;return text;}
return undefined;},setActiveItem:function(item,suppressEvent){if(typeof item!='object'){item=this.menu.items.get(item);}
if(item){if(!this.rendered){this.text=this.getItemText(item);this.iconCls=item.iconCls;}else{var t=this.getItemText(item);if(t){this.setText(t);}
this.setIconClass(item.iconCls);}
this.activeItem=item;if(!item.checked){item.setChecked(true,true);}
if(this.forceIcon){this.setIconClass(this.forceIcon);}
if(!suppressEvent){this.fireEvent('change',this,item);}}},getActiveItem:function(){return this.activeItem;},initComponent:function(){this.addEvents("change");if(this.changeHandler){this.on('change',this.changeHandler,this.scope||this);delete this.changeHandler;}
this.itemCount=this.items.length;this.menu={cls:'x-cycle-menu',items:[]};var checked;for(var i=0,len=this.itemCount;i<len;i++){var item=this.items[i];item.group=item.group||this.id;item.itemIndex=i;item.checkHandler=this.checkHandler;item.scope=this;item.checked=item.checked||false;this.menu.items.push(item);if(item.checked){checked=item;}}
this.setActiveItem(checked,true);Ext.CycleButton.superclass.initComponent.call(this);this.on('click',this.toggleSelected,this);},checkHandler:function(item,pressed){if(pressed){this.setActiveItem(item);}},toggleSelected:function(){this.menu.render();var nextIdx,checkItem;for(var i=1;i<this.itemCount;i++){nextIdx=(this.activeItem.itemIndex+i)%this.itemCount;checkItem=this.menu.items.itemAt(nextIdx);if(!checkItem.disabled){checkItem.setChecked(true);break;}}}});Ext.reg('cycle',Ext.CycleButton);Ext.Toolbar=function(config){if(Ext.isArray(config)){config={buttons:config};}
Ext.Toolbar.superclass.constructor.call(this,config);};(function(){var T=Ext.Toolbar;Ext.extend(T,Ext.BoxComponent,{trackMenus:true,initComponent:function(){T.superclass.initComponent.call(this);if(this.items){this.buttons=this.items;}
this.items=new Ext.util.MixedCollection(false,function(o){return o.itemId||o.id||Ext.id();});},autoCreate:{cls:'x-toolbar x-small-editor',html:'<table cellspacing="0"><tr></tr></table>'},onRender:function(ct,position){this.el=ct.createChild(Ext.apply({id:this.id},this.autoCreate),position);this.tr=this.el.child("tr",true);},afterRender:function(){T.superclass.afterRender.call(this);if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons;}},add:function(){var a=arguments,l=a.length;for(var i=0;i<l;i++){var el=a[i];if(el.isFormField){this.addField(el);}else if(el.render){this.addItem(el);}else if(typeof el=="string"){if(el=="separator"||el=="-"){this.addSeparator();}else if(el==" "){this.addSpacer();}else if(el=="->"){this.addFill();}else{this.addText(el);}}else if(el.tagName){this.addElement(el);}else if(typeof el=="object"){if(el.xtype){this.addField(Ext.ComponentMgr.create(el,'button'));}else{this.addButton(el);}}}},addSeparator:function(){return this.addItem(new T.Separator());},addSpacer:function(){return this.addItem(new T.Spacer());},addFill:function(){return this.addItem(new T.Fill());},addElement:function(el){return this.addItem(new T.Item(el));},addItem:function(item){var td=this.nextBlock();this.initMenuTracking(item);item.render(td);this.items.add(item);return item;},addButton:function(config){if(Ext.isArray(config)){var buttons=[];for(var i=0,len=config.length;i<len;i++){buttons.push(this.addButton(config[i]));}
return buttons;}
var b=config;if(!(config instanceof T.Button)){b=config.split?new T.SplitButton(config):new T.Button(config);}
var td=this.nextBlock();this.initMenuTracking(b);b.render(td);this.items.add(b);return b;},initMenuTracking:function(item){if(this.trackMenus&&item.menu){item.on({'menutriggerover':this.onButtonTriggerOver,'menushow':this.onButtonMenuShow,'menuhide':this.onButtonMenuHide,scope:this})}},addText:function(text){return this.addItem(new T.TextItem(text));},insertButton:function(index,item){if(Ext.isArray(item)){var buttons=[];for(var i=0,len=item.length;i<len;i++){buttons.push(this.insertButton(index+i,item[i]));}
return buttons;}
if(!(item instanceof T.Button)){item=new T.Button(item);}
var td=document.createElement("td");this.tr.insertBefore(td,this.tr.childNodes[index]);this.initMenuTracking(item);item.render(td);this.items.insert(index,item);return item;},addDom:function(config,returnEl){var td=this.nextBlock();Ext.DomHelper.overwrite(td,config);var ti=new T.Item(td.firstChild);ti.render(td);this.items.add(ti);return ti;},addField:function(field){var td=this.nextBlock();field.render(td);var ti=new T.Item(td.firstChild);ti.render(td);this.items.add(field);return ti;},nextBlock:function(){var td=document.createElement("td");this.tr.appendChild(td);return td;},onDestroy:function(){Ext.Toolbar.superclass.onDestroy.call(this);if(this.rendered){if(this.items){Ext.destroy.apply(Ext,this.items.items);}
Ext.Element.uncache(this.tr);}},onDisable:function(){this.items.each(function(item){if(item.disable){item.disable();}});},onEnable:function(){this.items.each(function(item){if(item.enable){item.enable();}});},onButtonTriggerOver:function(btn){if(this.activeMenuBtn&&this.activeMenuBtn!=btn){this.activeMenuBtn.hideMenu();btn.showMenu();this.activeMenuBtn=btn;}},onButtonMenuShow:function(btn){this.activeMenuBtn=btn;},onButtonMenuHide:function(btn){delete this.activeMenuBtn;}});Ext.reg('toolbar',Ext.Toolbar);T.Item=function(el){this.el=Ext.getDom(el);this.id=Ext.id(this.el);this.hidden=false;};T.Item.prototype={getEl:function(){return this.el;},render:function(td){this.td=td;td.appendChild(this.el);},destroy:function(){if(this.el){var el=Ext.get(this.el);Ext.destroy(el);}
Ext.removeNode(this.td);},show:function(){this.hidden=false;this.td.style.display="";},hide:function(){this.hidden=true;this.td.style.display="none";},setVisible:function(visible){if(visible){this.show();}else{this.hide();}},focus:function(){Ext.fly(this.el).focus();},disable:function(){Ext.fly(this.td).addClass("x-item-disabled");this.disabled=true;this.el.disabled=true;},enable:function(){Ext.fly(this.td).removeClass("x-item-disabled");this.disabled=false;this.el.disabled=false;}};Ext.reg('tbitem',T.Item);T.Separator=function(){var s=document.createElement("span");s.className="ytb-sep";T.Separator.superclass.constructor.call(this,s);};Ext.extend(T.Separator,T.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbseparator',T.Separator);T.Spacer=function(){var s=document.createElement("div");s.className="ytb-spacer";T.Spacer.superclass.constructor.call(this,s);};Ext.extend(T.Spacer,T.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbspacer',T.Spacer);T.Fill=Ext.extend(T.Spacer,{render:function(td){td.style.width='100%';T.Fill.superclass.render.call(this,td);}});Ext.reg('tbfill',T.Fill);T.TextItem=function(t){var s=document.createElement("span");s.className="ytb-text";s.innerHTML=t.text?t.text:t;T.TextItem.superclass.constructor.call(this,s);};Ext.extend(T.TextItem,T.Item,{enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbtext',T.TextItem);T.Button=Ext.extend(Ext.Button,{hideParent:true,onDestroy:function(){T.Button.superclass.onDestroy.call(this);if(this.container){this.container.remove();}}});Ext.reg('tbbutton',T.Button);T.SplitButton=Ext.extend(Ext.SplitButton,{hideParent:true,onDestroy:function(){T.SplitButton.superclass.onDestroy.call(this);if(this.container){this.container.remove();}}});Ext.reg('tbsplit',T.SplitButton);T.MenuButton=T.SplitButton;})();Ext.PagingToolbar=Ext.extend(Ext.Toolbar,{pageSize:20,displayMsg:'Displaying {0} - {1} of {2}',emptyMsg:'No data to display',beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",paramNames:{start:'start',limit:'limit'},initComponent:function(){this.addEvents('change','beforechange');Ext.PagingToolbar.superclass.initComponent.call(this);this.cursor=0;this.bind(this.store);},onRender:function(ct,position){Ext.PagingToolbar.superclass.onRender.call(this,ct,position);this.first=this.addButton({tooltip:this.firstText,iconCls:"x-tbar-page-first",disabled:true,handler:this.onClick.createDelegate(this,["first"])});this.prev=this.addButton({tooltip:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,handler:this.onClick.createDelegate(this,["prev"])});this.addSeparator();this.add(this.beforePageText);this.field=Ext.get(this.addDom({tag:"input",type:"text",size:"3",value:"1",cls:"x-tbar-page-number"}).el);this.field.on("keydown",this.onPagingKeydown,this);this.field.on("focus",function(){this.dom.select();});this.field.on("blur",this.onPagingBlur,this);this.afterTextEl=this.addText(String.format(this.afterPageText,1));this.field.setHeight(18);this.addSeparator();this.next=this.addButton({tooltip:this.nextText,iconCls:"x-tbar-page-next",disabled:true,handler:this.onClick.createDelegate(this,["next"])});this.last=this.addButton({tooltip:this.lastText,iconCls:"x-tbar-page-last",disabled:true,handler:this.onClick.createDelegate(this,["last"])});this.addSeparator();this.loading=this.addButton({tooltip:this.refreshText,iconCls:"x-tbar-loading",handler:this.onClick.createDelegate(this,["refresh"])});if(this.displayInfo){this.displayEl=Ext.fly(this.el.dom).createChild({cls:'x-paging-info'});}
if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded);}},updateInfo:function(){if(this.displayEl){var count=this.store.getCount();var msg=count==0?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+count,this.store.getTotalCount());this.displayEl.update(msg);}},onLoad:function(store,r,o){if(!this.rendered){this.dsLoaded=[store,r,o];return;}
this.cursor=o.params?o.params[this.paramNames.start]:0;var d=this.getPageData(),ap=d.activePage,ps=d.pages;this.afterTextEl.el.innerHTML=String.format(this.afterPageText,d.pages);this.field.dom.value=ap;this.first.setDisabled(ap==1);this.prev.setDisabled(ap==1);this.next.setDisabled(ap==ps);this.last.setDisabled(ap==ps);this.loading.enable();this.updateInfo();this.fireEvent('change',this,d);},getPageData:function(){var total=this.store.getTotalCount();return{total:total,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:total<this.pageSize?1:Math.ceil(total/this.pageSize)};},onLoadError:function(){if(!this.rendered){return;}
this.loading.enable();},readPage:function(d){var v=this.field.dom.value,pageNum;if(!v||isNaN(pageNum=parseInt(v,10))){this.field.dom.value=d.activePage;return false;}
return pageNum;},onPagingBlur:function(e){this.field.dom.value=this.getPageData().activePage;},onPagingKeydown:function(e){var k=e.getKey(),d=this.getPageData(),pageNum;if(k==e.RETURN){e.stopEvent();pageNum=this.readPage(d);if(pageNum!==false){pageNum=Math.min(Math.max(1,pageNum),d.pages)-1;this.doLoad(pageNum*this.pageSize);}}else if(k==e.HOME||k==e.END){e.stopEvent();pageNum=k==e.HOME?1:d.pages;this.field.dom.value=pageNum;}else if(k==e.UP||k==e.PAGEUP||k==e.DOWN||k==e.PAGEDOWN){e.stopEvent();if(pageNum=this.readPage(d)){var increment=e.shiftKey?10:1;if(k==e.DOWN||k==e.PAGEDOWN){increment*=-1;}
pageNum+=increment;if(pageNum>=1&pageNum<=d.pages){this.field.dom.value=pageNum;}}}},beforeLoad:function(){if(this.rendered&&this.loading){this.loading.disable();}},doLoad:function(start){var o={},pn=this.paramNames;o[pn.start]=start;o[pn.limit]=this.pageSize;if(this.fireEvent('beforechange',this,o)!==false){this.store.load({params:o});}},changePage:function(page){this.doLoad(((page-1)*this.pageSize).constrain(0,this.store.getTotalCount()));},onClick:function(which){var store=this.store;switch(which){case"first":this.doLoad(0);break;case"prev":this.doLoad(Math.max(0,this.cursor-this.pageSize));break;case"next":this.doLoad(this.cursor+this.pageSize);break;case"last":var total=store.getTotalCount();var extra=total%this.pageSize;var lastStart=extra?(total-extra):total-this.pageSize;this.doLoad(lastStart);break;case"refresh":this.doLoad(this.cursor);break;}},unbind:function(store){store=Ext.StoreMgr.lookup(store);store.un("beforeload",this.beforeLoad,this);store.un("load",this.onLoad,this);store.un("loadexception",this.onLoadError,this);this.store=undefined;},bind:function(store){store=Ext.StoreMgr.lookup(store);store.on("beforeload",this.beforeLoad,this);store.on("load",this.onLoad,this);store.on("loadexception",this.onLoadError,this);this.store=store;if(store.getCount()>0){this.onLoad(store,null,{});}},onDestroy:function(){if(this.store){this.unbind(this.store);}
Ext.PagingToolbar.superclass.onDestroy.call(this);}});Ext.reg('paging',Ext.PagingToolbar);Ext.Resizable=function(el,config){this.el=Ext.get(el);if(config&&config.wrap){config.resizeChild=this.el;this.el=this.el.wrap(typeof config.wrap=="object"?config.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=config.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(config.resizeChild.getPositioning());config.resizeChild.clearPositioning();if(!config.width||!config.height){var csize=config.resizeChild.getSize();this.el.setSize(csize.width,csize.height);}
if(config.pinned&&!config.adjustments){config.adjustments="auto";}}
this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode('block');Ext.apply(this,config);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned");}
var position=this.el.getStyle("position");if(position!="absolute"&&position!="fixed"){this.el.setStyle("position","relative");}
if(!this.handles){this.handles='s,e,se';if(this.multiDirectional){this.handles+=',n,w';}}
if(this.handles=="all"){this.handles="n s e w ne nw se sw";}
var hs=this.handles.split(/\s*?[,;]\s*?| /);var ps=Ext.Resizable.positions;for(var i=0,len=hs.length;i<len;i++){if(hs[i]&&ps[hs[i]]){var pos=ps[hs[i]];this[pos]=new Ext.Resizable.Handle(this,pos,this.disableTrackOver,this.transparent);}}
this.corner=this.southeast;if(this.handles.indexOf("n")!=-1||this.handles.indexOf("w")!=-1){this.updateBox=true;}
this.activeHandle=null;if(this.resizeChild){if(typeof this.resizeChild=="boolean"){this.resizeChild=Ext.get(this.el.dom.firstChild,true);}else{this.resizeChild=Ext.get(this.resizeChild,true);}}
if(this.adjustments=="auto"){var rc=this.resizeChild;var hw=this.west,he=this.east,hn=this.north,hs=this.south;if(rc&&(hw||hn)){rc.position("relative");rc.setLeft(hw?hw.el.getWidth():0);rc.setTop(hn?hn.el.getHeight():0);}
this.adjustments=[(he?-he.el.getWidth():0)+(hw?-hw.el.getWidth():0),(hn?-hn.el.getHeight():0)+(hs?-hs.el.getHeight():0)-1];}
if(this.draggable){this.dd=this.dynamic?this.el.initDD(null):this.el.initDDProxy(null,{dragElId:this.proxy.id});this.dd.setHandleElId(this.resizeChild?this.resizeChild.id:this.el.id);}
this.addEvents("beforeresize","resize");if(this.width!==null&&this.height!==null){this.resizeTo(this.width,this.height);}else{this.updateChildSize();}
if(Ext.isIE){this.el.dom.style.zoom=1;}
Ext.Resizable.superclass.constructor.call(this);};Ext.extend(Ext.Resizable,Ext.util.Observable,{resizeChild:false,adjustments:[0,0],minWidth:5,minHeight:5,maxWidth:10000,maxHeight:10000,enabled:true,animate:false,duration:.35,dynamic:false,handles:false,multiDirectional:false,disableTrackOver:false,easing:'easeOutStrong',widthIncrement:0,heightIncrement:0,pinned:false,width:null,height:null,preserveRatio:false,transparent:false,minX:0,minY:0,draggable:false,resizeTo:function(width,height){this.el.setSize(width,height);this.updateChildSize();this.fireEvent("resize",this,width,height,null);},startSizing:function(e,handle){this.fireEvent("beforeresize",this,e);if(this.enabled){if(!this.overlay){this.overlay=this.el.createProxy({tag:"div",cls:"x-resizable-overlay",html:"&#160;"},Ext.getBody());this.overlay.unselectable();this.overlay.enableDisplayMode("block");this.overlay.on("mousemove",this.onMouseMove,this);this.overlay.on("mouseup",this.onMouseUp,this);}
this.overlay.setStyle("cursor",handle.el.getStyle("cursor"));this.resizing=true;this.startBox=this.el.getBox();this.startPoint=e.getXY();this.offsets=[(this.startBox.x+this.startBox.width)-this.startPoint[0],(this.startBox.y+this.startBox.height)-this.startPoint[1]];this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();if(this.constrainTo){var ct=Ext.get(this.constrainTo);this.resizeRegion=ct.getRegion().adjust(ct.getFrameWidth('t'),ct.getFrameWidth('l'),-ct.getFrameWidth('b'),-ct.getFrameWidth('r'));}
this.proxy.setStyle('visibility','hidden');this.proxy.show();this.proxy.setBox(this.startBox);if(!this.dynamic){this.proxy.setStyle('visibility','visible');}}},onMouseDown:function(handle,e){if(this.enabled){e.stopEvent();this.activeHandle=handle;this.startSizing(e,handle);}},onMouseUp:function(e){this.activeHandle=null;var size=this.resizeElement();this.resizing=false;this.handleOut();this.overlay.hide();this.proxy.hide();this.fireEvent("resize",this,size.width,size.height,e);},updateChildSize:function(){if(this.resizeChild){var el=this.el;var child=this.resizeChild;var adj=this.adjustments;if(el.dom.offsetWidth){var b=el.getSize(true);child.setSize(b.width+adj[0],b.height+adj[1]);}
if(Ext.isIE){setTimeout(function(){if(el.dom.offsetWidth){var b=el.getSize(true);child.setSize(b.width+adj[0],b.height+adj[1]);}},10);}}},snap:function(value,inc,min){if(!inc||!value)return value;var newValue=value;var m=value%inc;if(m>0){if(m>(inc/2)){newValue=value+(inc-m);}else{newValue=value-m;}}
return Math.max(min,newValue);},resizeElement:function(){var box=this.proxy.getBox();if(this.updateBox){this.el.setBox(box,false,this.animate,this.duration,null,this.easing);}else{this.el.setSize(box.width,box.height,this.animate,this.duration,null,this.easing);}
this.updateChildSize();if(!this.dynamic){this.proxy.hide();}
return box;},constrain:function(v,diff,m,mx){if(v-diff<m){diff=v-m;}else if(v-diff>mx){diff=v-mx;}
return diff;},onMouseMove:function(e){if(this.enabled&&this.activeHandle){try{if(this.resizeRegion&&!this.resizeRegion.contains(e.getPoint())){return;}
var curSize=this.curSize||this.startBox;var x=this.startBox.x,y=this.startBox.y;var ox=x,oy=y;var w=curSize.width,h=curSize.height;var ow=w,oh=h;var mw=this.minWidth,mh=this.minHeight;var mxw=this.maxWidth,mxh=this.maxHeight;var wi=this.widthIncrement;var hi=this.heightIncrement;var eventXY=e.getXY();var diffX=-(this.startPoint[0]-Math.max(this.minX,eventXY[0]));var diffY=-(this.startPoint[1]-Math.max(this.minY,eventXY[1]));var pos=this.activeHandle.position;switch(pos){case"east":w+=diffX;w=Math.min(Math.max(mw,w),mxw);break;case"south":h+=diffY;h=Math.min(Math.max(mh,h),mxh);break;case"southeast":w+=diffX;h+=diffY;w=Math.min(Math.max(mw,w),mxw);h=Math.min(Math.max(mh,h),mxh);break;case"north":diffY=this.constrain(h,diffY,mh,mxh);y+=diffY;h-=diffY;break;case"west":diffX=this.constrain(w,diffX,mw,mxw);x+=diffX;w-=diffX;break;case"northeast":w+=diffX;w=Math.min(Math.max(mw,w),mxw);diffY=this.constrain(h,diffY,mh,mxh);y+=diffY;h-=diffY;break;case"northwest":diffX=this.constrain(w,diffX,mw,mxw);diffY=this.constrain(h,diffY,mh,mxh);y+=diffY;h-=diffY;x+=diffX;w-=diffX;break;case"southwest":diffX=this.constrain(w,diffX,mw,mxw);h+=diffY;h=Math.min(Math.max(mh,h),mxh);x+=diffX;w-=diffX;break;}
var sw=this.snap(w,wi,mw);var sh=this.snap(h,hi,mh);if(sw!=w||sh!=h){switch(pos){case"northeast":y-=sh-h;break;case"north":y-=sh-h;break;case"southwest":x-=sw-w;break;case"west":x-=sw-w;break;case"northwest":x-=sw-w;y-=sh-h;break;}
w=sw;h=sh;}
if(this.preserveRatio){switch(pos){case"southeast":case"east":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);break;case"south":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case"northeast":w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);break;case"north":var tw=w;w=ow*(h/oh);w=Math.min(Math.max(mw,w),mxw);h=oh*(w/ow);x+=(tw-w)/2;break;case"southwest":h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);var tw=w;w=ow*(h/oh);x+=tw-w;break;case"west":var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);y+=(th-h)/2;var tw=w;w=ow*(h/oh);x+=tw-w;break;case"northwest":var tw=w;var th=h;h=oh*(w/ow);h=Math.min(Math.max(mh,h),mxh);w=ow*(h/oh);y+=th-h;x+=tw-w;break;}}
this.proxy.setBounds(x,y,w,h);if(this.dynamic){this.resizeElement();}}catch(e){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over");}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over");}},getEl:function(){return this.el;},getResizeChild:function(){return this.resizeChild;},destroy:function(removeEl){Ext.destroy(this.dd,this.overlay,this.proxy);this.overlay=null;this.proxy=null;var ps=Ext.Resizable.positions;for(var k in ps){if(typeof ps[k]!="function"&&this[ps[k]]){this[ps[k]].destroy();}}
if(removeEl){this.el.update("");Ext.destroy(this.el);this.el=null;}
this.purgeListeners();},syncHandleHeight:function(){var h=this.el.getHeight(true);if(this.west){this.west.el.setHeight(h);}
if(this.east){this.east.el.setHeight(h);}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(rz,pos,disableTrackOver,transparent){if(!this.tpl){var tpl=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});tpl.compile();Ext.Resizable.Handle.prototype.tpl=tpl;}
this.position=pos;this.rz=rz;this.el=this.tpl.append(rz.el.dom,[this.position],true);this.el.unselectable();if(transparent){this.el.setOpacity(0);}
this.el.on("mousedown",this.onMouseDown,this);if(!disableTrackOver){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this);}};Ext.Resizable.Handle.prototype={afterResize:function(rz){},onMouseDown:function(e){this.rz.onMouseDown(this,e);},onMouseOver:function(e){this.rz.handleOver(this,e);},onMouseOut:function(e){this.rz.handleOut(this,e);},destroy:function(){Ext.destroy(this.el);this.el=null;}};Ext.Editor=function(field,config){this.field=field;Ext.Editor.superclass.constructor.call(this,config);};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey");},onRender:function(ct,position){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:ct,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!='title'){this.field.msgTarget='qtip';}
this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute('autocomplete','off');}
this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(['keydown','keypress']);}
this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1});}},onSpecialKey:function(field,e){var key=e.getKey();if(this.completeOnEnter&&key==e.ENTER){e.stopEvent();this.completeEdit();}else if(this.cancelOnEsc&&key==e.ESC){this.cancelEdit();}else{this.fireEvent('specialkey',field,e);}
if(this.field.triggerBlur&&(key==e.ENTER||key==e.ESC||key==e.TAB)){this.field.triggerBlur();}},startEdit:function(el,value){if(this.editing){this.completeEdit();}
this.boundEl=Ext.get(el);var v=value!==undefined?value:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body);}
if(this.fireEvent("beforestartedit",this,this.boundEl,v)===false){return;}
this.startValue=v;this.field.setValue(v);this.doAutoSize();this.el.alignTo(this.boundEl,this.alignment);this.editing=true;this.show();},doAutoSize:function(){if(this.autoSize){var sz=this.boundEl.getSize();switch(this.autoSize){case"width":this.setSize(sz.width,"");break;case"height":this.setSize("",sz.height);break;default:this.setSize(sz.width,sz.height);}}},setSize:function(w,h){delete this.field.lastSize;this.field.setSize(w,h);if(this.el){if(Ext.isGecko2||Ext.isOpera){this.el.setSize(w,h);}
this.el.sync();}},realign:function(){this.el.alignTo(this.boundEl,this.alignment);},completeEdit:function(remainVisible){if(!this.editing){return;}
var v=this.getValue();if(!this.field.isValid()){if(this.revertInvalid!==false){this.cancelEdit(remainVisible);}
return;}
if(String(v)===String(this.startValue)&&this.ignoreNoChange){this.hideEdit(remainVisible);return;}
if(this.fireEvent("beforecomplete",this,v,this.startValue)!==false){v=this.getValue();if(this.updateEl&&this.boundEl){this.boundEl.update(v);}
this.hideEdit(remainVisible);this.fireEvent("complete",this,v,this.startValue);}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide();}
this.field.show();if(Ext.isIE&&!this.fixIEFocus){this.fixIEFocus=true;this.deferredFocus.defer(50,this);}else{this.field.focus();}
this.fireEvent("startedit",this.boundEl,this.startValue);},deferredFocus:function(){if(this.editing){this.field.focus();}},cancelEdit:function(remainVisible){if(this.editing){var v=this.getValue();this.setValue(this.startValue);this.hideEdit(remainVisible);this.fireEvent("canceledit",this,v,this.startValue);}},hideEdit:function(remainVisible){if(remainVisible!==true){this.editing=false;this.hide();}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit();}},onHide:function(){if(this.editing){this.completeEdit();return;}
this.field.blur();if(this.field.collapse){this.field.collapse();}
this.el.hide();if(this.hideEl!==false){this.boundEl.show();}},setValue:function(v){this.field.setValue(v);},getValue:function(){return this.field.getValue();},beforeDestroy:function(){Ext.destroy(this.field);this.field=null;}});Ext.reg('editor',Ext.Editor);Ext.MessageBox=function(){var dlg,opt,mask,waitTimer;var bodyEl,msgEl,textboxEl,textareaEl,progressBar,pp,iconEl,spacerEl;var buttons,activeTextEl,bwidth,iconCls='';var handleButton=function(button){if(dlg.isVisible()){dlg.hide();handleHide();Ext.callback(opt.fn,opt.scope||window,[button,activeTextEl.dom.value,opt],1);}};var handleHide=function(){if(opt&&opt.cls){dlg.el.removeClass(opt.cls);}
progressBar.reset();};var handleEsc=function(d,k,e){if(opt&&opt.closable!==false){dlg.hide();handleHide();}
if(e){e.stopEvent();}};var updateButtons=function(b){var width=0;if(!b){buttons["ok"].hide();buttons["cancel"].hide();buttons["yes"].hide();buttons["no"].hide();return width;}
dlg.footer.dom.style.display='';for(var k in buttons){if(typeof buttons[k]!="function"){if(b[k]){buttons[k].show();buttons[k].setText(typeof b[k]=="string"?b[k]:Ext.MessageBox.buttonText[k]);width+=buttons[k].el.getWidth()+15;}else{buttons[k].hide();}}}
return width;};return{getDialog:function(titleText){if(!dlg){dlg=new Ext.Window({autoCreate:true,title:titleText,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(opt&&opt.buttons&&opt.buttons.no&&!opt.buttons.cancel){handleButton("no");}else{handleButton("cancel");}}});buttons={};var bt=this.buttonText;buttons["ok"]=dlg.addButton(bt["ok"],handleButton.createCallback("ok"));buttons["yes"]=dlg.addButton(bt["yes"],handleButton.createCallback("yes"));buttons["no"]=dlg.addButton(bt["no"],handleButton.createCallback("no"));buttons["cancel"]=dlg.addButton(bt["cancel"],handleButton.createCallback("cancel"));buttons["ok"].hideMode=buttons["yes"].hideMode=buttons["no"].hideMode=buttons["cancel"].hideMode='offsets';dlg.render(document.body);dlg.getEl().addClass('x-window-dlg');mask=dlg.mask;bodyEl=dlg.body.createChild({html:'<div class="ext-mb-icon"></div><div class="ext-mb-content"><span class="ext-mb-text"></span><br /><div class="ext-mb-fix-cursor"><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea></div></div>'});iconEl=Ext.get(bodyEl.dom.firstChild);var contentEl=bodyEl.dom.childNodes[1];msgEl=Ext.get(contentEl.firstChild);textboxEl=Ext.get(contentEl.childNodes[2].firstChild);textboxEl.enableDisplayMode();textboxEl.addKeyListener([10,13],function(){if(dlg.isVisible()&&opt&&opt.buttons){if(opt.buttons.ok){handleButton("ok");}else if(opt.buttons.yes){handleButton("yes");}}});textareaEl=Ext.get(contentEl.childNodes[2].childNodes[1]);textareaEl.enableDisplayMode();progressBar=new Ext.ProgressBar({renderTo:bodyEl});bodyEl.createChild({cls:'x-clear'});}
return dlg;},updateText:function(text){if(!dlg.isVisible()&&!opt.width){dlg.setSize(this.maxWidth,100);}
msgEl.update(text||'&#160;');var iw=iconCls!=''?(iconEl.getWidth()+iconEl.getMargins('lr')):0;var mw=msgEl.getWidth()+msgEl.getMargins('lr');var fw=dlg.getFrameWidth('lr');var bw=dlg.body.getFrameWidth('lr');if(Ext.isIE&&iw>0){iw+=3;}
var w=Math.max(Math.min(opt.width||iw+mw+fw+bw,this.maxWidth),Math.max(opt.minWidth||this.minWidth,bwidth||0));if(opt.prompt===true){activeTextEl.setWidth(w-iw-fw-bw);}
if(opt.progress===true||opt.wait===true){progressBar.setSize(w-iw-fw-bw);}
if(Ext.isIE&&w==bwidth){w+=4;}
dlg.setSize(w,'auto').center();return this;},updateProgress:function(value,progressText,msg){progressBar.updateProgress(value,progressText);if(msg){this.updateText(msg);}
return this;},isVisible:function(){return dlg&&dlg.isVisible();},hide:function(){var proxy=dlg?dlg.activeGhost:null;if(this.isVisible()||proxy){dlg.hide();handleHide();if(proxy){proxy.hide();}}
return this;},show:function(options){if(this.isVisible()){this.hide();}
opt=options;var d=this.getDialog(opt.title||"&#160;");d.setTitle(opt.title||"&#160;");var allowClose=(opt.closable!==false&&opt.progress!==true&&opt.wait!==true);d.tools.close.setDisplayed(allowClose);activeTextEl=textboxEl;opt.prompt=opt.prompt||(opt.multiline?true:false);if(opt.prompt){if(opt.multiline){textboxEl.hide();textareaEl.show();textareaEl.setHeight(typeof opt.multiline=="number"?opt.multiline:this.defaultTextHeight);activeTextEl=textareaEl;}else{textboxEl.show();textareaEl.hide();}}else{textboxEl.hide();textareaEl.hide();}
activeTextEl.dom.value=opt.value||"";if(opt.prompt){d.focusEl=activeTextEl;}else{var bs=opt.buttons;var db=null;if(bs&&bs.ok){db=buttons["ok"];}else if(bs&&bs.yes){db=buttons["yes"];}
if(db){d.focusEl=db;}}
if(opt.iconCls){d.setIconClass(opt.iconCls);}
this.setIcon(opt.icon);bwidth=updateButtons(opt.buttons);progressBar.setVisible(opt.progress===true||opt.wait===true);this.updateProgress(0,opt.progressText);this.updateText(opt.msg);if(opt.cls){d.el.addClass(opt.cls);}
d.proxyDrag=opt.proxyDrag===true;d.modal=opt.modal!==false;d.mask=opt.modal!==false?mask:false;if(!d.isVisible()){document.body.appendChild(dlg.el.dom);d.setAnimateTarget(opt.animEl);d.show(opt.animEl);}
d.on('show',function(){if(allowClose===true){d.keyMap.enable();}else{d.keyMap.disable();}},this,{single:true});if(opt.wait===true){progressBar.wait(opt.waitConfig);}
return this;},setIcon:function(icon){if(icon&&icon!=''){iconEl.removeClass('x-hidden');iconEl.replaceClass(iconCls,icon);bodyEl.addClass('x-dlg-icon');iconCls=icon;}else{iconEl.replaceClass(iconCls,'x-hidden');bodyEl.removeClass('x-dlg-icon')
iconCls='';}
return this;},progress:function(title,msg,progressText){this.show({title:title,msg:msg,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:progressText});return this;},wait:function(msg,title,config){this.show({title:title,msg:msg,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:config});return this;},alert:function(title,msg,fn,scope){this.show({title:title,msg:msg,buttons:this.OK,fn:fn,scope:scope});return this;},confirm:function(title,msg,fn,scope){this.show({title:title,msg:msg,buttons:this.YESNO,fn:fn,scope:scope,icon:this.QUESTION});return this;},prompt:function(title,msg,fn,scope,multiline,value){this.show({title:title,msg:msg,buttons:this.OKCANCEL,fn:fn,minWidth:250,scope:scope,prompt:true,multiline:multiline,value:value});return this;},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:'ext-mb-info',WARNING:'ext-mb-warning',QUESTION:'ext-mb-question',ERROR:'ext-mb-error',defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}};}();Ext.Msg=Ext.MessageBox;Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:'x-tip',floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=',header';}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:'close',handler:this.hide,scope:this});}},showAt:function(xy){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!='number')){this.doAutoWidth();}
if(this.constrainPosition){xy=this.el.adjustForConstraints(xy);}
this.setPagePosition(xy[0],xy[1]);},doAutoWidth:function(){var bw=this.body.getTextWidth();if(this.title){bw=Math.max(bw,this.header.child('span').getTextWidth(this.title));}
bw+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr");this.setWidth(bw.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true;}},showBy:function(el,pos){if(!this.rendered){this.render(Ext.getBody());}
this.showAt(this.el.getAlignToXY(el,pos||this.defaultAlign));},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=='boolean'?null:this.draggable);this.header.addClass('x-tip-draggable');}});Ext.Tip.DD=function(tip,config){Ext.apply(this,config);this.tip=tip;Ext.Tip.DD.superclass.constructor.call(this,tip.el.id,'WindowDD-'+tip.id);this.setHandleElId(tip.header.id);this.scroll=false;};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow();},endDrag:function(e){this.tip.el.enableShadow(true);}});Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,mouseOffset:[15,18],trackMouse:false,constrainPosition:true,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget();},initTarget:function(){if(this.target){this.target=Ext.get(this.target);this.target.on('mouseover',this.onTargetOver,this);this.target.on('mouseout',this.onTargetOut,this);this.target.on('mousemove',this.onMouseMove,this);}},onMouseMove:function(e){this.targetXY=e.getXY();if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY());}},getTargetXY:function(){return[this.targetXY[0]+this.mouseOffset[0],this.targetXY[1]+this.mouseOffset[1]];},onTargetOver:function(e){if(this.disabled||e.within(this.target.dom,true)){return;}
this.clearTimer('hide');this.targetXY=e.getXY();this.delayShow();},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()<this.quickShowInterval){this.show();}else{this.showTimer=this.show.defer(this.showDelay,this);}}else if(!this.hidden&&this.autoHide!==false){this.show();}},onTargetOut:function(e){if(this.disabled||e.within(this.target.dom,true)){return;}
this.clearTimer('show');if(this.autoHide!==false){this.delayHide();}},delayHide:function(){if(!this.hidden&&!this.hideTimer){this.hideTimer=this.hide.defer(this.hideDelay,this);}},hide:function(){this.clearTimer('dismiss');this.lastActive=new Date();Ext.ToolTip.superclass.hide.call(this);},show:function(){this.showAt(this.getTargetXY());},showAt:function(xy){this.lastActive=new Date();this.clearTimers();Ext.ToolTip.superclass.showAt.call(this,xy);if(this.dismissDelay&&this.autoHide!==false){this.dismissTimer=this.hide.defer(this.dismissDelay,this);}},clearTimer:function(name){name=name+'Timer';clearTimeout(this[name]);delete this[name];},clearTimers:function(){this.clearTimer('show');this.clearTimer('dismiss');this.clearTimer('hide');},onShow:function(){Ext.ToolTip.superclass.onShow.call(this);Ext.getDoc().on('mousedown',this.onDocMouseDown,this);},onHide:function(){Ext.ToolTip.superclass.onHide.call(this);Ext.getDoc().un('mousedown',this.onDocMouseDown,this);},onDocMouseDown:function(e){if(this.autoHide!==true&&!e.within(this.el.dom)){this.disable();this.enable.defer(100,this);}},onDisable:function(){this.clearTimers();this.hide();},adjustPosition:function(x,y){var ay=this.targetXY[1],h=this.getSize().height;if(this.constrainPosition&&y<=ay&&(y+h)>=ay){y=ay-h-5;}
return{x:x,y:y};},onDestroy:function(){Ext.ToolTip.superclass.onDestroy.call(this);Ext.getDoc().un('mousedown',this.onDocMouseDown,this);if(this.target){this.target.un('mouseover',this.onTargetOver,this);this.target.un('mouseout',this.onTargetOut,this);this.target.un('mousemove',this.onMouseMove,this);}}});Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this);},register:function(config){var cs=Ext.isArray(config)?config:arguments;for(var i=0,len=cs.length;i<len;i++){var c=cs[i];var target=c.target;if(target){if(Ext.isArray(target)){for(var j=0,jlen=target.length;j<jlen;j++){this.targets[Ext.id(target[j])]=c;}}else{this.targets[Ext.id(target)]=c;}}}},unregister:function(el){delete this.targets[Ext.id(el)];},onTargetOver:function(e){if(this.disabled){return;}
this.targetXY=e.getXY();var t=e.getTarget();if(!t||t.nodeType!==1||t==document||t==document.body){return;}
if(this.activeTarget&&t==this.activeTarget.el){this.clearTimer('hide');this.show();return;}
if(t&&this.targets[t.id]){this.activeTarget=this.targets[t.id];this.activeTarget.el=t;this.delayShow();return;}
var ttp,et=Ext.fly(t),cfg=this.tagConfig;var ns=cfg.namespace;if(this.interceptTitles&&t.title){ttp=t.title;t.qtip=ttp;t.removeAttribute("title");e.preventDefault();}else{ttp=t.qtip||et.getAttributeNS(ns,cfg.attribute);}
if(ttp){var autoHide=et.getAttributeNS(ns,cfg.hide);this.activeTarget={el:t,text:ttp,width:et.getAttributeNS(ns,cfg.width),autoHide:autoHide!="user"&&autoHide!=='false',title:et.getAttributeNS(ns,cfg.title),cls:et.getAttributeNS(ns,cfg.cls),align:et.getAttributeNS(ns,cfg.align)};this.delayShow();}},onTargetOut:function(e){this.clearTimer('show');if(this.autoHide!==false){this.delayHide();}},showAt:function(xy){var t=this.activeTarget;if(t){if(!this.rendered){this.render(Ext.getBody());this.activeTarget=t;}
if(t.width){this.setWidth(t.width);this.body.setWidth(this.adjustBodyWidth(t.width-this.getFrameWidth()));this.measureWidth=false;}else{this.measureWidth=true;}
this.setTitle(t.title||'');this.body.update(t.text);this.autoHide=t.autoHide;this.dismissDelay=t.dismissDelay||this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls;}
if(t.cls){this.el.addClass(t.cls);this.lastCls=t.cls;}
if(t.align){xy=this.el.getAlignToXY(t.el,t.align);this.constrainPosition=false;}else{this.constrainPosition=true;}}
Ext.QuickTip.superclass.showAt.call(this,xy);},hide:function(){delete this.activeTarget;Ext.QuickTip.superclass.hide.call(this);}});Ext.QuickTips=function(){var tip,locks=[];return{init:function(autoRender){if(!tip){if(!Ext.isReady){Ext.onReady(function(){Ext.QuickTips.init(autoRender);});return;}
tip=new Ext.QuickTip({elements:'header,body'});if(autoRender!==false){tip.render(Ext.getBody());}}},enable:function(){if(tip){locks.pop();if(locks.length<1){tip.enable();}}},disable:function(){if(tip){tip.disable();}
locks.push(1);},isEnabled:function(){return tip!==undefined&&!tip.disabled;},getQuickTip:function(){return tip;},register:function(){tip.register.apply(tip,arguments);},unregister:function(){tip.unregister.apply(tip,arguments);},tips:function(){tip.register.apply(tip,arguments);}}}();Ext.tree.TreePanel=Ext.extend(Ext.Panel,{rootVisible:true,animate:Ext.enableFx,lines:true,enableDD:false,hlDrop:Ext.enableFx,pathSeparator:"/",initComponent:function(){Ext.tree.TreePanel.superclass.initComponent.call(this);if(!this.eventModel){this.eventModel=new Ext.tree.TreeEventModel(this);}
var l=this.loader;if(!l){l=new Ext.tree.TreeLoader({dataUrl:this.dataUrl});}else if(typeof l=='object'&&!l.load){l=new Ext.tree.TreeLoader(l);}
this.loader=l;this.nodeHash={};if(this.root){this.setRootNode(this.root);}
this.addEvents("append","remove","movenode","insert","beforeappend","beforeremove","beforemovenode","beforeinsert","beforeload","load","textchange","beforeexpandnode","beforecollapsenode","expandnode","disabledchange","collapsenode","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered","startdrag","enddrag","dragdrop","beforenodedrop","nodedrop","nodedragover");if(this.singleExpand){this.on("beforeexpandnode",this.restrictExpand,this);}},proxyNodeEvent:function(ename,a1,a2,a3,a4,a5,a6){if(ename=='collapse'||ename=='expand'||ename=='beforecollapse'||ename=='beforeexpand'||ename=='move'||ename=='beforemove'){ename=ename+'node';}
return this.fireEvent(ename,a1,a2,a3,a4,a5,a6);},getRootNode:function(){return this.root;},setRootNode:function(node){if(!node.render){node=this.loader.createNode(node);}
this.root=node;node.ownerTree=this;node.isRoot=true;this.registerNode(node);if(!this.rootVisible){var uiP=node.attributes.uiProvider;node.ui=uiP?new uiP(node):new Ext.tree.RootTreeNodeUI(node);}
return node;},getNodeById:function(id){return this.nodeHash[id];},registerNode:function(node){this.nodeHash[node.id]=node;},unregisterNode:function(node){delete this.nodeHash[node.id];},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]";},restrictExpand:function(node){var p=node.parentNode;if(p){if(p.expandedChild&&p.expandedChild.parentNode==p){p.expandedChild.collapse();}
p.expandedChild=node;}},getChecked:function(a,startNode){startNode=startNode||this.root;var r=[];var f=function(){if(this.attributes.checked){r.push(!a?this:(a=='id'?this.id:this.attributes[a]));}}
startNode.cascade(f);return r;},getEl:function(){return this.el;},getLoader:function(){return this.loader;},expandAll:function(){this.root.expand(true);},collapseAll:function(){this.root.collapse(true);},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.tree.DefaultSelectionModel();}
return this.selModel;},expandPath:function(path,attr,callback){attr=attr||"id";var keys=path.split(this.pathSeparator);var curNode=this.root;if(curNode.attributes[attr]!=keys[1]){if(callback){callback(false,null);}
return;}
var index=1;var f=function(){if(++index==keys.length){if(callback){callback(true,curNode);}
return;}
var c=curNode.findChild(attr,keys[index]);if(!c){if(callback){callback(false,curNode);}
return;}
curNode=c;c.expand(false,false,f);};curNode.expand(false,false,f);},selectPath:function(path,attr,callback){attr=attr||"id";var keys=path.split(this.pathSeparator);var v=keys.pop();if(keys.length>0){var f=function(success,node){if(success&&node){var n=node.findChild(attr,v);if(n){n.select();if(callback){callback(true,n);}}else if(callback){callback(false,n);}}else{if(callback){callback(false,n);}}};this.expandPath(keys.join(this.pathSeparator),attr,f);}else{this.root.select();if(callback){callback(true,this.root);}}},getTreeEl:function(){return this.body;},onRender:function(ct,position){Ext.tree.TreePanel.superclass.onRender.call(this,ct,position);this.el.addClass('x-tree');this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+
(this.useArrows?'x-tree-arrows':this.lines?"x-tree-lines":"x-tree-no-lines")});},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body);}
if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true});}
if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll});}
this.getSelectionModel().init(this);},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.root.render();if(!this.rootVisible){this.root.renderChildren();}},onDestroy:function(){if(this.rendered){this.body.removeAllListeners();Ext.dd.ScrollManager.unregister(this.body);if(this.dropZone){this.dropZone.unreg();}
if(this.dragZone){this.dragZone.unreg();}}
this.root.destroy();this.nodeHash=null;Ext.tree.TreePanel.superclass.onDestroy.call(this);}});Ext.tree.TreePanel.nodeTypes={};Ext.reg('treepanel',Ext.tree.TreePanel);Ext.tree.TreeEventModel=function(tree){this.tree=tree;this.tree.on('render',this.initEvents,this);}
Ext.tree.TreeEventModel.prototype={initEvents:function(){var el=this.tree.getTreeEl();el.on('click',this.delegateClick,this);if(this.tree.trackMouseOver!==false){el.on('mouseover',this.delegateOver,this);el.on('mouseout',this.delegateOut,this);}
el.on('dblclick',this.delegateDblClick,this);el.on('contextmenu',this.delegateContextMenu,this);},getNode:function(e){var t;if(t=e.getTarget('.x-tree-node-el',10)){var id=Ext.fly(t,'_treeEvents').getAttributeNS('ext','tree-node-id');if(id){return this.tree.getNodeById(id);}}
return null;},getNodeTarget:function(e){var t=e.getTarget('.x-tree-node-icon',1);if(!t){t=e.getTarget('.x-tree-node-el',6);}
return t;},delegateOut:function(e,t){if(!this.beforeEvent(e)){return;}
if(e.getTarget('.x-tree-ec-icon',1)){var n=this.getNode(e);this.onIconOut(e,n);if(n==this.lastEcOver){delete this.lastEcOver;}}
if((t=this.getNodeTarget(e))&&!e.within(t,true)){this.onNodeOut(e,this.getNode(e));}},delegateOver:function(e,t){if(!this.beforeEvent(e)){return;}
if(this.lastEcOver){this.onIconOut(e,this.lastEcOver);delete this.lastEcOver;}
if(e.getTarget('.x-tree-ec-icon',1)){this.lastEcOver=this.getNode(e);this.onIconOver(e,this.lastEcOver);}
if(t=this.getNodeTarget(e)){this.onNodeOver(e,this.getNode(e));}},delegateClick:function(e,t){if(!this.beforeEvent(e)){return;}
if(e.getTarget('input[type=checkbox]',1)){this.onCheckboxClick(e,this.getNode(e));}
else if(e.getTarget('.x-tree-ec-icon',1)){this.onIconClick(e,this.getNode(e));}
else if(this.getNodeTarget(e)){this.onNodeClick(e,this.getNode(e));}},delegateDblClick:function(e,t){if(this.beforeEvent(e)&&this.getNodeTarget(e)){this.onNodeDblClick(e,this.getNode(e));}},delegateContextMenu:function(e,t){if(this.beforeEvent(e)&&this.getNodeTarget(e)){this.onNodeContextMenu(e,this.getNode(e));}},onNodeClick:function(e,node){node.ui.onClick(e);},onNodeOver:function(e,node){node.ui.onOver(e);},onNodeOut:function(e,node){node.ui.onOut(e);},onIconOver:function(e,node){node.ui.addClass('x-tree-ec-over');},onIconOut:function(e,node){node.ui.removeClass('x-tree-ec-over');},onIconClick:function(e,node){node.ui.ecClick(e);},onCheckboxClick:function(e,node){node.ui.onCheckChange(e);},onNodeDblClick:function(e,node){node.ui.onDblClick(e);},onNodeContextMenu:function(e,node){node.ui.onContextMenu(e);},beforeEvent:function(e){if(this.disabled){e.stopEvent();return false;}
return true;},disable:function(){this.disabled=true;},enable:function(){this.disabled=false;}};Ext.tree.DefaultSelectionModel=function(config){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,config);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(tree){this.tree=tree;tree.getTreeEl().on("keydown",this.onKeyDown,this);tree.on("click",this.onNodeClick,this);},onNodeClick:function(node,e){this.select(node);},select:function(node){var last=this.selNode;if(node==last){node.ui.onSelectedChange(true);}else if(this.fireEvent('beforeselect',this,node,last)!==false){if(last){last.ui.onSelectedChange(false);}
this.selNode=node;node.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,node,last);}
return node;},unselect:function(node){if(this.selNode==node){this.clearSelections();}},clearSelections:function(){var n=this.selNode;if(n){n.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null);}
return n;},getSelectedNode:function(){return this.selNode;},isSelected:function(node){return this.selNode==node;},selectPrevious:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}
var ps=s.previousSibling;if(ps){if(!ps.isExpanded()||ps.childNodes.length<1){return this.select(ps);}else{var lc=ps.lastChild;while(lc&&lc.isExpanded()&&lc.childNodes.length>0){lc=lc.lastChild;}
return this.select(lc);}}else if(s.parentNode&&(this.tree.rootVisible||!s.parentNode.isRoot)){return this.select(s.parentNode);}
return null;},selectNext:function(){var s=this.selNode||this.lastSelNode;if(!s){return null;}
if(s.firstChild&&s.isExpanded()){return this.select(s.firstChild);}else if(s.nextSibling){return this.select(s.nextSibling);}else if(s.parentNode){var newS=null;s.parentNode.bubble(function(){if(this.nextSibling){newS=this.getOwnerTree().selModel.select(this.nextSibling);return false;}});return newS;}
return null;},onKeyDown:function(e){var s=this.selNode||this.lastSelNode;var sm=this;if(!s){return;}
var k=e.getKey();switch(k){case e.DOWN:e.stopEvent();this.selectNext();break;case e.UP:e.stopEvent();this.selectPrevious();break;case e.RIGHT:e.preventDefault();if(s.hasChildNodes()){if(!s.isExpanded()){s.expand();}else if(s.firstChild){this.select(s.firstChild,e);}}
break;case e.LEFT:e.preventDefault();if(s.hasChildNodes()&&s.isExpanded()){s.collapse();}else if(s.parentNode&&(this.tree.rootVisible||s.parentNode!=this.tree.getRootNode())){this.select(s.parentNode,e);}
break;};}});Ext.tree.MultiSelectionModel=function(config){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,config);Ext.tree.MultiSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(tree){this.tree=tree;tree.getTreeEl().on("keydown",this.onKeyDown,this);tree.on("click",this.onNodeClick,this);},onNodeClick:function(node,e){if(e.ctrlKey&&this.isSelected(node)){this.unselect(node);}else{this.select(node,e,e.ctrlKey);}},select:function(node,e,keepExisting){if(keepExisting!==true){this.clearSelections(true);}
if(this.isSelected(node)){this.lastSelNode=node;return node;}
this.selNodes.push(node);this.selMap[node.id]=node;this.lastSelNode=node;node.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return node;},unselect:function(node){if(this.selMap[node.id]){node.ui.onSelectedChange(false);var sn=this.selNodes;var index=sn.indexOf(node);if(index!=-1){this.selNodes.splice(index,1);}
delete this.selMap[node.id];this.fireEvent("selectionchange",this,this.selNodes);}},clearSelections:function(suppressEvent){var sn=this.selNodes;if(sn.length>0){for(var i=0,len=sn.length;i<len;i++){sn[i].ui.onSelectedChange(false);}
this.selNodes=[];this.selMap={};if(suppressEvent!==true){this.fireEvent("selectionchange",this,this.selNodes);}}},isSelected:function(node){return this.selMap[node.id]?true:false;},getSelectedNodes:function(){return this.selNodes;},onKeyDown:Ext.tree.DefaultSelectionModel.prototype.onKeyDown,selectNext:Ext.tree.DefaultSelectionModel.prototype.selectNext,selectPrevious:Ext.tree.DefaultSelectionModel.prototype.selectPrevious});Ext.tree.TreeNode=function(attributes){attributes=attributes||{};if(typeof attributes=="string"){attributes={text:attributes};}
this.childrenRendered=false;this.rendered=false;Ext.tree.TreeNode.superclass.constructor.call(this,attributes);this.expanded=attributes.expanded===true;this.isTarget=attributes.isTarget!==false;this.draggable=attributes.draggable!==false&&attributes.allowDrag!==false;this.allowChildren=attributes.allowChildren!==false&&attributes.allowDrop!==false;this.text=attributes.text;this.disabled=attributes.disabled===true;this.hidden=attributes.hidden===true;this.addEvents("textchange","beforeexpand","beforecollapse","expand","disabledchange","collapse","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered");var uiClass=this.attributes.uiProvider||this.defaultUI||Ext.tree.TreeNodeUI;this.ui=new uiClass(this);};Ext.extend(Ext.tree.TreeNode,Ext.data.Node,{preventHScroll:true,isExpanded:function(){return this.expanded;},getUI:function(){return this.ui;},getLoader:function(){var owner;return this.loader||((owner=this.getOwnerTree())&&owner.loader?owner.loader:new Ext.tree.TreeLoader());},setFirstChild:function(node){var of=this.firstChild;Ext.tree.TreeNode.superclass.setFirstChild.call(this,node);if(this.childrenRendered&&of&&node!=of){of.renderIndent(true,true);}
if(this.rendered){this.renderIndent(true,true);}},setLastChild:function(node){var ol=this.lastChild;Ext.tree.TreeNode.superclass.setLastChild.call(this,node);if(this.childrenRendered&&ol&&node!=ol){ol.renderIndent(true,true);}
if(this.rendered){this.renderIndent(true,true);}},appendChild:function(n){if(!n.render&&!Ext.isArray(n)){n=this.getLoader().createNode(n);}
var node=Ext.tree.TreeNode.superclass.appendChild.call(this,n);if(node&&this.childrenRendered){node.render();}
this.ui.updateExpandIcon();return node;},removeChild:function(node){this.ownerTree.getSelectionModel().unselect(node);Ext.tree.TreeNode.superclass.removeChild.apply(this,arguments);if(this.childrenRendered){node.ui.remove();}
if(this.childNodes.length<1){this.collapse(false,false);}else{this.ui.updateExpandIcon();}
if(!this.firstChild&&!this.isHiddenRoot()){this.childrenRendered=false;}
return node;},insertBefore:function(node,refNode){if(!node.render){node=this.getLoader().createNode(node);}
var newNode=Ext.tree.TreeNode.superclass.insertBefore.apply(this,arguments);if(newNode&&refNode&&this.childrenRendered){node.render();}
this.ui.updateExpandIcon();return newNode;},setText:function(text){var oldText=this.text;this.text=text;this.attributes.text=text;if(this.rendered){this.ui.onTextChange(this,text,oldText);}
this.fireEvent("textchange",this,text,oldText);},select:function(){this.getOwnerTree().getSelectionModel().select(this);},unselect:function(){this.getOwnerTree().getSelectionModel().unselect(this);},isSelected:function(){return this.getOwnerTree().getSelectionModel().isSelected(this);},expand:function(deep,anim,callback){if(!this.expanded){if(this.fireEvent("beforeexpand",this,deep,anim)===false){return;}
if(!this.childrenRendered){this.renderChildren();}
this.expanded=true;if(!this.isHiddenRoot()&&(this.getOwnerTree().animate&&anim!==false)||anim){this.ui.animExpand(function(){this.fireEvent("expand",this);if(typeof callback=="function"){callback(this);}
if(deep===true){this.expandChildNodes(true);}}.createDelegate(this));return;}else{this.ui.expand();this.fireEvent("expand",this);if(typeof callback=="function"){callback(this);}}}else{if(typeof callback=="function"){callback(this);}}
if(deep===true){this.expandChildNodes(true);}},isHiddenRoot:function(){return this.isRoot&&!this.getOwnerTree().rootVisible;},collapse:function(deep,anim){if(this.expanded&&!this.isHiddenRoot()){if(this.fireEvent("beforecollapse",this,deep,anim)===false){return;}
this.expanded=false;if((this.getOwnerTree().animate&&anim!==false)||anim){this.ui.animCollapse(function(){this.fireEvent("collapse",this);if(deep===true){this.collapseChildNodes(true);}}.createDelegate(this));return;}else{this.ui.collapse();this.fireEvent("collapse",this);}}
if(deep===true){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].collapse(true,false);}}},delayedExpand:function(delay){if(!this.expandProcId){this.expandProcId=this.expand.defer(delay,this);}},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);}
this.expandProcId=false;},toggle:function(){if(this.expanded){this.collapse();}else{this.expand();}},ensureVisible:function(callback){var tree=this.getOwnerTree();tree.expandPath(this.parentNode?this.parentNode.getPath():this.getPath(),false,function(){var node=tree.getNodeById(this.id);tree.getTreeEl().scrollChildIntoView(node.ui.anchor);Ext.callback(callback);}.createDelegate(this));},expandChildNodes:function(deep){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].expand(deep);}},collapseChildNodes:function(deep){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].collapse(deep);}},disable:function(){this.disabled=true;this.unselect();if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,true);}
this.fireEvent("disabledchange",this,true);},enable:function(){this.disabled=false;if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,false);}
this.fireEvent("disabledchange",this,false);},renderChildren:function(suppressEvent){if(suppressEvent!==false){this.fireEvent("beforechildrenrendered",this);}
var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].render(true);}
this.childrenRendered=true;},sort:function(fn,scope){Ext.tree.TreeNode.superclass.sort.apply(this,arguments);if(this.childrenRendered){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].render(true);}}},render:function(bulkRender){this.ui.render(bulkRender);if(!this.rendered){this.getOwnerTree().registerNode(this);this.rendered=true;if(this.expanded){this.expanded=false;this.expand(false,false);}}},renderIndent:function(deep,refresh){if(refresh){this.ui.childIndent=null;}
this.ui.renderIndent();if(deep===true&&this.childrenRendered){var cs=this.childNodes;for(var i=0,len=cs.length;i<len;i++){cs[i].renderIndent(true,refresh);}}},beginUpdate:function(){this.childrenRendered=false;},endUpdate:function(){if(this.expanded&&this.rendered){this.renderChildren();}},destroy:function(){if(this.childNodes){for(var i=0,l=this.childNodes.length;i<l;i++){this.childNodes[i].destroy();}
this.childNodes=null;}
if(this.ui.destroy){this.ui.destroy();}}});Ext.tree.TreePanel.nodeTypes.node=Ext.tree.TreeNode;Ext.tree.AsyncTreeNode=function(config){this.loaded=config&&config.loaded===true;this.loading=false;Ext.tree.AsyncTreeNode.superclass.constructor.apply(this,arguments);this.addEvents('beforeload','load');};Ext.extend(Ext.tree.AsyncTreeNode,Ext.tree.TreeNode,{expand:function(deep,anim,callback){if(this.loading){var timer;var f=function(){if(!this.loading){clearInterval(timer);this.expand(deep,anim,callback);}}.createDelegate(this);timer=setInterval(f,200);return;}
if(!this.loaded){if(this.fireEvent("beforeload",this)===false){return;}
this.loading=true;this.ui.beforeLoad(this);var loader=this.loader||this.attributes.loader||this.getOwnerTree().getLoader();if(loader){loader.load(this,this.loadComplete.createDelegate(this,[deep,anim,callback]));return;}}
Ext.tree.AsyncTreeNode.superclass.expand.call(this,deep,anim,callback);},isLoading:function(){return this.loading;},loadComplete:function(deep,anim,callback){this.loading=false;this.loaded=true;this.ui.afterLoad(this);this.fireEvent("load",this);this.expand(deep,anim,callback);},isLoaded:function(){return this.loaded;},hasChildNodes:function(){if(!this.isLeaf()&&!this.loaded){return true;}else{return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this);}},reload:function(callback){this.collapse(false,false);while(this.firstChild){this.removeChild(this.firstChild).destroy();}
this.childrenRendered=false;this.loaded=false;if(this.isHiddenRoot()){this.expanded=false;}
this.expand(false,false,callback);}});Ext.tree.TreePanel.nodeTypes.async=Ext.tree.AsyncTreeNode;Ext.tree.TreeNodeUI=function(node){this.node=node;this.rendered=false;this.animating=false;this.wasLeaf=true;this.ecc='x-tree-ec-icon x-tree-elbow';this.emptyIcon=Ext.BLANK_IMAGE_URL;};Ext.tree.TreeNodeUI.prototype={removeChild:function(node){if(this.rendered){this.ctNode.removeChild(node.ui.getEl());}},beforeLoad:function(){this.addClass("x-tree-node-loading");},afterLoad:function(){this.removeClass("x-tree-node-loading");},onTextChange:function(node,text,oldText){if(this.rendered){this.textNode.innerHTML=text;}},onDisableChange:function(node,state){this.disabled=state;if(this.checkbox){this.checkbox.disabled=state;}
if(state){this.addClass("x-tree-node-disabled");}else{this.removeClass("x-tree-node-disabled");}},onSelectedChange:function(state){if(state){this.focus();this.addClass("x-tree-selected");}else{this.removeClass("x-tree-selected");}},onMove:function(tree,node,oldParent,newParent,index,refNode){this.childIndent=null;if(this.rendered){var targetNode=newParent.ui.getContainer();if(!targetNode){this.holder=document.createElement("div");this.holder.appendChild(this.wrap);return;}
var insertBefore=refNode?refNode.ui.getEl():null;if(insertBefore){targetNode.insertBefore(this.wrap,insertBefore);}else{targetNode.appendChild(this.wrap);}
this.node.renderIndent(true,newParent!=oldParent);}},addClass:function(cls){if(this.elNode){Ext.fly(this.elNode).addClass(cls);}},removeClass:function(cls){if(this.elNode){Ext.fly(this.elNode).removeClass(cls);}},remove:function(){if(this.rendered){this.holder=document.createElement("div");this.holder.appendChild(this.wrap);}},fireEvent:function(){return this.node.fireEvent.apply(this.node,arguments);},initEvents:function(){this.node.on("move",this.onMove,this);if(this.node.disabled){this.addClass("x-tree-node-disabled");if(this.checkbox){this.checkbox.disabled=true;}}
if(this.node.hidden){this.hide();}
var ot=this.node.getOwnerTree();var dd=ot.enableDD||ot.enableDrag||ot.enableDrop;if(dd&&(!this.node.isRoot||ot.rootVisible)){Ext.dd.Registry.register(this.elNode,{node:this.node,handles:this.getDDHandles(),isHandle:false});}},getDDHandles:function(){return[this.iconNode,this.textNode,this.elNode];},hide:function(){this.node.hidden=true;if(this.wrap){this.wrap.style.display="none";}},show:function(){this.node.hidden=false;if(this.wrap){this.wrap.style.display="";}},onContextMenu:function(e){if(this.node.hasListener("contextmenu")||this.node.getOwnerTree().hasListener("contextmenu")){e.preventDefault();this.focus();this.fireEvent("contextmenu",this.node,e);}},onClick:function(e){if(this.dropping){e.stopEvent();return;}
if(this.fireEvent("beforeclick",this.node,e)!==false){var a=e.getTarget('a');if(!this.disabled&&this.node.attributes.href&&a){this.fireEvent("click",this.node,e);return;}else if(a&&e.ctrlKey){e.stopEvent();}
e.preventDefault();if(this.disabled){return;}
if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.isExpandable()){this.node.toggle();}
this.fireEvent("click",this.node,e);}else{e.stopEvent();}},onDblClick:function(e){e.preventDefault();if(this.disabled){return;}
if(this.checkbox){this.toggleCheck();}
if(!this.animating&&this.node.isExpandable()){this.node.toggle();}
this.fireEvent("dblclick",this.node,e);},onOver:function(e){this.addClass('x-tree-node-over');},onOut:function(e){this.removeClass('x-tree-node-over');},onCheckChange:function(){var checked=this.checkbox.checked;this.checkbox.defaultChecked=checked;this.node.attributes.checked=checked;this.fireEvent('checkchange',this.node,checked);},ecClick:function(e){if(!this.animating&&this.node.isExpandable()){this.node.toggle();}},startDrop:function(){this.dropping=true;},endDrop:function(){setTimeout(function(){this.dropping=false;}.createDelegate(this),50);},expand:function(){this.updateExpandIcon();this.ctNode.style.display="";},focus:function(){if(!this.node.preventHScroll){try{this.anchor.focus();}catch(e){}}else{try{var noscroll=this.node.getOwnerTree().getTreeEl().dom;var l=noscroll.scrollLeft;this.anchor.focus();noscroll.scrollLeft=l;}catch(e){}}},toggleCheck:function(value){var cb=this.checkbox;if(cb){cb.checked=(value===undefined?!cb.checked:value);this.onCheckChange();}},blur:function(){try{this.anchor.blur();}catch(e){}},animExpand:function(callback){var ct=Ext.get(this.ctNode);ct.stopFx();if(!this.node.isExpandable()){this.updateExpandIcon();this.ctNode.style.display="";Ext.callback(callback);return;}
this.animating=true;this.updateExpandIcon();ct.slideIn('t',{callback:function(){this.animating=false;Ext.callback(callback);},scope:this,duration:this.node.ownerTree.duration||.25});},highlight:function(){var tree=this.node.getOwnerTree();Ext.fly(this.wrap).highlight(tree.hlColor||"C3DAF9",{endColor:tree.hlBaseColor});},collapse:function(){this.updateExpandIcon();this.ctNode.style.display="none";},animCollapse:function(callback){var ct=Ext.get(this.ctNode);ct.enableDisplayMode('block');ct.stopFx();this.animating=true;this.updateExpandIcon();ct.slideOut('t',{callback:function(){this.animating=false;Ext.callback(callback);},scope:this,duration:this.node.ownerTree.duration||.25});},getContainer:function(){return this.ctNode;},getEl:function(){return this.wrap;},appendDDGhost:function(ghostNode){ghostNode.appendChild(this.elNode.cloneNode(true));},getDDRepairXY:function(){return Ext.lib.Dom.getXY(this.iconNode);},onRender:function(){this.render();},render:function(bulkRender){var n=this.node,a=n.attributes;var targetNode=n.parentNode?n.parentNode.ui.getContainer():n.ownerTree.innerCt.dom;if(!this.rendered){this.rendered=true;this.renderElements(n,a,targetNode,bulkRender);if(a.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttributeNS("ext","qtitle",a.qtipTitle);}}else{this.textNode.setAttribute("ext:qtip",a.qtip);if(a.qtipTitle){this.textNode.setAttribute("ext:qtitle",a.qtipTitle);}}}else if(a.qtipCfg){a.qtipCfg.target=Ext.id(this.textNode);Ext.QuickTips.register(a.qtipCfg);}
this.initEvents();if(!this.node.expanded){this.updateExpandIcon(true);}}else{if(bulkRender===true){targetNode.appendChild(this.wrap);}}},renderElements:function(n,a,targetNode,bulkRender){this.indentMarkup=n.parentNode?n.parentNode.ui.getChildIndent():'';var cb=typeof a.checked=='boolean';var href=a.href?a.href:Ext.isGecko?"":"#";var buf=['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',a.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img src="',a.icon||this.emptyIcon,'" class="x-tree-node-icon',(a.icon?" x-tree-node-inline-icon":""),(a.iconCls?" "+a.iconCls:""),'" unselectable="on" />',cb?('<input class="x-tree-node-cb" type="checkbox" '+(a.checked?'checked="checked" />':'/>')):'','<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" ',a.hrefTarget?' target="'+a.hrefTarget+'"':"",'><span unselectable="on">',n.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join('');var nel;if(bulkRender!==true&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,buf);}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",targetNode,buf);}
this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0];this.ecNode=cs[1];this.iconNode=cs[2];var index=3;if(cb){this.checkbox=cs[3];this.checkbox.defaultChecked=this.checkbox.checked;index++;}
this.anchor=cs[index];this.textNode=cs[index].firstChild;},getAnchor:function(){return this.anchor;},getTextEl:function(){return this.textNode;},getIconEl:function(){return this.iconNode;},isChecked:function(){return this.checkbox?this.checkbox.checked:false;},updateExpandIcon:function(){if(this.rendered){var n=this.node,c1,c2;var cls=n.isLast()?"x-tree-elbow-end":"x-tree-elbow";if(n.isExpandable()){if(n.expanded){cls+="-minus";c1="x-tree-node-collapsed";c2="x-tree-node-expanded";}else{cls+="-plus";c1="x-tree-node-expanded";c2="x-tree-node-collapsed";}
if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false;}
if(this.c1!=c1||this.c2!=c2){Ext.fly(this.elNode).replaceClass(c1,c2);this.c1=c1;this.c2=c2;}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");delete this.c1;delete this.c2;this.wasLeaf=true;}}
var ecc="x-tree-ec-icon "+cls;if(this.ecc!=ecc){this.ecNode.className=ecc;this.ecc=ecc;}}},getChildIndent:function(){if(!this.childIndent){var buf=[];var p=this.node;while(p){if(!p.isRoot||(p.isRoot&&p.ownerTree.rootVisible)){if(!p.isLast()){buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />');}else{buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />');}}
p=p.parentNode;}
this.childIndent=buf.join("");}
return this.childIndent;},renderIndent:function(){if(this.rendered){var indent="";var p=this.node.parentNode;if(p){indent=p.ui.getChildIndent();}
if(this.indentMarkup!=indent){this.indentNode.innerHTML=indent;this.indentMarkup=indent;}
this.updateExpandIcon();}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id);}
delete this.elNode;delete this.ctNode;delete this.indentNode;delete this.ecNode;delete this.iconNode;delete this.checkbox;delete this.anchor;delete this.textNode;if(this.holder){delete this.wrap;Ext.removeNode(this.holder);delete this.holder;}else{Ext.removeNode(this.wrap);delete this.wrap;}}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var targetNode=this.node.ownerTree.innerCt.dom;this.node.expanded=true;targetNode.innerHTML='<div class="x-tree-root-node"></div>';this.wrap=this.ctNode=targetNode.firstChild;}},collapse:Ext.emptyFn,expand:Ext.emptyFn});Ext.tree.TreeLoader=function(config){this.baseParams={};Ext.apply(this,config);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this);};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(node,callback){if(this.clearOnLoad){while(node.firstChild){node.removeChild(node.firstChild);}}
if(this.doPreload(node)){if(typeof callback=="function"){callback();}}else if(this.dataUrl||this.url){this.requestData(node,callback);}},doPreload:function(node){if(node.attributes.children){if(node.childNodes.length<1){var cs=node.attributes.children;node.beginUpdate();for(var i=0,len=cs.length;i<len;i++){var cn=node.appendChild(this.createNode(cs[i]));if(this.preloadChildren){this.doPreload(cn);}}
node.endUpdate();}
return true;}else{return false;}},getParams:function(node){var buf=[],bp=this.baseParams;for(var key in bp){if(typeof bp[key]!="function"){buf.push(encodeURIComponent(key),"=",encodeURIComponent(bp[key]),"&");}}
buf.push("node=",encodeURIComponent(node.id));return buf.join("");},requestData:function(node,callback){if(this.fireEvent("beforeload",this,node,callback)!==false){this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:callback,node:node},params:this.getParams(node)});}else{if(typeof callback=="function"){callback();}}},isLoading:function(){return!!this.transId;},abort:function(){if(this.isLoading()){Ext.Ajax.abort(this.transId);}},createNode:function(attr){if(this.baseAttrs){Ext.applyIf(attr,this.baseAttrs);}
if(this.applyLoader!==false){attr.loader=this;}
if(typeof attr.uiProvider=='string'){attr.uiProvider=this.uiProviders[attr.uiProvider]||eval(attr.uiProvider);}
if(attr.nodeType){return new Ext.tree.TreePanel.nodeTypes[attr.nodeType](attr);}else{return attr.leaf?new Ext.tree.TreeNode(attr):new Ext.tree.AsyncTreeNode(attr);}},processResponse:function(response,node,callback){var json=response.responseText;try{var o=eval("("+json+")");node.beginUpdate();for(var i=0,len=o.length;i<len;i++){var n=this.createNode(o[i]);if(n){node.appendChild(n);}}
node.endUpdate();if(typeof callback=="function"){callback(this,node);}}catch(e){this.handleFailure(response);}},handleResponse:function(response){this.transId=false;var a=response.argument;this.processResponse(response,a.node,a.callback);this.fireEvent("load",this,a.node,response);},handleFailure:function(response){this.transId=false;var a=response.argument;this.fireEvent("loadexception",this,a.node,response);if(typeof a.callback=="function"){a.callback(this,a.node);}}});Ext.tree.TreeFilter=function(tree,config){this.tree=tree;this.filtered={};Ext.apply(this,config);};Ext.tree.TreeFilter.prototype={clearBlank:false,reverse:false,autoClear:false,remove:false,filter:function(value,attr,startNode){attr=attr||"text";var f;if(typeof value=="string"){var vlen=value.length;if(vlen==0&&this.clearBlank){this.clear();return;}
value=value.toLowerCase();f=function(n){return n.attributes[attr].substr(0,vlen).toLowerCase()==value;};}else if(value.exec){f=function(n){return value.test(n.attributes[attr]);};}else{throw'Illegal filter type, must be string or regex';}
this.filterBy(f,null,startNode);},filterBy:function(fn,scope,startNode){startNode=startNode||this.tree.root;if(this.autoClear){this.clear();}
var af=this.filtered,rv=this.reverse;var f=function(n){if(n==startNode){return true;}
if(af[n.id]){return false;}
var m=fn.call(scope||n,n);if(!m||rv){af[n.id]=n;n.ui.hide();return false;}
return true;};startNode.cascade(f);if(this.remove){for(var id in af){if(typeof id!="function"){var n=af[id];if(n&&n.parentNode){n.parentNode.removeChild(n);}}}}},clear:function(){var t=this.tree;var af=this.filtered;for(var id in af){if(typeof id!="function"){var n=af[id];if(n){n.ui.show();}}}
this.filtered={};}};Ext.tree.TreeSorter=function(tree,config){Ext.apply(this,config);tree.on("beforechildrenrendered",this.doSort,this);tree.on("append",this.updateSort,this);tree.on("insert",this.updateSort,this);tree.on("textchange",this.updateSortParent,this);var dsc=this.dir&&this.dir.toLowerCase()=="desc";var p=this.property||"text";var sortType=this.sortType;var fs=this.folderSort;var cs=this.caseSensitive===true;var leafAttr=this.leafAttr||'leaf';this.sortFn=function(n1,n2){if(fs){if(n1.attributes[leafAttr]&&!n2.attributes[leafAttr]){return 1;}
if(!n1.attributes[leafAttr]&&n2.attributes[leafAttr]){return-1;}}
var v1=sortType?sortType(n1):(cs?n1.attributes[p]:n1.attributes[p].toUpperCase());var v2=sortType?sortType(n2):(cs?n2.attributes[p]:n2.attributes[p].toUpperCase());if(v1<v2){return dsc?+1:-1;}else if(v1>v2){return dsc?-1:+1;}else{return 0;}};};Ext.tree.TreeSorter.prototype={doSort:function(node){node.sort(this.sortFn);},compareNodes:function(n1,n2){return(n1.text.toUpperCase()>n2.text.toUpperCase()?1:-1);},updateSort:function(tree,node){if(node.childrenRendered){this.doSort.defer(1,this,[node]);}},updateSortParent:function(node){var p=node.parentNode;if(p&&p.childrenRendered){this.doSort.defer(1,this,[p]);}}};if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(tree,config){this.allowParentInsert=config.allowParentInsert||false;this.allowContainerDrop=config.allowContainerDrop||false;this.appendOnly=config.appendOnly||false;Ext.tree.TreeDropZone.superclass.constructor.call(this,tree.getTreeEl(),config);this.tree=tree;this.dragOverData={};this.lastInsertClass="x-tree-no-status";};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(node){if(node.hasChildNodes()&&!node.isExpanded()){node.expand(false,null,this.triggerCacheRefresh.createDelegate(this));}},queueExpand:function(node){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[node]);},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false;}},isValidDropPoint:function(n,pt,dd,e,data){if(!n||!data){return false;}
var targetNode=n.node;var dropNode=data.node;if(!(targetNode&&targetNode.isTarget&&pt)){return false;}
if(pt=="append"&&targetNode.allowChildren===false){return false;}
if((pt=="above"||pt=="below")&&(targetNode.parentNode&&targetNode.parentNode.allowChildren===false)){return false;}
if(dropNode&&(targetNode==dropNode||dropNode.contains(targetNode))){return false;}
var overEvent=this.dragOverData;overEvent.tree=this.tree;overEvent.target=targetNode;overEvent.data=data;overEvent.point=pt;overEvent.source=dd;overEvent.rawEvent=e;overEvent.dropNode=dropNode;overEvent.cancel=false;var result=this.tree.fireEvent("nodedragover",overEvent);return overEvent.cancel===false&&result!==false;},getDropPoint:function(e,n,dd){var tn=n.node;if(tn.isRoot){return tn.allowChildren!==false?"append":false;}
var dragEl=n.ddel;var t=Ext.lib.Dom.getY(dragEl),b=t+dragEl.offsetHeight;var y=Ext.lib.Event.getPageY(e);var noAppend=tn.allowChildren===false||tn.isLeaf();if(this.appendOnly||tn.parentNode.allowChildren===false){return noAppend?false:"append";}
var noBelow=false;if(!this.allowParentInsert){noBelow=tn.hasChildNodes()&&tn.isExpanded();}
var q=(b-t)/(noAppend?2:3);if(y>=t&&y<(t+q)){return"above";}else if(!noBelow&&(noAppend||y>=b-q&&y<=b)){return"below";}else{return"append";}},onNodeEnter:function(n,dd,e,data){this.cancelExpand();},onContainerOver:function(dd,e,data){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",dd,e,data)){return this.dropAllowed;}
return this.dropNotAllowed;},onNodeOver:function(n,dd,e,data){var pt=this.getDropPoint(e,n,dd);var node=n.node;if(!this.expandProcId&&pt=="append"&&node.hasChildNodes()&&!n.node.isExpanded()){this.queueExpand(node);}else if(pt!="append"){this.cancelExpand();}
var returnCls=this.dropNotAllowed;if(this.isValidDropPoint(n,pt,dd,e,data)){if(pt){var el=n.ddel;var cls;if(pt=="above"){returnCls=n.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";cls="x-tree-drag-insert-above";}else if(pt=="below"){returnCls=n.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";cls="x-tree-drag-insert-below";}else{returnCls="x-tree-drop-ok-append";cls="x-tree-drag-append";}
if(this.lastInsertClass!=cls){Ext.fly(el).replaceClass(this.lastInsertClass,cls);this.lastInsertClass=cls;}}}
return returnCls;},onNodeOut:function(n,dd,e,data){this.cancelExpand();this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,data){var point=this.getDropPoint(e,n,dd);var targetNode=n.node;targetNode.ui.startDrop();if(!this.isValidDropPoint(n,point,dd,e,data)){targetNode.ui.endDrop();return false;}
var dropNode=data.node||(dd.getTreeNode?dd.getTreeNode(data,targetNode,point,e):null);return this.processDrop(targetNode,data,point,dd,e,dropNode);},onContainerDrop:function(dd,e,data){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",dd,e,data)){var targetNode=this.tree.getRootNode();targetNode.ui.startDrop();var dropNode=data.node||(dd.getTreeNode?dd.getTreeNode(data,targetNode,'append',e):null);return this.processDrop(targetNode,data,'append',dd,e,dropNode);}
return false;},processDrop:function(target,data,point,dd,e,dropNode){var dropEvent={tree:this.tree,target:target,data:data,point:point,source:dd,rawEvent:e,dropNode:dropNode,cancel:!dropNode,dropStatus:false};var retval=this.tree.fireEvent("beforenodedrop",dropEvent);if(retval===false||dropEvent.cancel===true||!dropEvent.dropNode){target.ui.endDrop();return dropEvent.dropStatus;}
target=dropEvent.target;if(point=='append'&&!target.isExpanded()){target.expand(false,null,function(){this.completeDrop(dropEvent);}.createDelegate(this));}else{this.completeDrop(dropEvent);}
return true;},completeDrop:function(de){var ns=de.dropNode,p=de.point,t=de.target;if(!Ext.isArray(ns)){ns=[ns];}
var n;for(var i=0,len=ns.length;i<len;i++){n=ns[i];if(p=="above"){t.parentNode.insertBefore(n,t);}else if(p=="below"){t.parentNode.insertBefore(n,t.nextSibling);}else{t.appendChild(n);}}
n.ui.focus();if(Ext.enableFx&&this.tree.hlDrop){n.ui.highlight();}
t.ui.endDrop();this.tree.fireEvent("nodedrop",de);},afterNodeMoved:function(dd,data,e,targetNode,dropNode){if(Ext.enableFx&&this.tree.hlDrop){dropNode.ui.focus();dropNode.ui.highlight();}
this.tree.fireEvent("nodedrop",this.tree,targetNode,data,dd,e);},getTree:function(){return this.tree;},removeDropIndicators:function(n){if(n&&n.ddel){var el=n.ddel;Ext.fly(el).removeClass(["x-tree-drag-insert-above","x-tree-drag-insert-below","x-tree-drag-append"]);this.lastInsertClass="_noclass";}},beforeDragDrop:function(target,e,id){this.cancelExpand();return true;},afterRepair:function(data){if(data&&Ext.enableFx){data.node.ui.highlight();}
this.hideProxy();}});}
if(Ext.dd.DragZone){Ext.tree.TreeDragZone=function(tree,config){Ext.tree.TreeDragZone.superclass.constructor.call(this,tree.innerCt,config);this.tree=tree;};Ext.extend(Ext.tree.TreeDragZone,Ext.dd.DragZone,{ddGroup:"TreeDD",onBeforeDrag:function(data,e){var n=data.node;return n&&n.draggable&&!n.disabled;},onInitDrag:function(e){var data=this.dragData;this.tree.getSelectionModel().select(data.node);this.tree.eventModel.disable();this.proxy.update("");data.node.ui.appendDDGhost(this.proxy.ghost.dom);this.tree.fireEvent("startdrag",this.tree,data.node,e);},getRepairXY:function(e,data){return data.node.ui.getDDRepairXY();},onEndDrag:function(data,e){this.tree.eventModel.enable.defer(100,this.tree.eventModel);this.tree.fireEvent("enddrag",this.tree,data.node,e);},onValidDrop:function(dd,e,id){this.tree.fireEvent("dragdrop",this.tree,this.dragData.node,dd,e);this.hideProxy();},beforeInvalidDrop:function(e,id){var sm=this.tree.getSelectionModel();sm.clearSelections();sm.select(this.dragData.node);},afterRepair:function(){if(Ext.enableFx&&this.tree.hlDrop){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9");}
this.dragging=false;}});}
Ext.tree.TreeEditor=function(tree,fc,config){fc=fc||{};var field=fc.events?fc:new Ext.form.TextField(fc);Ext.tree.TreeEditor.superclass.constructor.call(this,field,config);this.tree=tree;if(!tree.rendered){tree.on('render',this.initEditor,this);}else{this.initEditor(tree);}};Ext.extend(Ext.tree.TreeEditor,Ext.Editor,{alignment:"l-l",autoSize:false,hideEl:false,cls:"x-small-editor x-tree-editor",shim:false,shadow:"frame",maxWidth:250,editDelay:350,initEditor:function(tree){tree.on('beforeclick',this.beforeNodeClick,this);tree.on('dblclick',this.onNodeDblClick,this);this.on('complete',this.updateNode,this);this.on('beforestartedit',this.fitToTree,this);this.on('startedit',this.bindScroll,this,{delay:10});this.on('specialkey',this.onSpecialKey,this);},fitToTree:function(ed,el){var td=this.tree.getTreeEl().dom,nd=el.dom;if(td.scrollLeft>nd.offsetLeft){td.scrollLeft=nd.offsetLeft;}
var w=Math.min(this.maxWidth,(td.clientWidth>20?td.clientWidth:td.offsetWidth)-Math.max(0,nd.offsetLeft-td.scrollLeft)-5);this.setSize(w,'');},triggerEdit:function(node,defer){this.completeEdit();if(node.attributes.editable!==false){this.editNode=node;if(this.tree.autoScroll){Ext.fly(node.ui.getEl()).scrollIntoView(this.tree.body);}
var value=node.text||'';if(!Ext.isGecko&&Ext.isEmpty(node.text)){node.setText('&nbsp;');}
this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[node.ui.textNode,value]);return false;}},bindScroll:function(){this.tree.getTreeEl().on('scroll',this.cancelEdit,this);},beforeNodeClick:function(node,e){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(node)){e.stopEvent();return this.triggerEdit(node);}},onNodeDblClick:function(node,e){clearTimeout(this.autoEditTimer);},updateNode:function(ed,value){this.tree.getTreeEl().un('scroll',this.cancelEdit,this);this.editNode.setText(value);},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui);}},onSpecialKey:function(field,e){var k=e.getKey();if(k==e.ESC){e.stopEvent();this.cancelEdit();}else if(k==e.ENTER&&!e.hasModifier()){e.stopEvent();this.completeEdit();}}});Ext.menu.Menu=function(config){if(Ext.isArray(config)){config={items:config};}
Ext.apply(this,config);this.id=this.id||Ext.id();this.addEvents('beforeshow','beforehide','show','hide','click','mouseover','mouseout','itemclick');Ext.menu.MenuMgr.register(this);Ext.menu.Menu.superclass.constructor.call(this);var mis=this.items;this.items=new Ext.util.MixedCollection();if(mis){this.add.apply(this,mis);}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,hidden:true,createEl:function(){return new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000});},render:function(){if(this.el){return;}
var el=this.el=this.createEl();if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this);}
if(this.plain){el.addClass("x-menu-plain");}
if(this.cls){el.addClass(this.cls);}
this.focusEl=el.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var ul=el.createChild({tag:"ul",cls:"x-menu-list"});ul.on("click",this.onClick,this);ul.on("mouseover",this.onMouseOver,this);ul.on("mouseout",this.onMouseOut,this);this.items.each(function(item){var li=document.createElement("li");li.className="x-menu-list-item";ul.dom.appendChild(li);item.render(li,this);},this);this.ul=ul;this.autoWidth();},autoWidth:function(){var el=this.el,ul=this.ul;if(!el){return;}
var w=this.width;if(w){el.setWidth(w);}else if(Ext.isIE&&!Ext.isIE8){el.setWidth(this.minWidth);var t=el.dom.offsetWidth;el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}},delayAutoWidth:function(){if(this.el){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this);}
this.awTask.delay(20);}},findTargetItem:function(e){var t=e.getTarget(".x-menu-list-item",this.ul,true);if(t&&t.menuItemId){return this.items.get(t.menuItemId);}},onClick:function(e){var t;if(t=this.findTargetItem(e)){if(t.menu&&this.ignoreParentClicks){t.expandMenu();}else{t.onClick(e);this.fireEvent("click",this,t,e);}}},setActiveItem:function(item,autoExpand){if(item!=this.activeItem){if(this.activeItem){this.activeItem.deactivate();}
this.activeItem=item;item.activate(autoExpand);}else if(autoExpand){item.expandMenu();}},tryActivate:function(start,step){var items=this.items;for(var i=start,len=items.length;i>=0&&i<len;i+=step){var item=items.get(i);if(!item.disabled&&item.canActivate){this.setActiveItem(item,false);return item;}}
return false;},onMouseOver:function(e){var t;if(t=this.findTargetItem(e)){if(t.canActivate&&!t.disabled){this.setActiveItem(t,true);}}
this.over=true;this.fireEvent("mouseover",this,e,t);},onMouseOut:function(e){var t;if(t=this.findTargetItem(e)){if(t==this.activeItem&&t.shouldDeactivate(e)){this.activeItem.deactivate();delete this.activeItem;}}
this.over=false;this.fireEvent("mouseout",this,e,t);},isVisible:function(){return this.el&&!this.hidden;},show:function(el,pos,parentMenu){this.parentMenu=parentMenu;if(!this.el){this.render();}
this.fireEvent("beforeshow",this);this.showAt(this.el.getAlignToXY(el,pos||this.defaultAlign),parentMenu,false);},showAt:function(xy,parentMenu,_e){this.parentMenu=parentMenu;if(!this.el){this.render();}
if(_e!==false){this.fireEvent("beforeshow",this);xy=this.el.adjustForConstraints(xy);}
this.el.setXY(xy);this.el.show();this.hidden=false;this.focus();this.fireEvent("show",this);},focus:function(){if(!this.hidden){this.doFocus.defer(50,this);}},doFocus:function(){if(!this.hidden){this.focusEl.focus();}},hide:function(deep){if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null;}
this.el.hide();this.hidden=true;this.fireEvent("hide",this);}
if(deep===true&&this.parentMenu){this.parentMenu.hide(true);}},add:function(){var a=arguments,l=a.length,item;for(var i=0;i<l;i++){var el=a[i];if(el.render){item=this.addItem(el);}else if(typeof el=="string"){if(el=="separator"||el=="-"){item=this.addSeparator();}else{item=this.addText(el);}}else if(el.tagName||el.el){item=this.addElement(el);}else if(typeof el=="object"){Ext.applyIf(el,this.defaults);item=this.addMenuItem(el);}}
return item;},getEl:function(){if(!this.el){this.render();}
return this.el;},addSeparator:function(){return this.addItem(new Ext.menu.Separator());},addElement:function(el){return this.addItem(new Ext.menu.BaseItem(el));},addItem:function(item){this.items.add(item);if(this.ul){var li=document.createElement("li");li.className="x-menu-list-item";this.ul.dom.appendChild(li);item.render(li,this);this.delayAutoWidth();}
return item;},addMenuItem:function(config){if(!(config instanceof Ext.menu.Item)){if(typeof config.checked=="boolean"){config=new Ext.menu.CheckItem(config);}else{config=new Ext.menu.Item(config);}}
return this.addItem(config);},addText:function(text){return this.addItem(new Ext.menu.TextItem(text));},insert:function(index,item){this.items.insert(index,item);if(this.ul){var li=document.createElement("li");li.className="x-menu-list-item";this.ul.dom.insertBefore(li,this.ul.dom.childNodes[index]);item.render(li,this);this.delayAutoWidth();}
return item;},remove:function(item){this.items.removeKey(item.id);item.destroy();},removeAll:function(){if(this.items){var f;while(f=this.items.first()){this.remove(f);}}},destroy:function(){this.beforeDestroy();Ext.menu.MenuMgr.unregister(this);if(this.keyNav){this.keyNav.disable();}
this.removeAll();if(this.ul){this.ul.removeAllListeners();}
if(this.el){this.el.destroy();}},beforeDestroy:Ext.emptyFn});Ext.menu.MenuNav=function(menu){Ext.menu.MenuNav.superclass.constructor.call(this,menu.el);this.scope=this.menu=menu;};Ext.extend(Ext.menu.MenuNav,Ext.KeyNav,{doRelay:function(e,h){var k=e.getKey();if(!this.menu.activeItem&&e.isNavKeyPress()&&k!=e.SPACE&&k!=e.RETURN){this.menu.tryActivate(0,1);return false;}
return h.call(this.scope||this,e,this.menu);},up:function(e,m){if(!m.tryActivate(m.items.indexOf(m.activeItem)-1,-1)){m.tryActivate(m.items.length-1,-1);}},down:function(e,m){if(!m.tryActivate(m.items.indexOf(m.activeItem)+1,1)){m.tryActivate(0,1);}},right:function(e,m){if(m.activeItem){m.activeItem.expandMenu(true);}},left:function(e,m){m.hide();if(m.parentMenu&&m.parentMenu.activeItem){m.parentMenu.activeItem.activate();}},enter:function(e,m){if(m.activeItem){e.stopPropagation();m.activeItem.onClick(e);m.fireEvent("click",this,m.activeItem);return true;}}});Ext.menu.MenuMgr=function(){var menus,active,groups={},attached=false,lastShow=new Date();function init(){menus={};active=new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27,function(){if(active.length>0){hideAll();}});}
function hideAll(){if(active&&active.length>0){var c=active.clone();c.each(function(m){m.hide();});}}
function onHide(m){active.remove(m);if(active.length<1){Ext.getDoc().un("mousedown",onMouseDown);attached=false;}}
function onShow(m){var last=active.last();lastShow=new Date();active.add(m);if(!attached){Ext.getDoc().on("mousedown",onMouseDown);attached=true;}
if(m.parentMenu){m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"),10)+3);m.parentMenu.activeChild=m;}else if(last&&last.isVisible()){m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"),10)+3);}}
function onBeforeHide(m){if(m.activeChild){m.activeChild.hide();}
if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer;}}
function onBeforeShow(m){var pm=m.parentMenu;if(!pm&&!m.allowOtherMenus){hideAll();}else if(pm&&pm.activeChild){pm.activeChild.hide();}}
function onMouseDown(e){if(lastShow.getElapsed()>50&&active.length>0&&!e.getTarget(".x-menu")){hideAll();}}
function onBeforeCheck(mi,state){if(state){var g=groups[mi.group];for(var i=0,l=g.length;i<l;i++){if(g[i]!=mi){g[i].setChecked(false);}}}}
return{hideAll:function(){hideAll();},register:function(menu){if(!menus){init();}
menus[menu.id]=menu;menu.on("beforehide",onBeforeHide);menu.on("hide",onHide);menu.on("beforeshow",onBeforeShow);menu.on("show",onShow);var g=menu.group;if(g&&menu.events["checkchange"]){if(!groups[g]){groups[g]=[];}
groups[g].push(menu);menu.on("checkchange",onCheck);}},get:function(menu){if(typeof menu=="string"){if(!menus){return null;}
return menus[menu];}else if(menu.events){return menu;}else if(typeof menu.length=='number'){return new Ext.menu.Menu({items:menu});}else{return new Ext.menu.Menu(menu);}},unregister:function(menu){delete menus[menu.id];menu.un("beforehide",onBeforeHide);menu.un("hide",onHide);menu.un("beforeshow",onBeforeShow);menu.un("show",onShow);var g=menu.group;if(g&&menu.events["checkchange"]){groups[g].remove(menu);menu.un("checkchange",onCheck);}},registerCheckable:function(menuItem){var g=menuItem.group;if(g){if(!groups[g]){groups[g]=[];}
groups[g].push(menuItem);menuItem.on("beforecheckchange",onBeforeCheck);}},unregisterCheckable:function(menuItem){var g=menuItem.group;if(g){groups[g].remove(menuItem);menuItem.un("beforecheckchange",onBeforeCheck);}},getCheckedItem:function(groupId){var g=groups[groupId];if(g){for(var i=0,l=g.length;i<l;i++){if(g[i].checked){return g[i];}}}
return null;},setCheckedItem:function(groupId,itemId){var g=groups[groupId];if(g){for(var i=0,l=g.length;i<l;i++){if(g[i].id==itemId){g[i].setChecked(true);}}}
return null;}};}();Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click",this.handler,this.scope);}};Ext.extend(Ext.menu.BaseItem,Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,hideDelay:100,ctype:"Ext.menu.BaseItem",actionMode:"container",destroy:function(){if(this.menu){this.menu.destroy();}
Ext.menu.BaseItem.superclass.destroy.call(this);},render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.menu.BaseItem.superclass.render.call(this,container);this.container.menuItemId=this.id;},onRender:function(container,position){this.el=Ext.get(this.el);if(this.id){this.el.id=this.id;}
container.dom.appendChild(this.el.dom);},setHandler:function(handler,scope){if(this.handler){this.un("click",this.handler,this.scope);}
this.on("click",this.handler=handler,this.scope=scope);},onClick:function(e){if(!this.disabled&&this.fireEvent("click",this,e)!==false&&this.parentMenu.fireEvent("itemclick",this,e)!==false){this.handleClick(e);}else{e.stopEvent();}},activate:function(){if(this.disabled){return false;}
var li=this.container;li.addClass(this.activeClass);this.region=li.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true;},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this);},shouldDeactivate:function(e){return!this.region||!this.region.contains(e.getPoint());},handleClick:function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay,this.parentMenu,[true]);}},expandMenu:function(autoActivate){},hideMenu:function(){}});Ext.menu.TextItem=function(cfg){if(typeof cfg=='string'){cfg={text:cfg}}
Ext.menu.TextItem.superclass.constructor.call(this,cfg);};Ext.extend(Ext.menu.TextItem,Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",onRender:function(){var s=document.createElement("span");s.className=this.itemCls;s.innerHTML=this.text;this.el=s;Ext.menu.TextItem.superclass.onRender.apply(this,arguments);}});Ext.menu.Separator=function(config){Ext.menu.Separator.superclass.constructor.call(this,config);};Ext.extend(Ext.menu.Separator,Ext.menu.BaseItem,{itemCls:"x-menu-sep",hideOnClick:false,onRender:function(li){var s=document.createElement("span");s.className=this.itemCls;s.innerHTML="&#160;";this.el=s;li.addClass("x-menu-sep-li");Ext.menu.Separator.superclass.onRender.apply(this,arguments);}});Ext.menu.Item=function(config){Ext.menu.Item.superclass.constructor.call(this,config);if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}};Ext.extend(Ext.menu.Item,Ext.menu.BaseItem,{itemCls:"x-menu-item",canActivate:true,showDelay:200,hideDelay:200,ctype:"Ext.menu.Item",onRender:function(container,position){var el=document.createElement("a");el.hideFocus=true;el.unselectable="on";el.href=this.href||"#";if(this.hrefTarget){el.target=this.hrefTarget;}
el.className=this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:"");el.innerHTML=String.format('<img src="{0}" class="x-menu-item-icon {2}" />{1}',this.icon||Ext.BLANK_IMAGE_URL,this.itemText||this.text,this.iconCls||'');this.el=el;Ext.menu.Item.superclass.onRender.call(this,container,position);},setText:function(text){this.text=text;if(this.rendered){this.el.update(String.format('<img src="{0}" class="x-menu-item-icon {2}">{1}',this.icon||Ext.BLANK_IMAGE_URL,this.text,this.iconCls||''));this.parentMenu.autoWidth();}},setIconClass:function(cls){var oldCls=this.iconCls;this.iconCls=cls;if(this.rendered){this.el.child('img.x-menu-item-icon').replaceClass(oldCls,this.iconCls);}},beforeDestroy:function(){if(this.menu){this.menu.destroy();}
Ext.menu.Item.superclass.beforeDestroy.call(this);},handleClick:function(e){if(!this.href){e.stopEvent();}
Ext.menu.Item.superclass.handleClick.apply(this,arguments);},activate:function(autoExpand){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(autoExpand){this.expandMenu();}}
return true;},shouldDeactivate:function(e){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,e)){if(this.menu&&this.menu.isVisible()){return!this.menu.getEl().getRegion().contains(e.getPoint());}
return true;}
return false;},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu();},expandMenu:function(autoActivate){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[autoActivate]);}else if(this.menu.isVisible()&&autoActivate){this.menu.tryActivate(0,1);}}},deferExpand:function(autoActivate){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(autoActivate){this.menu.tryActivate(0,1);}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this);}},deferHide:function(){delete this.hideTimer;if(this.menu.over){this.parentMenu.setActiveItem(this,false);}else{this.menu.hide();}}});Ext.menu.CheckItem=function(config){Ext.menu.CheckItem.superclass.constructor.call(this,config);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on('checkchange',this.checkHandler,this.scope);}
Ext.menu.MenuMgr.registerCheckable(this);};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(c){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass);}
if(this.checked){this.checked=false;this.setChecked(true,true);}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments);},setChecked:function(state,suppressEvent){if(this.checked!=state&&this.fireEvent("beforecheckchange",this,state)!==false){if(this.container){this.container[state?"addClass":"removeClass"]("x-menu-item-checked");}
this.checked=state;if(suppressEvent!==true){this.fireEvent("checkchange",this,state);}}},handleClick:function(e){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked);}
Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments);}});Ext.menu.Adapter=function(component,config){Ext.menu.Adapter.superclass.constructor.call(this,config);this.component=component;};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(container,position){this.component.render(container);this.el=this.component.getEl();},activate:function(){if(this.disabled){return false;}
this.component.focus();this.fireEvent("activate",this);return true;},deactivate:function(){this.fireEvent("deactivate",this);},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this);},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this);}});Ext.menu.DateItem=function(config){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(config),config);this.picker=this.component;this.picker.purgeListeners();this.addEvents('select');this.picker.on("render",function(picker){picker.getEl().swallowEvent("click");picker.container.addClass("x-menu-date-item");});this.picker.on("select",this.onSelect,this);};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(picker,date){this.fireEvent("select",this,date,picker);Ext.menu.DateItem.superclass.handleClick.call(this);}});Ext.menu.ColorItem=function(config){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(config),config);this.palette=this.component;this.palette.purgeListeners();this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on('select',this.selectHandler,this.scope);}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter);Ext.menu.DateMenu=function(config){Ext.menu.DateMenu.superclass.constructor.call(this,config);this.plain=true;var di=new Ext.menu.DateItem(config);this.add(di);this.picker=di.picker;this.relayEvents(di,["select"]);this.on('beforeshow',function(){if(this.picker){this.picker.hideMonthPicker(true);}},this);};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu,{cls:'x-date-menu',beforeDestroy:function(){this.picker.destroy();}});Ext.menu.ColorMenu=function(config){Ext.menu.ColorMenu.superclass.constructor.call(this,config);this.plain=true;var ci=new Ext.menu.ColorItem(config);this.add(ci);this.palette=ci.palette;this.relayEvents(ci,["select"]);};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu,{beforeDestroy:function(){this.palette.destroy();}});Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:'qtip',msgFx:'normal',readOnly:false,disabled:false,isFormField:true,hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents('focus','blur','specialkey','change','invalid','valid');},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:this.name||this.id||'';},onRender:function(ct,position){Ext.form.Field.superclass.onRender.call(this,ct,position);if(!this.el){var cfg=this.getAutoCreate();if(!cfg.name){cfg.name=this.name||this.id;}
if(this.inputType){cfg.type=this.inputType;}
this.el=ct.createChild(cfg,position);}
var type=this.el.dom.type;if(type){if(type=='password'){type='text';}
this.el.addClass('x-form-'+type);}
if(this.readOnly){this.el.dom.readOnly=true;}
if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);}
this.el.addClass([this.fieldClass,this.cls]);},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value);}
this.originalValue=this.getValue();},isDirty:function(){if(this.disabled||!this.rendered){return false;}
return String(this.getValue())!==String(this.originalValue);},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue();},fireKey:function(e){if(e.isSpecialKey()){this.fireEvent("specialkey",this,e);}},reset:function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents:function(){this.el.on(Ext.isIE||(Ext.isWebKit&&!Ext.isSafari2)?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var o=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,o);},onFocus:function(){if(this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this);}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass);}
this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate();}
var v=this.getValue();if(String(v)!==String(this.startValue)){this.fireEvent('change',this,v,this.startValue);}
this.fireEvent("blur",this);},isValid:function(preventMark){if(this.disabled){return true;}
var restore=this.preventMark;this.preventMark=preventMark===true;var v=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=restore;return v;},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true;}
return false;},processValue:function(value){return value;},validateValue:function(value){return true;},markInvalid:function(msg){if(!this.rendered||this.preventMark){return;}
this.el.addClass(this.invalidClass);msg=msg||this.invalidText;switch(this.msgTarget){case'qtip':this.el.dom.qtip=msg;this.el.dom.qclass='x-form-invalid-tip';if(Ext.QuickTips){Ext.QuickTips.enable();}
break;case'title':this.el.dom.title=msg;break;case'under':if(!this.errorEl){var elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;break;}
this.errorEl=elp.createChild({cls:'x-form-invalid-msg'});this.errorEl.setWidth(elp.getWidth(true)-20);}
this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case'side':if(!this.errorIcon){var elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;break;}
this.errorIcon=elp.createChild({cls:'x-form-invalid-icon'});}
this.alignErrorIcon();this.errorIcon.dom.qtip=msg;this.errorIcon.dom.qclass='x-form-invalid-tip';this.errorIcon.show();this.on('resize',this.alignErrorIcon,this);break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML=msg;t.style.display=this.msgDisplay;break;}
this.fireEvent('invalid',this,msg);},getErrorCt:function(){return this.el.findParent('.x-form-element',5,true)||this.el.findParent('.x-form-field-wrap',5,true);},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,'tl-tr',[2,0]);},clearInvalid:function(){if(!this.rendered||this.preventMark){return;}
this.el.removeClass(this.invalidClass);switch(this.msgTarget){case'qtip':this.el.dom.qtip='';break;case'title':this.el.dom.title='';break;case'under':if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this);}
break;case'side':if(this.errorIcon){this.errorIcon.dom.qtip='';this.errorIcon.hide();this.un('resize',this.alignErrorIcon,this);}
break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML='';t.style.display='none';break;}
this.fireEvent('valid',this);},getRawValue:function(){var v=this.rendered?this.el.getValue():Ext.value(this.value,'');if(v===this.emptyText){v='';}
return v;},getValue:function(){if(!this.rendered){return this.value;}
var v=this.el.getValue();if(v===this.emptyText||v===undefined){v='';}
return v;},setRawValue:function(v){return this.el.dom.value=(v===null||v===undefined?'':v);},setValue:function(v){this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},adjustSize:function(w,h){var s=Ext.form.Field.superclass.adjustSize.call(this,w,h);s.width=this.adjustWidth(this.el.dom.tagName,s.width);return s;},adjustWidth:function(tag,w){tag=tag.toLowerCase();if(typeof w=='number'&&!Ext.isWebKit){if(Ext.isIE&&(tag=='input'||tag=='textarea')){if(tag=='input'&&!Ext.isStrict){return this.inEditor?w:w-3;}
if(tag=='input'&&Ext.isStrict){return w-(Ext.isIE6?4:1);}
if(tag=='textarea'&&Ext.isStrict){return w-2;}}else if(Ext.isOpera&&Ext.isStrict){if(tag=='input'){return w+2;}
if(tag=='textarea'){return w-2;}}}
return w;}});Ext.form.MessageTargets={'qtip':{mark:function(f){this.el.dom.qtip=msg;this.el.dom.qclass='x-form-invalid-tip';if(Ext.QuickTips){Ext.QuickTips.enable();}},clear:function(f){this.el.dom.qtip='';}},'title':{mark:function(f){this.el.dom.title=msg;},clear:function(f){this.el.dom.title='';}},'under':{mark:function(f){if(!this.errorEl){var elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;return;}
this.errorEl=elp.createChild({cls:'x-form-invalid-msg'});this.errorEl.setWidth(elp.getWidth(true)-20);}
this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);},clear:function(f){if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this);}else{this.el.dom.title='';}}},'side':{mark:function(f){if(!this.errorIcon){var elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;return;}
this.errorIcon=elp.createChild({cls:'x-form-invalid-icon'});}
this.alignErrorIcon();this.errorIcon.dom.qtip=msg;this.errorIcon.dom.qclass='x-form-invalid-tip';this.errorIcon.show();this.on('resize',this.alignErrorIcon,this);},clear:function(f){if(this.errorIcon){this.errorIcon.dom.qtip='';this.errorIcon.hide();this.un('resize',this.alignErrorIcon,this);}else{this.el.dom.title='';}}},'around':{mark:function(f){},clear:function(f){}}};Ext.form.Field.msgFx={normal:{show:function(msgEl,f){msgEl.setDisplayed('block');},hide:function(msgEl,f){msgEl.setDisplayed(false).update('');}},slide:{show:function(msgEl,f){msgEl.slideIn('t',{stopFx:true});},hide:function(msgEl,f){msgEl.slideOut('t',{stopFx:true,useDisplay:true});}},slideRight:{show:function(msgEl,f){msgEl.fixDisplay();msgEl.alignTo(f.el,'tl-tr');msgEl.slideIn('l',{stopFx:true});},hide:function(msgEl,f){msgEl.slideOut('l',{stopFx:true,useDisplay:true});}}};Ext.reg('field',Ext.form.Field);Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:'x-form-empty-field',initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents('autosize','keydown','keyup','keypress');},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=='keyup'){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on('keyup',this.filterValidation,this);}
else if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay});}
if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);this.el.on('mousedown',function(){if(!this.hasFocus){this.el.on('mouseup',function(e){e.preventDefault();},this,{single:true});}},this);if(this.emptyText){this.on('blur',this.postBlur,this);this.applyEmptyText();}}
if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+'Mask']))){this.el.on("keypress",this.filterKeys,this);}
if(this.grow){this.el.on("keyup",this.onKeyUpBuffered,this,{buffer:50});this.el.on("click",this.autoSize,this);}
if(this.enableKeyEvents){this.el.on("keyup",this.onKeyUp,this);this.el.on("keydown",this.onKeyDown,this);this.el.on("keypress",this.onKeyPress,this);}},processValue:function(value){if(this.stripCharsRe){var newValue=value.replace(this.stripCharsRe,'');if(newValue!==value){this.setRawValue(newValue);return newValue;}}
return value;},filterValidation:function(e){if(!e.isNavKeyPress()){this.validationTask.delay(this.validationDelay);}},onDisable:function(){Ext.form.TextField.superclass.onDisable.call(this);if(Ext.isIE){this.el.dom.unselectable='on';}},onEnable:function(){Ext.form.TextField.superclass.onEnable.call(this);if(Ext.isIE){this.el.dom.unselectable='';}},onKeyUpBuffered:function(e){if(!e.isNavKeyPress()){this.autoSize();}},onKeyUp:function(e){this.fireEvent('keyup',this,e);},onKeyDown:function(e){this.fireEvent('keydown',this,e);},onKeyPress:function(e){this.fireEvent('keypress',this,e);},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText();},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1&&!this.hasFocus){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}},preFocus:function(){var el=this.el;if(this.emptyText){if(el.dom.value==this.emptyText){this.setRawValue('');}
el.removeClass(this.emptyClass);}
if(this.selectOnFocus){(function(){el.dom.select();}).defer(this.inEditor&&Ext.isIE?50:0);}},postBlur:function(){this.applyEmptyText();},filterKeys:function(e){if(e.ctrlKey||e.isSpecialKey()){return;}
if(!this.maskRe.test(String.fromCharCode(e.getCharCode()))){e.stopEvent();}},setValue:function(v){if(this.emptyText&&this.el&&!Ext.isEmpty(v)){this.el.removeClass(this.emptyClass);}
Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize();},validateValue:function(value){if(value.length<1||value===this.emptyText){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}
if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false;}
if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}
if(this.vtype){var vt=Ext.form.VTypes;if(!vt[this.vtype](value,this)){this.markInvalid(this.vtypeText||vt[this.vtype+'Text']);return false;}}
if(typeof this.validator=="function"){var msg=this.validator(value);if(msg!==true){this.markInvalid(msg);return false;}}
if(this.regex&&!this.regex.test(value)){this.markInvalid(this.regexText);return false;}
return true;},selectText:function(start,end){var v=this.getRawValue();var doFocus=false;if(v.length>0){start=start===undefined?0:start;end=end===undefined?v.length:end;var d=this.el.dom;if(d.setSelectionRange){d.setSelectionRange(start,end);}else if(d.createTextRange){var range=d.createTextRange();range.moveStart("character",start);range.moveEnd("character",end-v.length);range.select();}
doFocus=Ext.isGecko||Ext.isOpera;}else{doFocus=true;}
if(doFocus){this.focus();}},autoSize:function(){if(!this.grow||!this.rendered){return;}
if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el);}
var el=this.el;var v=el.dom.value;var d=document.createElement('div');d.appendChild(document.createTextNode(v));v=d.innerHTML;Ext.removeNode(d);d=null;v+="&#160;";var w=Math.min(this.growMax,Math.max(this.metrics.getWidth(v)+10,this.growMin));this.el.setWidth(w);this.fireEvent("autosize",this,w);}});Ext.reg('textfield',Ext.form.TextField);Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,actionMode:'wrap',onResize:function(w,h){Ext.form.TriggerField.superclass.onResize.call(this,w,h);if(typeof w=='number'){this.el.setWidth(this.adjustWidth('input',w-this.trigger.getWidth()));}
this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap;},getPositionEl:function(){return this.wrap;},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,'tl-tr',[2,0]);}},onRender:function(ct,position){Ext.form.TriggerField.superclass.onRender.call(this,ct,position);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(this.hideTrigger){this.trigger.setDisplayed(false);}
this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);var y;if(Ext.isIE&&!this.hideTrigger&&this.el.getY()!=(y=this.trigger.getY())){this.el.position();this.el.setY(y);}},initTrigger:function(){this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver('x-form-trigger-over');this.trigger.addClassOnClick('x-form-trigger-click');},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove();}
if(this.wrap){this.wrap.remove();}
if(this.mimicing){Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);}
Ext.form.TriggerField.superclass.onDestroy.call(this);},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass('x-trigger-wrap-focus');this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.el.on("keydown",this.checkTab,this);}}},checkTab:function(e){if(e.getKey()==e.TAB){this.triggerBlur();}},onBlur:function(){},mimicBlur:function(e){if(!this.wrap.contains(e.target)&&this.validateBlur(e)){this.triggerBlur();}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);if(this.monitorTab&&this.el){this.el.un("keydown",this.checkTab,this);}
Ext.form.TriggerField.superclass.onBlur.call(this);if(this.wrap){this.wrap.removeClass('x-trigger-wrap-focus');}},beforeBlur:Ext.emptyFn,validateBlur:function(e){return true;},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:'span',cls:'x-form-twin-triggers',cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]};},getTrigger:function(index){return this.triggers[index];},initTrigger:function(){var ts=this.trigger.select('.x-form-trigger',true);this.wrap.setStyle('overflow','hidden');var triggerField=this;ts.each(function(t,all,index){t.hide=function(){var w=triggerField.wrap.getWidth();this.dom.style.display='none';triggerField.el.setWidth(w-triggerField.trigger.getWidth());};t.show=function(){var w=triggerField.wrap.getWidth();this.dom.style.display='';triggerField.el.setWidth(w-triggerField.trigger.getWidth());};var triggerIndex='Trigger'+(index+1);if(this['hide'+triggerIndex]){t.dom.style.display='none';}
t.on("click",this['on'+triggerIndex+'Click'],this,{preventDefault:true});t.addClassOnOver('x-form-trigger-over');t.addClassOnClick('x-form-trigger-click');},this);this.triggers=ts.elements;},onDestroy:function(){Ext.destroy.apply(this,this.triggers);Ext.form.TwinTriggerField.superclass.onDestroy.call(this);},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg('trigger',Ext.form.TriggerField);Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1000,growAppend:'&#160;\n&#160;',growPad:Ext.isWebKit?-6:0,enterIsSpecial:false,preventScrollbars:false,onRender:function(ct,position){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"};}
Ext.form.TextArea.superclass.onRender.call(this,ct,position);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden");}
this.el.setHeight(this.growMin);}},onDestroy:function(){if(this.textSizeEl){Ext.removeNode(this.textSizeEl);}
Ext.form.TextArea.superclass.onDestroy.call(this);},fireKey:function(e){if(e.isSpecialKey()&&(this.enterIsSpecial||(e.getKey()!=e.ENTER||e.hasModifier()))){this.fireEvent("specialkey",this,e);}},onKeyUp:function(e){if(!e.isNavKeyPress()||e.getKey()==e.ENTER){this.autoSize();}
Ext.form.TextArea.superclass.onKeyUp.call(this,e);},autoSize:function(){if(!this.grow||!this.textSizeEl){return;}
var el=this.el;var v=el.dom.value;var ts=this.textSizeEl;ts.innerHTML='';ts.appendChild(document.createTextNode(v));v=ts.innerHTML;Ext.fly(ts).setWidth(this.el.getWidth());if(v.length<1){v="&#160;&#160;";}else{v+=this.growAppend;if(Ext.isIE){v=v.replace(/\n/g,'<br />');}}
ts.innerHTML=v;var h=Math.min(this.growMax,Math.max(ts.offsetHeight,this.growMin)+this.growPad);if(h!=this.lastHeight){this.lastHeight=h;this.el.setHeight(h);this.fireEvent("autosize",this,h);}}});Ext.reg('textarea',Ext.form.TextArea);Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){var allowed=this.baseChars+'';if(this.allowDecimals){allowed+=this.decimalSeparator;}
if(this.allowNegative){allowed+='-';}
this.maskRe=new RegExp('['+Ext.escapeRe(allowed)+']');Ext.form.NumberField.superclass.initEvents.call(this);},validateValue:function(value){if(!Ext.form.NumberField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
value=String(value).replace(this.decimalSeparator,".");if(isNaN(value)){this.markInvalid(String.format(this.nanText,value));return false;}
var num=this.parseValue(value);if(num<this.minValue){this.markInvalid(String.format(this.minText,this.minValue));return false;}
if(num>this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false;}
return true;},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)));},setValue:function(v){v=typeof v=='number'?v:parseFloat(String(v).replace(this.decimalSeparator,"."));v=isNaN(v)?'':String(v).replace(".",this.decimalSeparator);Ext.form.NumberField.superclass.setValue.call(this,v);},parseValue:function(value){value=parseFloat(String(value).replace(this.decimalSeparator,"."));return isNaN(value)?'':value;},fixPrecision:function(value){var nan=isNaN(value);if(!this.allowDecimals||this.decimalPrecision==-1||nan||!value){return nan?'':value;}
return parseFloat(parseFloat(value).toFixed(this.decimalPrecision));},beforeBlur:function(){var v=this.parseValue(this.getRawValue());if(!Ext.isEmpty(v)){this.setValue(this.fixPrecision(v));}}});Ext.reg('numberfield',Ext.form.NumberField);Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:'x-form-date-trigger',showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);this.addEvents('select');if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}
if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}
this.disabledDatesRE=null;this.initDisabledDays();},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates;var re="(?:";for(var i=0;i<dd.length;i++){re+=dd[i];if(i!=dd.length-1)re+="|";}
this.disabledDatesRE=new RegExp(re+")");}},setDisabledDates:function(dd){this.disabledDates=dd;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE);}},setDisabledDays:function(dd){this.disabledDays=dd;if(this.menu){this.menu.picker.setDisabledDays(dd);}},setMinValue:function(dt){this.minValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMinDate(this.minValue);}},setMaxValue:function(dt){this.maxValue=(typeof dt=="string"?this.parseDate(dt):dt);if(this.menu){this.menu.picker.setMaxDate(this.maxValue);}},validateValue:function(value){value=this.formatDate(value);if(!Ext.form.DateField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
var svalue=value;value=this.parseDate(value);if(!value){this.markInvalid(String.format(this.invalidText,svalue,this.format));return false;}
var time=value.getTime();if(this.minValue&&time<this.minValue.getTime()){this.markInvalid(String.format(this.minText,this.formatDate(this.minValue)));return false;}
if(this.maxValue&&time>this.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false;}
if(this.disabledDays){var day=value.getDay();for(var i=0;i<this.disabledDays.length;i++){if(day===this.disabledDays[i]){this.markInvalid(this.disabledDaysText);return false;}}}
var fvalue=this.formatDate(value);if(this.disabledDatesRE&&this.disabledDatesRE.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText,fvalue));return false;}
return true;},validateBlur:function(){return!this.menu||!this.menu.isVisible();},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||"";},setValue:function(date){Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(date)));},parseDate:function(value){if(!value||Ext.isDate(value)){return value;}
var v=Date.parseDate(value,this.format);if(!v&&this.altFormats){if(!this.altFormatsArray){this.altFormatsArray=this.altFormats.split("|");}
for(var i=0,len=this.altFormatsArray.length;i<len&&!v;i++){v=Date.parseDate(value,this.altFormatsArray[i]);}}
return v;},onDestroy:function(){if(this.menu){this.menu.destroy();}
Ext.form.DateField.superclass.onDestroy.call(this);},formatDate:function(date){return Ext.isDate(date)?date.dateFormat(this.format):date;},menuListeners:{select:function(m,d){this.setValue(d);this.fireEvent('select',this,d);},show:function(){this.onFocus();},hide:function(){this.focus.defer(10,this);var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this);}},onTriggerClick:function(){if(this.disabled){return;}
if(this.menu==null){this.menu=new Ext.menu.DateMenu();}
Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");},beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield',Ext.form.DateField);Ext.form.ComboBox=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off"},listClass:'',selectedClass:'x-combo-selected',triggerClass:'x-form-arrow-trigger',shadow:'sides',listAlign:'tl-bl?',maxHeight:300,minHeight:90,triggerAction:'query',minChars:4,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:'query',loadingText:'Loading...',resizable:false,handleHeight:8,editable:true,allQuery:'',mode:'remote',minListWidth:70,forceSelection:false,typeAheadDelay:250,lazyInit:true,initComponent:function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents('expand','collapse','beforeselect','select','beforequery');if(this.transform){this.allowDomMove=false;var s=Ext.getDom(this.transform);if(!this.hiddenName){this.hiddenName=s.name;}
if(!this.store){this.mode='local';var d=[],opts=s.options;for(var i=0,len=opts.length;i<len;i++){var o=opts[i],value=(o.hasAttribute?o.hasAttribute('value'):o.getAttributeNode('value').specified)?o.value:o.text;if(o.selected){this.value=value;}
d.push([value,o.text]);}
this.store=new Ext.data.SimpleStore({'id':0,fields:['value','text'],data:d});this.valueField='value';this.displayField='text';}
s.name=Ext.id();if(!this.lazyRender){this.target=true;this.el=Ext.DomHelper.insertBefore(s,this.autoCreate||this.defaultAutoCreate);Ext.removeNode(s);this.render(this.el.parentNode);}else{Ext.removeNode(s);}}
else if(Ext.isArray(this.store)){if(Ext.isArray(this.store[0])){this.store=new Ext.data.SimpleStore({fields:['value','text'],data:this.store});this.valueField='value';}else{this.store=new Ext.data.SimpleStore({fields:['text'],data:this.store,expandData:true});this.valueField='text';}
this.displayField='text';this.mode='local';}
this.selectedIndex=-1;if(this.mode=='local'){if(this.initialConfig.queryDelay===undefined){this.queryDelay=10;}
if(this.initialConfig.minChars===undefined){this.minChars=0;}}},onRender:function(ct,position){Ext.form.ComboBox.superclass.onRender.call(this,ct,position);if(this.hiddenName){this.hiddenField=this.el.insertSibling({tag:'input',type:'hidden',name:this.hiddenName,id:(this.hiddenId||this.hiddenName)},'before',true);this.el.dom.removeAttribute('name');}
if(Ext.isGecko){this.el.dom.setAttribute('autocomplete','off');}
if(!this.lazyInit){this.initList();}else{this.on('focus',this.initList,this,{single:true});}
if(!this.editable){this.editable=true;this.setEditable(false);}},initValue:function(){Ext.form.ComboBox.superclass.initValue.call(this);if(this.hiddenField){this.hiddenField.value=this.hiddenValue!==undefined?this.hiddenValue:this.value!==undefined?this.value:'';}},initList:function(){if(!this.list){var cls='x-combo-list';this.list=new Ext.Layer({shadow:this.shadow,cls:[cls,this.listClass].join(' '),constrain:false});var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setWidth(lw);this.list.swallowEvent('mousewheel');this.assetHeight=0;if(this.title){this.header=this.list.createChild({cls:cls+'-hd',html:this.title});this.assetHeight+=this.header.getHeight();}
this.innerList=this.list.createChild({cls:cls+'-inner'});this.innerList.on('mouseover',this.onViewOver,this);this.innerList.on('mousemove',this.onViewMove,this);this.innerList.setWidth(lw-this.list.getFrameWidth('lr'));if(this.pageSize){this.footer=this.list.createChild({cls:cls+'-ft'});this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight();}
if(!this.tpl){this.tpl='<tpl for="."><div class="'+cls+'-item">{'+this.displayField+'}</div></tpl>';}
this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||'.'+cls+'-item'});this.view.on('click',this.onViewClick,this);this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:'se'});this.resizer.on('resize',function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight;this.listWidth=w;this.innerList.setWidth(w-this.list.getFrameWidth('lr'));this.restrictHeight();},this);this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom',this.handleHeight+'px');}}},getStore:function(){return this.store;},bindStore:function(store,initial){if(this.store&&!initial){this.store.un('beforeload',this.onBeforeLoad,this);this.store.un('load',this.onLoad,this);this.store.un('loadexception',this.collapse,this);if(!store){this.store=null;if(this.view){this.view.setStore(null);}}}
if(store){this.store=Ext.StoreMgr.lookup(store);this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('load',this.onLoad,this);this.store.on('loadexception',this.collapse,this);if(this.view){this.view.setStore(store);}}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){this.inKeyMode=true;this.selectPrev();},"down":function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode=true;this.selectNext();}},"enter":function(e){this.onViewClick();this.delayedCheck=true;this.unsetDelayCheck.defer(10,this);},"esc":function(e){this.collapse();},"tab":function(e){this.onViewClick(false);return true;},scope:this,doRelay:function(foo,bar,hname){if(hname=='down'||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}
return true;},forceKeyDown:true});this.queryDelay=Math.max(this.queryDelay||10,this.mode=='local'?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this);}
if(this.editable!==false&&!this.enableKeyEvents){this.el.on("keyup",this.onKeyUp,this);}},onDestroy:function(){if(this.dqTask){this.dqTask.cancel();this.dqTask=null;}
this.bindStore(null);Ext.destroy(this.resizer,this.view,this.pageTb,this.innerList,this.list);Ext.form.ComboBox.superclass.onDestroy.call(this);},unsetDelayCheck:function(){delete this.delayedCheck;},fireKey:function(e){var fn=function(ev){if(ev.isNavKeyPress()&&!this.isExpanded()&&!this.delayedCheck){this.fireEvent("specialkey",this,ev);}};if(this.inEditor&&Ext.isWebKit&&e.getKey()==e.TAB){fn.defer(10,this,[new Ext.EventObjectImpl(e)]);}else{fn.call(this,e);}},onResize:function(w,h){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(this.list&&this.listWidth===undefined){var lw=Math.max(w,this.minListWidth);this.list.setWidth(lw);this.innerList.setWidth(lw-this.list.getFrameWidth('lr'));}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false;}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true;}},setEditable:function(value){if(value==this.editable){return;}
this.editable=value;if(!value){this.el.dom.setAttribute('readOnly',true);this.el.on('mousedown',this.onTriggerClick,this);this.el.addClass('x-combo-noedit');}else{this.el.dom.removeAttribute('readOnly');this.el.un('mousedown',this.onTriggerClick,this);this.el.removeClass('x-combo-noedit');}},onBeforeLoad:function(){if(!this.hasFocus){return;}
this.innerList.update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+'</div>':'');this.restrictHeight();this.selectedIndex=-1;},onLoad:function(){if(!this.hasFocus){return;}
if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select();}
if(!this.selectByValue(this.value,true)){this.select(0,true);}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay);}}}else{this.onEmptyResults();}},onTypeAhead:function(){if(this.store.getCount()>0){var r=this.store.getAt(0);var newValue=r.data[this.displayField];var len=newValue.length;var selStart=this.getRawValue().length;if(selStart!=len){this.setRawValue(newValue);this.selectText(selStart,newValue.length);}}},onSelect:function(record,index){if(this.fireEvent('beforeselect',this,record,index)!==false){this.setValue(record.data[this.valueField||this.displayField]);this.collapse();this.fireEvent('select',this,record,index);}},getName:function(){var hf=this.hiddenField;return hf&&hf.name?hf.name:this.hiddenName||Ext.form.ComboBox.superclass.getName.call(this);},getValue:function(){if(this.valueField){return typeof this.value!='undefined'?this.value:'';}else{return Ext.form.ComboBox.superclass.getValue.call(this);}},clearValue:function(){if(this.hiddenField){this.hiddenField.value='';}
this.setRawValue('');this.lastSelectionText='';this.applyEmptyText();this.value='';},setValue:function(v){var text=v;if(this.valueField){var r=this.findRecord(this.valueField,v);if(r){text=r.data[this.displayField];}else if(this.valueNotFoundText!==undefined){text=this.valueNotFoundText;}}
this.lastSelectionText=text;if(this.hiddenField){this.hiddenField.value=v;}
Ext.form.ComboBox.superclass.setValue.call(this,text);this.value=v;},findRecord:function(prop,value){var record;if(this.store.getCount()>0){this.store.each(function(r){if(r.data[prop]==value){record=r;return false;}});}
return record;},onViewMove:function(e,t){this.inKeyMode=false;},onViewOver:function(e,t){if(this.inKeyMode){return;}
var item=this.view.findItemFromChild(t);if(item){var index=this.view.indexOf(item);this.select(index,false);}},onViewClick:function(doFocus){var index=this.view.getSelectedIndexes()[0];var r=this.store.getAt(index);if(r){this.onSelect(r,index);}
if(doFocus!==false){this.el.focus();}},restrictHeight:function(){this.innerList.dom.style.height='';var inner=this.innerList.dom;var pad=this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight;var h=Math.max(inner.clientHeight,inner.offsetHeight,inner.scrollHeight);var ha=this.getPosition()[1]-Ext.getBody().getScroll().top;var hb=Ext.lib.Dom.getViewHeight()-ha-this.getSize().height;var space=Math.max(ha,hb,this.minHeight||0)-this.list.shadowOffset-pad-5;h=Math.min(h,space,this.maxHeight);this.innerList.setHeight(h);this.list.beginUpdate();this.list.setHeight(h+pad);this.list.alignTo(this.wrap,this.listAlign);this.list.endUpdate();},onEmptyResults:function(){this.collapse();},isExpanded:function(){return this.list&&this.list.isVisible();},selectByValue:function(v,scrollIntoView){if(v!==undefined&&v!==null){var r=this.findRecord(this.valueField||this.displayField,v);if(r){this.select(this.store.indexOf(r),scrollIntoView);return true;}}
return false;},select:function(index,scrollIntoView){this.selectedIndex=index;this.view.select(index);if(scrollIntoView!==false){var el=this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el,false);}}},selectNext:function(){var ct=this.store.getCount();if(ct>0){if(this.selectedIndex==-1){this.select(0);}else if(this.selectedIndex<ct-1){this.select(this.selectedIndex+1);}}},selectPrev:function(){var ct=this.store.getCount();if(ct>0){if(this.selectedIndex==-1){this.select(0);}else if(this.selectedIndex!=0){this.select(this.selectedIndex-1);}}},onKeyUp:function(e){var k=e.getKey();if(this.editable!==false&&(k==e.BACKSPACE||!e.isSpecialKey())){this.lastKey=k;this.dqTask.delay(this.queryDelay);}
Ext.form.ComboBox.superclass.onKeyUp.call(this,e);},validateBlur:function(){return!this.list||!this.list.isVisible();},initQuery:function(){this.doQuery(this.getRawValue());},beforeBlur:function(){var val=this.getRawValue();if(this.forceSelection){if(val.length>0&&val!=this.emptyText){this.el.dom.value=this.lastSelectionText===undefined?'':this.lastSelectionText;this.applyEmptyText();}else{this.clearValue();}}else{var rec=this.findRecord(this.displayField,val);if(rec){val=rec.get(this.valueField||this.displayField);}
this.setValue(val);}},doQuery:function(q,forceAll){if(q===undefined||q===null){q='';}
var qe={query:q,forceAll:forceAll,combo:this,cancel:false};if(this.fireEvent('beforequery',qe)===false||qe.cancel){return false;}
q=qe.query;forceAll=qe.forceAll;if(forceAll===true||(q.length>=this.minChars)){if(this.lastQuery!==q){this.lastQuery=q;if(this.mode=='local'){this.selectedIndex=-1;if(forceAll){this.store.clearFilter();}else{this.store.filter(this.displayField,q);}
this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.load({params:this.getParams(q)});this.expand();}}else{this.selectedIndex=-1;this.onLoad();}}},getParams:function(q){var p={};if(this.pageSize){p.start=0;p.limit=this.pageSize;}
return p;},collapse:function(){if(!this.isExpanded()){return;}
this.list.hide();Ext.getDoc().un('mousewheel',this.collapseIf,this);Ext.getDoc().un('mousedown',this.collapseIf,this);this.fireEvent('collapse',this);},collapseIf:function(e){if(!e.within(this.wrap)&&!e.within(this.list)){this.collapse();}},expand:function(){if(this.isExpanded()||!this.hasFocus){return;}
this.list.alignTo(this.wrap,this.listAlign);this.list.show();if(Ext.isGecko2){this.innerList.setOverflow('auto');}
Ext.getDoc().on('mousewheel',this.collapseIf,this);Ext.getDoc().on('mousedown',this.collapseIf,this);this.fireEvent('expand',this);},onTriggerClick:function(){if(this.disabled){return;}
if(this.isExpanded()){this.collapse();this.el.focus();}else{this.onFocus({});if(this.triggerAction=='all'){this.doQuery(this.allQuery,true);}else{this.doQuery(this.getRawValue());}
this.el.focus();}}});Ext.reg('combo',Ext.form.ComboBox);Ext.form.Checkbox=Ext.extend(Ext.form.Field,{checkedCls:'x-form-check-checked',focusCls:'x-form-check-focus',overCls:'x-form-check-over',mouseDownCls:'x-form-check-down',tabIndex:0,checked:false,defaultAutoCreate:{tag:'input',type:'checkbox',autocomplete:'off'},actionMode:'wrap',baseCls:'x-form-check',initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents('check');},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.initCheckEvents();},initCheckEvents:function(){this.innerWrap.removeAllListeners();this.innerWrap.addClassOnOver(this.overCls);this.innerWrap.addClassOnClick(this.mouseDownCls);this.innerWrap.on('click',this.onClick,this);this.innerWrap.on('keyup',this.onKeyUp,this);},onRender:function(ct,position){Ext.form.Checkbox.superclass.onRender.call(this,ct,position);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue;}
this.el.addClass('x-hidden');this.innerWrap=this.el.wrap({tabIndex:this.tabIndex,cls:this.baseCls+'-wrap-inner'});this.wrap=this.innerWrap.wrap({cls:this.baseCls+'-wrap'});if(this.boxLabel){this.labelEl=this.innerWrap.createChild({tag:'label',htmlFor:this.el.id,cls:'x-form-cb-label',html:this.boxLabel});}
this.imageEl=this.innerWrap.createChild({tag:'img',src:Ext.BLANK_IMAGE_URL,cls:this.baseCls},this.el);if(this.checked){this.setValue(true);}else{this.checked=this.el.dom.checked;}
this.originalValue=this.checked;},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.call(this);this.wrap[this.checked?'addClass':'removeClass'](this.checkedCls);},onDestroy:function(){if(this.rendered){Ext.destroy(this.imageEl,this.labelEl,this.innerWrap,this.wrap);}
Ext.form.Checkbox.superclass.onDestroy.call(this);},onFocus:function(e){Ext.form.Checkbox.superclass.onFocus.call(this,e);this.el.addClass(this.focusCls);},onBlur:function(e){Ext.form.Checkbox.superclass.onBlur.call(this,e);this.el.removeClass(this.focusCls);},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel){this.el.alignTo(this.wrap,'c-c');}},onKeyUp:function(e){if(e.getKey()==Ext.EventObject.SPACE){this.onClick(e);}},onClick:function(e){if(!this.disabled&&!this.readOnly){this.toggleValue();}
e.stopEvent();},onEnable:function(){Ext.form.Checkbox.superclass.onEnable.call(this);this.initCheckEvents();},onDisable:function(){Ext.form.Checkbox.superclass.onDisable.call(this);this.innerWrap.removeAllListeners();},toggleValue:function(){this.setValue(!this.checked);},getResizeEl:function(){if(!this.resizeEl){this.resizeEl=Ext.isWebKit?this.wrap:(this.wrap.up('.x-form-element',5)||this.wrap);}
return this.resizeEl;},getPositionEl:function(){return this.wrap;},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,initValue:function(){this.originalValue=this.getValue();},getValue:function(){if(this.rendered){return this.el.dom.checked;}
return this.checked;},setValue:function(v){var checked=this.checked;this.checked=(v===true||v==='true'||v=='1'||String(v).toLowerCase()=='on');if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked;this.wrap[this.checked?'addClass':'removeClass'](this.checkedCls);}
if(checked!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked);}}}});Ext.reg('checkbox',Ext.form.Checkbox);Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:'auto',vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:'checkbox',groupCls:'x-form-check-group',initComponent:function(){this.addEvents('change');Ext.form.CheckboxGroup.superclass.initComponent.call(this);},onRender:function(ct,position){if(!this.el){var panelCfg={cls:this.groupCls,layout:'column',border:false,renderTo:ct};var colCfg={defaultType:this.defaultType,layout:'form',border:false,defaults:{hideLabel:true,anchor:'100%'}}
if(this.items[0].items){Ext.apply(panelCfg,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items})
for(var i=0,len=this.items.length;i<len;i++){Ext.applyIf(this.items[i],colCfg);};}else{var numCols,cols=[];if(typeof this.columns=='string'){this.columns=this.items.length;}
if(!Ext.isArray(this.columns)){var cs=[];for(var i=0;i<this.columns;i++){cs.push((100/this.columns)*.01);}
this.columns=cs;}
numCols=this.columns.length;for(var i=0;i<numCols;i++){var cc=Ext.apply({items:[]},colCfg);cc[this.columns[i]<=1?'columnWidth':'width']=this.columns[i];if(this.defaults){cc.defaults=Ext.apply(cc.defaults||{},this.defaults)}
cols.push(cc);};if(this.vertical){var rows=Math.ceil(this.items.length/numCols),ri=0;for(var i=0,len=this.items.length;i<len;i++){if(i>0&&i%rows==0){ri++;}
if(this.items[i].fieldLabel){this.items[i].hideLabel=false;}
cols[ri].items.push(this.items[i]);};}else{for(var i=0,len=this.items.length;i<len;i++){var ci=i%numCols;if(this.items[i].fieldLabel){this.items[i].hideLabel=false;}
cols[ci].items.push(this.items[i]);};}
Ext.apply(panelCfg,{layoutConfig:{columns:numCols},items:cols});}
this.panel=new Ext.Panel(panelCfg);this.panel.ownerCt=this;this.el=this.panel.getEl();if(this.forId&&this.itemCls){var l=this.el.up(this.itemCls).child('label',true);if(l){l.setAttribute('htmlFor',this.forId);}}
var fields=this.panel.findBy(function(c){return c.isFormField;},this);this.items=new Ext.util.MixedCollection();this.items.addAll(fields);}
Ext.form.CheckboxGroup.superclass.onRender.call(this,ct,position);},afterRender:function(){Ext.form.CheckboxGroup.superclass.afterRender.call(this);this.items.each(function(item){item.on('check',this.fireChecked,this);},this);},fireChecked:function(){var arr=[];this.items.each(function(item){if(item.checked){arr.push(item);}});this.fireEvent('change',this,arr);},validateValue:function(value){if(!this.allowBlank){var blank=true;this.items.each(function(f){if(f.checked){return blank=false;}},this);if(blank){this.markInvalid(this.blankText);return false;}}
return true;},onDestroy:function(){Ext.destroy(this.panel);Ext.form.CheckboxGroup.superclass.onDestroy.call(this);},onDisable:function(){this.items.each(function(item){item.disable();})},onEnable:function(){this.items.each(function(item){item.enable();})},isDirty:function(){if(this.disabled||!this.rendered){return false;}
var dirty=false;this.items.each(function(item){if(item.isDirty()){dirty=true;return false;}});return dirty;},onResize:function(w,h){this.panel.setSize(w,h);this.panel.doLayout();},reset:function(){Ext.form.CheckboxGroup.superclass.reset.call(this);this.items.each(function(c){if(c.reset){c.reset();}},this);},initValue:Ext.emptyFn,getValue:Ext.emptyFn,getRawValue:Ext.emptyFn,setValue:Ext.emptyFn,setRawValue:Ext.emptyFn});Ext.reg('checkboxgroup',Ext.form.CheckboxGroup);Ext.form.Radio=Ext.extend(Ext.form.Checkbox,{inputType:'radio',baseCls:'x-form-radio',getGroupValue:function(){var c=this.getParent().child('input[name='+this.el.dom.name+']:checked',true);return c?c.value:null;},getParent:function(){return this.el.up('form')||Ext.getBody();},toggleValue:function(){if(!this.checked){var els=this.getParent().select('input[name='+this.el.dom.name+']');els.each(function(el){if(el.dom.id==this.id){this.setValue(true);}else{Ext.getCmp(el.dom.id).setValue(false);}},this);}},setValue:function(v){if(typeof v=='boolean'){Ext.form.Radio.superclass.setValue.call(this,v);}else{var r=this.getParent().child('input[name='+this.el.dom.name+'][value='+v+']',true);if(r&&!r.checked){Ext.getCmp(r.id).toggleValue();};}},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg('radio',Ext.form.Radio);Ext.form.RadioGroup=Ext.extend(Ext.form.CheckboxGroup,{allowBlank:true,blankText:"You must select one item in this group",defaultType:'radio',groupCls:'x-form-radio-group',initComponent:function(){this.addEvents('change');Ext.form.RadioGroup.superclass.initComponent.call(this);},fireChecked:function(){if(!this.checkTask){this.checkTask=new Ext.util.DelayedTask(this.bufferChecked,this);}
this.checkTask.delay(10);},bufferChecked:function(){var out=null;this.items.each(function(item){if(item.checked){out=item;return false;}});this.fireEvent('change',this,out);},onDestroy:function(){if(this.checkTask){this.checkTask.cancel();this.checkTask=null;}
Ext.form.RadioGroup.superclass.onDestroy.call(this);}});Ext.reg('radiogroup',Ext.form.RadioGroup);Ext.form.Hidden=Ext.extend(Ext.form.Field,{inputType:'hidden',onRender:function(){Ext.form.Hidden.superclass.onRender.apply(this,arguments);},initEvents:function(){this.originalValue=this.getValue();},setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg('hidden',Ext.form.Hidden);Ext.form.BasicForm=function(el,config){Ext.apply(this,config);this.items=new Ext.util.MixedCollection(false,function(o){return o.id||(o.id=Ext.id());});this.addEvents('beforeaction','actionfailed','actioncomplete');if(el){this.initEl(el);}
Ext.form.BasicForm.superclass.constructor.call(this);};Ext.extend(Ext.form.BasicForm,Ext.util.Observable,{timeout:30,activeAction:null,trackResetOnLoad:false,initEl:function(el){this.el=Ext.get(el);this.id=this.el.id||Ext.id();if(!this.standardSubmit){this.el.on('submit',this.onSubmit,this);}
this.el.addClass('x-form');},getEl:function(){return this.el;},onSubmit:function(e){e.stopEvent();},destroy:function(){this.items.each(function(f){Ext.destroy(f);});if(this.el){this.el.removeAllListeners();this.el.remove();}
this.purgeListeners();},isValid:function(){var valid=true;this.items.each(function(f){if(!f.validate()){valid=false;}});return valid;},isDirty:function(){var dirty=false;this.items.each(function(f){if(f.isDirty()){dirty=true;return false;}});return dirty;},doAction:function(action,options){if(typeof action=='string'){action=new Ext.form.Action.ACTION_TYPES[action](this,options);}
if(this.fireEvent('beforeaction',this,action)!==false){this.beforeAction(action);action.run.defer(100,action);}
return this;},submit:function(options){if(this.standardSubmit){var v=this.isValid();if(v){this.el.dom.submit();}
return v;}
this.doAction('submit',options);return this;},load:function(options){this.doAction('load',options);return this;},updateRecord:function(record){record.beginEdit();var fs=record.fields;fs.each(function(f){var field=this.findField(f.name);if(field){record.set(f.name,field.getValue());}},this);record.endEdit();return this;},loadRecord:function(record){this.setValues(record.data);return this;},beforeAction:function(action){var o=action.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.mask(o.waitMsg,'x-mask-loading');}else if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(o.waitMsg,'x-mask-loading');}else{Ext.MessageBox.wait(o.waitMsg,o.waitTitle||this.waitTitle||'Please Wait...');}}},afterAction:function(action,success){this.activeAction=null;var o=action.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.unmask();}else if(this.waitMsgTarget){this.waitMsgTarget.unmask();}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();}}
if(success){if(o.reset){this.reset();}
Ext.callback(o.success,o.scope,[this,action]);this.fireEvent('actioncomplete',this,action);}else{Ext.callback(o.failure,o.scope,[this,action]);this.fireEvent('actionfailed',this,action);}},findField:function(id){var field=this.items.get(id);if(!(field&&typeof field=='object')){this.items.each(function(f){if(f.isFormField&&(f.dataIndex==id||f.id==id||f.getName()==id)){field=f;return false;}});}
return field;},markInvalid:function(errors){if(Ext.isArray(errors)){for(var i=0,len=errors.length;i<len;i++){var fieldError=errors[i];var f=this.findField(fieldError.id);if(f){f.markInvalid(fieldError.msg);}}}else{var field,id;for(id in errors){if(typeof errors[id]!='function'&&(field=this.findField(id))){field.markInvalid(errors[id]);}}}
return this;},setValues:function(values){if(Ext.isArray(values)){for(var i=0,len=values.length;i<len;i++){var v=values[i];var f=this.findField(v.id);if(f){f.setValue(v.value);if(this.trackResetOnLoad){f.originalValue=f.getValue();}}}}else{var field,id;for(id in values){if(typeof values[id]!='function'&&(field=this.findField(id))){field.setValue(values[id]);if(this.trackResetOnLoad){field.originalValue=field.getValue();}}}}
return this;},getValues:function(asString){var fs=Ext.lib.Ajax.serializeForm(this.el.dom);if(asString===true){return fs;}
return Ext.urlDecode(fs);},clearInvalid:function(){this.items.each(function(f){f.clearInvalid();});return this;},reset:function(){this.items.each(function(f){f.reset();});return this;},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this;},remove:function(field){this.items.remove(field);return this;},render:function(){this.items.each(function(f){if(f.isFormField&&!f.rendered&&document.getElementById(f.id)){f.applyToMarkup(f.id);}});return this;},applyToFields:function(o){this.items.each(function(f){Ext.apply(f,o);});return this;},applyIfToFields:function(o){this.items.each(function(f){Ext.applyIf(f,o);});return this;}});Ext.BasicForm=Ext.form.BasicForm;Ext.FormPanel=Ext.extend(Ext.Panel,{buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid:false,monitorPoll:200,layout:'form',initComponent:function(){this.form=this.createForm();this.bodyCfg={tag:'form',cls:this.baseCls+'-body',method:this.method||'POST',id:this.formId||Ext.id()};if(this.fileUpload){this.bodyCfg.enctype='multipart/form-data';}
Ext.FormPanel.superclass.initComponent.call(this);this.initItems();this.addEvents('clientvalidation');this.relayEvents(this.form,['beforeaction','actionfailed','actioncomplete']);},createForm:function(){var config=Ext.applyIf({listeners:{}},this.initialConfig);return new Ext.form.BasicForm(null,config);},initFields:function(){var f=this.form;var formPanel=this;var fn=function(c){if(c.isFormField){f.add(c);}else if(c.doLayout&&c!=formPanel){Ext.applyIf(c,{labelAlign:c.ownerCt.labelAlign,labelWidth:c.ownerCt.labelWidth,itemCls:c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}}
this.items.each(fn);},getLayoutTarget:function(){return this.form.el;},getForm:function(){return this.form;},onRender:function(ct,position){this.initFields();Ext.FormPanel.superclass.onRender.call(this,ct,position);this.form.initEl(this.body);},beforeDestroy:function(){this.stopMonitoring();Ext.FormPanel.superclass.beforeDestroy.call(this);this.form.items.clear();Ext.destroy(this.form);},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on('remove',this.onRemove,this);this.items.on('add',this.onAdd,this);if(this.monitorValid){this.startMonitoring();}},onAdd:function(ct,c){if(c.isFormField){this.form.add(c);}},onRemove:function(c){if(c.isFormField){Ext.destroy(c.container.up('.x-form-item'));this.form.remove(c);}},startMonitoring:function(){if(!this.validTask){this.validTask=new Ext.util.TaskRunner();this.validTask.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this});}},stopMonitoring:function(){if(this.validTask){this.validTask.stopAll();this.validTask=null;}},load:function(){this.form.load.apply(this.form,arguments);},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable();});}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable();});}},bindHandler:function(){var valid=true;this.form.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});if(this.buttons){for(var i=0,len=this.buttons.length;i<len;i++){var btn=this.buttons[i];if(btn.formBind===true&&btn.disabled===valid){btn.setDisabled(!valid);}}}
this.fireEvent('clientvalidation',this,valid);}});Ext.reg('form',Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;Ext.form.FieldSet=Ext.extend(Ext.Panel,{baseCls:'x-fieldset',layout:'form',animCollapse:false,onRender:function(ct,position){if(!this.el){this.el=document.createElement('fieldset');this.el.id=this.id;if(this.title||this.header||this.checkboxToggle){this.el.appendChild(document.createElement('legend')).className='x-fieldset-header';}}
Ext.form.FieldSet.superclass.onRender.call(this,ct,position);if(this.checkboxToggle){var o=typeof this.checkboxToggle=='object'?this.checkboxToggle:{tag:'input',type:'checkbox',name:this.checkboxName||this.id+'-checkbox'};this.checkbox=this.header.insertFirst(o);this.checkbox.dom.checked=!this.collapsed;this.checkbox.on('click',this.onCheckClick,this);}},onCollapse:function(doAnim,animArg){if(this.checkbox){this.checkbox.dom.checked=false;}
Ext.form.FieldSet.superclass.onCollapse.call(this,doAnim,animArg);},onExpand:function(doAnim,animArg){if(this.checkbox){this.checkbox.dom.checked=true;}
Ext.form.FieldSet.superclass.onExpand.call(this,doAnim,animArg);},onCheckClick:function(){this[this.checkbox.dom.checked?'expand':'collapse']();},beforeDestroy:function(){if(this.checkbox){this.checkbox.un('click',this.onCheckClick,this);}
Ext.form.FieldSet.superclass.beforeDestroy.call(this);}});Ext.reg('fieldset',Ext.form.FieldSet);Ext.form.HtmlEditor=Ext.extend(Ext.form.Field,{enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:'Please enter the URL for the link:',defaultLinkValue:'http:/'+'/',fontFamilies:['Arial','Courier New','Tahoma','Times New Roman','Verdana'],defaultFont:'tahoma',defaultValue:Ext.isOpera?'&nbsp;':'&#8203;',actionMode:'wrap',validationEvent:false,deferHeight:true,initialized:false,activated:false,sourceEditMode:false,onFocus:Ext.emptyFn,iframePad:3,hideMode:'offsets',defaultAutoCreate:{tag:"textarea",style:"width:500px;height:300px;",autocomplete:"off"},initComponent:function(){this.addEvents('initialize','activate','beforesync','beforepush','sync','push','editmodechange')},createFontOptions:function(){var buf=[],fs=this.fontFamilies,ff,lc;for(var i=0,len=fs.length;i<len;i++){ff=fs[i];lc=ff.toLowerCase();buf.push('<option value="',lc,'" style="font-family:',ff,';"',(this.defaultFont==lc?' selected="true">':'>'),ff,'</option>');}
return buf.join('');},createToolbar:function(editor){var tipsEnabled=Ext.QuickTips&&Ext.QuickTips.isEnabled();function btn(id,toggle,handler){return{itemId:id,cls:'x-btn-icon x-edit-'+id,enableToggle:toggle!==false,scope:editor,handler:handler||editor.relayBtnCmd,clickEvent:'mousedown',tooltip:tipsEnabled?editor.buttonTips[id]||undefined:undefined,tabIndex:-1};}
var tb=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild});tb.el.on('click',function(e){e.preventDefault();});if(this.enableFont&&!Ext.isSafari2){this.fontSelect=tb.el.createChild({tag:'select',cls:'x-font-select',html:this.createFontOptions()});this.fontSelect.on('change',function(){var font=this.fontSelect.dom.value;this.relayCmd('fontname',font);this.deferFocus();},this);tb.add(this.fontSelect.dom,'-');}
if(this.enableFormat){tb.add(btn('bold'),btn('italic'),btn('underline'));}
if(this.enableFontSize){tb.add('-',btn('increasefontsize',false,this.adjustFont),btn('decreasefontsize',false,this.adjustFont));}
if(this.enableColors){tb.add('-',{itemId:'forecolor',cls:'x-btn-icon x-edit-forecolor',clickEvent:'mousedown',tooltip:tipsEnabled?editor.buttonTips.forecolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:'000000',plain:true,selectHandler:function(cp,color){this.execCmd('forecolor',Ext.isWebKit||Ext.isIE?'#'+color:color);this.deferFocus();},scope:this,clickEvent:'mousedown'})},{itemId:'backcolor',cls:'x-btn-icon x-edit-backcolor',clickEvent:'mousedown',tooltip:tipsEnabled?editor.buttonTips.backcolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:'FFFFFF',plain:true,allowReselect:true,selectHandler:function(cp,color){if(Ext.isGecko){this.execCmd('useCSS',false);this.execCmd('hilitecolor',color);this.execCmd('useCSS',true);this.deferFocus();}else{this.execCmd(Ext.isOpera?'hilitecolor':'backcolor',Ext.isWebKit||Ext.isIE?'#'+color:color);this.deferFocus();}},scope:this,clickEvent:'mousedown'})});}
if(this.enableAlignments){tb.add('-',btn('justifyleft'),btn('justifycenter'),btn('justifyright'));}
if(!Ext.isSafari2){if(this.enableLinks){tb.add('-',btn('createlink',false,this.createLink));}
if(this.enableLists){tb.add('-',btn('insertorderedlist'),btn('insertunorderedlist'));}
if(this.enableSourceEdit){tb.add('-',btn('sourceedit',true,function(btn){this.toggleSourceEdit(btn.pressed);}));}}
this.tb=tb;},getDocMarkup:function(){return'<html><head><style type="text/css">body{border:0;margin:0;padding:3px;height:98%;cursor:text;}</style></head><body></body></html>';},getEditorBody:function(){return this.doc.body||this.doc.documentElement;},getDoc:function(){return Ext.isIE?this.getWin().document:(this.iframe.contentDocument||this.getWin().document);},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name];},onRender:function(ct,position){Ext.form.HtmlEditor.superclass.onRender.call(this,ct,position);this.el.dom.style.border='0 none';this.el.dom.setAttribute('tabIndex',-1);this.el.addClass('x-hidden');if(Ext.isIE){this.el.applyStyles('margin-top:-1px;margin-bottom:-1px;')}
this.wrap=this.el.wrap({cls:'x-html-editor-wrap',cn:{cls:'x-html-editor-tb'}});this.createToolbar(this);this.tb.items.each(function(item){if(item.itemId!='sourceedit'){item.disable();}});var iframe=document.createElement('iframe');iframe.name=Ext.id();iframe.frameBorder='0';iframe.src=Ext.isIE?Ext.SSL_SECURE_URL:"javascript:;";this.wrap.dom.appendChild(iframe);this.iframe=iframe;this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100});if(!this.width){var sz=this.el.getSize();this.setSize(sz.width,this.height||sz.height);}},initFrame:function(){Ext.TaskMgr.stop(this.monitorTask);this.doc=this.getDoc();this.win=this.getWin();this.doc.open();this.doc.write(this.getDocMarkup());this.doc.close();var task={run:function(){if(this.doc.body||this.doc.readyState=='complete'){Ext.TaskMgr.stop(task);this.doc.designMode="on";this.initEditor.defer(10,this);}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(task);},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var doc=this.getDoc();if(!doc){return;}
if(!doc.editorInitialized||String(doc.designMode).toLowerCase()!='on'){this.initFrame();}}},onResize:function(w,h){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(typeof w=='number'){var aw=w-this.wrap.getFrameWidth('lr');this.el.setWidth(this.adjustWidth('textarea',aw));this.iframe.style.width=Math.max(aw,0)+'px';}
if(typeof h=='number'){var ah=h-this.wrap.getFrameWidth('tb')-this.tb.el.getHeight();this.el.setHeight(this.adjustWidth('textarea',ah));this.iframe.style.height=Math.max(ah,0)+'px';if(this.doc){this.getEditorBody().style.height=Math.max((ah-(this.iframePad*2)),0)+'px';}}}},toggleSourceEdit:function(sourceEditMode){if(sourceEditMode===undefined){sourceEditMode=!this.sourceEditMode;}
this.sourceEditMode=sourceEditMode===true;var btn=this.tb.items.get('sourceedit');if(btn.pressed!==this.sourceEditMode){btn.toggle(this.sourceEditMode);return;}
if(this.sourceEditMode){this.tb.items.each(function(item){if(item.itemId!='sourceedit'){item.disable();}});this.syncValue();this.iframe.className='x-hidden';this.el.removeClass('x-hidden');this.el.dom.removeAttribute('tabIndex');this.el.focus();}else{if(this.initialized){this.tb.items.each(function(item){item.enable();});}
this.pushValue();this.iframe.className='';this.el.addClass('x-hidden');this.el.dom.setAttribute('tabIndex',-1);this.deferFocus();}
var lastSize=this.lastSize;if(lastSize){delete this.lastSize;this.setSize(lastSize);}
this.fireEvent('editmodechange',this,this.sourceEditMode);},createLink:function(){var url=prompt(this.createLinkText,this.defaultLinkValue);if(url&&url!='http:/'+'/'){this.relayCmd('createlink',url);}},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap;},getPositionEl:function(){return this.wrap;},initEvents:function(){this.originalValue=this.getValue();},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(v){Ext.form.HtmlEditor.superclass.setValue.call(this,v);this.pushValue();},cleanHtml:function(html){html=String(html);if(html.length>5){if(Ext.isWebKit){html=html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,'');}}
if(html==this.defaultValue){html='';}
return html;},syncValue:function(){if(this.initialized){var bd=this.getEditorBody();var html=bd.innerHTML;if(Ext.isWebKit){var bs=bd.getAttribute('style');var m=bs.match(/text-align:(.*?);/i);if(m&&m[1]){html='<div style="'+m[0]+'">'+html+'</div>';}}
html=this.cleanHtml(html);if(this.fireEvent('beforesync',this,html)!==false){this.el.dom.value=html;this.fireEvent('sync',this,html);}}},getValue:function(){this[this.sourceEditMode?'pushValue':'syncValue']();return Ext.form.HtmlEditor.superclass.getValue.call(this);},pushValue:function(){if(this.initialized){var v=this.el.dom.value;if(!this.activated&&v.length<1){v=this.defaultValue;}
if(this.fireEvent('beforepush',this,v)!==false){this.getEditorBody().innerHTML=v;if(Ext.isGecko){var d=this.doc,mode=d.designMode.toLowerCase();d.designMode=mode.toggle('on','off');d.designMode=mode;}
this.fireEvent('push',this,v);}}},deferFocus:function(){this.focus.defer(10,this);},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus();}else{this.el.focus();}},initEditor:function(){try{var dbody=this.getEditorBody();var ss=this.el.getStyles('font-size','font-family','background-image','background-repeat');ss['background-attachment']='fixed';dbody.bgProperties='fixed';Ext.DomHelper.applyStyles(dbody,ss);if(this.doc){try{Ext.EventManager.removeAll(this.doc);}catch(e){}}
this.doc=this.getDoc();Ext.EventManager.on(this.doc,{'mousedown':this.onEditorEvent,'dblclick':this.onEditorEvent,'click':this.onEditorEvent,'keyup':this.onEditorEvent,buffer:100,scope:this});if(Ext.isGecko){Ext.EventManager.on(this.doc,'keypress',this.applyCommand,this);}
if(Ext.isIE||Ext.isWebKit||Ext.isOpera){Ext.EventManager.on(this.doc,'keydown',this.fixKeys,this);}
this.initialized=true;this.fireEvent('initialize',this);this.doc.editorInitialized=true;this.pushValue();}catch(e){}},onDestroy:function(){if(this.monitorTask){Ext.TaskMgr.stop(this.monitorTask);}
if(this.rendered){Ext.destroy(this.tb);if(this.wrap){this.wrap.dom.innerHTML='';this.wrap.remove();}}
if(this.el){this.el.removeAllListeners();this.el.remove();}
if(this.doc){try{Ext.EventManager.removeAll(this.doc);for(var prop in this.doc){delete this.doc[prop];}}catch(e){}}
this.purgeListeners();},onFirstFocus:function(){this.activated=true;this.tb.items.each(function(item){item.enable();});if(Ext.isGecko){this.win.focus();var s=this.win.getSelection();if(!s.focusNode||s.focusNode.nodeType!=3){var r=s.getRangeAt(0);r.selectNodeContents(this.getEditorBody());r.collapse(true);this.deferFocus();}
try{this.execCmd('useCSS',true);this.execCmd('styleWithCSS',false);}catch(e){}}
this.fireEvent('activate',this);},adjustFont:function(btn){var adjust=btn.itemId=='increasefontsize'?1:-1;var v=parseInt(this.doc.queryCommandValue('FontSize')||2,10);if((Ext.isWebKit&&!Ext.isSafari2)||Ext.isAir){if(v<=10){v=1+adjust;}else if(v<=13){v=2+adjust;}else if(v<=16){v=3+adjust;}else if(v<=18){v=4+adjust;}else if(v<=24){v=5+adjust;}else{v=6+adjust;}
v=v.constrain(1,6);}else{if(Ext.isSafari){adjust*=2;}
v=Math.max(1,v+adjust)+(Ext.isSafari?'px':0);}
this.execCmd('FontSize',v);},onEditorEvent:function(e){this.updateToolbar();},updateToolbar:function(){if(!this.activated){this.onFirstFocus();return;}
var btns=this.tb.items.map,doc=this.doc;if(this.enableFont&&!Ext.isSafari2){var name=(this.doc.queryCommandValue('FontName')||this.defaultFont).toLowerCase();if(name!=this.fontSelect.dom.value){this.fontSelect.dom.value=name;}}
if(this.enableFormat){btns.bold.toggle(doc.queryCommandState('bold'));btns.italic.toggle(doc.queryCommandState('italic'));btns.underline.toggle(doc.queryCommandState('underline'));}
if(this.enableAlignments){btns.justifyleft.toggle(doc.queryCommandState('justifyleft'));btns.justifycenter.toggle(doc.queryCommandState('justifycenter'));btns.justifyright.toggle(doc.queryCommandState('justifyright'));}
if(!Ext.isSafari2&&this.enableLists){btns.insertorderedlist.toggle(doc.queryCommandState('insertorderedlist'));btns.insertunorderedlist.toggle(doc.queryCommandState('insertunorderedlist'));}
Ext.menu.MenuMgr.hideAll();this.syncValue();},relayBtnCmd:function(btn){this.relayCmd(btn.itemId);},relayCmd:function(cmd,value){(function(){this.focus();this.execCmd(cmd,value);this.updateToolbar();}).defer(10,this);},execCmd:function(cmd,value){this.doc.execCommand(cmd,false,value===undefined?null:value);this.syncValue();},applyCommand:function(e){if(e.ctrlKey){var c=e.getCharCode(),cmd;if(c>0){c=String.fromCharCode(c);switch(c){case'b':cmd='bold';break;case'i':cmd='italic';break;case'u':cmd='underline';break;}
if(cmd){this.win.focus();this.execCmd(cmd);this.deferFocus();e.preventDefault();}}}},insertAtCursor:function(text){if(!this.activated){return;}
if(Ext.isIE){this.win.focus();var r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML(text);this.syncValue();this.deferFocus();}}else if(Ext.isGecko||Ext.isOpera){this.win.focus();this.execCmd('InsertHTML',text);this.deferFocus();}else if(Ext.isWebKit){this.execCmd('InsertText',text);this.deferFocus();}},fixKeys:function(){if(Ext.isIE){return function(e){var k=e.getKey(),r;if(k==e.TAB){e.stopEvent();r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML('&nbsp;&nbsp;&nbsp;&nbsp;');this.deferFocus();}}else if(k==e.ENTER){r=this.doc.selection.createRange();if(r){var target=r.parentElement();if(!target||target.tagName.toLowerCase()!='li'){e.stopEvent();r.pasteHTML('<br />');r.collapse(false);r.select();}}}};}else if(Ext.isOpera){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.win.focus();this.execCmd('InsertHTML','&nbsp;&nbsp;&nbsp;&nbsp;');this.deferFocus();}};}else if(Ext.isWebKit){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.execCmd('InsertText','\t');this.deferFocus();}};}}(),getToolbar:function(){return this.tb;},buttonTips:{bold:{title:'Bold (Ctrl+B)',text:'Make the selected text bold.',cls:'x-html-editor-tip'},italic:{title:'Italic (Ctrl+I)',text:'Make the selected text italic.',cls:'x-html-editor-tip'},underline:{title:'Underline (Ctrl+U)',text:'Underline the selected text.',cls:'x-html-editor-tip'},increasefontsize:{title:'Grow Text',text:'Increase the font size.',cls:'x-html-editor-tip'},decreasefontsize:{title:'Shrink Text',text:'Decrease the font size.',cls:'x-html-editor-tip'},backcolor:{title:'Text Highlight Color',text:'Change the background color of the selected text.',cls:'x-html-editor-tip'},forecolor:{title:'Font Color',text:'Change the color of the selected text.',cls:'x-html-editor-tip'},justifyleft:{title:'Align Text Left',text:'Align text to the left.',cls:'x-html-editor-tip'},justifycenter:{title:'Center Text',text:'Center text in the editor.',cls:'x-html-editor-tip'},justifyright:{title:'Align Text Right',text:'Align text to the right.',cls:'x-html-editor-tip'},insertunorderedlist:{title:'Bullet List',text:'Start a bulleted list.',cls:'x-html-editor-tip'},insertorderedlist:{title:'Numbered List',text:'Start a numbered list.',cls:'x-html-editor-tip'},createlink:{title:'Hyperlink',text:'Make the selected text a hyperlink.',cls:'x-html-editor-tip'},sourceedit:{title:'Source Edit',text:'Switch to source editing mode.',cls:'x-html-editor-tip'}}});Ext.reg('htmleditor',Ext.form.HtmlEditor);Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:null,maxValue:null,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H",increment:15,mode:'local',triggerAction:'all',typeAhead:false,initDate:'1/1/2008',initComponent:function(){Ext.form.TimeField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue);}
if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue);}
if(!this.store){var min=this.parseDate(this.minValue);if(!min){min=new Date(this.initDate).clearTime();}
var max=this.parseDate(this.maxValue);if(!max){max=new Date(this.initDate).clearTime().add('mi',(24*60)-1);}
var times=[];while(min<=max){times.push([min.dateFormat(this.format)]);min=min.add('mi',this.increment);}
this.store=new Ext.data.SimpleStore({fields:['text'],data:times});this.displayField='text';}},getValue:function(){var v=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(v))||'';},setValue:function(value){Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(value)));},validateValue:Ext.form.DateField.prototype.validateValue,parseDate:Ext.form.DateField.prototype.parseDate,formatDate:Ext.form.DateField.prototype.formatDate,beforeBlur:function(){var v=this.parseDate(this.getRawValue());if(v){this.setValue(v.dateFormat(this.format));}
Ext.form.TimeField.superclass.beforeBlur.call(this);}});Ext.reg('timefield',Ext.form.TimeField);Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(ct,position){if(!this.el){this.el=document.createElement('label');this.el.id=this.getId();this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):(this.html||'');if(this.forId){this.el.setAttribute('for',this.forId);}}
Ext.form.Label.superclass.onRender.call(this,ct,position);},setText:function(t,encode){var e=encode===false;this[!e?'text':'html']=t;delete this[e?'text':'html'];if(this.rendered){this.el.dom.innerHTML=encode!==false?Ext.util.Format.htmlEncode(t):t;}
return this;}});Ext.reg('label',Ext.form.Label);Ext.form.Action=function(form,options){this.form=form;this.options=options||{};};Ext.form.Action.CLIENT_INVALID='client';Ext.form.Action.SERVER_INVALID='server';Ext.form.Action.CONNECT_FAILURE='connect';Ext.form.Action.LOAD_FAILURE='load';Ext.form.Action.prototype={type:'default',run:function(options){},success:function(response){},handleResponse:function(response){},failure:function(response){this.response=response;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false);},processResponse:function(response){this.response=response;if(!response.responseText&&!response.responseXML){return true;}
this.result=this.handleResponse(response);return this.result;},getUrl:function(appendParams){var url=this.options.url||this.form.url||this.form.el.dom.action;if(appendParams){var p=this.getParams();if(p){url+=(url.indexOf('?')!=-1?'&':'?')+p;}}
return url;},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||'POST').toUpperCase();},getParams:function(){var bp=this.form.baseParams;var p=this.options.params;if(p){if(typeof p=="object"){p=Ext.urlEncode(Ext.applyIf(p,bp));}else if(typeof p=='string'&&bp){p+='&'+Ext.urlEncode(bp);}}else if(bp){p=Ext.urlEncode(bp);}
return p;},createCallback:function(opts){var opts=opts||{};return{success:this.success,failure:this.failure,scope:this,timeout:(opts.timeout*1000)||(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined};}};Ext.form.Action.Submit=function(form,options){Ext.form.Action.Submit.superclass.constructor.call(this,form,options);};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:'submit',run:function(){var o=this.options;var method=this.getMethod();var isGet=method=='GET';if(o.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(o),{form:this.form.el.dom,url:this.getUrl(isGet),method:method,headers:o.headers,params:!isGet?this.getParams():null,isUpload:this.form.fileUpload}));}else if(o.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false);}},success:function(response){var result=this.processResponse(response);if(result===true||result.success){this.form.afterAction(this,true);return;}
if(result.errors){this.form.markInvalid(result.errors);this.failureType=Ext.form.Action.SERVER_INVALID;}
this.form.afterAction(this,false);},handleResponse:function(response){if(this.form.errorReader){var rs=this.form.errorReader.read(response);var errors=[];if(rs.records){for(var i=0,len=rs.records.length;i<len;i++){var r=rs.records[i];errors[i]=r.data;}}
if(errors.length<1){errors=null;}
return{success:rs.success,errors:errors};}
return Ext.decode(response.responseText);}});Ext.form.Action.Load=function(form,options){Ext.form.Action.Load.superclass.constructor.call(this,form,options);this.reader=this.form.reader;};Ext.extend(Ext.form.Action.Load,Ext.form.Action,{type:'load',run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(this.options),{method:this.getMethod(),url:this.getUrl(false),headers:this.options.headers,params:this.getParams()}));},success:function(response){var result=this.processResponse(response);if(result===true||!result.success||!result.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return;}
this.form.clearInvalid();this.form.setValues(result.data);this.form.afterAction(this,true);},handleResponse:function(response){if(this.form.reader){var rs=this.form.reader.read(response);var data=rs.records&&rs.records[0]?rs.records[0].data:null;return{success:rs.success,data:data};}
return Ext.decode(response.responseText);}});Ext.form.Action.ACTION_TYPES={'load':Ext.form.Action.Load,'submit':Ext.form.Action.Submit};Ext.form.VTypes=function(){var alpha=/^[a-zA-Z_]+$/;var alphanum=/^[a-zA-Z0-9_]+$/;var email=/^(\w+)([-+.][\w]+)*@(\w[-\w]*\.){1,5}([A-Za-z]){2,4}$/;var url=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{'email':function(v){return email.test(v);},'emailText':'This field should be an e-mail address in the format "user@domain.com"','emailMask':/[a-z0-9_\.\-@]/i,'url':function(v){return url.test(v);},'urlText':'This field should be a URL in the format "http:/'+'/www.domain.com"','alpha':function(v){return alpha.test(v);},'alphaText':'This field should only contain letters and _','alphaMask':/[a-z_]/i,'alphanum':function(v){return alphanum.test(v);},'alphanumText':'This field should only contain letters, numbers and _','alphanumMask':/[a-z0-9_]/i};}();Ext.grid.GridPanel=Ext.extend(Ext.Panel,{ddText:"{0} selected row{1}",minColumnWidth:25,trackMouseOver:true,enableDragDrop:false,enableColumnMove:true,enableColumnHide:true,enableHdMenu:true,stripeRows:false,autoExpandColumn:false,autoExpandMin:50,autoExpandMax:1000,view:null,loadMask:false,deferRowRender:true,rendered:false,viewReady:false,stateEvents:["columnmove","columnresize","sortchange"],initComponent:function(){Ext.grid.GridPanel.superclass.initComponent.call(this);this.autoScroll=false;this.autoWidth=false;if(Ext.isArray(this.columns)){this.colModel=new Ext.grid.ColumnModel(this.columns);delete this.columns;}
if(this.ds){this.store=this.ds;delete this.ds;}
if(this.cm){this.colModel=this.cm;delete this.cm;}
if(this.sm){this.selModel=this.sm;delete this.sm;}
this.store=Ext.StoreMgr.lookup(this.store);this.addEvents("click","dblclick","contextmenu","mousedown","mouseup","mouseover","mouseout","keypress","keydown","cellmousedown","rowmousedown","headermousedown","cellclick","celldblclick","rowclick","rowdblclick","headerclick","headerdblclick","rowcontextmenu","cellcontextmenu","headercontextmenu","bodyscroll","columnresize","columnmove","sortchange");},onRender:function(ct,position){Ext.grid.GridPanel.superclass.onRender.apply(this,arguments);var c=this.body;this.el.addClass('x-grid-panel');var view=this.getView();view.init(this);c.on("mousedown",this.onMouseDown,this);c.on("click",this.onClick,this);c.on("dblclick",this.onDblClick,this);c.on("contextmenu",this.onContextMenu,this);c.on("keydown",this.onKeyDown,this);this.relayEvents(c,["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);this.view.render();},initEvents:function(){Ext.grid.GridPanel.superclass.initEvents.call(this);if(this.loadMask){this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({store:this.store},this.loadMask));}},initStateEvents:function(){Ext.grid.GridPanel.superclass.initStateEvents.call(this);this.colModel.on('hiddenchange',this.saveState,this,{delay:100});},applyState:function(state){var cm=this.colModel;var cs=state.columns;if(cs){for(var i=0,len=cs.length;i<len;i++){var s=cs[i];var c=cm.getColumnById(s.id);if(c){c.hidden=s.hidden;c.width=s.width;var oldIndex=cm.getIndexById(s.id);if(oldIndex!=i){cm.moveColumn(oldIndex,i);}}}}
if(state.sort){this.store[this.store.remoteSort?'setDefaultSort':'sort'](state.sort.field,state.sort.direction);}
delete state.columns;delete state.sort;Ext.grid.GridPanel.superclass.applyState.call(this,state);},getState:function(){var o={columns:[]};for(var i=0,c;c=this.colModel.config[i];i++){o.columns[i]={id:c.id,width:c.width};if(c.hidden){o.columns[i].hidden=true;}}
var ss=this.store.getSortState();if(ss){o.sort=ss;}
return o;},afterRender:function(){Ext.grid.GridPanel.superclass.afterRender.call(this);this.view.layout();if(this.deferRowRender){this.view.afterRender.defer(10,this.view);}else{this.view.afterRender();}
this.viewReady=true;},reconfigure:function(store,colModel){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({},{store:store},this.initialConfig.loadMask));}
this.view.bind(store,colModel);this.store=store;this.colModel=colModel;if(this.rendered){this.view.refresh(true);}},onKeyDown:function(e){this.fireEvent("keydown",e);},onDestroy:function(){if(this.rendered){var c=this.body;c.removeAllListeners();c.update("");Ext.destroy(this.view,this.loadMask);}
Ext.destroy(this.colModel,this.selModel);Ext.grid.GridPanel.superclass.onDestroy.call(this);},processEvent:function(name,e){this.fireEvent(name,e);var t=e.getTarget();var v=this.view;var header=v.findHeaderIndex(t);if(header!==false){this.fireEvent("header"+name,this,header,e);}else{var row=v.findRowIndex(t);var cell=v.findCellIndex(t);if(row!==false){this.fireEvent("row"+name,this,row,e);if(cell!==false){this.fireEvent("cell"+name,this,row,cell,e);}}}},onClick:function(e){this.processEvent("click",e);},onMouseDown:function(e){this.processEvent("mousedown",e);},onContextMenu:function(e,t){this.processEvent("contextmenu",e);},onDblClick:function(e){this.processEvent("dblclick",e);},walkCells:function(row,col,step,fn,scope){var cm=this.colModel,clen=cm.getColumnCount();var ds=this.store,rlen=ds.getCount(),first=true;if(step<0){if(col<0){row--;first=false;}
while(row>=0){if(!first){col=clen-1;}
first=false;while(col>=0){if(fn.call(scope||this,row,col,cm)===true){return[row,col];}
col--;}
row--;}}else{if(col>=clen){row++;first=false;}
while(row<rlen){if(!first){col=0;}
first=false;while(col<clen){if(fn.call(scope||this,row,col,cm)===true){return[row,col];}
col++;}
row++;}}
return null;},onResize:function(){Ext.grid.GridPanel.superclass.onResize.apply(this,arguments);if(this.viewReady){this.view.layout();}},getGridEl:function(){return this.body;},stopEditing:Ext.emptyFn,getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel(this.disableSelection?{selectRow:Ext.emptyFn}:null);}
return this.selModel;},getStore:function(){return this.store;},getColumnModel:function(){return this.colModel;},getView:function(){if(!this.view){this.view=new Ext.grid.GridView(this.viewConfig);}
return this.view;},getDragDropText:function(){var count=this.selModel.getCount();return String.format(this.ddText,count,count==1?'':'s');}});Ext.reg('grid',Ext.grid.GridPanel);Ext.grid.GridView=function(config){Ext.apply(this,config);this.addEvents("beforerowremoved","beforerowsinserted","beforerefresh","rowremoved","rowsinserted","rowupdated","refresh");Ext.grid.GridView.superclass.constructor.call(this);};Ext.extend(Ext.grid.GridView,Ext.util.Observable,{deferEmptyText:true,scrollOffset:19,autoFill:false,forceFit:false,sortClasses:["sort-asc","sort-desc"],sortAscText:"Sort Ascending",sortDescText:"Sort Descending",columnsText:"Columns",borderWidth:2,tdClass:'x-grid3-cell',hdCls:'x-grid3-hd',cellSelectorDepth:4,rowSelectorDepth:10,cellSelector:'td.x-grid3-cell',rowSelector:'div.x-grid3-row',firstRowCls:'x-grid3-row-first',lastRowCls:'x-grid3-row-last',rowClsRe:/(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g,initTemplates:function(){var ts=this.templates||{};if(!ts.master){ts.master=new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset" style="{ostyle}">{header}</div></div><div class="x-clear"></div></div>','<div class="x-grid3-scroller"><div class="x-grid3-body" style="{bstyle}">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>','</div>','<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>','</div>');}
if(!ts.header){ts.header=new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>','</table>');}
if(!ts.hcell){ts.hcell=new Ext.Template('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':'','{value}<img class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />','</div></td>');}
if(!ts.body){ts.body=new Ext.Template('{rows}');}
if(!ts.row){ts.row=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr>',(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':''),'</tbody></table></div>');}
if(!ts.cell){ts.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>','</td>');}
for(var k in ts){var t=ts[k];if(t&&typeof t.compile=='function'&&!t.compiled){t.disableFormats=true;t.compile();}}
this.templates=ts;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","");},fly:function(el){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body);}
this._flyweight.dom=el;return this._flyweight;},getEditorParent:function(){return this.scroller.dom;},initElements:function(){var E=Ext.Element;var el=this.grid.getGridEl().dom.firstChild;var cs=el.childNodes;this.el=new E(el);this.mainWrap=new E(cs[0]);this.mainHd=new E(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false);}
this.innerHd=this.mainHd.dom.firstChild;this.scroller=new E(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle('overflow-x','hidden');}
this.mainBody=new E(this.scroller.dom.firstChild);this.focusEl=new E(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new E(cs[1]);this.resizeProxy=new E(cs[2]);},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[];},findCell:function(el){if(!el){return false;}
return this.fly(el).findParent(this.cellSelector,this.cellSelectorDepth);},findCellIndex:function(el,requiredCls){var cell=this.findCell(el);if(cell&&(!requiredCls||this.fly(cell).hasClass(requiredCls))){return this.getCellIndex(cell);}
return false;},getCellIndex:function(el){if(el){var m=el.className.match(this.colRe);if(m&&m[1]){return this.cm.getIndexById(m[1]);}}
return false;},findHeaderCell:function(el){var cell=this.findCell(el);return cell&&this.fly(cell).hasClass(this.hdCls)?cell:null;},findHeaderIndex:function(el){return this.findCellIndex(el,this.hdCls);},findRow:function(el){if(!el){return false;}
return this.fly(el).findParent(this.rowSelector,this.rowSelectorDepth);},findRowIndex:function(el){var r=this.findRow(el);return r?r.rowIndex:false;},getRow:function(row){return this.getRows()[row];},getCell:function(row,col){return this.getRow(row).getElementsByTagName('td')[col];},getHeaderCell:function(index){return this.mainHd.dom.getElementsByTagName('td')[index];},addRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).addClass(cls);}},removeRowClass:function(row,cls){var r=this.getRow(row);if(r){this.fly(r).removeClass(cls);}},removeRow:function(row){Ext.removeNode(this.getRow(row));this.syncFocusEl(row);},removeRows:function(firstRow,lastRow){var bd=this.mainBody.dom;for(var rowIndex=firstRow;rowIndex<=lastRow;rowIndex++){Ext.removeNode(bd.childNodes[firstRow]);}
this.syncFocusEl(firstRow);},getScrollState:function(){var sb=this.scroller.dom;return{left:sb.scrollLeft,top:sb.scrollTop};},restoreScroll:function(state){var sb=this.scroller.dom;sb.scrollLeft=state.left;sb.scrollTop=state.top;},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0;},syncScroll:function(){this.syncHeaderScroll();var mb=this.scroller.dom;this.grid.fireEvent("bodyscroll",mb.scrollLeft,mb.scrollTop);},syncHeaderScroll:function(){var mb=this.scroller.dom;this.innerHd.scrollLeft=mb.scrollLeft;this.innerHd.scrollLeft=mb.scrollLeft;},updateSortIcon:function(col,dir){var sc=this.sortClasses;var hds=this.mainHd.select('td').removeClass(sc);hds.item(col).addClass(sc[dir=="DESC"?1:0]);},updateAllColumnWidths:function(){var tw=this.getTotalWidth();var clen=this.cm.getColumnCount();var ws=[];for(var i=0;i<clen;i++){ws[i]=this.getColumnWidth(i);}
this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=tw;this.mainBody.dom.style.width=tw;for(var i=0;i<clen;i++){var hd=this.getHeaderCell(i);hd.style.width=ws[i];}
var ns=this.getRows(),row,trow;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;trow=row.firstChild.rows[0];for(var j=0;j<clen;j++){trow.childNodes[j].style.width=ws[j];}}}
this.onAllColumnWidthsUpdated(ws,tw);},updateColumnWidth:function(col,width){var w=this.getColumnWidth(col);var tw=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=tw;this.mainBody.dom.style.width=tw;var hd=this.getHeaderCell(col);hd.style.width=w;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.width=w;}}
this.onColumnWidthUpdated(col,w,tw);},updateColumnHidden:function(col,hidden){var tw=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=tw;this.mainBody.dom.style.width=tw;var display=hidden?'none':'';var hd=this.getHeaderCell(col);hd.style.display=display;var ns=this.getRows(),row;for(var i=0,len=ns.length;i<len;i++){row=ns[i];row.style.width=tw;if(row.firstChild){row.firstChild.style.width=tw;row.firstChild.rows[0].childNodes[col].style.display=display;}}
this.onColumnHiddenUpdated(col,hidden,tw);delete this.lastViewWidth;this.layout();},doRender:function(cs,rs,ds,startRow,colCount,stripe){var ts=this.templates,ct=ts.cell,rt=ts.row,last=colCount-1;var tstyle='width:'+this.getTotalWidth()+';';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value==="")p.value="&#160;";if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
if(r.dirty){alt[1]=" x-grid3-dirty-row";}
rp.cols=colCount;if(this.getRowClass){alt[2]=this.getRowClass(r,rowIndex,rp,ds);}
rp.alt=alt.join(" ");rp.cells=cb.join("");buf[buf.length]=rt.apply(rp);}
return buf.join("");},processRows:function(startRow,skipStripe){if(!this.ds||this.ds.getCount()<1){return;}
var rows=this.getRows();skipStripe=skipStripe||!this.grid.stripeRows;startRow=startRow||0;Ext.each(rows,function(row,idx){row.rowIndex=idx;row.className=row.className.replace(this.rowClsRe,' ');if(!skipStripe&&(idx+1)%2===0){row.className+=' x-grid3-row-alt';}});if(startRow===0){Ext.fly(rows[0]).addClass(this.firstRowCls);}
Ext.fly(rows[rows.length-1]).addClass(this.lastRowCls);},afterRender:function(){this.mainBody.dom.innerHTML=this.renderRows()||'&nbsp;';this.processRows(0,true);if(this.deferEmptyText!==true){this.applyEmptyText();}},renderUI:function(){var header=this.renderHeaders();var body=this.templates.body.apply({rows:'&nbsp;'});var html=this.templates.master.apply({body:body,header:header,ostyle:'width:'+this.getOffsetWidth()+';',bstyle:'width:'+this.getTotalWidth()+';'});var g=this.grid;g.getGridEl().dom.innerHTML=html;this.initElements();Ext.fly(this.innerHd).on("click",this.handleHdDown,this);this.mainHd.on("mouseover",this.handleHdOver,this);this.mainHd.on("mouseout",this.handleHdOut,this);this.mainHd.on("mousemove",this.handleHdMove,this);this.scroller.on('scroll',this.syncScroll,this);if(g.enableColumnResize!==false){this.splitZone=new Ext.grid.GridView.SplitDragZone(g,this.mainHd.dom);}
if(g.enableColumnMove){this.columnDrag=new Ext.grid.GridView.ColumnDragZone(g,this.innerHd);this.columnDrop=new Ext.grid.HeaderDropZone(g,this.mainHd.dom);}
if(g.enableHdMenu!==false){if(g.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:g.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);}
this.hmenu=new Ext.menu.Menu({id:g.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(g.enableColumnHide!==false){this.hmenu.add('-',{id:"columns",hideOnClick:false,text:this.columnsText,menu:this.colMenu,iconCls:'x-cols-icon'});}
this.hmenu.on("itemclick",this.handleHdMenuClick,this);}
if(g.trackMouseOver){this.mainBody.on("mouseover",this.onRowOver,this);this.mainBody.on("mouseout",this.onRowOut,this);}
if(g.enableDragDrop||g.enableDrag){this.dragZone=new Ext.grid.GridDragZone(g,{ddGroup:g.ddGroup||'GridDD'});}
this.updateHeaderSortState();},layout:function(){if(!this.mainBody){return;}
var g=this.grid;var c=g.getGridEl();var csize=c.getSize(true);var vw=csize.width;if(vw<20||csize.height<20){return;}
if(g.autoHeight){this.scroller.dom.style.overflow='visible';if(Ext.isWebKit){this.scroller.dom.style.position='static';}}else{this.el.setSize(csize.width,csize.height);var hdHeight=this.mainHd.getHeight();var vh=csize.height-(hdHeight);this.scroller.setSize(vw,vh);if(this.innerHd){this.innerHd.style.width=(vw)+'px';}}
if(this.forceFit){if(this.lastViewWidth!=vw){this.fitColumns(false,false);this.lastViewWidth=vw;}}else{this.autoExpand();this.syncHeaderScroll();}
this.onLayout(vw,vh);},onLayout:function(vw,vh){},onColumnWidthUpdated:function(col,w,tw){},onAllColumnWidthsUpdated:function(ws,tw){},onColumnHiddenUpdated:function(col,hidden,tw){},updateColumnText:function(col,text){},afterMove:function(colIndex){},init:function(grid){this.grid=grid;this.initTemplates();this.initData(grid.store,grid.colModel);this.initUI(grid);},getColumnId:function(index){return this.cm.getColumnId(index);},getOffsetWidth:function(){return(this.cm.getTotalWidth()+this.scrollOffset)+'px';},renderHeaders:function(){var cm=this.cm,ts=this.templates;var ct=ts.hcell;var cb=[],sb=[],p={};var len=cm.getColumnCount();var last=len-1;for(var i=0;i<len;i++){p.id=cm.getColumnId(i);p.value=cm.getColumnHeader(i)||"";p.style=this.getColumnStyle(i,true);p.tooltip=this.getColumnTooltip(i);p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');if(cm.config[i].align=='right'){p.istyle='padding-right:16px';}else{delete p.istyle;}
cb[cb.length]=ct.apply(p);}
return ts.header.apply({cells:cb.join(""),tstyle:'width:'+this.getTotalWidth()+';'});},getColumnTooltip:function(i){var tt=this.cm.getColumnTooltip(i);if(tt){if(Ext.QuickTips.isEnabled()){return'ext:qtip="'+tt+'"';}else{return'title="'+tt+'"';}}
return"";},beforeUpdate:function(){this.grid.stopEditing(true);},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=this.getTotalWidth();},focusRow:function(row){this.focusCell(row,0,false);},focusCell:function(row,col,hscroll){this.syncFocusEl(this.ensureVisible(row,col,hscroll));if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1,this.focusEl);}},resolveCell:function(row,col,hscroll){if(typeof row!="number"){row=row.rowIndex;}
if(!this.ds){return null;}
if(row<0||row>=this.ds.getCount()){return null;}
col=(col!==undefined?col:0);var rowEl=this.getRow(row),cm=this.cm,colCount=cm.getColumnCount(),cellEl;if(!(hscroll===false&&col===0)){while(col<colCount&&cm.isHidden(col)){col++;}
cellEl=this.getCell(row,col);}
return{row:rowEl,cell:cellEl};},getResolvedXY:function(resolved){if(!resolved){return null;}
var s=this.scroller.dom,c=resolved.cell,r=resolved.row;return c?Ext.fly(c).getXY():[this.el.getX(),Ext.fly(r).getY()];},syncFocusEl:function(row,col,hscroll){var xy=row;if(!Ext.isArray(xy)){row=Math.min(row,Math.max(0,this.getRows().length-1));xy=this.getResolvedXY(this.resolveCell(row,col,hscroll));}
this.focusEl.setXY(xy||this.scroller.getXY());},ensureVisible:function(row,col,hscroll){var resolved=this.resolveCell(row,col,hscroll);if(!resolved||!resolved.row){return;}
var rowEl=resolved.row,cellEl=resolved.cell;var c=this.scroller.dom;var ctop=0;var p=rowEl,stop=this.el.dom;while(p&&p!=stop){ctop+=p.offsetTop;p=p.offsetParent;}
ctop-=this.mainHd.dom.offsetHeight;var cbot=ctop+rowEl.offsetHeight;var ch=c.clientHeight;var stop=parseInt(c.scrollTop,10);var sbot=stop+ch;if(ctop<stop){c.scrollTop=ctop;}else if(cbot>sbot){c.scrollTop=cbot-ch;}
if(hscroll!==false){var cleft=parseInt(cellEl.offsetLeft,10);var cright=cleft+cellEl.offsetWidth;var sleft=parseInt(c.scrollLeft,10);var sright=sleft+c.clientWidth;if(cleft<sleft){c.scrollLeft=cleft;}else if(cright>sright){c.scrollLeft=cright-c.clientWidth;}}
return this.getResolvedXY(resolved);},insertRows:function(dm,firstRow,lastRow,isUpdate){var last=dm.getCount()-1;if(!isUpdate&&firstRow===0&&lastRow>=last){this.refresh();}else{if(!isUpdate){this.fireEvent("beforerowsinserted",this,firstRow,lastRow);}
var html=this.renderRows(firstRow,lastRow);var before=this.getRow(firstRow);if(before){if(firstRow===0){Ext.fly(this.getRow(0)).removeClass(this.firstRowCls);}
Ext.DomHelper.insertHtml('beforeBegin',before,html);}else{var r=this.getRow(last-1);if(r){Ext.fly(r).removeClass(this.lastRowCls);}
Ext.DomHelper.insertHtml('beforeEnd',this.mainBody.dom,html);}
if(!isUpdate){this.fireEvent("rowsinserted",this,firstRow,lastRow);this.processRows(firstRow);}else if(firstRow===0||firstRow>=last){Ext.fly(this.getRow(firstRow)).addClass(firstRow===0?this.firstRowCls:this.lastRowCls);}}
this.syncFocusEl(firstRow);},deleteRows:function(dm,firstRow,lastRow){if(dm.getRowCount()<1){this.refresh();}else{this.fireEvent("beforerowsdeleted",this,firstRow,lastRow);this.removeRows(firstRow,lastRow);this.processRows(firstRow);this.fireEvent("rowsdeleted",this,firstRow,lastRow);}},getColumnStyle:function(col,isHeader){var style=!isHeader?(this.cm.config[col].css||''):'';style+='width:'+this.getColumnWidth(col)+';';if(this.cm.isHidden(col)){style+='display:none;';}
var align=this.cm.config[col].align;if(align){style+='text-align:'+align+';';}
return style;},getColumnWidth:function(col){var w=this.cm.getColumnWidth(col);if(typeof w=='number'){return(Ext.isBorderBox||(Ext.isWebKit&&!Ext.isSafari2)?w:(w-this.borderWidth>0?w-this.borderWidth:0))+'px';}
return w;},getTotalWidth:function(){return this.cm.getTotalWidth()+'px';},fitColumns:function(preventRefresh,onlyExpand,omitColumn){var cm=this.cm,leftOver,dist,i;var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw<20){return;}
var extra=aw-tw;if(extra===0){return false;}
var vc=cm.getColumnCount(true);var ac=vc-(typeof omitColumn=='number'?1:0);if(ac===0){ac=1;omitColumn=undefined;}
var colCount=cm.getColumnCount();var cols=[];var extraCol=0;var width=0;var w;for(i=0;i<colCount;i++){if(!cm.isHidden(i)&&!cm.isFixed(i)&&i!==omitColumn){w=cm.getColumnWidth(i);cols.push(i);extraCol=i;cols.push(w);width+=w;}}
var frac=(aw-cm.getTotalWidth())/width;while(cols.length){w=cols.pop();i=cols.pop();cm.setColumnWidth(i,Math.max(this.grid.minColumnWidth,Math.floor(w+w*frac)),true);}
if((tw=cm.getTotalWidth(false))>aw){var adjustCol=ac!=vc?omitColumn:extraCol;cm.setColumnWidth(adjustCol,Math.max(1,cm.getColumnWidth(adjustCol)-(tw-aw)),true);}
if(preventRefresh!==true){this.updateAllColumnWidths();}
return true;},autoExpand:function(preventUpdate){var g=this.grid,cm=this.cm;if(!this.userResized&&g.autoExpandColumn){var tw=cm.getTotalWidth(false);var aw=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(tw!=aw){var ci=cm.getIndexById(g.autoExpandColumn);var currentWidth=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((aw-tw)+currentWidth),g.autoExpandMin),g.autoExpandMax);if(cw!=currentWidth){cm.setColumnWidth(ci,cw,true);if(preventUpdate!==true){this.updateColumnWidth(ci,cw);}}}}},getColumnData:function(){var cs=[],cm=this.cm,colCount=cm.getColumnCount();for(var i=0;i<colCount;i++){var name=cm.getDataIndex(i);cs[i]={name:(typeof name=='undefined'?this.ds.fields.get(i).name:name),renderer:cm.getRenderer(i),id:cm.getColumnId(i),style:this.getColumnStyle(i)};}
return cs;},renderRows:function(startRow,endRow){var g=this.grid,cm=g.colModel,ds=g.store,stripe=g.stripeRows;var colCount=cm.getColumnCount();if(ds.getCount()<1){return"";}
var cs=this.getColumnData();startRow=startRow||0;endRow=typeof endRow=="undefined"?ds.getCount()-1:endRow;var rs=ds.getRange(startRow,endRow);return this.doRender(cs,rs,ds,startRow,colCount,stripe);},renderBody:function(){var markup=this.renderRows()||'&nbsp;';return this.templates.body.apply({rows:markup});},refreshRow:function(record){var ds=this.ds,index;if(typeof record=='number'){index=record;record=ds.getAt(index);if(!record){return;}}else{index=ds.indexOf(record);if(index<0){return;}}
var cls=[];this.insertRows(ds,index,index,true);this.getRow(index).rowIndex=index;this.onRemove(ds,record,index+1,true);this.fireEvent("rowupdated",this,index,record);},refresh:function(headersToo){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var result=this.renderBody();this.mainBody.update(result).setWidth(this.getTotalWidth());if(headersToo===true){this.updateHeaders();this.updateHeaderSortState();}
this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this);},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+'</div>');}},updateHeaderSortState:function(){var state=this.ds.getSortState();if(!state){return;}
if(!this.sortState||(this.sortState.field!=state.field||this.sortState.direction!=state.direction)){this.grid.fireEvent('sortchange',this.grid,state);}
this.sortState=state;var sortColumn=this.cm.findColumnIndex(state.field);if(sortColumn!=-1){var sortDir=state.direction;this.updateSortIcon(sortColumn,sortDir);}},destroy:function(){if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu;}
if(this.hmenu){Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.destroy();delete this.hmenu;}
if(this.grid.enableColumnMove){var dds=Ext.dd.DDM.ids['gridHeader'+this.grid.getGridEl().id];if(dds){for(var dd in dds){if(!dds[dd].config.isTarget&&dds[dd].dragElId){var elid=dds[dd].dragElId;dds[dd].unreg();Ext.get(elid).remove();}else if(dds[dd].config.isTarget){dds[dd].proxyTop.remove();dds[dd].proxyBottom.remove();dds[dd].unreg();}
if(Ext.dd.DDM.locationCache[dd]){delete Ext.dd.DDM.locationCache[dd];}}
delete Ext.dd.DDM.ids['gridHeader'+this.grid.getGridEl().id];}}
if(this.dragZone){this.dragZone.unreg();}
Ext.fly(this.innerHd).removeAllListeners();Ext.removeNode(this.innerHd);Ext.destroy(this.resizeMarker,this.resizeProxy,this.focusEl,this.mainBody,this.scroller,this.mainHd,this.mainWrap,this.dragZone,this.splitZone,this.columnDrag,this.columnDrop);this.initData(null,null);Ext.EventManager.removeResizeListener(this.onWindowResize,this);this.purgeListeners();},onDenyColumnHide:function(){},render:function(){if(this.autoFill){var ct=this.grid.ownerCt;if(ct&&ct.getLayout()){ct.on('afterlayout',function(){this.fitColumns(true,true);this.updateHeaders();},this,{single:true});}else{this.fitColumns(true,true);}}else if(this.forceFit){this.fitColumns(true,false);}else if(this.grid.autoExpandColumn){this.autoExpand(true);}
this.renderUI();},initData:function(ds,cm){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this);}
if(ds){ds.on("load",this.onLoad,this);ds.on("datachanged",this.onDataChange,this);ds.on("add",this.onAdd,this);ds.on("remove",this.onRemove,this);ds.on("update",this.onUpdate,this);ds.on("clear",this.onClear,this);}
this.ds=ds;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this);}
if(cm){delete this.lastViewWidth;cm.on("configchange",this.onColConfigChange,this);cm.on("widthchange",this.onColWidthChange,this);cm.on("headerchange",this.onHeaderChange,this);cm.on("hiddenchange",this.onHiddenChange,this);cm.on("columnmoved",this.onColumnMove,this);cm.on("columnlockchange",this.onColumnLock,this);}
this.cm=cm;},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0);},onClear:function(){this.refresh();this.syncFocusEl(0);},onUpdate:function(ds,record){this.refreshRow(record);},onAdd:function(ds,records,index){this.insertRows(ds,index,index+(records.length-1));},onRemove:function(ds,record,index,isUpdate){if(isUpdate!==true){this.fireEvent("beforerowremoved",this,index,record);}
this.removeRow(index);if(isUpdate!==true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved",this,index,record);}},onLoad:function(){this.scrollToTop();},onColWidthChange:function(cm,col,width){this.updateColumnWidth(col,width);},onHeaderChange:function(cm,col,text){this.updateHeaders();},onHiddenChange:function(cm,col,hidden){this.updateColumnHidden(col,hidden);},onColumnMove:function(cm,oldIndex,newIndex){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);this.grid.fireEvent('columnmove',oldIndex,newIndex);},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true);},initUI:function(grid){grid.on("headerclick",this.onHeaderClick,this);},initEvents:function(){},onHeaderClick:function(g,index){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.addRowClass(row,"x-grid3-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&!e.within(this.getRow(row),true)){this.removeRowClass(row,"x-grid3-row-over");}},handleWheel:function(e){e.stopPropagation();},onRowSelect:function(row){this.addRowClass(row,"x-grid3-row-selected");},onRowDeselect:function(row){this.removeRowClass(row,"x-grid3-row-selected");},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);if(this.forceFit){this.fitColumns(true,false,i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i,w);this.syncHeaderScroll();}
this.grid.fireEvent("columnresize",i,w);},handleHdMenuClick:function(item){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(index),"ASC");break;case"desc":ds.sort(cm.getDataIndex(index),"DESC");break;default:index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
return true;},isHideableColumn:function(c){return!c.hidden&&!c.fixed;},beforeColMenuShow:function(){var cm=this.cm,colCount=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<colCount;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false,disabled:cm.config[i].hideable===false}));}}},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},handleHdOver:function(e,t){var hd=this.findHeaderCell(t);if(hd&&!this.headersDisabled){this.activeHd=hd;this.activeHdIndex=this.getCellIndex(hd);var fly=this.fly(hd);this.activeHdRegion=fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn=fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove:function(e,t){if(this.activeHd&&!this.headersDisabled){var hw=this.splitHandleWidth||5;var r=this.activeHdRegion;var x=e.getPageX();var ss=this.activeHd.style;if(x-r.left<=hw&&this.cm.isResizable(this.activeHdIndex-1)){ss.cursor=Ext.isAir?'move':Ext.isWebKit?'e-resize':'col-resize';}else if(r.right-x<=(!this.activeHdBtn?hw:2)&&this.cm.isResizable(this.activeHdIndex)){ss.cursor=Ext.isAir?'move':Ext.isWebKit?'w-resize':'col-resize';}else{ss.cursor='';}}},handleHdOut:function(e,t){var hd=this.findHeaderCell(t);if(hd&&(!Ext.isIE||!e.within(hd,true))){this.activeHd=null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor='';}},hasRows:function(){var fc=this.mainBody.dom.firstChild;return fc&&fc.nodeType==1&&fc.className!='x-grid-empty';},bind:function(d,c){this.initData(d,c);}});Ext.grid.GridView.SplitDragZone=function(grid,hd){this.grid=grid;this.view=grid.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5;};Ext.extend(Ext.grid.GridView.SplitDragZone,Ext.dd.DDProxy,{b4StartDrag:function(x,y){this.view.headersDisabled=true;var h=this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),'tl-tl',[-2,0]);this.proxy.setHeight(h);var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){var t=this.view.findHeaderCell(e.getTarget());if(t){var xy=this.view.fly(t).getXY(),x=xy[0],y=xy[1];var exy=e.getXY(),ex=exy[0],ey=exy[1];var w=t.offsetWidth,adjust=false;if((ex-x)<=this.hw){adjust=-1;}else if((x+w)-ex<=this.hw){adjust=0;}
if(adjust!==false){this.cm=this.grid.colModel;var ci=this.view.getCellIndex(t);if(adjust==-1){if(ci+adjust<0){return;}
while(this.cm.isHidden(ci+adjust)){--adjust;if(ci+adjust<0){return;}}}
this.cellIndex=ci+adjust;this.split=t.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}else if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(e);}}},endDrag:function(e){this.marker.hide();var v=this.view;var endX=Math.max(this.minX,e.getPageX());var diff=endX-this.startPos;v.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled=false;},50);},autoOffset:function(){this.setDelta(0,0);}});Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText:'(None)',ignoreAdd:false,groupTextTpl:'{text}',gidSeed:1000,initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state={};var sm=this.grid.getSelectionModel();sm.on(sm.selectRow?'beforerowselect':'beforecellselect',this.onBeforeRowSelect,this);if(!this.startGroup){this.startGroup=new Ext.XTemplate('<div id="{groupId}" class="x-grid-group {cls}">','<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div>',this.groupTextTpl,'</div></div>','<div id="{groupId}-bd" class="x-grid-group-body">');}
this.startGroup.compile();this.endGroup='</div></div>';},findGroup:function(el){return Ext.fly(el).up('.x-grid-group',this.mainBody.dom);},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[];},onAdd:function(){if(this.enableGrouping&&!this.ignoreAdd){var ss=this.getScrollState();this.refresh();this.restoreScroll(ss);}else if(!this.enableGrouping){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments);}},onRemove:function(ds,record,index,isUpdate){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var g=document.getElementById(record._groupId);if(g&&g.childNodes[1].childNodes.length<1){Ext.removeNode(g);}
this.applyEmptyText();},refreshRow:function(record){if(this.ds.getCount()==1){this.refresh();}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false;}},beforeMenuShow:function(){var field=this.getGroupField();var g=this.hmenu.items.get('groupBy');if(g){g.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false);}
var s=this.hmenu.items.get('showGroups');if(s){s.setDisabled(!field&&this.cm.config[this.hdCtxIndex].groupable===false);s.setChecked(!!field,true);}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on('mousedown',this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add('-',{id:'groupBy',text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:'x-group-by-icon'});if(this.enableNoGroups){this.hmenu.add({id:'showGroups',text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this});}
this.hmenu.on('beforeshow',this.beforeMenuShow,this);}},onGroupByClick:function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow();},onShowGroupsClick:function(mi,checked){if(checked){this.onGroupByClick();}else{this.grid.store.clearGrouping();}},toggleGroup:function(group,expanded){this.grid.stopEditing(true);group=Ext.getDom(group);var gel=Ext.fly(group);expanded=expanded!==undefined?expanded:gel.hasClass('x-grid-group-collapsed');this.state[gel.dom.id]=expanded;gel[expanded?'removeClass':'addClass']('x-grid-group-collapsed');},toggleAllGroups:function(expanded){var groups=this.getGroups();for(var i=0,len=groups.length;i<len;i++){this.toggleGroup(groups[i],expanded);}},expandAllGroups:function(){this.toggleAllGroups(true);},collapseAllGroups:function(){this.toggleAllGroups(false);},interceptMouse:function(e){var hd=e.getTarget('.x-grid-group-hd',this.mainBody);if(hd){e.stopEvent();this.toggleGroup(hd.parentNode);}},getGroup:function(v,r,groupRenderer,rowIndex,colIndex,ds){var g=groupRenderer?groupRenderer(v,{},r,rowIndex,colIndex,ds):String(v);if(g===''){g=this.cm.config[colIndex].emptyGroupText||this.emptyGroupText;}
return g;},getGroupField:function(){return this.grid.store.getGroupState();},afterRender:function(){Ext.grid.GroupingView.superclass.afterRender.call(this);if(this.grid.deferRowRender){this.updateGroupWidths();}},renderRows:function(){var groupField=this.getGroupField();var eg=!!groupField;if(this.hideGroupedColumn){var colIndex=this.cm.findColumnIndex(groupField);if(!eg&&this.lastGroupField!==undefined){this.mainBody.update('');this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField),false);delete this.lastGroupField;}else if(eg&&this.lastGroupField===undefined){this.lastGroupField=groupField;this.cm.setHidden(colIndex,true);}else if(eg&&this.lastGroupField!==undefined&&groupField!==this.lastGroupField){this.mainBody.update('');var oldIndex=this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(oldIndex,false);this.lastGroupField=groupField;this.cm.setHidden(colIndex,true);}}
return Ext.grid.GroupingView.superclass.renderRows.apply(this,arguments);},doRender:function(cs,rs,ds,startRow,colCount,stripe){if(rs.length<1){return'';}
var groupField=this.getGroupField();var colIndex=this.cm.findColumnIndex(groupField);this.enableGrouping=!!groupField;if(!this.enableGrouping||this.isUpdating){return Ext.grid.GroupingView.superclass.doRender.apply(this,arguments);}
var gstyle='width:'+this.getTotalWidth()+';';var gidPrefix=this.grid.getGridEl().id;var cfg=this.cm.config[colIndex];var groupRenderer=cfg.groupRenderer||cfg.renderer;var prefix=this.showGroupName?(cfg.groupName||cfg.header)+': ':'';var groups=[],curGroup,i,len,gid;for(i=0,len=rs.length;i<len;i++){var rowIndex=startRow+i;var r=rs[i],gvalue=r.data[groupField],g=this.getGroup(gvalue,r,groupRenderer,rowIndex,colIndex,ds);if(!curGroup||curGroup.group!=g){gid=gidPrefix+'-gp-'+groupField+'-'+Ext.util.Format.htmlEncode(g);var isCollapsed=typeof this.state[gid]!=='undefined'?!this.state[gid]:this.startCollapsed;var gcls=isCollapsed?'x-grid-group-collapsed':'';curGroup={group:g,gvalue:gvalue,text:prefix+g,groupId:gid,startRow:rowIndex,rs:[r],cls:gcls,style:gstyle};groups.push(curGroup);}else{curGroup.rs.push(r);}
r._groupId=gid;}
var buf=[];for(i=0,len=groups.length;i<len;i++){var g=groups[i];this.doGroupStart(buf,g,cs,ds,colCount);buf[buf.length]=Ext.grid.GroupingView.superclass.doRender.call(this,cs,g.rs,ds,g.startRow,colCount,stripe);this.doGroupEnd(buf,g,cs,ds,colCount);}
return buf.join('');},getGroupId:function(value){var gidPrefix=this.grid.getGridEl().id;var groupField=this.getGroupField();var colIndex=this.cm.findColumnIndex(groupField);var cfg=this.cm.config[colIndex];var groupRenderer=cfg.groupRenderer||cfg.renderer;var gtext=this.getGroup(value,{data:{}},groupRenderer,0,colIndex,this.ds);return gidPrefix+'-gp-'+groupField+'-'+Ext.util.Format.htmlEncode(value);},doGroupStart:function(buf,g,cs,ds,colCount){buf[buf.length]=this.startGroup.apply(g);},doGroupEnd:function(buf,g,cs,ds,colCount){buf[buf.length]=this.endGroup;},getRows:function(){if(!this.enableGrouping){return Ext.grid.GroupingView.superclass.getRows.call(this);}
var r=[];var g,gs=this.getGroups();for(var i=0,len=gs.length;i<len;i++){g=gs[i].childNodes[1].childNodes;for(var j=0,jlen=g.length;j<jlen;j++){r[r.length]=g[j];}}
return r;},updateGroupWidths:function(){if(!this.enableGrouping||!this.hasRows()){return;}
var tw=Math.max(this.cm.getTotalWidth(),this.el.dom.offsetWidth-this.scrollOffset)+'px';var gs=this.getGroups();for(var i=0,len=gs.length;i<len;i++){gs[i].firstChild.style.width=tw;}},onColumnWidthUpdated:function(col,w,tw){Ext.grid.GroupingView.superclass.onColumnWidthUpdated.call(this,col,w,tw);this.updateGroupWidths();},onAllColumnWidthsUpdated:function(ws,tw){Ext.grid.GroupingView.superclass.onAllColumnWidthsUpdated.call(this,ws,tw);this.updateGroupWidths();},onColumnHiddenUpdated:function(col,hidden,tw){Ext.grid.GroupingView.superclass.onColumnHiddenUpdated.call(this,col,hidden,tw);this.updateGroupWidths();},onLayout:function(){this.updateGroupWidths();},onBeforeRowSelect:function(sm,rowIndex){if(!this.enableGrouping){return;}
var row=this.getRow(rowIndex);if(row&&!row.offsetParent){var g=this.findGroup(row);this.toggleGroup(g,true);}},groupByText:'Group By This Field',showGroupsText:'Show in Groups'});Ext.grid.GroupingView.GROUP_ID=1000;Ext.grid.HeaderDragZone=function(grid,hd,hd2){this.grid=grid;this.view=grid.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,hd);if(hd2){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(hd2));}
this.scroll=false;};Ext.extend(Ext.grid.HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var h=this.view.findHeaderCell(t);if(h){return{ddel:h.firstChild,header:h};}
return false;},onInitDrag:function(e){this.view.headersDisabled=true;var clone=this.dragData.ddel.cloneNode(true);clone.id=Ext.id();clone.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(clone);return true;},afterValidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);},afterInvalidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);}});Ext.grid.HeaderDropZone=function(grid,hd,hd2){this.grid=grid;this.view=grid.getView();this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:"&#160;"},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:"&#160;"},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden");};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,grid.getGridEl().dom);};Ext.extend(Ext.grid.HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);var cindex=this.view.findCellIndex(t);if(cindex!==false){return this.view.getHeaderCell(cindex);}},nextVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}
h=h.nextSibling;}
return null;},prevVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}
h=h.prevSibling;}
return null;},positionIndicator:function(h,n,e){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var px,pt,py=r.top+this.proxyOffsets[1];if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.view.borderWidth;pt="after";}else{px=r.left;pt="before";}
var oldIndex=this.view.getCellIndex(h);var newIndex=this.view.getCellIndex(n);if(this.grid.colModel.isFixed(newIndex)){return false;}
var locked=this.grid.colModel.isLocked(newIndex);if(pt=="after"){newIndex++;}
if(oldIndex<newIndex){newIndex--;}
if(oldIndex==newIndex&&(locked==this.grid.colModel.isLocked(oldIndex))){return false;}
px+=this.proxyOffsets[0];this.proxyTop.setLeftTop(px,py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight();}
this.proxyBottom.setLeftTop(px,py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter:function(n,dd,e,data){if(data.header!=n){this.positionIndicator(data.header,n,e);}},onNodeOver:function(n,dd,e,data){var result=false;if(data.header!=n){result=this.positionIndicator(data.header,n,e);}
if(!result){this.proxyTop.hide();this.proxyBottom.hide();}
return result?this.dropAllowed:this.dropNotAllowed;},onNodeOut:function(n,dd,e,data){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop:function(n,dd,e,data){var h=data.header;if(h!=n){var cm=this.grid.colModel;var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var pt=(r.right-x)<=((r.right-r.left)/2)?"after":"before";var oldIndex=this.view.getCellIndex(h);var newIndex=this.view.getCellIndex(n);var locked=cm.isLocked(newIndex);if(pt=="after"){newIndex++;}
if(oldIndex<newIndex){newIndex--;}
if(oldIndex==newIndex&&(locked==cm.isLocked(oldIndex))){return false;}
cm.setLocked(oldIndex,locked,true);cm.moveColumn(oldIndex,newIndex);this.grid.fireEvent("columnmove",oldIndex,newIndex);return true;}
return false;}});Ext.grid.GridView.ColumnDragZone=function(grid,hd){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this,grid,hd,null);this.proxy.el.addClass('x-grid3-col-dd');};Ext.extend(Ext.grid.GridView.ColumnDragZone,Ext.grid.HeaderDragZone,{handleMouseDown:function(e){},callHandleMouseDown:function(e){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this,e);}});Ext.grid.SplitDragZone=function(grid,hd,hd2){this.grid=grid;this.view=grid.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(hd2));this.scroll=false;};Ext.extend(Ext.grid.SplitDragZone,Ext.dd.DDProxy,{fly:Ext.Element.fly,b4StartDrag:function(x,y){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var w=this.cm.getColumnWidth(this.cellIndex);var minw=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(minw,1000);this.setYConstraint(0,0);this.minX=x-minw;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){ev=Ext.EventObject.setEvent(e);var t=this.fly(ev.getTarget());if(t.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(t.dom);this.split=t.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}},endDrag:function(e){this.view.headersDisabled=false;var endX=Math.max(this.minX,Ext.lib.Event.getPageX(e));var diff=endX-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+diff);},autoOffset:function(){this.setDelta(0,0);}});Ext.grid.GridDragZone=function(grid,config){this.view=grid.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.mainBody.dom,config);if(this.view.lockedBody){this.setHandleElId(Ext.id(this.view.mainBody.dom));this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom));}
this.scroll=false;this.grid=grid;this.ddel=document.createElement('div');this.ddel.className='x-grid-dd-wrap';};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var rowIndex=this.view.findRowIndex(t);if(rowIndex!==false){var sm=this.grid.selModel;if(!sm.isSelected(rowIndex)||e.hasModifier()){sm.handleMouseDown(this.grid,rowIndex,e);}
return{grid:this.grid,ddel:this.ddel,rowIndex:rowIndex,selections:sm.getSelections()};}
return false;},onInitDrag:function(e){var data=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,data){return false;},onEndDrag:function(data,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}});Ext.grid.ColumnModel=function(config){this.defaultWidth=100;this.defaultSortable=false;if(config.columns){Ext.apply(this,config);this.setConfig(config.columns,true);}else{this.setConfig(config,true);}
this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{getColumnId:function(index){return this.config[index].id;},setConfig:function(config,initial){if(!initial){delete this.totalWidth;for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(c.editor){c.editor.destroy();}}}
this.config=config;this.lookup={};for(var i=0,len=config.length;i<len;i++){var c=config[i];if(typeof c.renderer=="string"){c.renderer=Ext.util.Format[c.renderer];}
if(typeof c.id=="undefined"){c.id=i;}
if(c.editor&&c.editor.isFormField){c.editor=new Ext.grid.GridEditor(c.editor);}
this.lookup[c.id]=c;}
if(!initial){this.fireEvent('configchange',this);}},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,len=this.config.length;i<len;i++){if(this.config[i].id==id){return i;}}
return-1;},moveColumn:function(oldIndex,newIndex){var c=this.config[oldIndex];this.config.splice(oldIndex,1);this.config.splice(newIndex,0,c);this.dataMap=null;this.fireEvent("columnmoved",this,oldIndex,newIndex);},isLocked:function(colIndex){return this.config[colIndex].locked===true;},setLocked:function(colIndex,value,suppressEvent){if(this.isLocked(colIndex)==value){return;}
this.config[colIndex].locked=value;if(!suppressEvent){this.fireEvent("columnlockchange",this,colIndex,value);}},getTotalLockedWidth:function(){var totalWidth=0;for(var i=0;i<this.config.length;i++){if(this.isLocked(i)&&!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}
return totalWidth;},getLockedCount:function(){for(var i=0,len=this.config.length;i<len;i++){if(!this.isLocked(i)){return i;}}},getColumnCount:function(visibleOnly){if(visibleOnly===true){var c=0;for(var i=0,len=this.config.length;i<len;i++){if(!this.isHidden(i)){c++;}}
return c;}
return this.config.length;},getColumnsBy:function(fn,scope){var r=[];for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(fn.call(scope||this,c,i)===true){r[r.length]=c;}}
return r;},isSortable:function(col){if(typeof this.config[col].sortable=="undefined"){return this.defaultSortable;}
return this.config[col].sortable;},isMenuDisabled:function(col){return!!this.config[col].menuDisabled;},getRenderer:function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}
return this.config[col].renderer;},setRenderer:function(col,fn){this.config[col].renderer=fn;},getColumnWidth:function(col){return this.config[col].width||this.defaultWidth;},setColumnWidth:function(col,width,suppressEvent){this.config[col].width=width;this.totalWidth=null;if(!suppressEvent){this.fireEvent("widthchange",this,col,width);}},getTotalWidth:function(includeHidden){if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(includeHidden||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}
return this.totalWidth;},getColumnHeader:function(col){return this.config[col].header;},setColumnHeader:function(col,header){this.config[col].header=header;this.fireEvent("headerchange",this,col,header);},getColumnTooltip:function(col){return this.config[col].tooltip;},setColumnTooltip:function(col,tooltip){this.config[col].tooltip=tooltip;},getDataIndex:function(col){return this.config[col].dataIndex;},setDataIndex:function(col,dataIndex){this.config[col].dataIndex=dataIndex;},findColumnIndex:function(dataIndex){var c=this.config;for(var i=0,len=c.length;i<len;i++){if(c[i].dataIndex==dataIndex){return i;}}
return-1;},isCellEditable:function(colIndex,rowIndex){return(this.config[colIndex].editable||(typeof this.config[colIndex].editable=="undefined"&&this.config[colIndex].editor))?true:false;},getCellEditor:function(colIndex,rowIndex){return this.config[colIndex].editor;},setEditable:function(col,editable){this.config[col].editable=editable;},isHidden:function(colIndex){return this.config[colIndex].hidden;},isFixed:function(colIndex){return this.config[colIndex].fixed;},isResizable:function(colIndex){return colIndex>=0&&this.config[colIndex].resizable!==false&&this.config[colIndex].fixed!==true;},setHidden:function(colIndex,hidden){var c=this.config[colIndex];if(c.hidden!==hidden){c.hidden=hidden;this.totalWidth=null;this.fireEvent("hiddenchange",this,colIndex,hidden);}},setEditor:function(col,editor){Ext.destroy(this.config[col].editor);this.config[col].editor=editor;},destroy:function(){var c=this.config;for(var i=0,c=this.config,len=c.length;i<len;i++){Ext.destroy(c[i].editor);}
this.purgeListeners();}});Ext.grid.ColumnModel.defaultRenderer=function(value){if(typeof value=="string"&&value.length<1){return"&#160;";}
return value;};Ext.grid.DefaultColumnModel=Ext.grid.ColumnModel;Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(grid){this.grid=grid;this.initEvents();},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},destroy:function(){this.purgeListeners();}});Ext.grid.RowSelectionModel=function(config){Ext.apply(this,config);this.selections=new Ext.util.MixedCollection(false,function(o){return o.id;});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("rowmousedown",this.handleMouseDown,this);}
this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(e){if(!e.shiftKey||this.singleSelect){this.selectPrevious(false);}else if(this.last!==false&&this.lastActive!==false){var last=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(last!==false){this.last=last;}}else{this.selectFirstRow();}},"down":function(e){if(!e.shiftKey||this.singleSelect){this.selectNext(false);}else if(this.last!==false&&this.lastActive!==false){var last=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(last!==false){this.last=last;}}else{this.selectFirstRow();}},scope:this});var view=this.grid.view;view.on("refresh",this.onRefresh,this);view.on("rowupdated",this.onRowUpdated,this);view.on("rowremoved",this.onRemove,this);},onRefresh:function(){var ds=this.grid.store,index;var s=this.getSelections();this.clearSelections(true);for(var i=0,len=s.length;i<len;i++){var r=s[i];if((index=ds.indexOfId(r.id))!=-1){this.selectRow(index,true);}}
if(s.length!=this.selections.getCount()){this.fireEvent("selectionchange",this);}},onRemove:function(v,index,r){if(this.selections.remove(r)!==false){this.fireEvent('selectionchange',this);}},onRowUpdated:function(v,index,r){if(this.isSelected(r)){v.onRowSelect(index);}},selectRecords:function(records,keepExisting){if(!keepExisting){this.clearSelections();}
var ds=this.grid.store;for(var i=0,len=records.length;i<len;i++){this.selectRow(ds.indexOf(records[i]),true);}},getCount:function(){return this.selections.length;},selectFirstRow:function(){this.selectRow(0);},selectLastRow:function(keepExisting){this.selectRow(this.grid.store.getCount()-1,keepExisting);},selectNext:function(keepExisting){if(this.hasNext()){this.selectRow(this.last+1,keepExisting);this.grid.getView().focusRow(this.last);return true;}
return false;},selectPrevious:function(keepExisting){if(this.hasPrevious()){this.selectRow(this.last-1,keepExisting);this.grid.getView().focusRow(this.last);return true;}
return false;},hasNext:function(){return this.last!==false&&(this.last+1)<this.grid.store.getCount();},hasPrevious:function(){return!!this.last;},getSelections:function(){return[].concat(this.selections.items);},getSelected:function(){return this.selections.itemAt(0);},each:function(fn,scope){var s=this.getSelections();for(var i=0,len=s.length;i<len;i++){if(fn.call(scope||this,s[i],i)===false){return false;}}
return true;},clearSelections:function(fast){if(this.isLocked())return;if(fast!==true){var ds=this.grid.store;var s=this.selections;s.each(function(r){this.deselectRow(ds.indexOfId(r.id));},this);s.clear();}else{this.selections.clear();}
this.last=false;},selectAll:function(){if(this.isLocked())return;this.selections.clear();for(var i=0,len=this.grid.store.getCount();i<len;i++){this.selectRow(i,true);}},hasSelection:function(){return this.selections.length>0;},isSelected:function(index){var r=typeof index=="number"?this.grid.store.getAt(index):index;return(r&&this.selections.key(r.id)?true:false);},isIdSelected:function(id){return(this.selections.key(id)?true:false);},handleMouseDown:function(g,rowIndex,e){if(e.button!==0||this.isLocked()){return;};var view=this.grid.getView();if(e.shiftKey&&!this.singleSelect&&this.last!==false){var last=this.last;this.selectRange(last,rowIndex,e.ctrlKey);this.last=last;view.focusRow(rowIndex);}else{var isSelected=this.isSelected(rowIndex);if(e.ctrlKey&&isSelected){this.deselectRow(rowIndex);}else if(!isSelected||this.getCount()>1){this.selectRow(rowIndex,e.ctrlKey||e.shiftKey);view.focusRow(rowIndex);}}},selectRows:function(rows,keepExisting){if(!keepExisting){this.clearSelections();}
for(var i=0,len=rows.length;i<len;i++){this.selectRow(rows[i],true);}},selectRange:function(startRow,endRow,keepExisting){if(this.isLocked())return;if(!keepExisting){this.clearSelections();}
if(startRow<=endRow){for(var i=startRow;i<=endRow;i++){this.selectRow(i,true);}}else{for(var i=startRow;i>=endRow;i--){this.selectRow(i,true);}}},deselectRange:function(startRow,endRow,preventViewNotify){if(this.isLocked())return;for(var i=startRow;i<=endRow;i++){this.deselectRow(i,preventViewNotify);}},selectRow:function(index,keepExisting,preventViewNotify){if(this.isLocked()||(index<0||index>=this.grid.store.getCount())||(keepExisting&&this.isSelected(index))){return;}
var r=this.grid.store.getAt(index);if(r&&this.fireEvent("beforerowselect",this,index,keepExisting,r)!==false){if(!keepExisting||this.singleSelect){this.clearSelections();}
this.selections.add(r);this.last=this.lastActive=index;if(!preventViewNotify){this.grid.getView().onRowSelect(index);}
this.fireEvent("rowselect",this,index,r);this.fireEvent("selectionchange",this);}},deselectRow:function(index,preventViewNotify){if(this.isLocked())return;if(this.last==index){this.last=false;}
if(this.lastActive==index){this.lastActive=false;}
var r=this.grid.store.getAt(index);if(r){this.selections.remove(r);if(!preventViewNotify){this.grid.getView().onRowDeselect(index);}
this.fireEvent("rowdeselect",this,index,r);this.fireEvent("selectionchange",this);}},restoreLast:function(){if(this._last){this.last=this._last;}},acceptsNav:function(row,col,cm){return!cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(field,e){var k=e.getKey(),newCell,g=this.grid,ed=g.activeEditor;var shift=e.shiftKey;if(k==e.TAB){e.stopEvent();ed.completeEdit();if(shift){newCell=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{newCell=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}}else if(k==e.ENTER){e.stopEvent();ed.completeEdit();if(this.moveEditorOnEnter!==false){if(shift){newCell=g.walkCells(ed.row-1,ed.col,-1,this.acceptsNav,this);}else{newCell=g.walkCells(ed.row+1,ed.col,1,this.acceptsNav,this);}}}else if(k==e.ESC){ed.cancelEdit();}
if(newCell){g.startEditing(newCell[0],newCell[1]);}},destroy:function(){if(this.rowNav){this.rowNav.disable();this.rowNav=null;}
Ext.grid.RowSelectionModel.superclass.destroy.call(this);}});Ext.grid.CellSelectionModel=function(config){Ext.apply(this,config);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.isIE||(Ext.isWebKit&&!Ext.isSafari2)?"keydown":"keypress",this.handleKeyDown,this);var view=this.grid.view;view.on("refresh",this.onViewChange,this);view.on("rowupdated",this.onRowUpdated,this);view.on("beforerowremoved",this.clearSelections,this);view.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this);}},beforeEdit:function(e){this.select(e.row,e.column,false,true,e.record);},onRowUpdated:function(v,index,r){if(this.selection&&this.selection.record==r){v.onCellSelect(index,this.selection.cell[1]);}},onViewChange:function(){this.clearSelections(true);},getSelectedCell:function(){return this.selection?this.selection.cell:null;},clearSelections:function(preventNotify){var s=this.selection;if(s){if(preventNotify!==true){this.grid.view.onCellDeselect(s.cell[0],s.cell[1]);}
this.selection=null;this.fireEvent("selectionchange",this,null);}},hasSelection:function(){return this.selection?true:false;},handleMouseDown:function(g,row,cell,e){if(e.button!==0||this.isLocked()){return;};this.select(row,cell);},select:function(rowIndex,colIndex,preventViewNotify,preventFocus,r){if(this.fireEvent("beforecellselect",this,rowIndex,colIndex)!==false){this.clearSelections();r=r||this.grid.store.getAt(rowIndex);this.selection={record:r,cell:[rowIndex,colIndex]};if(!preventViewNotify){var v=this.grid.getView();v.onCellSelect(rowIndex,colIndex);if(preventFocus!==true){v.focusCell(rowIndex,colIndex);}}
this.fireEvent("cellselect",this,rowIndex,colIndex);this.fireEvent("selectionchange",this,this.selection);}},isSelectable:function(rowIndex,colIndex,cm){return!cm.isHidden(colIndex);},handleKeyDown:function(e){if(!e.isNavKeyPress()){return;}
var g=this.grid,s=this.selection;if(!s){e.stopEvent();var cell=g.walkCells(0,0,1,this.isSelectable,this);if(cell){this.select(cell[0],cell[1]);}
return;}
var sm=this;var walk=function(row,col,step){return g.walkCells(row,col,step,sm.isSelectable,sm);};var k=e.getKey(),r=s.cell[0],c=s.cell[1];var newCell;switch(k){case e.TAB:if(e.shiftKey){newCell=walk(r,c-1,-1);}else{newCell=walk(r,c+1,1);}
break;case e.DOWN:newCell=walk(r+1,c,1);break;case e.UP:newCell=walk(r-1,c,-1);break;case e.RIGHT:newCell=walk(r,c+1,1);break;case e.LEFT:newCell=walk(r,c-1,-1);break;case e.ENTER:if(g.isEditor&&!g.editing){g.startEditing(r,c);e.stopEvent();return;}
break;};if(newCell){this.select(newCell[0],newCell[1]);e.stopEvent();}},acceptsNav:function(row,col,cm){return!cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(field,e){var k=e.getKey(),newCell,g=this.grid,ed=g.activeEditor;if(k==e.TAB){if(e.shiftKey){newCell=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{newCell=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}
e.stopEvent();}else if(k==e.ENTER){ed.completeEdit();e.stopEvent();}else if(k==e.ESC){e.stopEvent();ed.cancelEdit();}
if(newCell){g.startEditing(newCell[0],newCell[1]);}}});Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel();}
this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit");},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.on("bodyscroll",this.stopEditing,this,[true]);this.on("columnresize",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this);}else{if(this.clicksToEdit=='auto'&&this.view.mainBody){this.view.mainBody.on("mousedown",this.onAutoEditClick,this);}
this.on("celldblclick",this.onCellDblClick,this);}},onCellDblClick:function(g,row,col){this.startEditing(row,col);},onAutoEditClick:function(e,t){if(e.button!==0){return;}
var row=this.view.findRowIndex(t);var col=this.view.findCellIndex(t);if(row!==false&&col!==false){this.stopEditing();if(this.selModel.getSelectedCell){var sc=this.selModel.getSelectedCell();if(sc&&sc[0]===row&&sc[1]===col){this.startEditing(row,col);}}else{if(this.selModel.isSelected(row)){this.startEditing(row,col);}}}},onEditComplete:function(ed,value,startValue){this.editing=false;this.activeEditor=null;ed.un("specialkey",this.selModel.onEditorKey,this.selModel);var r=ed.record;var field=this.colModel.getDataIndex(ed.col);value=this.postEditValue(value,startValue,r,field);if(String(value)!==String(startValue)){var e={grid:this,record:r,field:field,originalValue:startValue,value:value,row:ed.row,column:ed.col,cancel:false};if(this.fireEvent("validateedit",e)!==false&&!e.cancel){r.set(field,e.value);delete e.cancel;this.fireEvent("afteredit",e);}}
this.view.focusCell(ed.row,ed.col);},startEditing:function(row,col){this.stopEditing();if(this.colModel.isCellEditable(col,row)){this.view.ensureVisible(row,col,true);var r=this.store.getAt(row);var field=this.colModel.getDataIndex(col);var e={grid:this,record:r,field:field,value:r.data[field],row:row,column:col,cancel:false};if(this.fireEvent("beforeedit",e)!==false&&!e.cancel){this.editing=true;var ed=this.colModel.getCellEditor(col,row);if(!ed.rendered){ed.render(this.view.getEditorParent(ed));}
(function(){ed.row=row;ed.col=col;ed.record=r;ed.on("complete",this.onEditComplete,this,{single:true});ed.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=ed;var v=this.preEditValue(r,field);ed.startEdit(this.view.getCell(row,col).firstChild,v===undefined?'':v);}).defer(50,this);}}},preEditValue:function(r,field){var value=r.data[field];return this.autoEncode&&typeof value=='string'?Ext.util.Format.htmlDecode(value):value;},postEditValue:function(value,originalValue,r,field){return this.autoEncode&&typeof value=='string'?Ext.util.Format.htmlEncode(value):value;},stopEditing:function(cancel){if(this.activeEditor){this.activeEditor[cancel===true?'cancelEdit':'completeEdit']();}
this.activeEditor=null;}});Ext.reg('editorgrid',Ext.grid.EditorGridPanel);Ext.grid.GridEditor=function(field,config){Ext.grid.GridEditor.superclass.constructor.call(this,field,config);field.monitorTab=false;};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:false});Ext.grid.PropertyRecord=Ext.data.Record.create([{name:'name',type:'string'},'value']);Ext.grid.PropertyStore=function(grid,source){this.grid=grid;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on('update',this.onUpdate,this);if(source){this.setSource(source);}
Ext.grid.PropertyStore.superclass.constructor.call(this);};Ext.extend(Ext.grid.PropertyStore,Ext.util.Observable,{setSource:function(o){this.source=o;this.store.removeAll();var data=[];for(var k in o){if(this.isEditableValue(o[k])){data.push(new Ext.grid.PropertyRecord({name:k,value:o[k]},k));}}
this.store.loadRecords({records:data},{},true);},onUpdate:function(ds,record,type){if(type==Ext.data.Record.EDIT){var v=record.data['value'];var oldValue=record.modified['value'];if(this.grid.fireEvent('beforepropertychange',this.source,record.id,v,oldValue)!==false){this.source[record.id]=v;record.commit();this.grid.fireEvent('propertychange',this.source,record.id,v,oldValue);}else{record.reject();}}},getProperty:function(row){return this.store.getAt(row);},isEditableValue:function(val){if(Ext.isDate(val)){return true;}else if(typeof val=='object'||typeof val=='function'){return false;}
return true;},setValue:function(prop,value){this.source[prop]=value;this.store.getById(prop).set('value',value);},getSource:function(){return this.source;}});Ext.grid.PropertyColumnModel=function(grid,store){this.grid=grid;var g=Ext.grid;g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:true,dataIndex:'name',id:'name',menuDisabled:true},{header:this.valueText,width:50,resizable:false,dataIndex:'value',id:'value',menuDisabled:true}]);this.store=store;var f=Ext.form;var bfield=new f.Field({autoCreate:{tag:'select',children:[{tag:'option',value:'true',html:'true'},{tag:'option',value:'false',html:'false'}]},getValue:function(){return this.el.value=='true';}});this.editors={'date':new g.GridEditor(new f.DateField({selectOnFocus:true})),'string':new g.GridEditor(new f.TextField({selectOnFocus:true})),'number':new g.GridEditor(new f.NumberField({selectOnFocus:true,style:'text-align:left;'})),'boolean':new g.GridEditor(bfield)};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this);};Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:'Name',valueText:'Value',dateFormat:'m/j/Y',renderDate:function(dateVal){return dateVal.dateFormat(this.dateFormat);},renderBool:function(bVal){return bVal?'true':'false';},isCellEditable:function(colIndex,rowIndex){return colIndex==1;},getRenderer:function(col){return col==1?this.renderCellDelegate:this.renderPropDelegate;},renderProp:function(v){return this.getPropertyName(v);},renderCell:function(val){var rv=val;if(Ext.isDate(val)){rv=this.renderDate(val);}else if(typeof val=='boolean'){rv=this.renderBool(val);}
return Ext.util.Format.htmlEncode(rv);},getPropertyName:function(name){var pn=this.grid.propertyNames;return pn&&pn[name]?pn[name]:name;},getCellEditor:function(colIndex,rowIndex){var p=this.store.getProperty(rowIndex);var n=p.data['name'],val=p.data['value'];if(this.grid.customEditors[n]){return this.grid.customEditors[n];}
if(Ext.isDate(val)){return this.editors['date'];}else if(typeof val=='number'){return this.editors['number'];}else if(typeof val=='boolean'){return this.editors['boolean'];}else{return this.editors['string'];}},destroy:function(){Ext.grid.PropertyColumnModel.superclass.destroy.call(this);for(var ed in this.editors){Ext.destroy(ed);}}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customEditors=this.customEditors||{};this.lastEditRow=null;var store=new Ext.grid.PropertyStore(this);this.propStore=store;var cm=new Ext.grid.PropertyColumnModel(this,store);store.store.sort('name','ASC');this.addEvents('beforepropertychange','propertychange');this.cm=cm;this.ds=store.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.selModel.on('beforecellselect',function(sm,rowIndex,colIndex){if(colIndex===0){this.startEditing.defer(200,this,[rowIndex,1]);return false;}},this);},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass('x-props-grid');},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source){this.setSource(this.source);}},setSource:function(source){this.propStore.setSource(source);},getSource:function(){return this.propStore.getSource();}});Ext.reg("propertygrid",Ext.grid.PropertyGrid);Ext.grid.RowNumberer=function(config){Ext.apply(this,config);if(this.rowspan){this.renderer=this.renderer.createDelegate(this);}};Ext.grid.RowNumberer.prototype={header:"",width:23,sortable:false,fixed:true,menuDisabled:true,dataIndex:'',id:'numberer',rowspan:undefined,renderer:function(v,p,record,rowIndex){if(this.rowspan){p.cellAttr='rowspan="'+this.rowspan+'"';}
return rowIndex+1;}};Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:'<div class="x-grid3-hd-checker">&#160;</div>',width:20,sortable:false,menuDisabled:true,fixed:true,dataIndex:'',id:'checker',initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on('render',function(){var view=this.grid.getView();view.mainBody.on('mousedown',this.onMouseDown,this);Ext.fly(view.innerHd).on('mousedown',this.onHdMouseDown,this);},this);},onMouseDown:function(e,t){if(e.button===0&&t.className=='x-grid3-row-checker'){e.stopEvent();var row=e.getTarget('.x-grid3-row');if(row){var index=row.rowIndex;if(this.isSelected(index)){this.deselectRow(index);}else{this.selectRow(index,true);}}}},onHdMouseDown:function(e,t){if(t.className=='x-grid3-hd-checker'){e.stopEvent();var hd=Ext.fly(t.parentNode);var isChecked=hd.hasClass('x-grid3-hd-checker-on');if(isChecked){hd.removeClass('x-grid3-hd-checker-on');this.clearSelections();}else{hd.addClass('x-grid3-hd-checker-on');this.selectAll();}}},renderer:function(v,p,record){return'<div class="x-grid3-row-checker">&#160;</div>';}});Ext.LoadMask=function(el,config){this.el=Ext.get(el);Ext.apply(this,config);if(this.store){this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('load',this.onLoad,this);this.store.on('loadexception',this.onLoad,this);this.removeMask=Ext.value(this.removeMask,false);}else{var um=this.el.getUpdater();um.showLoadIndicator=false;um.on('beforeupdate',this.onBeforeLoad,this);um.on('update',this.onLoad,this);um.on('failure',this.onLoad,this);this.removeMask=Ext.value(this.removeMask,true);}};Ext.LoadMask.prototype={msg:'Loading...',msgCls:'x-mask-loading',disabled:false,disable:function(){this.disabled=true;},enable:function(){this.disabled=false;},onLoad:function(){this.el.unmask(this.removeMask);},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls);}},show:function(){this.onBeforeLoad();},hide:function(){this.onLoad();},destroy:function(){if(this.store){this.store.un('beforeload',this.onBeforeLoad,this);this.store.un('load',this.onLoad,this);this.store.un('loadexception',this.onLoad,this);}else{var um=this.el.getUpdater();um.un('beforeupdate',this.onBeforeLoad,this);um.un('update',this.onLoad,this);um.un('failure',this.onLoad,this);}}};Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:'x-progress',animate:false,waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update");},onRender:function(ct,position){Ext.ProgressBar.superclass.onRender.call(this,ct,position);var tpl=new Ext.Template('<div class="{cls}-wrap">','<div class="{cls}-inner">','<div class="{cls}-bar">','<div class="{cls}-text">','<div>&#160;</div>','</div>','</div>','<div class="{cls}-text {cls}-text-back">','<div>&#160;</div>','</div>','</div>','</div>');if(position){this.el=tpl.insertBefore(position,{cls:this.baseCls},true);}else{this.el=tpl.append(ct,{cls:this.baseCls},true);}
if(this.id){this.el.dom.id=this.id;}
var inner=this.el.dom.firstChild;this.progressBar=Ext.get(inner.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl;}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var textBackEl=Ext.get(inner.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass('x-hidden');this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,textBackEl.dom.firstChild]);this.textEl.setWidth(inner.offsetWidth);}
this.progressBar.setHeight(inner.offsetHeight);},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value){this.updateProgress(this.value,this.text);}else{this.updateText(this.text);}},updateProgress:function(value,text,animate){this.value=value||0;if(text){this.updateText(text);}
if(this.rendered){var w=Math.floor(value*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(w,animate===true||(animate!==false&&this.animate));if(this.textTopEl){this.textTopEl.removeClass('x-hidden').setWidth(w);}}
this.fireEvent('update',this,value,text);return this;},wait:function(o){if(!this.waitTimer){var scope=this;o=o||{};this.updateText(o.text);this.waitTimer=Ext.TaskMgr.start({run:function(i){var inc=o.increment||10;this.updateProgress(((((i+inc)%inc)+1)*(100/inc))*.01,null,o.animate);},interval:o.interval||1000,duration:o.duration,onStop:function(){if(o.fn){o.fn.apply(o.scope||this);}
this.reset();},scope:scope});}
return this;},isWaiting:function(){return this.waitTimer!=null;},updateText:function(text){this.text=text||'&#160;';if(this.rendered){this.textEl.update(this.text);}
return this;},syncProgressBar:function(){if(this.value){this.updateProgress(this.value,this.text);}
return this;},setSize:function(w,h){Ext.ProgressBar.superclass.setSize.call(this,w,h);if(this.textTopEl){var inner=this.el.dom.firstChild;this.textEl.setSize(inner.offsetWidth,inner.offsetHeight);}
this.syncProgressBar();return this;},reset:function(hide){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass('x-hidden');}
if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null;}
if(hide===true){this.hide();}
return this;}});Ext.reg('progress',Ext.ProgressBar);Ext.Slider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,initComponent:function(){if(this.value===undefined){this.value=this.minValue;}
Ext.Slider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents('beforechange','change','changecomplete','dragstart','drag','dragend');if(this.vertical){Ext.apply(this,Ext.Slider.Vertical);}},onRender:function(){this.autoEl={cls:'x-slider '+(this.vertical?'x-slider-vert':'x-slider-horz'),cn:{cls:'x-slider-end',cn:{cls:'x-slider-inner',cn:[{cls:'x-slider-thumb'},{tag:'a',cls:'x-slider-focus',href:"#",tabIndex:'-1',hidefocus:'on'}]}}};Ext.Slider.superclass.onRender.apply(this,arguments);this.endEl=this.el.first();this.innerEl=this.endEl.first();this.thumb=this.innerEl.first();this.halfThumb=(this.vertical?this.thumb.getHeight():this.thumb.getWidth())/2;this.focusEl=this.thumb.next();this.initEvents();},initEvents:function(){this.thumb.addClassOnOver('x-slider-thumb-over');this.el.on('mousedown',this.onMouseDown,this);this.el.on('keydown',this.onKeyDown,this);this.focusEl.swallowEvent("click",true);this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this),onStart:this.onDragStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onDragEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(this.thumb);this.on('beforedestroy',this.tracker.destroy,this.tracker);},onMouseDown:function(e){if(this.disabled){return;}
if(this.clickToChange&&e.target!=this.thumb.dom){var local=this.innerEl.translatePoints(e.getXY());this.onClickChange(local);}
this.focus();},onClickChange:function(local){if(local.top>this.clickRange[0]&&local.top<this.clickRange[1]){this.setValue(Math.round(this.reverseValue(local.left)),undefined,true);}},onKeyDown:function(e){if(this.disabled){e.preventDefault();return;}
var k=e.getKey();switch(k){case e.UP:case e.RIGHT:e.stopEvent();if(e.ctrlKey){this.setValue(this.maxValue,undefined,true);}else{this.setValue(this.value+this.keyIncrement,undefined,true);}
break;case e.DOWN:case e.LEFT:e.stopEvent();if(e.ctrlKey){this.setValue(this.minValue,undefined,true);}else{this.setValue(this.value-this.keyIncrement,undefined,true);}
break;default:e.preventDefault();}},doSnap:function(value){if(!this.increment||this.increment==1||!value){return value;}
var newValue=value,inc=this.increment;var m=value%inc;if(m!=0){newValue-=m;if(m*2>inc){newValue+=inc;}else if(m*2<-inc){newValue-=inc;}}
return newValue.constrain(this.minValue,this.maxValue);},afterRender:function(){Ext.Slider.superclass.afterRender.apply(this,arguments);if(this.value!==undefined){var v=this.normalizeValue(this.value);if(v!==this.value){delete this.value;this.setValue(v,false);}else{this.moveThumb(this.translateValue(v),false);}}},getRatio:function(){var w=this.innerEl.getWidth();var v=this.maxValue-this.minValue;return v==0?w:(w/v);},normalizeValue:function(v){if(typeof v!='number'){v=parseInt(v);}
v=Math.round(v);v=this.doSnap(v);v=v.constrain(this.minValue,this.maxValue);return v;},setValue:function(v,animate,changeComplete){v=this.normalizeValue(v);if(v!==this.value&&this.fireEvent('beforechange',this,v,this.value)!==false){this.value=v;this.moveThumb(this.translateValue(v),animate!==false);this.fireEvent('change',this,v);if(changeComplete){this.fireEvent('changecomplete',this,v);}}},translateValue:function(v){var ratio=this.getRatio();return(v*ratio)-(this.minValue*ratio)-this.halfThumb;},reverseValue:function(pos){var ratio=this.getRatio();return(pos+this.halfThumb+(this.minValue*ratio))/ratio;},moveThumb:function(v,animate){if(!animate||this.animate===false){this.thumb.setLeft(v);}else{this.thumb.shift({left:v,stopFx:true,duration:.35});}},focus:function(){this.focusEl.focus(10);},onBeforeDragStart:function(e){return!this.disabled;},onDragStart:function(e){this.thumb.addClass('x-slider-thumb-drag');this.dragging=true;this.dragStartValue=this.value;this.fireEvent('dragstart',this,e);},onDrag:function(e){var pos=this.innerEl.translatePoints(this.tracker.getXY());this.setValue(Math.round(this.reverseValue(pos.left)),false);this.fireEvent('drag',this,e);},onDragEnd:function(e){this.thumb.removeClass('x-slider-thumb-drag');this.dragging=false;this.fireEvent('dragend',this,e);if(this.dragStartValue!=this.value){this.fireEvent('changecomplete',this,this.value);}},onDisable:function(){Ext.Slider.superclass.onDisable.call(this);this.thumb.addClass(this.disabledClass);if(Ext.isIE){var xy=this.thumb.getXY();this.thumb.hide();this.innerEl.addClass(this.disabledClass).dom.disabled=true;if(!this.thumbHolder){this.thumbHolder=this.endEl.createChild({cls:'x-slider-thumb '+this.disabledClass});}
this.thumbHolder.show().setXY(xy);}},onEnable:function(){Ext.Slider.superclass.onEnable.call(this);this.thumb.removeClass(this.disabledClass);if(Ext.isIE){this.innerEl.removeClass(this.disabledClass).dom.disabled=false;if(this.thumbHolder){this.thumbHolder.hide();}
this.thumb.show();this.syncThumb();}},onResize:function(w,h){this.innerEl.setWidth(w-(this.el.getPadding('l')+this.endEl.getPadding('r')));this.syncThumb();},syncThumb:function(){if(this.rendered){this.moveThumb(this.translateValue(this.value));}},getValue:function(){return this.value;}});Ext.reg('slider',Ext.Slider);Ext.Slider.Vertical={onResize:function(w,h){this.innerEl.setHeight(h-(this.el.getPadding('t')+this.endEl.getPadding('b')));this.syncThumb();},getRatio:function(){var h=this.innerEl.getHeight();var v=this.maxValue-this.minValue;return h/v;},moveThumb:function(v,animate){if(!animate||this.animate===false){this.thumb.setBottom(v);}else{this.thumb.shift({bottom:v,stopFx:true,duration:.35});}},onDrag:function(e){var pos=this.innerEl.translatePoints(this.tracker.getXY());var bottom=this.innerEl.getHeight()-pos.top;this.setValue(this.minValue+Math.round(bottom/this.getRatio()),false);this.fireEvent('drag',this,e);},onClickChange:function(local){if(local.left>this.clickRange[0]&&local.left<this.clickRange[1]){var bottom=this.innerEl.getHeight()-local.top;this.setValue(this.minValue+Math.round(bottom/this.getRatio()),undefined,true);}}};Ext.StatusBar=Ext.extend(Ext.Toolbar,{cls:'x-statusbar',busyIconCls:'x-status-busy',busyText:'Loading...',autoClear:5000,activeThreadId:0,initComponent:function(){if(this.statusAlign=='right'){this.cls+=' x-status-right';}
Ext.StatusBar.superclass.initComponent.call(this);},afterRender:function(){Ext.StatusBar.superclass.afterRender.call(this);var right=this.statusAlign=='right',td=Ext.get(this.nextBlock());if(right){this.tr.appendChild(td.dom);}else{td.insertBefore(this.tr.firstChild);}
this.statusEl=td.createChild({cls:'x-status-text '+(this.iconCls||this.defaultIconCls||''),html:this.text||this.defaultText||''});this.statusEl.unselectable();this.spacerEl=td.insertSibling({tag:'td',style:'width:100%',cn:[{cls:'ytb-spacer'}]},right?'before':'after');},setStatus:function(o){o=o||{};if(typeof o=='string'){o={text:o};}
if(o.text!==undefined){this.setText(o.text);}
if(o.iconCls!==undefined){this.setIcon(o.iconCls);}
if(o.clear){var c=o.clear,wait=this.autoClear,defaults={useDefaults:true,anim:true};if(typeof c=='object'){c=Ext.applyIf(c,defaults);if(c.wait){wait=c.wait;}}else if(typeof c=='number'){wait=c;c=defaults;}else if(typeof c=='boolean'){c=defaults;}
c.threadId=this.activeThreadId;this.clearStatus.defer(wait,this,[c]);}
return this;},clearStatus:function(o){o=o||{};if(o.threadId&&o.threadId!==this.activeThreadId){return this;}
var text=o.useDefaults?this.defaultText:'',iconCls=o.useDefaults?(this.defaultIconCls?this.defaultIconCls:''):'';if(o.anim){this.statusEl.fadeOut({remove:false,useDisplay:true,scope:this,callback:function(){this.setStatus({text:text,iconCls:iconCls});this.statusEl.show();}});}else{this.statusEl.hide();this.setStatus({text:text,iconCls:iconCls});this.statusEl.show();}
return this;},setText:function(text){this.activeThreadId++;this.text=text||'';if(this.rendered){this.statusEl.update(this.text);}
return this;},getText:function(){return this.text;},setIcon:function(cls){this.activeThreadId++;cls=cls||'';if(this.rendered){if(this.currIconCls){this.statusEl.removeClass(this.currIconCls);this.currIconCls=null;}
if(cls.length>0){this.statusEl.addClass(cls);this.currIconCls=cls;}}else{this.currIconCls=cls;}
return this;},showBusy:function(o){if(typeof o=='string'){o={text:o};}
o=Ext.applyIf(o||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(o);}});Ext.reg('statusbar',Ext.StatusBar);Ext.History=(function(){var iframe,hiddenField;var ready=false;var currentToken;function getHash(){var href=top.location.href,i=href.indexOf("#");return i>=0?href.substr(i+1):null;}
function doSave(){hiddenField.value=currentToken;}
function handleStateChange(token){currentToken=token;Ext.History.fireEvent('change',token);}
function updateIFrame(token){var html=['<html><body><div id="state">',token,'</div></body></html>'].join('');try{var doc=iframe.contentWindow.document;doc.open();doc.write(html);doc.close();return true;}catch(e){return false;}}
function checkIFrame(){if(!iframe.contentWindow||!iframe.contentWindow.document){setTimeout(checkIFrame,10);return;}
var doc=iframe.contentWindow.document;var elem=doc.getElementById("state");var token=elem?elem.innerText:null;var hash=getHash();setInterval(function(){doc=iframe.contentWindow.document;elem=doc.getElementById("state");var newtoken=elem?elem.innerText:null;var newHash=getHash();if(newtoken!==token){token=newtoken;handleStateChange(token);top.location.hash=token;hash=token;doSave();}else if(newHash!==hash){hash=newHash;updateIFrame(newHash);}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}
function startUp(){currentToken=hiddenField.value?hiddenField.value:getHash();if(Ext.isIE){checkIFrame();}else{var hash=getHash();setInterval(function(){var newHash=getHash();if(newHash!==hash){hash=newHash;handleStateChange(hash);doSave();}},50);ready=true;Ext.History.fireEvent('ready',Ext.History);}}
return{fieldId:'x-history-field',iframeId:'x-history-frame',events:{},init:function(onReady,scope){if(ready){Ext.callback(onReady,scope,[this]);return;}
if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(onReady,scope);});return;}
hiddenField=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){iframe=Ext.getDom(Ext.History.iframeId);}
this.addEvents('ready','change');if(onReady){this.on('ready',onReady,scope,{single:true});}
startUp();},add:function(token,preventDup){if(preventDup!==false){if(this.getToken()==token){return true;}}
if(Ext.isIE){return updateIFrame(token);}else{top.location.hash=token;return true;}},back:function(){history.go(-1);},forward:function(){history.go(1);},getToken:function(){return ready?currentToken:getHash();}};})();Ext.apply(Ext.History,new Ext.util.Observable());Ext.debug={};(function(){var cp;function createConsole(){var scriptPanel=new Ext.debug.ScriptsPanel();var logView=new Ext.debug.LogPanel();var tree=new Ext.debug.DomTree();var tabs=new Ext.TabPanel({activeTab:0,border:false,tabPosition:'bottom',items:[{title:'Debug Console',layout:'border',items:[logView,scriptPanel]},{title:'DOM Inspector',layout:'border',items:[tree]}]});cp=new Ext.Panel({id:'x-debug-browser',title:'Console',collapsible:true,animCollapse:false,style:'position:absolute;left:0;bottom:0;',height:200,logView:logView,layout:'fit',tools:[{id:'close',handler:function(){cp.destroy();cp=null;Ext.EventManager.removeResizeListener(handleResize);}}],items:tabs});cp.render(document.body);cp.resizer=new Ext.Resizable(cp.el,{minHeight:50,handles:"n",pinned:true,transparent:true,resizeElement:function(){var box=this.proxy.getBox();this.proxy.hide();cp.setHeight(box.height);return box;}});function handleResize(){cp.setWidth(Ext.getBody().getViewSize().width);}
Ext.EventManager.onWindowResize(handleResize);handleResize();}
Ext.apply(Ext,{log:function(){if(!cp){createConsole();}
cp.logView.log.apply(cp.logView,arguments);},logf:function(format,arg1,arg2,etc){Ext.log(String.format.apply(String,arguments));},dump:function(o){if(typeof o=='string'||typeof o=='number'||typeof o=='undefined'||Ext.isDate(o)){Ext.log(o);}else if(!o){Ext.log("null");}else if(typeof o!="object"){Ext.log('Unknown return type');}else if(Ext.isArray(o)){Ext.log('['+o.join(',')+']');}else{var b=["{\n"];for(var key in o){var to=typeof o[key];if(to!="function"&&to!="object"){b.push(String.format("  {0}: {1},\n",key,o[key]));}}
var s=b.join("");if(s.length>3){s=s.substr(0,s.length-2);}
Ext.log(s+"\n}");}},_timers:{},time:function(name){name=name||"def";Ext._timers[name]=new Date().getTime();},timeEnd:function(name,printResults){var t=new Date().getTime();name=name||"def";var v=String.format("{0} ms",t-Ext._timers[name]);Ext._timers[name]=new Date().getTime();if(printResults!==false){Ext.log('Timer '+(name=="def"?v:name+": "+v));}
return v;}});})();Ext.debug.ScriptsPanel=Ext.extend(Ext.Panel,{id:'x-debug-scripts',region:'east',minWidth:200,split:true,width:350,border:false,layout:'anchor',style:'border-width:0 0 0 1px;',initComponent:function(){this.scriptField=new Ext.form.TextArea({anchor:'100% -26',style:'border-width:0;'});this.trapBox=new Ext.form.Checkbox({id:'console-trap',boxLabel:'Trap Errors',checked:true});this.toolbar=new Ext.Toolbar([{text:'Run',scope:this,handler:this.evalScript},{text:'Clear',scope:this,handler:this.clear},'->',this.trapBox,' ',' ']);this.items=[this.toolbar,this.scriptField];Ext.debug.ScriptsPanel.superclass.initComponent.call(this);},evalScript:function(){var s=this.scriptField.getValue();if(this.trapBox.getValue()){try{var rt=eval(s);Ext.dump(rt===undefined?'(no return)':rt);}catch(e){Ext.log(e.message||e.descript);}}else{var rt=eval(s);Ext.dump(rt===undefined?'(no return)':rt);}},clear:function(){this.scriptField.setValue('');this.scriptField.focus();}});Ext.debug.LogPanel=Ext.extend(Ext.Panel,{autoScroll:true,region:'center',border:false,style:'border-width:0 1px 0 0',log:function(){var markup=['<div style="padding:5px !important;border-bottom:1px solid #ccc;">',Ext.util.Format.htmlEncode(Array.prototype.join.call(arguments,', ')).replace(/\n/g,'<br />').replace(/\s/g,'&#160;'),'</div>'].join('');this.body.insertHtml('beforeend',markup);this.body.scrollTo('top',100000);},clear:function(){this.body.update('');this.body.dom.scrollTop=0;}});Ext.debug.DomTree=Ext.extend(Ext.tree.TreePanel,{enableDD:false,lines:false,rootVisible:false,animate:false,hlColor:'ffff9c',autoScroll:true,region:'center',border:false,initComponent:function(){Ext.debug.DomTree.superclass.initComponent.call(this);var styles=false,hnode;var nonSpace=/^\s*$/;var html=Ext.util.Format.htmlEncode;var ellipsis=Ext.util.Format.ellipsis;var styleRe=/\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi;function findNode(n){if(!n||n.nodeType!=1||n==document.body||n==document){return false;}
var pn=[n],p=n;while((p=p.parentNode)&&p.nodeType==1&&p.tagName.toUpperCase()!='HTML'){pn.unshift(p);}
var cn=hnode;for(var i=0,len=pn.length;i<len;i++){cn.expand();cn=cn.findChild('htmlNode',pn[i]);if(!cn){return false;}}
cn.select();var a=cn.ui.anchor;treeEl.dom.scrollTop=Math.max(0,a.offsetTop-10);cn.highlight();return true;}
function nodeTitle(n){var s=n.tagName;if(n.id){s+='#'+n.id;}else if(n.className){s+='.'+n.className;}
return s;}
function onNodeSelect(t,n,last){return;if(last&&last.unframe){last.unframe();}
var props={};if(n&&n.htmlNode){if(frameEl.pressed){n.frame();}
if(inspecting){return;}
addStyle.enable();reload.setDisabled(n.leaf);var dom=n.htmlNode;stylePanel.setTitle(nodeTitle(dom));if(styles&&!showAll.pressed){var s=dom.style?dom.style.cssText:'';if(s){var m;while((m=styleRe.exec(s))!=null){props[m[1].toLowerCase()]=m[2];}}}else if(styles){var cl=Ext.debug.cssList;var s=dom.style,fly=Ext.fly(dom);if(s){for(var i=0,len=cl.length;i<len;i++){var st=cl[i];var v=s[st]||fly.getStyle(st);if(v!=undefined&&v!==null&&v!==''){props[st]=v;}}}}else{for(var a in dom){var v=dom[a];if((isNaN(a+10))&&v!=undefined&&v!==null&&v!==''&&!(Ext.isGecko&&a[0]==a[0].toUpperCase())){props[a]=v;}}}}else{if(inspecting){return;}
addStyle.disable();reload.disabled();}
stylesGrid.setSource(props);stylesGrid.treeNode=n;stylesGrid.view.fitColumns();}
this.loader=new Ext.tree.TreeLoader();this.loader.load=function(n,cb){var isBody=n.htmlNode==document.body;var cn=n.htmlNode.childNodes;for(var i=0,c;c=cn[i];i++){if(isBody&&c.id=='x-debug-browser'){continue;}
if(c.nodeType==1){n.appendChild(new Ext.debug.HtmlNode(c));}else if(c.nodeType==3&&!nonSpace.test(c.nodeValue)){n.appendChild(new Ext.tree.TreeNode({text:'<em>'+ellipsis(html(String(c.nodeValue)),35)+'</em>',cls:'x-tree-noicon'}));}}
cb();};this.root=this.setRootNode(new Ext.tree.TreeNode('Ext'));hnode=this.root.appendChild(new Ext.debug.HtmlNode(document.getElementsByTagName('html')[0]));}});Ext.debug.HtmlNode=function(){var html=Ext.util.Format.htmlEncode;var ellipsis=Ext.util.Format.ellipsis;var nonSpace=/^\s*$/;var attrs=[{n:'id',v:'id'},{n:'className',v:'class'},{n:'name',v:'name'},{n:'type',v:'type'},{n:'src',v:'src'},{n:'href',v:'href'}];function hasChild(n){for(var i=0,c;c=n.childNodes[i];i++){if(c.nodeType==1){return true;}}
return false;}
function renderNode(n,leaf){var tag=n.tagName.toLowerCase();var s='&lt;'+tag;for(var i=0,len=attrs.length;i<len;i++){var a=attrs[i];var v=n[a.n];if(v&&!nonSpace.test(v)){s+=' '+a.v+'=&quot;<i>'+html(v)+'</i>&quot;';}}
var style=n.style?n.style.cssText:'';if(style){s+=' style=&quot;<i>'+html(style.toLowerCase())+'</i>&quot;';}
if(leaf&&n.childNodes.length>0){s+='&gt;<em>'+ellipsis(html(String(n.innerHTML)),35)+'</em>&lt;/'+tag+'&gt;';}else if(leaf){s+=' /&gt;';}else{s+='&gt;';}
return s;}
var HtmlNode=function(n){var leaf=!hasChild(n);this.htmlNode=n;this.tagName=n.tagName.toLowerCase();var attr={text:renderNode(n,leaf),leaf:leaf,cls:'x-tree-noicon'};HtmlNode.superclass.constructor.call(this,attr);this.attributes.htmlNode=n;if(!leaf){this.on('expand',this.onExpand,this);this.on('collapse',this.onCollapse,this);}};Ext.extend(HtmlNode,Ext.tree.AsyncTreeNode,{cls:'x-tree-noicon',preventHScroll:true,refresh:function(highlight){var leaf=!hasChild(this.htmlNode);this.setText(renderNode(this.htmlNode,leaf));if(highlight){Ext.fly(this.ui.textNode).highlight();}},onExpand:function(){if(!this.closeNode&&this.parentNode){this.closeNode=this.parentNode.insertBefore(new Ext.tree.TreeNode({text:'&lt;/'+this.tagName+'&gt;',cls:'x-tree-noicon'}),this.nextSibling);}else if(this.closeNode){this.closeNode.ui.show();}},onCollapse:function(){if(this.closeNode){this.closeNode.ui.hide();}},render:function(bulkRender){HtmlNode.superclass.render.call(this,bulkRender);},highlightNode:function(){},highlight:function(){},frame:function(){this.htmlNode.style.border='1px solid #0000ff';},unframe:function(){this.htmlNode.style.border='';}});return HtmlNode;}();

Ext.grid.GridFilters=function(config){this.filters=new Ext.util.MixedCollection();this.filters.getKey=function(o){return o?o.dataIndex:null};for(var i=0,len=config.filters.length;i<len;i++){this.addFilter(config.filters[i]);}
this.deferredUpdate=new Ext.util.DelayedTask(this.reload,this);delete config.filters;Ext.apply(this,config);};Ext.extend(Ext.grid.GridFilters,Ext.util.Observable,{updateBuffer:500,paramPrefix:'filter',filterCls:'ux-filtered-column',local:false,autoReload:true,stateId:undefined,showMenu:true,filtersText:'Filters',init:function(grid){if(grid instanceof Ext.grid.GridPanel){this.grid=grid;this.store=this.grid.getStore();if(this.local){this.store.on('load',function(store){store.filterBy(this.getRecordFilter());},this);}else{this.store.on('beforeload',this.onBeforeLoad,this);}
this.grid.filters=this;this.grid.addEvents('filterupdate');grid.on("render",this.onRender,this);grid.on("beforestaterestore",this.applyState,this);grid.on("beforestatesave",this.saveState,this);}else if(grid instanceof Ext.PagingToolbar){this.toolbar=grid;}},applyState:function(grid,state){this.suspendStateStore=true;this.clearFilters();if(state.filters){for(var key in state.filters){var filter=this.filters.get(key);if(filter){filter.setValue(state.filters[key]);filter.setActive(true);}}}
this.deferredUpdate.cancel();if(this.local){this.reload();}
this.suspendStateStore=false;},saveState:function(grid,state){var filters={};this.filters.each(function(filter){if(filter.active){filters[filter.dataIndex]=filter.getValue();}});return state.filters=filters;},onRender:function(){var hmenu;if(this.showMenu){hmenu=this.grid.getView().hmenu;this.sep=hmenu.addSeparator();this.menu=hmenu.add(new Ext.menu.CheckItem({text:this.filtersText,menu:new Ext.menu.Menu()}));this.menu.on('checkchange',this.onCheckChange,this);this.menu.on('beforecheckchange',this.onBeforeCheck,this);hmenu.on('beforeshow',this.onMenu,this);}
this.grid.getView().on("refresh",this.onRefresh,this);this.updateColumnHeadings(this.grid.getView());},onMenu:function(filterMenu){var filter=this.getMenuFilter();if(filter){this.menu.menu=filter.menu;this.menu.setChecked(filter.active,false);}
this.menu.setVisible(filter!==undefined);this.sep.setVisible(filter!==undefined);},onCheckChange:function(item,value){this.getMenuFilter().setActive(value);},onBeforeCheck:function(check,value){return!value||this.getMenuFilter().isActivatable();},onStateChange:function(event,filter){if(event=="serialize"){return;}
if(filter==this.getMenuFilter()){this.menu.setChecked(filter.active,false);}
if(this.autoReload||this.local){this.deferredUpdate.delay(this.updateBuffer);}
var view=this.grid.getView();this.updateColumnHeadings(view);this.grid.saveState();this.grid.fireEvent('filterupdate',this,filter);},onBeforeLoad:function(store,options){options.params=options.params||{};this.cleanParams(options.params);var params=this.buildQuery(this.getFilterData());Ext.apply(options.params,params);},onRefresh:function(view){this.updateColumnHeadings(view);},getMenuFilter:function(){var view=this.grid.getView();if(!view||view.hdCtxIndex===undefined){return null;}
return this.filters.get(view.cm.config[view.hdCtxIndex].dataIndex);},updateColumnHeadings:function(view){if(!view||!view.mainHd){return;}
var hds=view.mainHd.select('td').removeClass(this.filterCls);for(var i=0,len=view.cm.config.length;i<len;i++){var filter=this.getFilter(view.cm.config[i].dataIndex);if(filter&&filter.active){hds.item(i).addClass(this.filterCls);}}},reload:function(){if(this.local){this.grid.store.clearFilter(true);this.grid.store.filterBy(this.getRecordFilter());}else{this.deferredUpdate.cancel();var store=this.grid.store;if(this.toolbar){var start=this.toolbar.paramNames.start;if(store.lastOptions&&store.lastOptions.params&&store.lastOptions.params[start]){store.lastOptions.params[start]=0;}}
store.reload();}},getRecordFilter:function(){var f=[];this.filters.each(function(filter){if(filter.active){f.push(filter);}});var len=f.length;return function(record){for(var i=0;i<len;i++){if(!f[i].validateRecord(record)){return false;}}
return true;};},addFilter:function(config){var filter=config.menu?config:new(this.getFilterClass(config.type))(config);this.filters.add(filter);Ext.util.Observable.capture(filter,this.onStateChange,this);return filter;},getFilter:function(dataIndex){return this.filters.get(dataIndex);},clearFilters:function(){this.filters.each(function(filter){filter.setActive(false);});},getFilterData:function(){var filters=[];this.filters.each(function(f){if(f.active){var d=[].concat(f.serialize());for(var i=0,len=d.length;i<len;i++){filters.push({field:f.dataIndex,data:d[i]});}}});return filters;},buildQuery:function(filters){var p={};for(var i=0,len=filters.length;i<len;i++){var f=filters[i];var root=[this.paramPrefix,'[',i,']'].join('');p[root+'[field]']=f.field;var dataPrefix=root+'[data]';for(var key in f.data){p[[dataPrefix,'[',key,']'].join('')]=f.data[key];}}
return p;},cleanParams:function(p){var regex=new RegExp("^"+this.paramPrefix+"\[[0-9]+\]");for(var key in p){if(regex.test(key)){delete p[key];}}},getFilterClass:function(type){return Ext.grid.filter[type.substr(0,1).toUpperCase()+type.substr(1)+'Filter'];}});

Ext.ns("Ext.grid.filter");Ext.grid.filter.Filter=function(config){Ext.apply(this,config);this.events={'activate':true,'deactivate':true,'update':true,'serialize':true};Ext.grid.filter.Filter.superclass.constructor.call(this);this.menu=new Ext.menu.Menu();this.init();if(config&&config.value){this.setValue(config.value);this.setActive(config.active!==false,true);delete config.value;}};Ext.extend(Ext.grid.filter.Filter,Ext.util.Observable,{active:false,dataIndex:null,menu:null,init:Ext.emptyFn,fireUpdate:function(){this.value=this.item.getValue();if(this.active){this.fireEvent("update",this);}
this.setActive(this.value.length>0);},isActivatable:function(){return true;},setActive:function(active,suppressEvent){if(this.active!=active){this.active=active;if(suppressEvent!==true){this.fireEvent(active?'activate':'deactivate',this);}}},getValue:Ext.emptyFn,setValue:Ext.emptyFn,serialize:Ext.emptyFn,validateRecord:function(){return true;}});

Ext.grid.filter.DateFilter=Ext.extend(Ext.grid.filter.Filter,{dateFormat:'m/d/Y',pickerOpts:{},beforeText:'Before',afterText:'After',onText:'On',init:function(){var opts=Ext.apply(this.pickerOpts,{minDate:this.minDate,maxDate:this.maxDate,format:this.dateFormat});var dates=this.dates={'before':new Ext.menu.CheckItem({text:this.beforeText,menu:new Ext.menu.DateMenu(opts)}),'after':new Ext.menu.CheckItem({text:this.afterText,menu:new Ext.menu.DateMenu(opts)}),'on':new Ext.menu.CheckItem({text:this.onText,menu:new Ext.menu.DateMenu(opts)})};this.menu.add(dates.before,dates.after,"-",dates.on);for(var key in dates){var date=dates[key];date.menu.on('select',this.onSelect.createDelegate(this,[date]),this);date.on('checkchange',function(){this.setActive(this.isActivatable());},this);};},onSelect:function(date,menuItem,value,picker){date.setChecked(true);var dates=this.dates;if(date==dates.on){dates.before.setChecked(false,true);dates.after.setChecked(false,true);}else{dates.on.setChecked(false,true);if(date==dates.after&&dates.before.menu.picker.value<value){dates.before.setChecked(false,true);}else if(date==dates.before&&dates.after.menu.picker.value>value){dates.after.setChecked(false,true);}}
this.fireEvent("update",this);},getFieldValue:function(field){return this.dates[field].menu.picker.getValue();},getPicker:function(field){return this.dates[field].menu.picker;},isActivatable:function(){return this.dates.on.checked||this.dates.after.checked||this.dates.before.checked;},setValue:function(value){for(var key in this.dates){if(value[key]){this.dates[key].menu.picker.setValue(value[key]);this.dates[key].setChecked(true);}else{this.dates[key].setChecked(false);}}},getValue:function(){var result={};for(var key in this.dates){if(this.dates[key].checked){result[key]=this.dates[key].menu.picker.getValue();}}
return result;},serialize:function(){var args=[];if(this.dates.before.checked){args=[{type:'date',comparison:'lt',value:this.getFieldValue('before').format(this.dateFormat)}];}
if(this.dates.after.checked){args.push({type:'date',comparison:'gt',value:this.getFieldValue('after').format(this.dateFormat)});}
if(this.dates.on.checked){args={type:'date',comparison:'eq',value:this.getFieldValue('on').format(this.dateFormat)};}
this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){if(!(record.get(this.dataIndex)instanceof Date)){return false;}
var val=record.get(this.dataIndex).clearTime(true).getTime();if(this.dates.on.checked&&val!=this.getFieldValue('on').clearTime(true).getTime()){return false;}
if(this.dates.before.checked&&val>=this.getFieldValue('before').clearTime(true).getTime()){return false;}
if(this.dates.after.checked&&val<=this.getFieldValue('after').clearTime(true).getTime()){return false;}
return true;}});

Ext.grid.filter.StringFilter=Ext.extend(Ext.grid.filter.Filter,{updateBuffer:500,icon:'js/ext-2.3.0/examples/grid-filtering/img/find.png',init:function(){var value=this.value=new Ext.menu.EditableItem({icon:this.icon});value.on('keyup',this.onKeyUp,this);this.menu.add(value);this.updateTask=new Ext.util.DelayedTask(this.fireUpdate,this);},onKeyUp:function(event){if(event.getKey()==event.ENTER){this.menu.hide(true);return;}
this.updateTask.delay(this.updateBuffer);},isActivatable:function(){return this.value.getValue().length>0;},fireUpdate:function(){if(this.active){this.fireEvent("update",this);}
this.setActive(this.isActivatable());},setValue:function(value){this.value.setValue(value);this.fireEvent("update",this);},getValue:function(){return this.value.getValue();},serialize:function(){var args={type:'string',value:this.getValue()};this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){var val=record.get(this.dataIndex);if(typeof val!="string"){return this.getValue().length==0;}
return val.toLowerCase().indexOf(this.getValue().toLowerCase())>-1;}});

Ext.grid.filter.NumericFilter=Ext.extend(Ext.grid.filter.Filter,{init:function(){this.menu=new Ext.menu.RangeMenu();this.menu.on("update",this.fireUpdate,this);},fireUpdate:function(){this.setActive(this.isActivatable());this.fireEvent("update",this);},isActivatable:function(){var value=this.menu.getValue();return value.eq!==undefined||value.gt!==undefined||value.lt!==undefined;},setValue:function(value){this.menu.setValue(value);},getValue:function(){return this.menu.getValue();},serialize:function(){var args=[];var values=this.menu.getValue();for(var key in values){args.push({type:'numeric',comparison:key,value:values[key]});}
this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){var val=record.get(this.dataIndex),values=this.menu.getValue();if(values.eq!=undefined&&val!=values.eq){return false;}
if(values.lt!=undefined&&val>=values.lt){return false;}
if(values.gt!=undefined&&val<=values.gt){return false;}
return true;}});

Ext.grid.filter.BooleanFilter=Ext.extend(Ext.grid.filter.Filter,{defaultValue:false,yesText:'Yes',noText:'No',init:function(){var gId=Ext.id();this.options=[new Ext.menu.CheckItem({text:this.yesText,group:gId,checked:this.defaultValue===true}),new Ext.menu.CheckItem({text:this.noText,group:gId,checked:this.defaultValue===false})];this.menu.add(this.options[0],this.options[1]);for(var i=0;i<this.options.length;i++){this.options[i].on('click',this.fireUpdate,this);this.options[i].on('checkchange',this.fireUpdate,this);}},isActivatable:function(){return true;},fireUpdate:function(){this.fireEvent("update",this);this.setActive(true);},setValue:function(value){this.options[value?0:1].setChecked(true);},getValue:function(){return this.options[0].checked;},serialize:function(){var args={type:'boolean',value:this.getValue()};this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){return record.get(this.dataIndex)==this.getValue();}});

Ext.grid.filter.ListFilter=Ext.extend(Ext.grid.filter.Filter,{labelField:'text',loadingText:'Loading...',loadOnShow:true,value:[],loaded:false,phpMode:false,init:function(){this.menu.add('<span class="loading-indicator">'+this.loadingText+'</span>');if(this.store&&this.loadOnShow){this.menu.on('show',this.onMenuLoad,this);}else if(this.options){var options=[];for(var i=0,len=this.options.length;i<len;i++){var value=this.options[i];switch(Ext.type(value)){case'array':options.push(value);break;case'object':options.push([value.id,value[this.labelField]]);break;case'string':options.push([value,value]);break;}}
this.store=new Ext.data.Store({reader:new Ext.data.ArrayReader({id:0},['id',this.labelField])});this.options=options;this.menu.on('show',this.onMenuLoad,this);}
this.store.on('load',this.onLoad,this);this.bindShowAdapter();},bindShowAdapter:function(){var oShow=this.menu.show;var lastArgs=null;this.menu.show=function(){if(arguments.length==0){oShow.apply(this,lastArgs);}else{lastArgs=arguments;oShow.apply(this,arguments);}};},onMenuLoad:function(){if(!this.loaded){if(this.options){this.store.loadData(this.options);}else{this.store.load();}}},onLoad:function(store,records){var visible=this.menu.isVisible();this.menu.hide(false);this.menu.removeAll();var gid=this.single?Ext.id():null;for(var i=0,len=records.length;i<len;i++){var item=new Ext.menu.CheckItem({text:records[i].get(this.labelField),group:gid,checked:this.value.indexOf(records[i].id)>-1,hideOnClick:false});item.itemId=records[i].id;item.on('checkchange',this.checkChange,this);this.menu.add(item);}
this.setActive(this.isActivatable());this.loaded=true;if(visible){this.menu.show();}},checkChange:function(item,checked){var value=[];this.menu.items.each(function(item){if(item.checked){value.push(item.itemId);}},this);this.value=value;this.setActive(this.isActivatable());this.fireEvent("update",this);},isActivatable:function(){return this.value.length>0;},setValue:function(value){var value=this.value=[].concat(value);if(this.loaded){this.menu.items.each(function(item){item.setChecked(false,true);for(var i=0,len=value.length;i<len;i++){if(item.itemId==value[i]){item.setChecked(true,true);}}},this);}
this.fireEvent("update",this);},getValue:function(){return this.value;},serialize:function(){var args={type:'list',value:this.phpMode?this.value.join(','):this.value};this.fireEvent('serialize',args,this);return args;},validateRecord:function(record){return this.getValue().indexOf(record.get(this.dataIndex))>-1;}});

Ext.menu.EditableItem=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-item",hideOnClick:false,initComponent:function(){Ext.menu.EditableItem.superclass.initComponent.call(this);this.addEvents('keyup');this.editor=this.editor||new Ext.form.TextField();if(this.text){this.editor.setValue(this.text);}},onRender:function(container){var s=container.createChild({cls:this.itemCls});Ext.apply(this.config,{width:125});this.editor.render(s);this.el=s;this.relayEvents(this.editor.el,["keyup"]);if(Ext.isGecko){s.setStyle('overflow','auto');}
Ext.menu.EditableItem.superclass.onRender.call(this,container);},getValue:function(){return this.editor.getValue();},setValue:function(value){this.editor.setValue(value);},isValid:function(preventMark){return this.editor.isValid(preventMark);}});

Ext.menu.RangeMenu=function(config){Ext.menu.RangeMenu.superclass.constructor.call(this,config);this.updateTask=new Ext.util.DelayedTask(this.fireUpdate,this);var cfg=this.fieldCfg;var cls=this.fieldCls;var fields=this.fields=Ext.applyIf(this.fields||{},{'gt':new Ext.menu.EditableItem({icon:this.icons.gt,editor:new cls(typeof cfg=="object"?cfg.gt||'':cfg)}),'lt':new Ext.menu.EditableItem({icon:this.icons.lt,editor:new cls(typeof cfg=="object"?cfg.lt||'':cfg)}),'eq':new Ext.menu.EditableItem({icon:this.icons.eq,editor:new cls(typeof cfg=="object"?cfg.gt||'':cfg)})});this.add(fields.gt,fields.lt,'-',fields.eq);for(var key in fields){fields[key].on('keyup',this.onKeyUp.createDelegate(this,[fields[key]],true),this);}
this.addEvents('update');};Ext.extend(Ext.menu.RangeMenu,Ext.menu.Menu,{fieldCls:Ext.form.NumberField,fieldCfg:'',updateBuffer:500,icons:{gt:'/img/small_icons/greater_then.png',lt:'/img/small_icons/less_then.png',eq:'/img/small_icons/equals.png'},fireUpdate:function(){this.fireEvent("update",this);},setValue:function(data){for(var key in this.fields){this.fields[key].setValue(data[key]!==undefined?data[key]:'');}
this.fireEvent("update",this);},getValue:function(){var result={};for(var key in this.fields){var field=this.fields[key];if(field.isValid()&&String(field.getValue()).length>0){result[key]=field.getValue();}}
return result;},onKeyUp:function(event,input,notSure,field){if(event.getKey()==event.ENTER&&field.isValid()){this.hide(true);return;}
if(field==this.fields.eq){this.fields.gt.setValue(null);this.fields.lt.setValue(null);}else{this.fields.eq.setValue(null);}
this.updateTask.delay(this.updateBuffer);}});

Ext.grid.GroupSummary=function(config){Ext.apply(this,config);};Ext.extend(Ext.grid.GroupSummary,Ext.util.Observable,{init:function(grid){this.grid=grid;this.cm=grid.getColumnModel();this.view=grid.getView();var v=this.view;v.doGroupEnd=this.doGroupEnd.createDelegate(this);v.afterMethod('onColumnWidthUpdated',this.doWidth,this);v.afterMethod('onAllColumnWidthsUpdated',this.doAllWidths,this);v.afterMethod('onColumnHiddenUpdated',this.doHidden,this);v.afterMethod('onUpdate',this.doUpdate,this);v.afterMethod('onRemove',this.doRemove,this);if(!this.rowTpl){this.rowTpl=new Ext.Template('<div class="x-grid3-summary-row" style="{tstyle}">','<table class="x-grid3-summary-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr></tbody>','</table></div>');this.rowTpl.disableFormats=true;}
this.rowTpl.compile();if(!this.cellTpl){this.cellTpl=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}">','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on">{value}</div>',"</td>");this.cellTpl.disableFormats=true;}
this.cellTpl.compile();},toggleSummaries:function(visible){var el=this.grid.getGridEl();if(el){if(visible===undefined){visible=el.hasClass('x-grid-hide-summary');}
el[visible?'removeClass':'addClass']('x-grid-hide-summary');}},renderSummary:function(o,cs){cs=cs||this.view.getColumnData();var cfg=this.cm.config;var buf=[],c,p={},cf,last=cs.length-1;for(var i=0,len=cs.length;i<len;i++){c=cs[i];cf=cfg[i];p.id=c.id;p.style=c.style;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');if(cf.summaryType||cf.summaryRenderer){p.value=(cf.summaryRenderer||c.renderer)(o.data[c.name],p,o);}else{p.value='';}
if(p.value==undefined||p.value==="")p.value="&#160;";buf[buf.length]=this.cellTpl.apply(p);}
return this.rowTpl.apply({tstyle:'width:'+this.view.getTotalWidth()+';',cells:buf.join('')});},calculate:function(rs,cs){var data={},r,c,cfg=this.cm.config,cf;for(var j=0,jlen=rs.length;j<jlen;j++){r=rs[j];for(var i=0,len=cs.length;i<len;i++){c=cs[i];cf=cfg[i];if(cf.summaryType){data[c.name]=Ext.grid.GroupSummary.Calculations[cf.summaryType](data[c.name]||0,r,c.name,data);}}}
return data;},doGroupEnd:function(buf,g,cs,ds,colCount){var data=this.calculate(g.rs,cs);buf.push('</div>',this.renderSummary({data:data},cs),'</div>');},doWidth:function(col,w,tw){var gs=this.view.getGroups(),s;for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;s.firstChild.rows[0].childNodes[col].style.width=w;}},doAllWidths:function(ws,tw){var gs=this.view.getGroups(),s,cells,wlen=ws.length;for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;cells=s.firstChild.rows[0].childNodes;for(var j=0;j<wlen;j++){cells[j].style.width=ws[j];}}},doHidden:function(col,hidden,tw){var gs=this.view.getGroups(),s,display=hidden?'none':'';for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;s.firstChild.rows[0].childNodes[col].style.display=display;}},refreshSummary:function(groupValue){return this.refreshSummaryById(this.view.getGroupId(groupValue));},getSummaryNode:function(gid){var g=Ext.fly(gid,'_gsummary');if(g){return g.down('.x-grid3-summary-row',true);}
return null;},refreshSummaryById:function(gid){var g=document.getElementById(gid);if(!g){return false;}
var rs=[];this.grid.store.each(function(r){if(r._groupId==gid){rs[rs.length]=r;}});var cs=this.view.getColumnData();var data=this.calculate(rs,cs);var markup=this.renderSummary({data:data},cs);var existing=this.getSummaryNode(gid);if(existing){g.removeChild(existing);}
Ext.DomHelper.append(g,markup);return true;},doUpdate:function(ds,record){this.refreshSummaryById(record._groupId);},doRemove:function(ds,record,index,isUpdate){if(!isUpdate){this.refreshSummaryById(record._groupId);}},showSummaryMsg:function(groupValue,msg){var gid=this.view.getGroupId(groupValue);var node=this.getSummaryNode(gid);if(node){node.innerHTML='<div class="x-grid3-summary-msg">'+msg+'</div>';}}});Ext.grid.GroupSummary.Calculations={'sum':function(v,record,field){return v+(record.data[field]||0);},'count':function(v,record,field,data){return data[field+'count']?++data[field+'count']:(data[field+'count']=1);},'max':function(v,record,field,data){var v=record.data[field];var max=data[field+'max']===undefined?(data[field+'max']=v):data[field+'max'];return v>max?(data[field+'max']=v):max;},'min':function(v,record,field,data){var v=record.data[field];var min=data[field+'min']===undefined?(data[field+'min']=v):data[field+'min'];return v<min?(data[field+'min']=v):min;},'average':function(v,record,field,data){var c=data[field+'count']?++data[field+'count']:(data[field+'count']=1);var t=(data[field+'total']=((data[field+'total']||0)+(record.data[field]||0)));return t===0?0:t/c;}}
Ext.grid.HybridSummary=Ext.extend(Ext.grid.GroupSummary,{calculate:function(rs,cs){var gcol=this.view.getGroupField();var gvalue=rs[0].data[gcol];var gdata=this.getSummaryData(gvalue);return gdata||Ext.grid.HybridSummary.superclass.calculate.call(this,rs,cs);},updateSummaryData:function(groupValue,data,skipRefresh){var json=this.grid.store.reader.jsonData;if(!json.summaryData){json.summaryData={};}
json.summaryData[groupValue]=data;if(!skipRefresh){this.refreshSummary(groupValue);}},getSummaryData:function(groupValue){var json=this.grid.store.reader.jsonData;if(json&&json.summaryData){return json.summaryData[groupValue];}
return null;}});

window.onbeforeunload=function(e){if(!FigtreeWeb.app.gracefulExit){var e=e||window.event;if(e){e.returnValue=' ';return'If you "Leave this page", any unsaved work will be lost eg. letters open for editing, records in update mode etc.';}
return' ';}};Ext.namespace('FigtreeWeb','FigtreeWeb.Widget','FigtreeWeb.Widget.Renderer','FigtreeWeb.Manager','FigtreeWeb.Manager.Screen','FigtreeWeb.Widget.Dialog','FigtreeWeb.Widget.Layout','FigtreeWeb.Widget.Raphael','FigtreeWeb.Widget.HighCharts','FigtreeWeb.Widget.AdHoc','FigtreeWeb.Widget.GoogleMap','FigtreeWeb.data');FigtreeWeb.Application=Ext.extend(Object,{extlib:'',singleSignOn:false,iconPath:'images/icons/',iconPlain:'/plain/',iconShadow:'/shadow/',viewport:null,screenManager:null,reportManager:null,diagnostics:null,quickSearchScreen:null,langPrefix:'il8n-',langTokenInvalidMsg:'Invalid language token: ',prefPrefix:'pref-',cacherPrefix:'cache-',gmb:null,downloader:null,cookieProvider:null,stateProvider:null,updateManager:null,gracefulLogoff:false,init:function(extlib,singleSignOn){this.extlib=extlib;this.singleSignOn=singleSignOn;this.gmb=new FigtreeWeb.GlobalMessageBus();this.gmb.addEvents({'NAVIGATE':true,'screenloading':true,'screenloaded':true,'screensubmitted':true,'screensubmitting':true,'screenactivated':true,'screendestroying':true,'quicksearchitemsvailable':true,'quicksearchwindow':true,'savingpreferences':true,'preferencessaved':true,'preferencessavefailed':true,'windowactivated':true});this.gmb.on('screenloaded',this.screenLoaded,this);this.downloader=new FigtreeWeb.Downloader();var path=location.pathname.match(/^(\/.*?)(\/|$)/);path=(path&&path.length>1)?path[1]:'';this.cookieProvider=new Ext.state.CookieProvider({path:path});this.stateProvider=new Ext.state.Provider();Ext.get(document).on('keydown',this.keyDownListener,this);var theme=this.cookieProvider.get('fw-ui-theme',undefined);if(theme!='default'){this.switchTheme(theme);}
this.viewport=new FigtreeWeb.Layout();var conn=new FigtreeWeb.Connection({url:'SystemAvailable'});conn.on('beforerequest',this.systemAvailableBefore,this);conn.on('exception',this.systemAvailableException,this);conn.on('netexception',this.systemAvailableException,this);conn.on('complete',this.systemAvailableComplete,this);conn.request();},setCache:function(key,value){this.stateProvider.set(this.cacherPrefix+key,value);},getCache:function(key){return this.stateProvider.get(this.cacherPrefix+key,undefined);},throwError:function(errorData){var dlg=new FigtreeWeb.Widget.Dialog.Error({title:(this.translate('error').indexOf(this.langTokenInvalidMsg)!=-1)?'Error':this.translate('error'),okButtonText:(this.translate('ok').indexOf(this.langTokenInvalidMsg)!=-1)?'Ok':this.translate('ok'),retryButtonText:(this.translate('retry').indexOf(this.langTokenInvalidMsg)!=-1)?'Retry':this.translate('retry'),data:errorData});dlg.show();return dlg;},translate:function(token,defaultString){if(typeof defaultString!=='string'){defaultString=this.langTokenInvalidMsg+token;}
return this.stateProvider.get(this.langPrefix+token,defaultString);},storeLanguageStrings:function(langStrings){var langItem;for(var i=0;i<langStrings.length;i++){langItem=langStrings[i];this.stateProvider.set(this.langPrefix+langItem.token,langItem.value);}},storeUserPreferences:function(preferences){if(!preferences){return;}
var pref;for(var i=0;i<preferences.length;i++){pref=preferences[i];this.stateProvider.set(this.prefPrefix+pref.name,pref.value);}},systemAvailableBefore:function(conn,params){this.viewport.getEl().mask('Please wait, checking if system is available ...','x-mask-loading');},systemAvailableComplete:function(conn,response){this.storeLanguageStrings(response.il8n);this.stateProvider.set('figtreeVersion',response.figtreeVersion);this.stateProvider.set('figwebVersion',response.figwebVersion);this.stateProvider.set('autoLogon',response.autoLogon);this.stateProvider.set('autoLogonAllowChangeExpiredPassword',response.autoLogonAllowChangeExpiredPassword);this.viewport.getEl().unmask();if(response.autoLogon){var conn=new FigtreeWeb.Connection({url:'UserLogin'});function beforeRequest(conn,params){FigtreeWeb.app.getViewport().getEl().mask(this.translate('authenticating_user'),'x-mask-loading');}
function loginException(conn,errorData){FigtreeWeb.app.getViewport().getEl().unmask();this.loginException(null,errorData);}
function loginSuccessful(conn,response){FigtreeWeb.app.getViewport().getEl().unmask();this[(response.newPasswordRequired)?'loginChangePassword':'loginSuccessful'](null,response);}
conn.on('beforerequest',beforeRequest,this);conn.on('netexception',loginException,this);conn.on('exception',loginException,this);conn.on('complete',loginSuccessful,this);conn.request.defer(100,conn,[{username:'',password:''}]);}else{var dlg=new FigtreeWeb.Widget.Dialog.Login({title:this.translate('system_login'),usernameLabel:this.translate('username'),passwordLabel:this.translate('password'),loginButtonText:this.translate('login'),headerText:this.translate('login_instructions'),waitTitle:this.translate('please_wait'),waitMsg:this.translate('authenticating_user'),url:'UserLogin',method:'post',autoLogon:response.autoLogon,constrain:true,maxUsernameLength:response.maxUsernameLength||null,showForgotPassword:response.showForgotPassword});dlg.on('loginexception',this.loginException,this);dlg.on('loginsuccessful',this.loginSuccessful,this);dlg.on('loginchangepassword',this.loginChangePassword,this);dlg.show();}},systemAvailableException:function(conn,errorData){this.viewport.getEl().unmask();this.throwError(errorData);},loginSuccessful:function(dlg,response){this.updateManager=new FigtreeWeb.UpdateManager({});this.storeLanguageStrings(response.il8n);this.storeUserPreferences(response.preferences);if(dlg){dlg.destroy();}
var username=response.username;this.stateProvider.set('username',username);this.stateProvider.set('uniqueId',response.uniqueId);var layout;if(response.overrides){layout=response.overrides.layout;if(!FigtreeWeb.Application.useBaseStyle){var style=response.overrides.style.custom;Ext.applyIf(style,response.overrides.style.dflt);var stylesheet='@charset "UTF-8"; ';for(var cls in style){stylesheet+='.'+cls+'{';for(var attrib in style[cls]){stylesheet+=attrib+':'+style[cls][attrib]+';';}
stylesheet+='}';}
var cssSelectors=response.overrides.style.selectors;Ext.applyIf(cssSelectors,response.overrides.style.defaultSelectors);for(var sel in cssSelectors){stylesheet+=sel+'{';for(var attrib in cssSelectors[sel]){stylesheet+=attrib+':'+cssSelectors[sel][attrib]+';';}
stylesheet+='}';}
this.stateProvider.set('customStyle',stylesheet);Ext.util.CSS.createStyleSheet(stylesheet,'custom-style');}}
this.viewport.reconfigure(layout,response.init);var panelMain=this.viewport.getPanel('panel-main');var panelLogo=this.viewport.getPanel('customer-logo');if(panelLogo&&response.logo){panelLogo.body.createChild({tag:'img',src:response.logo});}
if(this.viewport.findByType('fw-panel-information').length==0){this.validationViewer=new FigtreeWeb.Widget.Dialog.ValidationErrorViewer();}
if(panelMain){if(panelMain.getXType()=='tabpanel'){this.screenManager=new FigtreeWeb.Manager.Screen.TabPanel({tabPanel:panelMain,gmb:this.gmb});}else if(panelMain.getXType()=='fw-panel-main'){this.screenManager=new FigtreeWeb.Manager.Screen.SingleScreen({panel:panelMain,gmb:this.gmb});}else{this.screenManager=new FigtreeWeb.Manager.Screen.Window({gmb:this.gmb});}}
this.reportManager=new FigtreeWeb.Manager.Report({gmb:this.gmb});if(response.quickSearch){this.gmb.fireEvent('quicksearchitemsvailable',response.quickSearch);}
var action={name:'SET',type:'INFORMATION',infoType:'I',msg:this.translate('system_login'),time:this.getTime(),misc:username};this.fireAction(action);if(response.startScreen){this.setKeyHistory(response.startScreen.keyHistory);this.stateProvider.set('startscreen',response.startScreen);if(Ext.isIE){var screen=this.screenManager.getActiveScreen();screen.doGet.defer(100,screen,[response.startScreen]);}else{action={name:'NAVIGATE',params:response.startScreen};this.fireAction(action,false,this);}}
this.applyPreferences();},loginChangePassword:function(loginDlg,response){if(this.stateProvider.get('autoLogon',false)&&!this.stateProvider.get('autoLogonAllowChangeExpiredPassword',false)){this.throwError({headerText:'Password Expired',errors:[{message:'Auto-logon detected.  Password expired.  Please contact your System Administrator.'}]});}else{var username=loginDlg?loginDlg.panelForm.getForm().findField('username').getValue():'';if(username===''&&response&&response.username){username=response.username;}
var dlg=new FigtreeWeb.Widget.Dialog.ChangePassword({username:username,title:this.translate('system_login'),usernameLabel:this.translate('username'),passwordLabel:this.translate('password'),changePasswordText:this.translate('change_password'),newPasswordLabel:this.translate('new_password'),newPasswordConfirmLabel:this.translate('new_password_confirm'),headerText:this.translate('password_expired_instructions'),waitTitle:this.translate('please_wait'),waitMsg:this.translate('authenticating_user'),url:'UserLogin',method:'post'});if(loginDlg){loginDlg.destroy();}
dlg.on('loginexception',this.loginException,this);dlg.on('loginsuccessful',this.loginSuccessful,this);dlg.on('loginchangepassword',this.loginChangePassword,this);dlg.show();}},loginException:function(dlg,errorData){var errDlg=this.throwError(errorData);if(!dlg.autoLogon){errDlg.on('hide',dlg.show,dlg);}},fireActions:function(actions,context,caller){if(actions){for(var i=0;i<actions.length;i++){this.fireAction(actions[i],context,caller);}}},fireAction:function(action,context,caller){action.name=action.name.toUpperCase();if(action.type){action.type=action.type.toUpperCase();}
if(action){if(action.name=='SET'&&action.type=='POLL_INTERVAL'){this.updateManager.setPollInterval(action.interval);}else if(action.name=='PROMPT'&&action.type=='FLASH'){this.flash((action.title||''),action.message,action.duration);}else if(action.name=='LOGOUT'){this.confirmLogoff(action.force);}else if(action.name=='DOWNLOAD'){this.downloader.download(action.file,caller);}else if(action.name=='SAVE_PREFERENCES'){if(action.type!='SCREEN'&&action.type!='TABLE'){this.savePreferences();}}else if(action.name=='SHOW'){if(action.type=='DIAGNOSTICS'){if(FigtreeWeb.Diagnostics){this.diagnostics=new FigtreeWeb.Diagnostics({});this.diagnostics.on('hide',function(){this.diagnostics=null;},this);this.diagnostics.show();}}else if(action.type=='ABOUT'){var aboutDialog=new FigtreeWeb.Widget.Dialog.About({});aboutDialog.show();}else{}}else if(action.name=='OPEN_RESOURCE'){window.open(action.url,'_blank','');}else if(action.name=='SWITCH_THEME'){this.cookieProvider.set('fw-ui-theme',action.theme);this.switchTheme(action.theme);}
this.gmb.fireEvent(action.name,action,context,caller);}},screenLoaded:function(screen){if(screen&&screen.form&&screen.form.baseParams&&screen.form.baseParams.keyHistory){this.setKeyHistory(screen.form.baseParams.keyHistory);}},setKeyHistory:function(keyHistory){this.stateProvider.set('keyHistory',keyHistory);},getKeyHistory:function(screen){var keyHistory=this.stateProvider.get('keyHistory');screen=this.screenManager.getActiveScreen('',screen,false);if(screen&&screen.form&&!screen.form.isCaricaComp()&&screen.form.baseParams&&screen.form.baseParams.keyHistory){keyHistory=screen.form.baseParams.keyHistory;}
return keyHistory;},getDateFormat:function(){return this.stateProvider.get(this.langPrefix+'figweb_date_format');},getDecimalSeparator:function(){return this.stateProvider.get(this.langPrefix+'figweb_decimal_separator')||'.';},getThousandsSeparator:function(){return this.stateProvider.get(this.langPrefix+'figweb_thousands_separator')||',';},getTime:function(){var date=new Date();var hours=date.getHours();var minutes=date.getMinutes();if(minutes<10){minutes="0"+minutes;}
return hours+":"+minutes;},setQuickSearchScreen:function(quickSearchScreen){this.quickSearchScreen=quickSearchScreen;},getQuickSearchScreen:function(){if(this.quickSearchScreen&&this.quickSearchScreen.parent&&this.quickSearchScreen.parent.isVisible()){return this.quickSearchScreen;}
return undefined;},keyDownListener:function(e){var key=e.getKey();if(e.ctrlKey&&(key==3||key==e.F9)){Ext.select('.ext-el-mask').each(function(el){el.hide();});}
if(e.ctrlKey&&e.shiftKey&&e.altKey&&key==e.F12){this.fireAction({name:'SHOW',type:'DIAGNOSTICS'});}
if(key==e.BACKSPACE){var eSrc=e.getTarget().tagName.toUpperCase();if(e.getTarget().tagName.toUpperCase()!='INPUT'&&e.getTarget().tagName.toUpperCase()!='TEXTAREA'){e.stopEvent();}else{if(e.getTarget().tagName.toUpperCase()=='INPUT'&&(e.getTarget().type.toUpperCase()!='TEXT'&&e.getTarget().type.toUpperCase()!='PASSWORD')){e.stopEvent();}
else if(e.getTarget().readOnly){e.stopEvent();}}}
if(e.altKey&&(key==e.LEFT)){e.stopEvent();}},flash:function(t,s,d){var msgCt=Ext.DomHelper.insertFirst(document.body,{id:'fw-flash-div'},true);msgCt.alignTo(document,'tr-tr',[-90,10]);var s=String.format.apply(String,Array.prototype.slice.call(arguments,1));var m=Ext.DomHelper.append(msgCt,{html:this.flashBox(this.translate('information'),s)},true);m.slideIn('t').pause(d).ghost("t",{remove:true});},flashBox:function(t,s){return['<div class="fw-flash-box">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',t,'</h3>',s,'</div></div></div>','<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>','</div>'].join('');},confirmLogoff:function(force){if(!force){if(!this.screenManager.screensOkToLeave(this.confirmLogoff,this)){return;}
this.confirm(this.translate('confirm'),this.translate('confirm_logoff'),function(){this.logoff(true);},function(){},this);return;}
this.logoff();},logoff:function(){this.updateManager.destroy();this.gracefulExit=true;top.location='UserLogoff?closeBrowser='+this.stateProvider.get('autoLogon',false);},addDiagsRecord:function(rec){if(this.diagnostics){this.diagnostics.addRecord(rec);}},applyPreferences:function(){var panelNavigate=this.viewport.getPanel('panel-navigate');if(panelNavigate){var panelNavWidth=this.stateProvider.get(this.prefPrefix+'panel_nav_size');var panelNavState=this.stateProvider.get(this.prefPrefix+'panel_nav_state');if(panelNavWidth){panelNavigate.setWidth(Number(panelNavWidth));panelNavigate.ownerCt.doLayout();}
if(panelNavState&&(panelNavState=="collapse")){panelNavigate.collapse(false);}}
var panelInfo=this.viewport.getPanel('panel-information');if(panelInfo){var panelInfoHeight=this.stateProvider.get(this.prefPrefix+'panel_info_size');var panelInfoState=this.stateProvider.get(this.prefPrefix+'panel_info_state');if(panelInfoHeight){panelInfo.setHeight(Number(panelInfoHeight));panelInfo.ownerCt.doLayout();}
if(panelInfoState&&(panelInfoState=="collapse")){panelInfo.collapse(false);}}
var panelUtil=this.viewport.getPanel('panel-utility');if(panelUtil){var panelUtilTabFocus=this.stateProvider.get(this.prefPrefix+'panel_util_tab_focus');var panelUtilHeight=this.stateProvider.get(this.prefPrefix+'panel_util_size');if(panelUtilTabFocus){if(panelUtilTabFocus.indexOf('favourites')!=-1){panelUtil.activate('panel-favourites');}else if(panelUtilTabFocus.indexOf('recall')!=-1){panelUtil.activate('panel-recall');}else if(panelUtilTabFocus.indexOf('search')!=-1){panelUtil.activate('panel-quick-search');}}
if(panelUtilHeight){panelUtil.setHeight(Number(panelUtilHeight));panelUtil.ownerCt.doLayout();}}},savePreferences:function(){this.gmb.fireEvent('savingpreferences');var params={};var panelNavigate=this.viewport.getPanel('panel-navigate');if(panelNavigate){params.panel_nav_size=(panelNavigate.collapsed)?panelNavigate.width:panelNavigate.getSize().width;params.panel_nav_state=(panelNavigate.collapsed)?'collapse':'expand';}
var panelInfo=this.viewport.getPanel('panel-information');if(panelInfo){params.panel_info_size=(panelInfo.collapsed)?panelInfo.height:panelInfo.getSize().height;params.panel_info_state=(panelInfo.collapsed)?'collapse':'expand';}
var panelUtil=this.viewport.getPanel('panel-utility');if(panelUtil){params.panel_util_size=panelUtil.getSize().height;var activeUtilTab=panelUtil.getActiveTab().getId();if(activeUtilTab.indexOf('favourites')!=-1){params.panel_util_tab_focus='favourites';}else if(activeUtilTab.indexOf('recall')!=-1){params.panel_util_tab_focus='recall';}else if(activeUtilTab.indexOf('search')!=-1){params.panel_util_tab_focus='quick_search';}
var quickSearchCombo=Ext.getCmp('quick-search-combo');if(quickSearchCombo){params.panel_util_search_default=quickSearchCombo.getValue();}}
params.favourites=this.stateProvider.get('favourites',[]).join(',');var conn=new FigtreeWeb.Connection({url:'PreferencesSave'});conn.on('exception',function(conn,errorData){this.throwError(errorData);this.gmb.fireEvent('preferencessavefailed');},this);conn.on('netexception',function(conn,errorData){this.throwError(errorData);this.gmb.fireEvent('preferencessavefailed');},this);conn.on('complete',function(){this.msgBox(this.translate('information'),this.translate('preferences_saved'),'information2.png');this.gmb.fireEvent('preferencessaved');},this);conn.request(params);},msgBox:function(title,message,icon){var config={message:message,title:title,iconName:icon,iconSize:32,buttons:[{focus:true,label:this.translate('ok')}]};var prompt=new FigtreeWeb.Widget.Dialog.Prompt(config);prompt.show();},confirm:function(title,message,yes,no,scope,icon){var config={message:message,title:title,iconName:icon||'help2.png',iconSize:32,buttons:[{label:this.translate('yes'),handler:yes,scope:scope},{label:this.translate('no'),handler:no,scope:scope,focus:true}]};var prompt=new FigtreeWeb.Widget.Dialog.Prompt(config);prompt.show();},switchTheme:function(theme){if(theme){if(!FigtreeWeb.Application.useBaseStyle){var url='js/'+this.extlib+'/resources/css/';if(theme=='default'){url+'ext-all.css';}else{url+='ext-all-fw-'+theme+'.css';}
Ext.util.CSS.swapStyleSheet('themess',url);}
this.cookieProvider.set('fw-ui-theme',theme);}},getIconPlain:function(iconName,iconSize){return this.iconPath+iconSize+this.iconPlain+iconName;},getIconShadow:function(iconName,iconSize){return this.iconPath+iconSize+this.iconShadow+iconName;},diagsOn:function(){return(this.diagnostics!=null);},diagLog:function(type){if(!this.diagnostics||!this.diagnostics.loggingEnabled[type]){return;}
if(!window.console){this.throwError({errors:[{message:'Diagnostic logging could not find a console to log to. If you are on IE8, please open the developer tools by pressing F12.'}]});return;}
Function.prototype.apply.call(console.log,console,[].splice.call(arguments,1,arguments.length-1));},getStateProvider:function(){return this.stateProvider;},getGMB:function(){return this.gmb;},getViewport:function(){return this.viewport;},getScreenManager:function(){return this.screenManager;},refreshCustomStyle:function(){var i=1;var existing;while(true){existing=document.getElementById('custom-style-'+i);if(existing&&existing.href){Ext.util.CSS.swapStyleSheet('custom-style-'+i,existing.href);}else{Ext.util.CSS.refreshCache();break;}
i++;}
var css=this.stateProvider.get('customStyle','');if(css!==''){Ext.util.CSS.removeStyleSheet('custom-style');Ext.util.CSS.createStyleSheet(css,'custom-style');}},decodeCallFigAppData:function(data){try{return Ext.util.JSON.decode(data.replace(/^"/,"'").replace(/"$/,"'"));}catch(e){return null;}},dumpStack:function(){var e=new Error('dummy');var stack=e.stack.replace(/^[^\(]+?[\n$]/gm,'').replace(/^\s+at\s+/gm,'').replace(/^Object.<anonymous>\s*\(/gm,'{anonymous}()@').split('\n');console.log(stack);},compareParams:function(params1,params2){var tableRe=/(^|;)table=(.*?)($|;)/i,linkInfoRex=/(^|;)link_info;(.*?)($|;)/i,p1Module=params1.module,p2Module=params2.module,p1Cob=params1.cob,p2Cob=params2.cob,p1Table=tableRe.exec(params1.params),p2Table=tableRe.exec(params2.params),linkInfo;p1Table=(p1Table&&(p1Table.length>2))?p1Table[2]:null;p2Table=(p2Table&&(p2Table.length>2))?p2Table[2]:null;if(p1Table==='link'){linkInfo=linkInfoRex.exec(params1.params);linkInfo=(linkInfo&&(linkInfo.length>2))?linkInfo[2]:null;if(linkInfo){linkInfo=linkInfo.split(',');p1Table=linkInfo[3];p1Module=p1Table.substr(0,2);p1Table=this.mapFigtreeTable(p1Table);p1Cob=linkInfo[4]||'';}}
if(p2Table==='link'){linkInfo=linkInfoRex.exec(params2.params);linkInfo=(linkInfo&&(linkInfo.length>2))?linkInfo[2]:null;if(linkInfo){linkInfo=linkInfo.split(',');p2Table=linkInfo[3];p2Module=p2Table.substr(0,2);p2Table=this.mapFigtreeTable(p2Table);p2Cob=linkInfo[4]||'';}}
return(p1Module===p2Module)&&(p1Table===p2Table)&&((p1Cob===p2Cob)||(p1Cob===''&&p2Cob===p2Module)||(p2Cob===''&&p1Cob===p1Module));},mapFigtreeTable:function(table){var mappings=this.figtreeTableMappings||{"GCF020":"claim","WCF020":"claim","FLF270":"vehicle_booking","FLF270R":"vehicle_return","FLF450":"accessory","FSF315":"link","FSF560":"diary","FSF560K":"task","FSF030":"invoice_payment","FSF030R":"invoice_recovery","FSF035":"invoice_payline","FSF035R":"invoice_recline","FSF322":"triage_record","FSF600":"adhoc","GCF070":"other_party","GCF151":"other_party_vehicle","GEF020":"record","HKF020":"code","HKF030":"employee","HKF070":"address","HKF827":"letter","MVF151":"vehicle","PRF030":"asset","PRF035":"asset_link","POF020":"policy","FLF030":"summary","GCF030":"summary","GEF030":"summary","WCF030":"summary","GCF030P":"payment_summary","WCF030P":"payment_summary","GCF030E":"estimate","WCF030E":"estimate","FLF040":"note","GCF040":"note","GEF040":"note","HKF040":"note","POF040":"note","WCF040":"note","FLF040T":"transaction","GCF040T":"transaction","GEF040T":"transaction","HKF040T":"transaction","POF040T":"transaction","WCF040T":"transaction","FLF040F":"fast_transaction","GCF040E":"estimate_change","WCF040E":"estimate_change","GCF041":"auth_transaction","GEF041":"auth_transaction","WCF041":"auth_transaction","GCF056":"estimate_worksheet","WCF050":"estimate_worksheet","WCF056":"estimate_worksheet","WCF440":"history_record","WCF020PO":"claim_policy","GCF020PO":"claim_policy","FSF560WC":"task_claim","FSF560GC":"task_claim","HKF010":"organisation","POF060":"policy_org_range","ZZF001":"recall","ZZF002":"email","ZZF003":"none","ZZF004":"link_to_existing_records","ZZF005":"matrix","ZZF006":"advanced_search","ZZF007":"pool_vehicle","ZZF008":"risk_library","ZZF009":"pool_driver"};return mappings[table];},getFAParamValue:function(params,key){var re=new RegExp('(^|;)'+key+'(=|;)(.*?)($|;)','i');if(re.test(params)){return RegExp.$3;}
return'';}});

FigtreeWeb.Connection=function(config){this.addEvents({'beforerequest':true,'complete':true,'netexception':true,'exception':true});Ext.apply(this,config);FigtreeWeb.Connection.superclass.constructor.call(this,config);var requestTimeout=61000;this.connection=new Ext.data.Connection({timeout:requestTimeout});this.connection.on('requestcomplete',this.requestComplete,this);this.connection.on('requestexception',this.requestError,this);this.method='POST';};Ext.extend(FigtreeWeb.Connection,Ext.util.Observable,{currentParams:null,url:'',method:'GET',retrys:0,maxRetrys:3,headers:undefined,request:function(params,extraOptions){if(!params){params=this.params||{};}
this.fireEvent('beforerequest',this,params);this.currentParams=params;if(FigtreeWeb.app.diagsOn()){params.debugKey=this.url+'-'+(new Date()).getTime();this.diagsRec={time:FigtreeWeb.app.getTime(),name:(params&&params.name)?params.name:this.url,method:this.method,url:this.url,params:Ext.util.JSON.encode(params),debugKey:params.debugKey};}
var o=Ext.applyIf({url:this.url,params:params,method:this.method,headers:this.headers},extraOptions);this.connection.request(o);},requestComplete:function(connection,response,options){if(FigtreeWeb.app.diagsOn()&&this.diagsRec){this.diagsRec.response=response.responseText;FigtreeWeb.app.addDiagsRecord(this.diagsRec);}
this.retrys=0;var json;try{json=Ext.util.JSON.decode(response.responseText);}catch(e){if(response.responseText.indexOf("SAMLRequest")!==-1){Ext.MessageBox.show({title:'Authentication Error',msg:'Your session has timed out. Please log in again.',fn:function(){FigtreeWeb.app.gracefulExit=true;window.location.reload();},buttons:{ok:'Log In'}});}else{var err='';if(e&&e.description){err+=e.description;}
if(e&&e.number){err+='|'+e.number;}
if(e&&e.message){err+='|'+e.message;}
if(e&&e.name){err+='|'+e.name;}
FigtreeWeb.app.throwError({headerText:'System',errors:[{id:-1,message:'An unknown error has occurred.'+'<br>'+err}]});}
return;}
if(json.error){var errorData={headerText:'System',errors:json.content};if(json.content.length===1&&json.content[0].message.match(/the system is busy/i)){errorData.allowRetry=true;errorData.retryConn=this;}
this.fireEvent('exception',this,errorData);return;}
this.fireEvent('complete',this,json.content);},requestError:function(connection,response,options){if((response.status==-1&&response.statusText=='transaction aborted')||(response.status==0&&response.statusText=='communication failure')){this.retrys++;if(this.retrys<=this.maxRetrys){if(console&&console.log){console.log('===========================================================');console.log('Retry #'+this.retrys);console.log('To: '+this.url);console.log('Params: '+Ext.encode(this.currentParams));}
this.retry();return;}}
this.retrys=0;if(response.status==403){FigtreeWeb.app.throwError({headerText:'System',errors:[{id:-1,message:response.responseText||'CSRF'}]});return;}
var errorData={headerText:'Network',errors:[{message:'('+response.status+') '+response.statusText}]};this.fireEvent('netexception',this,errorData);},retry:function(){this.request(this.currentParams);},destroy:function(){Ext.destroy(this.connection);this.connection=null;this.purgeListeners();},addListener:function(eventName,handler,scope,options){var removeHandler=function(){this.un(eventName,handler,scope);};if((typeof eventName!="object")&&scope&&scope.on){scope.on('destroy',removeHandler,this);}
FigtreeWeb.Connection.superclass.addListener.apply(this,arguments);},abort:function(){this.connection.abort();}});FigtreeWeb.Connection.prototype.on=FigtreeWeb.Connection.prototype.addListener;

FigtreeWeb.Layout=function(layoutDefinition){var viewport=new Ext.Viewport(layoutDefinition);getDefaultLayout=function(options){return{layout:'border',items:[{region:'west',id:'panel-navigate',width:190,split:true,collapsible:true,layout:'border',hidden:((options.showMenuLeft==false)||(options.noMenus==true)),items:[{region:'north',border:false,xtype:'fw-panel-customer-logo',height:80},{region:'center',layout:'border',border:true,items:[{region:'center',border:false,id:'menu-left',xtype:'fw-menu-left',renderAs:'fw-renderer-tree'},{region:'south',border:false,id:'panel-utility',height:400,xtype:'tabpanel',tabPosition:'bottom',split:true,layoutOnTabChange:true,items:[{title:FigtreeWeb.app.translate('recall'),id:'panel-recall',xtype:'fw-menu-recall'},{title:FigtreeWeb.app.translate('search'),id:'panel-quick-search',xtype:'fw-panelquicksearch'},{title:FigtreeWeb.app.translate('favourites'),id:'panel-favourites',xtype:'fw-menu-favourites'}]}]},{region:'south',border:false,xtype:'fw-panel-powered-by',height:30}]},{region:'north',hidden:((options.showMenuTop==false)||(options.noMenus==true)),border:false,id:'menu-top',height:28,xtype:'fw-menu-main'},{region:'center',border:false,layout:'border',items:[{region:'center',id:'panel-main',xtype:'tabpanel',tabPosition:'bottom'},{region:'south',id:'panel-information',height:140,collapsible:true,titlebar:true,title:FigtreeWeb.app.translate('information'),split:true,xtype:'fw-panel-information'}]}]}};return{findByType:function(type){return viewport.findByType(type);},getPanel:function(id){var panels=viewport.findBy(function(comp){return(comp.isXType('panel')&&(comp.getId()==id));});if(panels.length>0){return panels[0];}},reconfigure:function(layoutDefinition,options){viewport.destroy();var viewportConfig={border:false,layout:'fit',items:[layoutDefinition||getDefaultLayout(options)]}
viewport=new Ext.Viewport(viewportConfig);},getEl:function(){return viewport.getEl();},add:function(panel){viewport.add(panel);viewport.doLayout()},clear:function(){while(viewport.items.first()!=null){viewport.remove(viewport.items.first(),true);}}};};

FigtreeWeb.GlobalMessageBus=function(){FigtreeWeb.GlobalMessageBus.superclass.constructor.call(this);};Ext.extend(FigtreeWeb.GlobalMessageBus,Ext.util.Observable,{broadcast:function(observable,observableEventName,gmbEventName){gmbEventName=gmbEventName||observableEventName;this.addEvents({gmbEventName:true});observable.on(observableEventName,function(){this.fireEvent.apply(this,[gmbEventName].concat(Array.prototype.slice.call(arguments,0)));},this);}});

Ext.getIeVersion=function(){var rv=-1;if(navigator.appName=='Microsoft Internet Explorer'){var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");if(re.exec(ua)!=null)
rv=parseFloat(RegExp.$1);}else if(navigator.appName=='Netscape'){var ua=navigator.userAgent;var re=new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");if(re.exec(ua)!=null)
rv=parseFloat(RegExp.$1);}
return rv;};if(Ext.isIE&&document.documentMode){Ext.isIE8=true;Ext.isIE7=false;}
var ua=navigator.userAgent;var isIE=/msie\s+(\d+)/i.exec(ua);if(isIE){Ext.isIE6=false;Ext.isIEOld=(Number(isIE[1])<9);if(!Ext.isIEOld){Ext.onReady(function(){Ext.getBody().addClass('ext-ie'+isIE[1]);if(Number(isIE[1])>=10){Ext.getBody().addClass('ext-ie10plus');}
isIE=null;});if(Number(isIE[1])>=10){Ext.isIE10Plus=true;}
Ext['isIE'+isIE[1]]=true;Ext.useShims=false;}else{Ext.onReady(function(){Ext.getBody().addClass('ext-ieold');});isIE=null;Ext.isIE6=Ext.isIE&&!Ext.isIE7&&!Ext.isIE8;}}
if(Ext.isGecko&&Ext.getIeVersion()!==-1){Ext.onReady(function(){Ext.getBody().addClass('ext-ie-gecko');});}
Ext.form.Field.prototype.afterRenderOverride=Ext.form.Field.prototype.afterRender;Ext.form.Field.prototype.afterRender=function(){this.afterRenderOverride();if((this.el!=undefined)&&(this.el.dom!=undefined)){if(this.toolTip!=undefined){if(this.isXType('checkbox')){this.innerWrap.dom.title=this.toolTip;this.imageEl.dom.title=this.toolTip;if(this.labelEl){this.labelEl.dom.title=this.toolTip;}}else{this.el.dom.title=this.toolTip;}}
if(this.readOnly==true){if(!this.isXType('fw-radioset')){this.el.dom.style.background='#EEEEEE';}
this.el.addClass('fw-readonly');}
if(this.backgroundColour!=undefined){this.el.dom.style.background=this.backgroundColour;}
if(this.foregroundColour!=undefined){this.el.dom.style.color=this.foregroundColour;}
this.setHighlighted(this.highlighted);}};Ext.form.Field.prototype.setHighlighted=function(highlighted){var highlightCls='fw-field-highlighted';this.getEl()[(highlighted===true)?'addClass':'removeClass'](highlightCls);};Ext.form.Field.prototype.adjustWidth=function(tag,w){tag=tag.toLowerCase();if(typeof w=='number'&&!Ext.isWebKit){if(Ext.isIE7&&(tag=='input'||tag=='textarea')){if(tag=='input'&&!Ext.isStrict){return this.inEditor?w:w-3;}
if(tag=='input'&&Ext.isStrict){return w-(Ext.isIE6?4:2);}
if(tag=='textarea'&&Ext.isStrict){return w-2;}}else if(Ext.isOpera&&Ext.isStrict){if(tag=='input'){return w+2;}
if(tag=='textarea'){return w-2;}}}
return w;};Ext.form.Field.prototype.setReadOnly=function(readOnly){this.readOnly=readOnly;this.el.dom.readOnly=readOnly;if(readOnly){this.el.dom.style.background='#EEEEEE';}else{this.el.dom.style.background='';}};Ext.form.Field.prototype.markInvalidOld=Ext.form.Field.prototype.markInvalid;Ext.form.Field.prototype.markInvalid=function(msg){if(!this.rendered){this.on('render',function(){this.markInvalidOld.defer(1,this,[msg]);});return;}
this.markInvalidOld(msg);};Ext.form.Field.prototype.getErrorCtOld=Ext.form.Field.prototype.getErrorCt;Ext.form.Field.prototype.getErrorCt=function(){if((this.x!=undefined)&&(this.y!=undefined)){return this.container;}
return this.getErrorCtOld();};Ext.form.Field.prototype.getDisplayValue=function(){return this.getValue();};Ext.layout.BorderLayout.Region.prototype.renderOld=Ext.layout.BorderLayout.Region.prototype.render;Ext.layout.BorderLayout.Region.prototype.render=function(ct,p){this.renderOld(ct,p);if(this.position=='south'||this.position=='north'){p.on('titlechange',this.setColElTitle,this);}};Ext.layout.BorderLayout.Region.prototype.setColElTitle=function(panel,title){if(!this.colapsedTitleEl){var el=this.getCollapsedEl();var temp=new Ext.Template('<div class="x-form-field fw-panel-collapse-text"></div>');this.colapsedTitleEl=temp.insertFirst(el,undefined,true);}
this.colapsedTitleEl.update(title);};Ext.layout.BorderLayout.Region.prototype.beforeSlide=function(){this.panel.beforeEffect();this.panel.fireEvent('beforeslidein',this.panel);};Ext.form.TriggerField.prototype.onHide=function(){if(this.hideParent){this.container.addClass('x-hide-'+this.hideMode);}else{this.wrap.dom.style.display='none';}};Ext.form.TriggerField.prototype.onShow=function(){if(this.hideParent){this.container.removeClass('x-hide-'+this.hideMode);}else{if(this.wrap){this.wrap.dom.style.display='';this.wrap.dom.style.visibility='visible';}}};if(Ext.isIE){Ext.dd.ScrollManager.refreshCacheOld=Ext.dd.ScrollManager.refreshCache;Ext.dd.ScrollManager.refreshCache=function(){try{Ext.dd.ScrollManager.refreshCacheOld.apply(Ext.dd.ScrollManager,arguments);}catch(e){}};if(Ext.isIE7&&!Ext.isStrict){Ext.form.TriggerField.prototype.afterRenderOld=Ext.form.TriggerField.prototype.afterRender;Ext.form.TriggerField.prototype.afterRender=function(){if(this.isXType('fw-triggerfield')){this.trigger.setHeight(this.getEl().getHeight());}
if(!this.isXType('fw-triggerfield')){this.getEl().setStyle({'margin':'0','padding':0});if(this.ownerCt&&this.ownerCt.initialConfig.layout=='absolute'){this.y-=2;}}
this.afterRenderOld();};}}
Ext.Window.prototype.setActiveOld=Ext.Window.prototype.setActive;Ext.Window.prototype.setActive=function(active){var gmb;this.setActiveOld(active);gmb=FigtreeWeb.app&&FigtreeWeb.app.getGMB()
if(gmb&&active){gmb.fireEvent('windowactivated',this,Ext.WindowMgr);}}
Ext.apply(Ext.BoxComponent.prototype,{initComponentOld:Ext.BoxComponent.prototype.initComponent,initComponent:function(){if(this.behaviour){var behaviour=this.behaviour;delete this.behaviour;this.initListeners(behaviour);}
this.initComponentOld.apply(this,arguments);},isCaricaComp:function(){return(this.baseType!==undefined);},initListeners:function(behaviour){for(var listenerName in behaviour){if(!behaviour[listenerName].actions){continue;}
var faFn=function(actions,caller){var context=false;for(var i=2;i<arguments.length;i++){if(arguments[i].browserEvent&&arguments[i].ctrlKey){context=true;break;}}
FigtreeWeb.app.fireActions(actions,context,caller);};faFn=faFn.createDelegate(FigtreeWeb.app.fireActions,[behaviour[listenerName].actions,this],0);this.on(listenerName,faFn,FigtreeWeb.app);}},getInactiveParentTab:function(){var tab=this.findParentBy(function(c){return c.ownerCt&&c.ownerCt.isXType('tabpanel')&&(c.ownerCt.getActiveTab()!==c);});return tab;}});Ext.form.Field.prototype.createPDFPrintXML=function(parent){if(this.fieldLabel){el=document.createElement('pdfcolumn');el.setAttribute('font','label');el.innerHTML=this.fieldLabel;el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);}
var el=document.createElement('pdfcolumn');el.setAttribute('font','data');el.innerHTML=this.getValue()||'';el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;};Ext.form.Hidden.prototype.createPDFPrintXML=undefined;Ext.Container.prototype.createPDFPrintXML=function(parent){var col=document.createElement('pdfcolumn');col.setAttribute('type','table');parent.appendChild(col);var table=document.createElement('pdftable');col.appendChild(table);if(this.layout&&(typeof this.layout=='string')){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig);this.setLayout(this.layout);if(this.activeItem!==undefined){var item=this.activeItem;delete this.activeItem;this.layout.setActiveItem(item);return;}}
if(this.getLayout().createPDFPrintXML){this.getLayout().createPDFPrintXML(this,table);}
return col;};Ext.layout.AbsoluteLayout.prototype.createPDFPrintXML=function(ct,el){var items=ct.items.filterBy(function(o){return!o.isXType('container')&&o.createPDFPrintXML&&(o.printable!=false)&&(o.hidden!=true);}).items;if(items.length>0){var pixelRange=12;var rows=[];items.sort(function(a,b){return a.y-b.y;});var lowerBound=items[0].y;var upperBound=items[items.length-1].y;var difference=upperBound-lowerBound;difference=difference+(pixelRange-(difference%pixelRange));var numberOfRows=difference/pixelRange;var item;var row;for(var i=0;i<numberOfRows;i++){rows.push({lowerBound:lowerBound+(i*pixelRange),upperBound:lowerBound+(((i+1)*pixelRange)-1),items:[]});}
for(var i=0;i<items.length;i++){item=items[i];for(var j=0;j<numberOfRows;j++){if((item.y>=rows[j].lowerBound)&&(item.y<=rows[j].upperBound)){rows[j].items.push(item);break;}}}
for(var i=0;i<numberOfRows;i++){rows[i].items.sort(function(a,b){return a.x-b.x;});}
for(var i=0;i<numberOfRows;i++){if(rows[i].items.length==0){continue;}
row=document.createElement('pdfrow');el.appendChild(row);for(var j=0;j<rows[i].items.length;j++){item=rows[i].items[j];item.createPDFPrintXML(row);}}}
Ext.layout.AbsoluteLayout.superclass.createPDFPrintXML.call(this,ct,el);};Ext.layout.ContainerLayout.prototype.createPDFPrintXML=function(ct,el){var items
var item;var row;var maxCols=0;if(el.childNodes.length==0){items=ct.items.filterBy(function(o){return o.createPDFPrintXML&&(o.printable!=false)&&(o.hidden!=true);}).items;}else{items=ct.items.filterBy(function(o){return o.isXType('container')&&o.createPDFPrintXML&&(o.printable!=false)&&(o.hidden!=true);}).items;}
for(var i=0;i<items.length;i++){item=items[i];row=document.createElement('pdfrow');el.appendChild(row);item.createPDFPrintXML(row);}
if(ct.title&&ct.title!=''){var isFrame=(ct.xtype=='fw-frame');row=document.createElement('pdfrow');el.insertBefore(row,el.firstChild);var col=document.createElement('pdfcolumn');col.innerHTML=ct.title;col.setAttribute('bgcolour','grey');col.setAttribute('fgcolour','white');col.setAttribute('font',(isFrame)?'query_description':'folder');row.appendChild(col);}
for(var i=0;i<el.childNodes.length;i++){row=el.childNodes[i];if(maxCols<row.childNodes.length){maxCols=row.childNodes.length;}}
for(var i=0;i<el.childNodes.length;i++){row=el.childNodes[i];if((row.childNodes.length<maxCols)&&row.lastChild){row.lastChild.setAttribute('colspan',(maxCols-row.childNodes.length)+1);}}
if(maxCols===0){row=document.createElement('pdfrow');el.appendChild(row);var col=document.createElement('pdfcolumn');row.appendChild(col);el.setAttribute('columns',1);}else{el.setAttribute('columns',maxCols);}};Ext.lib.Event.resolveTextNode=Ext.isGecko?function(node){if(!node){return;}
var s=HTMLElement.prototype.toString.call(node);if(s=='[xpconnect wrapped native prototype]'||s=='[object XULElement]'){return;}
return node.nodeType==3?node.parentNode:node;}:function(node){return node&&node.nodeType==3?node.parentNode:node;};Ext.Element.prototype.mask=Ext.Element.prototype.mask.createSequence(function(msg,msgClass){if(this._maskMsg){Ext.get(this._maskMsg).setStyle({'z-index':Number(Ext.get(this._mask).getStyle('z-index'))+1});}
return this._mask;});Ext.Element.prototype.setStyleOld=Ext.Element.prototype.setStyle;Ext.Element.prototype.setStyle=function(prop,value){if((typeof prop=="string")&&(prop.length===0)){return this;}
return this.setStyleOld(prop,value);};if(Ext.isIE&&!Ext.isIEOld){Ext.Element.prototype.getAttributeNS=function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name];};}
Ext.Button.prototype.autoWidth=function(){if(this.el){this.el.setWidth("auto");if((Ext.isIE7&&Ext.isStrict)||Ext.isIE8){var ib=this.btnEl;if(ib&&ib.getWidth()>20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib,this.text).width+ib.getFrameWidth('lr'));}}
if(this.minWidth){if(this.el.getWidth()<this.minWidth){this.el.setWidth(this.minWidth);}}}};Ext.Tip.prototype.doAutoWidth=function(){var bw=this.body.getTextWidth();if(this.title){bw=Math.max(bw,this.header.child('span').getTextWidth(this.title));}
bw+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr");this.setWidth(bw.constrain(this.minWidth,this.maxWidth));if(Ext.isIE&&!this.repainted){this.el.repaint();this.repainted=true;}};if(Ext.isIE){Ext.override(Ext.layout.Accordion,{setItemSize:function(item,size){if(this.fill&&item){var items=this.container.items.items;var hh=0;for(var i=0,len=items.length;i<len;i++){var p=items[i];if(p!=item){var height=(p.getSize().height-p.bwrap.getHeight());if((height<=0)){height=p.header.getHeight();}
hh+=height;}}
size.height-=hh;item.setSize(size);}}});}
RegExp.escape=function(str){return str.replace(/([.?*+^$[\]\\(){}-])/g,"\\$1");};if((typeof Range!=="undefined")&&!Range.prototype.createContextualFragment){Range.prototype.createContextualFragment=function(html){var frag=document.createDocumentFragment(),div=document.createElement("div");frag.appendChild(div);div.outerHTML=html;return frag;};}
Object.size=function(obj){var size=0,key;for(key in obj){if(obj.hasOwnProperty(key))size++;}
return size;};Ext.enableGarbageCollector=true;Ext.enableListenerCollection=true;FigtreeWeb.derefAll=function(c){for(key in c){c[key]=typeof c[key]=="function"?Ext.emptyFn:null;}};Ext.Component.prototype.destroy=function(){if(this.fireEvent("beforedestroy",this)!==false){this.beforeDestroy();if(this.rendered){this.el.removeAllListeners();this.el.remove();if(this.actionMode=="container"){this.container.remove();}}
this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy",this);this.purgeListeners();FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);this.rendered=false;}};Ext.Toolbar.Item.prototype.destroy=Ext.Toolbar.Item.prototype.destroy.createSequence(function(){delete this.td;delete this.el;});Ext.form.ComboBox.prototype.onDestroy=Ext.form.ComboBox.prototype.onDestroy.createSequence(function(){if(this.keyNav&&this.keyNav.el){delete this.keyNav.el;}});Ext.grid.GridView.prototype.destroy=Ext.grid.GridView.prototype.destroy.createSequence(function(){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);});Ext.dd.DragDrop.prototype.destroy=Ext.dd.DragDrop.prototype.destroy.createSequence(function(){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);if(this.proxy){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);}});Ext.layout.BorderLayout.Region.prototype.destroy=function(){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);};Ext.layout.BorderLayout.SplitRegion.prototype.destroy=Ext.layout.BorderLayout.SplitRegion.prototype.destroy.createSequence(function(){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);if(this.split){FigtreeWeb.derefAll.defer(10,FigtreeWeb,[this]);}});Ext.DataView.prototype.destroy=function(){if(this.all){this.all.clear();}
Ext.DataView.superclass.destroy.apply(this,arguments);};Ext.Toolbar.prototype.beforeDestroy=function(){Ext.Toolbar.superclass.beforeDestroy.call(this);if(this.rendered){if(this.items){Ext.destroy.apply(Ext,this.items.items);}
Ext.Element.uncache(this.tr);}};Ext.Toolbar.prototype.onDestroy=function(){Ext.Toolbar.superclass.onDestroy.call(this);};Ext.Button.prototype.beforeDestroy=(function(){if(this.rendered&&this.btnEl&&this.icon){this.btnEl.setStyle('background-image','none');}}).createSequence(Ext.Button.prototype.beforeDestroy);Ext.Panel.prototype.afterRender=Ext.Panel.prototype.afterRender.createSequence(function(){if(this.bottomToolbar){this.body.addClass(this.bodyCls+'-bbar');}});String.prototype.expandExponential=Ext.emptyFn;String.prototype.HMACSHA1=function(passphrase){return CryptoJS.HmacSHA1(this.valueOf(),passphrase);};String.prototype.base64Encode=function(websafe){var retVal=CryptoJS.enc.Utf8.parse(this.valueOf()).toString(CryptoJS.enc.Base64);if(websafe===true){retVal=retVal.replace('-','+').replace('_','/').replace('=','*');}
return retVal;};String.prototype.base64Decode=function(){return CryptoJS.enc.Base64.parse(this.valueOf()).toString(CryptoJS.enc.Utf8);};String.prototype.safeHTML=function(){return this.valueOf().replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot').replace(/'/g,'&#x27;').replace(/\//g,'&#x2F;');};Ext.grid.ColumnModel.override({getTotalWidth:function(includeHidden){var off=0;var v=navigator.userAgent.toLowerCase().match(/\bchrome\/\s*(\d+)\b/);if(v&&v.length==2&&(Number(v[1])>=19)){off=2;}
if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(includeHidden||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i)+off;};};};return this.totalWidth;}});Ext.Container.override({findBy:function(fn,scope){var m=[],ct=this,tbarItems=[],tbarItem=null;this.cascade(function(c){if(ct!=c&&fn.call(scope||c,c,ct)===true){m.push(c);}
if(c.topToolbar&&c.topToolbar.items){tbarItems=c.topToolbar.items;for(var i=0;i<tbarItems.getCount();i++){tbarItem=tbarItems.get(i);if(tbarItem.isXType&&fn.call(scope||tbarItem,tbarItem,ct)===true){m.push(tbarItem);}}}
if(c.bottomToolbar&&c.bottomToolbar.items){tbarItems=c.bottomToolbar.items;for(var i=0;i<tbarItems.getCount();i++){tbarItem=tbarItems.get(i);if(tbarItem.isXType&&fn.call(scope||tbarItem,tbarItem,ct)===true){m.push(tbarItem);}}}});return m;}});Ext.form.Checkbox.prototype.afterRender=Ext.form.Checkbox.prototype.afterRender.createSequence(function(){if(this.labelEl){this.labelEl.setStyle({'cursor':'pointer'});}});Ext.form.Checkbox.prototype.initCheckEvents=Ext.form.Checkbox.prototype.initCheckEvents.createSequence(function(){this.innerWrap.on('focus',this.onFocus,this);this.innerWrap.on('blur',this.onBlur,this);});Ext.data.Connection.prototype.request=(function(o){if(o&&o.params&&typeof o.params=="object"&&FigtreeWeb.app&&FigtreeWeb.app.getStateProvider()){o.params.uniqueId=FigtreeWeb.app.getStateProvider().get('uniqueId','');}}).createSequence(Ext.data.Connection.prototype.request);Ext.Element.prototype.setOpacity=function(opacity,animate){if(!animate||!A){var s=this.dom.style;if(Ext.isIE&&!Ext.isIE10Plus){s.zoom=1;s.filter=(s.filter||'').replace(/alpha\([^\)]*\)/gi,"")+
(opacity==1?"":" alpha(opacity="+opacity*100+")");}else{s.opacity=opacity;}}else{this.anim({opacity:{to:opacity}},this.preanim(arguments,1),null,.35,'easeIn');}
return this;};Ext.util.Format.commify=function(v,float){var dec='';if(float!==true){v=String(Math.round(v));}else{v=String(v);var parts=v.split('.');v=parts[0];dec=parts[1]?FigtreeWeb.app.getDecimalSeparator()+parts[1]:'';}
var r=/(\d+)(\d{3})/;while(r.test(v)){v=v.replace(r,'$1'+FigtreeWeb.app.getThousandsSeparator()+'$2');}
return v+dec;};Ext.grid.filter.ListFilter.prototype.validateRecord=function(record){var filters=this.getValue();var value=record.get(this.dataIndex);if(filters.indexOf("(Blanks)")>-1&&value==""){return true;}
return filters.indexOf(value)>-1;};Ext.layout.ContainerLayout.prototype.layout=Ext.layout.ContainerLayout.prototype.layout.createSequence(function(){var items=this.container.items.items,c;for(var i=0;i<items.length;i++){c=items[i];if(c.errorIcon&&c.errorIcon.isVisible()){c.alignErrorIcon();}}});Ext.layout.ContainerLayout.prototype.isValidParent=function(c,target){if(c&&(c.ignoreValidTarget===true)){return true;}
var el=c.getPositionEl?c.getPositionEl():c.getEl();return el.dom.parentNode==target.dom;};Ext.Container.prototype.createComponent=function(config){if(config&&config.xtype){if(FigtreeWeb.Application.wantMultiUpload&&config.xtype==='fw-fileupload'&&config.name=='note.image_id'){config.xtype='fw-multifileupload';}
if(FigtreeWeb.Application.wantComboSimpleLookups&&config.xtype==='fw-lookup'&&config.simpleLookup!==false){config.xtype='fw-lookupcombo';}}
return Ext.ComponentMgr.create(config,this.defaultType);};Ext.grid.CellSelectionModel.override({initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.getIeVersion()!==-1||(Ext.isWebKit&&!Ext.isSafari2)?"keydown":"keypress",this.handleKeyDown,this);var view=this.grid.view;view.on("refresh",this.onViewChange,this);view.on("rowupdated",this.onRowUpdated,this);view.on("beforerowremoved",this.clearSelections,this);view.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this);}}});Ext.form.Field.override({initEvents:function(){this.el.on(Ext.getIeVersion()!==-1||(Ext.isWebKit&&!Ext.isSafari2)?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var o=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,o);}});Ext.KeyNav.prototype.isKeyDown=function(){return this.forceKeyDown||Ext.getIeVersion()!==-1||(Ext.isWebKit&&!Ext.isSafari2)||Ext.isAir;};Ext.form.Label.prototype.createPDFPrintXML=function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('font','label');el.innerHTML=this.text||this.html||'';el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;};Ext.data.GroupingStore.override({applySort:function(){Ext.data.GroupingStore.superclass.applySort.call(this);if(!this.groupOnSort&&!this.remoteGroup){var gs=this.getGroupState();if(gs&&this.sortInfo&&gs!=this.sortInfo.field){this.sortData(this.groupField);}}}});Ext.util.Format.usMoney=function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var decSep=FigtreeWeb.app.getDecimalSeparator(),thouSep=FigtreeWeb.app.getThousandsSeparator(),ps=v.split('.'),whole=ps[0],sub=ps[1]?decSep+ps[1]:decSep+'00',r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,'$1'+thouSep+'$2');}
v=whole+sub;if(v.charAt(0)=='-'){return'-$'+v.substr(1);}
return"$"+v;};Ext.grid.filter.StringFilter.override({setValue:function(value){if(Ext.isArray(value)){value='';}
this.value.setValue(value);this.fireEvent("update",this);},isActivatable:function(){var value=this.value.getValue();return value&&value.length>0;},setActive:function(active){if(!this.isActivatable()){active=false;}
Ext.grid.filter.StringFilter.superclass.setActive.apply(this,arguments);}});

FigtreeWeb.UpdateManager=function(config){FigtreeWeb.UpdateManager.superclass.constructor.call(this,config);Ext.apply(this,config);this.addEvents({'destroy':true});this.connection=new FigtreeWeb.Connection({url:this.url,silent:true});this.connection.on('complete',this.requestComplete,this);this.startAutoRefresh(this.interval);};Ext.extend(FigtreeWeb.UpdateManager,Ext.util.Observable,{keyPressed:false,url:'Messages',interval:30,params:{keyPressed:false},startAutoRefresh:function(interval){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}
this.autoRefreshProcId=setInterval(this.autoRefresh.createDelegate(this),interval*1000);},autoRefresh:function(){this.params.keyPressed=this.keyPressed;this.connection.request(this.params);this.keyPressed=false;},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},requestComplete:function(conn,response){if(response.actions){FigtreeWeb.app.fireActions(response.actions,false,this);}},setPollInterval:function(interval){if(interval<5){interval=5;}
this.interval=interval;this.stopAutoRefresh();this.startAutoRefresh(this.interval);},destroy:function(){this.stopAutoRefresh();this.fireEvent('destroy',this);this.purgeListeners();}});

FigtreeWeb.Downloader=function(){};FigtreeWeb.Downloader.prototype={url:'FileDownload?nofilter=true',win:null,download:function(filename,caller){var url=this.url,caller=caller||FigtreeWeb.app.getScreenManager().getActiveScreen();if(FigtreeWeb.app&&FigtreeWeb.app.getStateProvider()){url+='&uniqueId='+FigtreeWeb.app.getStateProvider().get('uniqueId','');}
if(caller.getXType){var screen=caller.getXType()=='fw-screen'?caller:caller.findParentByType('fw-screen');if(screen.getBaseParams){var bp=screen.getBaseParams(),client=bp.client||'',module=bp.module||'',cob=bp.cob||'',params=bp.params||'',key=bp.key||'';if(screen.actionKey){params+=';grid_record_key='+screen.actionKey}
url+="&client="+encodeURIComponent(client)+"&module="+encodeURIComponent(module)+"&cob="+encodeURIComponent(cob)+"&params="+encodeURIComponent(params)+"&key="+encodeURIComponent(key)}}
filename=encodeURIComponent(filename);try{if(this.win&&!this.win.closed){this.win.close();}}catch(e){}
this.win=window.open(url+'&file='+filename,'_downloader','height=250,width=400,menubar=yes,resizable=yes,scrollbars=yes');}};

FigtreeWeb.ProtocolHandler=function(){var commander=null;Ext.onReady(function(){commander=Ext.getBody().createChild({tag:'iframe',height:0,width:0,src:Ext.SSL_SECURE_URL});});var runCmd=function(c,o,q){var cmd='figtree:\\\\';cmd+=c+'\\';cmd+=o+'\\?';q+=((q.length>0)?'&':'')+'sessionId='+FigtreeWeb.app.stateProvider.get('uniqueId');cmd+=q.base64Encode(true);commander.dom.src=cmd;};return{runCommand:runCmd};}();FigtreeWeb.PH=FigtreeWeb.ProtocolHandler;

SharepointAuthenticator={iframe:undefined,authorityEntity:undefined,repeatInterval:undefined,authUrl:undefined,doAuth:function(){this.iframe.src=this.authUrl.replace('<entityid>',encodeURIComponent(this.authorityEntity));},createAuth:function(){if(!this.authUrl||!this.authorityEntity){return;}
this.iframe=document.createElement('iframe');this.iframe.style.display='none';this.iframe.width=0;this.iframe.height=0;document.body.appendChild(this.iframe);setInterval(this.doAuth.createDelegate(this),this.repeatInterval||180000);this.doAuth();}};setTimeout(SharepointAuthenticator.createAuth.createDelegate(SharepointAuthenticator),1000);

Ext.ns('Ext.ux.layout');Ext.ux.layout.RowLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,isValidParent:function(c,target){return c.getEl().dom.parentNode==this.innerCt.dom;},onLayout:function(ct,target){var rs=ct.items.items,len=rs.length,r,i;if(!this.innerCt){target.addClass('ux-row-layout-ct');this.innerCt=target.createChild({cls:'x-row-inner'});}
this.renderAll(ct,this.innerCt);var size=target.getViewSize();if(size.width<1&&size.height<1){return;}
var h=size.height-target.getPadding('tb'),ph=h;this.innerCt.setSize({height:h});for(i=0;i<len;i++){r=rs[i];if(!r.rowHeight){ph-=(r.getSize().height+r.getEl().getMargins('tb'));}}
ph=ph<0?0:ph;for(i=0;i<len;i++){r=rs[i];if(r.rowHeight){r.setSize({height:Math.floor(r.rowHeight*ph)-r.getEl().getMargins('tb')});}}}});Ext.Container.LAYOUTS['ux.row']=Ext.ux.layout.RowLayout;

Ext.namespace("Ext.ux");Ext.ux.Calculator=function(config){Ext.ux.Calculator.superclass.constructor.call(this,config);this.id=this.id||Ext.id();this.addEvents({'cancel':true});};Ext.extend(Ext.ux.Calculator,Ext.Component,{number:'0',num1:'',num2:'',operator:'',memValue:'0',addToNum:'no',showOkBtn:true,showTips:false,decimalPrecision:4,onRender:function(){var elDom=Ext.get(document.body).createChild({tag:'div',cls:'ux-calc'});el=new Ext.Layer({constrain:true},elDom);this.standardDiv=el.createChild({tag:'div',id:'standardCalc_'+this.id,style:'float: left;'});this.stTable=this.standardDiv.createChild({tag:'table',cellspacing:0,cellpadding:0,width:150,cls:'ux-calc-container',cn:{tag:'tbody'}});var maxCols=5;var stBtns=[[{label:'&nbsp;',func:'memStore',id:'memStore_'+this.id},{label:'C',func:'clear',keys:[27],tip:'Clear All'},{label:'CE',func:'clear',tip:'Clear Entry'},{label:'BS',func:'clear',keys:[22],tip:'Backspace'},{label:'/',func:'operation',keys:[111,191]}],[{label:'MC',func:'memory',tip:' Memory Clear'},{label:'7',func:'enterDigit',keys:[55,103]},{label:'8',func:'enterDigit',keys:[56,104]},{label:'9',func:'enterDigit',keys:[57,105]},{label:'*',func:'operation',keys:[106]}],[{label:'MR',func:'memory',tip:'Memory Recall'},{label:'4',func:'enterDigit',keys:[52,100]},{label:'5',func:'enterDigit',keys:[53,101]},{label:'6',func:'enterDigit',keys:[54,102]},{label:'-',func:'operation',keys:[109]}],[{label:'MS',func:'memory',tip:'Memory Store'},{label:'1',func:'enterDigit',keys:[49,97]},{label:'2',func:'enterDigit',keys:[50,98]},{label:'3',func:'enterDigit',keys:[51,99]},{label:'+',func:'operation',keys:[107]}],[{label:'M+',func:'memory',tip:'Memory Add'},{label:'+/-',func:'plusminus'},{label:'0',func:'enterDigit',keys:[48,96]},{label:'.',func:'enterDot',keys:[110,190]},{label:'=',func:'equals',keys:[10,13]}],[{label:'OK',func:'ok'}]];this.keyMap=new Ext.KeyMap(el,{});var row=document.createElement('tr');this.stTable.dom.tBodies[0].appendChild(row);row=Ext.get(row);var cell=Ext.get(row.dom.appendChild(document.createElement('td')));cell.dom.colSpan=maxCols;this.inputBox=new Ext.form.TextField({id:this.id,name:this.id,width:150,readOnly:true,cls:'ux-calc-input',value:'0'});this.inputBox.render(cell);for(i=0;i<stBtns.length;i++){if(!this.showOkBtn&&i==stBtns.length-1){break;}
var btn=stBtns[i];var row=document.createElement('tr');this.stTable.dom.tBodies[0].appendChild(row);row=Ext.get(row);row.dom.className='ux-calc-btn-row';for(j=0;j<btn.length;j++){var cell=Ext.get(row.dom.appendChild(document.createElement('td')));cell.dom.id=btn[j].id||Ext.id();cell.dom.innerHTML=btn[j].label;cell.dom.width='30';cell.dom.align='center';cell.dom.valign='center';switch(btn[j].func){case'enterDigit':var cls='ux-calc-digit';break;case'operation':var cls='ux-calc-operator';break;case'equals':var cls='ux-calc-equals';break;case'clear':var cls='ux-calc-memory';break;case'memory':var cls='ux-calc-memory';break;case'memStore':var cls='ux-calc-memstore';break;case'ok':var cls='ux-calc-ok';cell.dom.innerHTML='';var btnOk=new Ext.Button({text:btn[j].label,renderTo:cell,handler:this.onClick.createDelegate(this,[null,this,{button:btn[j],viaKbd:true,cell:cell}])});row.dom.className='';break;default:cls='ux-calc-misc';}
cell.dom.className=cls;if(j==btn.length-1&&j<maxCols-1){cell.dom.colSpan=(maxCols-j+1);}
if(btn[j].func!='memStore'&&btn[j].func!='ok'){cell.addClassOnOver('ux-calc-btn-hover');cell.on('click',this.onClick,this,{button:btn[j]});}
if(btn[j].keys){this.keyMap.addBinding({key:btn[j].keys,fn:this.onClick.createDelegate(this,[null,this,{button:btn[j],viaKbd:true,cell:cell}]),scope:this});}
if(this.showTips&&btn[j].tip){Ext.QuickTips.register({target:cell,text:btn[j].tip});}}}
this.keyMap.enable();this.el=el;},getValue:function(){return this.inputBox.getValue();},setValue:function(value){this.number=value;this.inputBox.setValue(this.number);},onClick:function(e,el,opt){if(opt.viaKbd){Ext.get(opt.cell).highlight('FF0000',{attr:'color',duration:.3});}
var s='this.'+opt.button.func+'(\''+opt.button.label+'\');';eval(s);},updateDisplay:function(){if(this.number=='Infinity'){this.number='0';}
this.inputBox.setValue(this.number);},enterDigit:function(n){if(this.addToNum=='yes'){this.number+=n;if(this.number.charAt(0)==0&&this.number.indexOf('.')==-1){this.number=this.number.substring(1);}}
else{if(this.addToNum=='reset'){this.reset();}
this.number=n;this.addToNum='yes';}
this.updateDisplay();},enterDot:function(){if(this.addToNum=='yes'){if(this.number.indexOf('.')!=-1){return;}
this.number+='.';}
else{if(this.addToNum=='reset'){this.reset();}
this.number='0.';this.addToNum='yes';}
this.updateDisplay();},plusminus:function(){if(this.number=='0'){return;}
this.number=(this.number.charAt(0)=='-')?this.number.substring(1):'-'+this.number;this.updateDisplay();},reset:function(){this.number='0';this.addToNum='no';this.num1='';this.num2='';this.operator='';},clear:function(o){switch(o){case'C':this.clearAll();break;case'CE':this.clearEntry();break;case'BS':this.backspace();break;default:break;}},clearAll:function(){this.reset();this.updateDisplay();},clearEntry:function(){this.number='0';this.addToNum='no';this.updateDisplay();},backspace:function(){var n=this.number+'';if(n=='0'){return;}
this.number=n.substring(0,n.length-1);this.updateDisplay();},memory:function(o){switch(o){case'M+':this.memStore(true);break;case'MS':this.memStore();break;case'MR':this.memRecall();break;case'MC':this.memClear();break;default:break;}},memStore:function(add){if(!this.number||this.number=='0'){return;}
else{this.memValue=(add===true)?this.calculate(this.number,this.memValue,'+'):this.number;var memDiv=Ext.get('memStore_'+this.id);memDiv.dom.innerHTML='M';if(this.showTips){Ext.QuickTips.register({target:memDiv,text:'Memory: <b>'+this.memValue+'</b>'});}}},memRecall:function(){if(this.memValue!='0'){this.number=this.memValue;if(this.num1){this.num2=this.memValue;}
this.updateDisplay();}},memClear:function(){this.memValue='0';var memDiv=Ext.get('memStore_'+this.id);memDiv.dom.innerHTML='&nbsp;';if(this.showTips){Ext.QuickTips.unregister(memDiv);}},accuracyCheck:function(result){var i,n,j,k;var check;for(i=0;i<9;i++){check=result*Math.pow(10,i);k=i+1;n=Math.abs(Math.round(check)-check);j=Math.pow(10,-(12-i));if(n<j){return Math.round(check)*Math.pow(10,-i);}}
return result;},calculate:function(o1,o2,op){var result;if(op=='='){result=o1=o2;o2='';}
else{result=eval('o1 + op + o2');result=eval(result);}
return this.fixPrecision(result);},operation:function(op){if(this.num1==''&&typeof(this.num1)=='string'){this.num1=parseFloat(this.number);this.operator=op;this.addToNum='no';}
else{if(this.addToNum=='yes'){this.num2=parseFloat(this.number);this.num1=this.calculate(this.num1,this.num2,this.operator);this.number=this.accuracyCheck(this.num1)+'';this.updateDisplay();this.operator=op;this.addToNum='no';}
else{this.operator=op;this.addToNum='no';}}},equals:function(){if(this.addToNum=='yes'){if(this.num1==''&&typeof(this.num1)=='string'){this.operator='=';this.num1=parseFloat(this.number);this.addToNum='no';}
else{this.num2=parseFloat(this.number);this.num1=this.calculate(this.num1,this.num2,this.operator);this.number=this.accuracyCheck(this.num1)+'';this.updateDisplay();this.addToNum='reset';}}
else{if(this.num1==''&&typeof(this.num1)=='string'){return;}
else{if(this.num2==''&&typeof(this.num2)=='string'){this.num2=this.num1;}
this.num1=this.calculate(this.num1,this.num2,this.operator);this.number=this.accuracyCheck(this.num1)+'';this.updateDisplay();this.addToNum='reset';}}},alignTo:function(el,pos){if(this.el){this.el.alignTo(el,pos);}},ok:function(){this.fireEvent('hide',this);},mouseDownOutside:function(e){if(!e.getTarget('.ux-calc')){this.fireEvent('cancel',this);}},show:function(){if(this.el){this.el.show();this.inputBox.el.dom.focus();}
Ext.get(document).on("mousedown",this.mouseDownOutside,this);},hide:function(){if(this.el&&this.el.isVisible()){this.el.hide();}
Ext.get(document).un("mousedown",this.mouseDownOutside,this);},fixPrecision:function(value){if(isNaN(value)){return value;}
return parseFloat(this.decimalPrecisionFcn(value));},decimalPrecisionFcn:function(v){var f=Math.pow(10,this.decimalPrecision);return Math.round(parseFloat(v)*f)/f;}});

Ext.namespace("Ext.ux.Utils");Ext.ux.Utils.EventQueue=function(handler,scope){if(!handler){throw"Handler is required."}this.handler=handler;this.scope=scope||window;this.queue=[];this.is_processing=false;this.postEvent=function(event,data){data=data||null;this.queue.push({event:event,data:data});if(!this.is_processing){this.process()}};this.flushEventQueue=function(){this.queue=[]},this.process=function(){while(this.queue.length>0){this.is_processing=true;var event_data=this.queue.shift();this.handler.call(this.scope,event_data.event,event_data.data)}this.is_processing=false}};Ext.ux.Utils.FSA=function(initial_state,trans_table,trans_table_scope){this.current_state=initial_state;this.trans_table=trans_table||{};this.trans_table_scope=trans_table_scope||window;Ext.ux.Utils.FSA.superclass.constructor.call(this,this.processEvent,this)};Ext.extend(Ext.ux.Utils.FSA,Ext.ux.Utils.EventQueue,{current_state:null,trans_table:null,trans_table_scope:null,state:function(){return this.current_state},processEvent:function(event,data){var transitions=this.currentStateEventTransitions(event);if(!transitions){throw"State '"+this.current_state+"' has no transition for event '"+event+"'."}for(var i=0,len=transitions.length;i<len;i++){var transition=transitions[i];var predicate=transition.predicate||transition.p||true;var action=transition.action||transition.a||Ext.emptyFn;var new_state=transition.state||transition.s||this.current_state;var scope=transition.scope||this.trans_table_scope;if(this.computePredicate(predicate,scope,data,event)){this.callAction(action,scope,data,event);this.current_state=new_state;return}}throw"State '"+this.current_state+"' has no transition for event '"+event+"' in current context"},currentStateEventTransitions:function(event){return this.trans_table[this.current_state]?this.trans_table[this.current_state][event]||false:false},computePredicate:function(predicate,scope,data,event){var result=false;switch(Ext.type(predicate)){case"function":result=predicate.call(scope,data,event,this);break;case"array":result=true;for(var i=0,len=predicate.length;result&&(i<len);i++){if(Ext.type(predicate[i])=="function"){result=predicate[i].call(scope,data,event,this)}else{throw["Predicate: ",predicate[i],' is not callable in "',this.current_state,'" state for event "',event].join("")}}break;case"boolean":result=predicate;break;default:throw["Predicate: ",predicate,' is not callable in "',this.current_state,'" state for event "',event].join("")}return result},callAction:function(action,scope,data,event){switch(Ext.type(action)){case"array":for(var i=0,len=action.length;i<len;i++){if(Ext.type(action[i])=="function"){action[i].call(scope,data,event,this)}else{throw["Action: ",action[i],' is not callable in "',this.current_state,'" state for event "',event].join("")}}break;case"function":action.call(scope,data,event,this);break;default:throw["Action: ",action,' is not callable in "',this.current_state,'" state for event "',event].join("")}}});Ext.namespace("Ext.ux.UploadDialog");Ext.ux.UploadDialog.BrowseButton=Ext.extend(Ext.Button,{input_name:"file",input_file:null,original_handler:null,original_scope:null,initComponent:function(){Ext.ux.UploadDialog.BrowseButton.superclass.initComponent.call(this);this.original_handler=this.handler||null;this.original_scope=this.scope||window;this.handler=null;this.scope=null},onRender:function(ct,position){Ext.ux.UploadDialog.BrowseButton.superclass.onRender.call(this,ct,position);this.createInputFile()},createInputFile:function(){var button_container=this.el.child(".x-btn-center");button_container.position("relative");this.input_file=Ext.DomHelper.append(button_container,{tag:"input",type:"file",size:1,name:this.input_name||Ext.id(this.el),style:"position: absolute; display: block; border: none; cursor: pointer"},true);this.input_file.setOpacity(0);this.adjustInputFileBox();if(this.handleMouseEvents){this.input_file.on("mouseover",this.onMouseOver,this);this.input_file.on("mousedown",this.onMouseDown,this)}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:this.input_file},this.tooltip))}else{this.input_file.dom[this.tooltipType]=this.tooltip}}this.input_file.on("change",this.onInputFileChange,this);this.input_file.on("click",function(e){e.stopPropagation()})},autoWidth:function(){Ext.ux.UploadDialog.BrowseButton.superclass.autoWidth.call(this);this.adjustInputFileBox()},adjustInputFileBox:function(){var btn_cont,btn_box,inp_box,adj;if(this.el&&this.input_file){btn_cont=this.el.child(".x-btn-center");btn_box=btn_cont.getBox();this.input_file.setStyle("font-size",(btn_box.width*0.5)+"px");inp_box=this.input_file.getBox();adj={x:3,y:3};if(Ext.isIE){adj={x:-3,y:3}}this.input_file.setLeft(btn_box.width-inp_box.width+adj.x+"px");this.input_file.setTop(btn_box.height-inp_box.height+adj.y+"px")}},detachInputFile:function(no_create){var result=this.input_file;no_create=no_create||false;if(typeof this.tooltip=="object"){Ext.QuickTips.unregister(this.input_file)}else{this.input_file.dom[this.tooltipType]=null}this.input_file.removeAllListeners();this.input_file=null;if(!no_create){this.createInputFile()}return result},getInputFile:function(){return this.input_file},disable:function(){Ext.ux.UploadDialog.BrowseButton.superclass.disable.call(this);this.input_file.dom.disabled=true},enable:function(){Ext.ux.UploadDialog.BrowseButton.superclass.enable.call(this);this.input_file.dom.disabled=false},destroy:function(){var input_file=this.detachInputFile(true);input_file.remove();input_file=null;Ext.ux.UploadDialog.BrowseButton.superclass.destroy.call(this)},onInputFileChange:function(){if(this.original_handler){this.original_handler.call(this.original_scope,this)}}});Ext.ux.UploadDialog.TBBrowseButton=Ext.extend(Ext.ux.UploadDialog.BrowseButton,{hideParent:true,onDestroy:function(){Ext.ux.UploadDialog.TBBrowseButton.superclass.onDestroy.call(this);if(this.container){this.container.remove()}}});Ext.ux.UploadDialog.FileRecord=Ext.data.Record.create([{name:"filename"},{name:"state",type:"int"},{name:"note"},{name:"input_element"}]);Ext.ux.UploadDialog.FileRecord.STATE_QUEUE=0;Ext.ux.UploadDialog.FileRecord.STATE_FINISHED=1;Ext.ux.UploadDialog.FileRecord.STATE_FAILED=2;Ext.ux.UploadDialog.FileRecord.STATE_PROCESSING=3;Ext.ux.UploadDialog.Dialog=function(config){var default_config={border:false,width:450,height:300,minWidth:450,minHeight:300,plain:true,constrainHeader:true,draggable:true,closable:true,maximizable:false,minimizable:false,resizable:true,autoDestroy:true,closeAction:"hide",title:this.i18n.title,cls:"ext-ux-uploaddialog-dialog",url:"",base_params:{},permitted_extensions:[],reset_on_hide:true,allow_close_on_upload:false,upload_autostart:false,post_var_name:"file"};config=Ext.applyIf(config||{},default_config);config.layout="absolute";Ext.ux.UploadDialog.Dialog.superclass.constructor.call(this,config)};Ext.extend(Ext.ux.UploadDialog.Dialog,Ext.Window,{fsa:null,state_tpl:null,form:null,grid_panel:null,progress_bar:null,is_uploading:false,initial_queued_count:0,upload_frame:null,initComponent:function(){Ext.ux.UploadDialog.Dialog.superclass.initComponent.call(this);var tt={created:{"window-render":[{action:[this.createForm,this.createProgressBar,this.createGrid],state:"rendering"}],destroy:[{action:this.flushEventQueue,state:"destroyed"}]},rendering:{"grid-render":[{action:[this.fillToolbar,this.updateToolbar],state:"ready"}],destroy:[{action:this.flushEventQueue,state:"destroyed"}]},ready:{"file-selected":[{predicate:[this.fireFileTestEvent,this.isPermittedFile],action:this.addFileToUploadQueue,state:"adding-file"},{action:this.resetAddButton}],"grid-selection-change":[{action:this.updateToolbar}],"remove-files":[{action:[this.removeFiles,this.fireFileRemoveEvent]}],"reset-queue":[{action:[this.resetQueue,this.fireResetQueueEvent]}],"start-upload":[{predicate:this.hasUnuploadedFiles,action:[this.setUploadingFlag,this.saveInitialQueuedCount,this.updateToolbar,this.updateProgressBar,this.prepareNextUploadTask,this.fireUploadStartEvent],state:"uploading"},{}],"stop-upload":[{}],hide:[{predicate:[this.isNotEmptyQueue,this.getResetOnHide],action:[this.resetQueue,this.fireResetQueueEvent]},{}],destroy:[{action:this.flushEventQueue,state:"destroyed"}]},"adding-file":{"file-added":[{predicate:this.isUploading,action:[this.incInitialQueuedCount,this.updateProgressBar,this.fireFileAddEvent],state:"uploading"},{predicate:this.getUploadAutostart,action:[this.startUpload,this.fireFileAddEvent],state:"ready"},{action:[this.updateToolbar,this.fireFileAddEvent],state:"ready"}]},uploading:{"file-selected":[{predicate:[this.fireFileTestEvent,this.isPermittedFile],action:this.addFileToUploadQueue,state:"adding-file"},{action:this.resetAddButton}],"grid-selection-change":[{}],"start-upload":[{}],"stop-upload":[{predicate:this.hasUnuploadedFiles,action:[this.resetUploadingFlag,this.abortUpload,this.updateToolbar,this.updateProgressBar,this.fireUploadStopEvent],state:"ready"},{action:[this.resetUploadingFlag,this.abortUpload,this.updateToolbar,this.updateProgressBar,this.fireUploadStopEvent,this.fireUploadCompleteEvent],state:"ready"}],"file-upload-start":[{predicate:this.fireBeforeFileUploadStartEvent,action:[this.uploadFile,this.findUploadFrame,this.fireFileUploadStartEvent]},{action:this.postFileUploadCancelEvent}],"file-upload-success":[{predicate:this.hasUnuploadedFiles,action:[this.resetUploadFrame,this.updateRecordState,this.updateProgressBar,this.prepareNextUploadTask,this.fireUploadSuccessEvent]},{action:[this.resetUploadFrame,this.resetUploadingFlag,this.updateRecordState,this.updateToolbar,this.updateProgressBar,this.fireUploadSuccessEvent,this.fireUploadCompleteEvent],state:"ready"}],"file-upload-error":[{predicate:this.hasUnuploadedFiles,action:[this.resetUploadFrame,this.updateRecordState,this.updateProgressBar,this.prepareNextUploadTask,this.fireUploadErrorEvent]},{action:[this.resetUploadFrame,this.resetUploadingFlag,this.updateRecordState,this.updateToolbar,this.updateProgressBar,this.fireUploadErrorEvent,this.fireUploadCompleteEvent],state:"ready"}],"file-upload-failed":[{predicate:this.hasUnuploadedFiles,action:[this.resetUploadFrame,this.updateRecordState,this.updateProgressBar,this.prepareNextUploadTask,this.fireUploadFailedEvent]},{action:[this.resetUploadFrame,this.resetUploadingFlag,this.updateRecordState,this.updateToolbar,this.updateProgressBar,this.fireUploadFailedEvent,this.fireUploadCompleteEvent],state:"ready"}],"file-upload-canceled":[{predicate:this.hasUnuploadedFiles,action:[this.setRecordCanceledState,this.updateProgressBar,this.prepareNextUploadTask,this.fireUploadCanceledEvent]},{action:[this.resetUploadingFlag,this.setRecordCanceledState,this.updateToolbar,this.updateProgressBar,this.fireUploadCanceledEvent,this.fireUploadCompleteEvent],state:"ready"}],hide:[{predicate:this.getResetOnHide,action:[this.stopUpload,this.repostHide]},{}],destroy:[{predicate:this.hasUnuploadedFiles,action:[this.resetUploadingFlag,this.abortUpload,this.fireUploadStopEvent,this.flushEventQueue],state:"destroyed"},{action:[this.resetUploadingFlag,this.abortUpload,this.fireUploadStopEvent,this.fireUploadCompleteEvent,this.flushEventQueue],state:"destroyed"}]},destroyed:{}};this.fsa=new Ext.ux.Utils.FSA("created",tt,this);this.addEvents({filetest:true,fileadd:true,fileremove:true,resetqueue:true,uploadsuccess:true,uploaderror:true,uploadfailed:true,uploadcanceled:true,uploadstart:true,uploadstop:true,uploadcomplete:true,beforefileuploadstart:true,fileuploadstart:true});this.on("render",this.onWindowRender,this);this.on("beforehide",this.onWindowBeforeHide,this);this.on("hide",this.onWindowHide,this);this.on("destroy",this.onWindowDestroy,this);this.state_tpl=new Ext.Template("<div class='ext-ux-uploaddialog-state ext-ux-uploaddialog-state-{state}'>&#160;</div>").compile()},createForm:function(){this.form=Ext.DomHelper.append(this.body,{tag:"form",method:"post",action:this.url,style:"position: absolute; left: -100px; top: -100px; width: 100px; height: 100px"})},createProgressBar:function(){this.progress_bar=this.add(new Ext.ProgressBar({x:0,y:0,anchor:"0",value:0,text:this.i18n.progress_waiting_text}))},createGrid:function(){var store=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},Ext.ux.UploadDialog.FileRecord),sortInfo:{field:"state",direction:"DESC"},pruneModifiedRecords:true});var cm=new Ext.grid.ColumnModel([{header:this.i18n.state_col_title,width:this.i18n.state_col_width,resizable:false,dataIndex:"state",sortable:true,renderer:this.renderStateCell.createDelegate(this)},{header:this.i18n.filename_col_title,width:this.i18n.filename_col_width,dataIndex:"filename",sortable:true,renderer:this.renderFilenameCell.createDelegate(this)},{header:this.i18n.note_col_title,width:this.i18n.note_col_width,dataIndex:"note",sortable:true,renderer:this.renderNoteCell.createDelegate(this)}]);this.grid_panel=new Ext.grid.GridPanel({ds:store,cm:cm,x:0,y:22,anchor:"0 0",border:true,viewConfig:{autoFill:true,forceFit:true},bbar:new Ext.Toolbar()});this.grid_panel.on("render",this.onGridRender,this);this.add(this.grid_panel);this.grid_panel.getSelectionModel().on("selectionchange",this.onGridSelectionChange,this)},fillToolbar:function(){var tb=this.grid_panel.getBottomToolbar();tb.x_buttons={};tb.x_buttons.add=tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({input_name:this.post_var_name,text:this.i18n.add_btn_text,tooltip:this.i18n.add_btn_tip,iconCls:"ext-ux-uploaddialog-addbtn",handler:this.onAddButtonFileSelected,scope:this}));tb.x_buttons.remove=tb.addButton({text:this.i18n.remove_btn_text,tooltip:this.i18n.remove_btn_tip,iconCls:"ext-ux-uploaddialog-removebtn",handler:this.onRemoveButtonClick,scope:this});tb.x_buttons.reset=tb.addButton({text:this.i18n.reset_btn_text,tooltip:this.i18n.reset_btn_tip,iconCls:"ext-ux-uploaddialog-resetbtn",handler:this.onResetButtonClick,scope:this});tb.add("-");tb.x_buttons.upload=tb.addButton({text:this.i18n.upload_btn_start_text,tooltip:this.i18n.upload_btn_start_tip,iconCls:"ext-ux-uploaddialog-uploadstartbtn",handler:this.onUploadButtonClick,scope:this});tb.add("-");tb.x_buttons.indicator=tb.addItem(new Ext.Toolbar.Item(Ext.DomHelper.append(tb.getEl(),{tag:"div",cls:"ext-ux-uploaddialog-indicator-stoped",html:"&#160"})));tb.add("->");tb.x_buttons.close=tb.addButton({text:this.i18n.close_btn_text,tooltip:this.i18n.close_btn_tip,handler:this.onCloseButtonClick,scope:this})},renderStateCell:function(data,cell,record,row_index,column_index,store){return this.state_tpl.apply({state:data})},renderFilenameCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();var f=function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}};f.defer(1000);return data},renderNoteCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();var f=function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}};f.defer(1000);return data},getFileExtension:function(filename){var result=null;var parts=filename.split(".");if(parts.length>1){result=parts.pop()}return result},isPermittedFileType:function(filename){var result=true;if(this.permitted_extensions.length>0){result=this.permitted_extensions.indexOf(this.getFileExtension(filename))!=-1}return result},isPermittedFile:function(browse_btn){var result=false;var filename=browse_btn.getInputFile().dom.value;if(this.isPermittedFileType(filename)){result=true}else{Ext.Msg.alert(this.i18n.error_msgbox_title,String.format(this.i18n.err_file_type_not_permitted,filename,this.permitted_extensions.join(this.i18n.permitted_extensions_join_str)));result=false}return result},fireFileTestEvent:function(browse_btn){return this.fireEvent("filetest",this,browse_btn.getInputFile().dom.value)!==false},addFileToUploadQueue:function(browse_btn){var input_file=browse_btn.detachInputFile();input_file.appendTo(this.form);input_file.setStyle("width","100px");input_file.dom.disabled=true;var store=this.grid_panel.getStore();store.add(new Ext.ux.UploadDialog.FileRecord({state:Ext.ux.UploadDialog.FileRecord.STATE_QUEUE,filename:input_file.dom.value,note:this.i18n.note_queued_to_upload,input_element:input_file}));this.fsa.postEvent("file-added",input_file.dom.value)},fireFileAddEvent:function(filename){this.fireEvent("fileadd",this,filename)},updateProgressBar:function(){if(this.is_uploading){var queued=this.getQueuedCount(true);var value=1-queued/this.initial_queued_count;this.progress_bar.updateProgress(value,String.format(this.i18n.progress_uploading_text,this.initial_queued_count-queued,this.initial_queued_count))}else{this.progress_bar.updateProgress(0,this.i18n.progress_waiting_text)}},updateToolbar:function(){var tb=this.grid_panel.getBottomToolbar();if(this.is_uploading){tb.x_buttons.remove.disable();tb.x_buttons.reset.disable();tb.x_buttons.upload.enable();if(!this.getAllowCloseOnUpload()){tb.x_buttons.close.disable()}Ext.fly(tb.x_buttons.indicator.getEl()).replaceClass("ext-ux-uploaddialog-indicator-stoped","ext-ux-uploaddialog-indicator-processing");tb.x_buttons.upload.setIconClass("ext-ux-uploaddialog-uploadstopbtn");tb.x_buttons.upload.setText(this.i18n.upload_btn_stop_text);tb.x_buttons.upload.getEl().child(tb.x_buttons.upload.buttonSelector).dom[tb.x_buttons.upload.tooltipType]=this.i18n.upload_btn_stop_tip}else{tb.x_buttons.remove.enable();tb.x_buttons.reset.enable();tb.x_buttons.close.enable();Ext.fly(tb.x_buttons.indicator.getEl()).replaceClass("ext-ux-uploaddialog-indicator-processing","ext-ux-uploaddialog-indicator-stoped");tb.x_buttons.upload.setIconClass("ext-ux-uploaddialog-uploadstartbtn");tb.x_buttons.upload.setText(this.i18n.upload_btn_start_text);tb.x_buttons.upload.getEl().child(tb.x_buttons.upload.buttonSelector).dom[tb.x_buttons.upload.tooltipType]=this.i18n.upload_btn_start_tip;if(this.getQueuedCount()>0){tb.x_buttons.upload.enable()}else{tb.x_buttons.upload.disable()}if(this.grid_panel.getSelectionModel().hasSelection()){tb.x_buttons.remove.enable()}else{tb.x_buttons.remove.disable()}if(this.grid_panel.getStore().getCount()>0){tb.x_buttons.reset.enable()}else{tb.x_buttons.reset.disable()}}},saveInitialQueuedCount:function(){this.initial_queued_count=this.getQueuedCount()},incInitialQueuedCount:function(){this.initial_queued_count++},setUploadingFlag:function(){this.is_uploading=true},resetUploadingFlag:function(){this.is_uploading=false},prepareNextUploadTask:function(){var store=this.grid_panel.getStore();var record=null;store.each(function(r){if(!record&&r.get("state")==Ext.ux.UploadDialog.FileRecord.STATE_QUEUE){record=r}else{r.get("input_element").dom.disabled=true}});record.get("input_element").dom.disabled=false;record.set("state",Ext.ux.UploadDialog.FileRecord.STATE_PROCESSING);record.set("note",this.i18n.note_processing);record.commit();this.fsa.postEvent("file-upload-start",record)},fireUploadStartEvent:function(){this.fireEvent("uploadstart",this)},removeFiles:function(file_records){var store=this.grid_panel.getStore();for(var i=0,len=file_records.length;i<len;i++){var r=file_records[i];r.get("input_element").remove();store.remove(r)}},fireFileRemoveEvent:function(file_records){for(var i=0,len=file_records.length;i<len;i++){this.fireEvent("fileremove",this,file_records[i].get("filename"),file_records[i])}},resetQueue:function(){var store=this.grid_panel.getStore();store.each(function(r){r.get("input_element").remove()});store.removeAll()},fireResetQueueEvent:function(){this.fireEvent("resetqueue",this)},uploadFile:function(record){Ext.Ajax.request({url:this.url,params:this.base_params||this.baseParams||this.params,method:"POST",form:this.form,isUpload:true,success:this.onAjaxSuccess,failure:this.onAjaxFailure,scope:this,record:record})},fireBeforeFileUploadStartEvent:function(record){return this.fireEvent("beforefileuploadstart",this,record.get("filename"),record)!==false},postFileUploadCancelEvent:function(record){this.fsa.postEvent("file-upload-canceled",record)},setRecordCanceledState:function(record){record.set("state",Ext.ux.UploadDialog.FileRecord.STATE_FAILED);record.set("note",this.i18n.note_canceled);record.commit()},fireUploadCanceledEvent:function(record){this.fireEvent("uploadcanceled",this,record.get("filename"),record)},fireFileUploadStartEvent:function(record){this.fireEvent("fileuploadstart",this,record.get("filename"),record)},updateRecordState:function(data){if("success"in data.response&&data.response.success){data.record.set("state",Ext.ux.UploadDialog.FileRecord.STATE_FINISHED);data.record.set("note",data.response.message||data.response.error||this.i18n.note_upload_success)}else{data.record.set("state",Ext.ux.UploadDialog.FileRecord.STATE_FAILED);data.record.set("note",data.response.message||data.response.error||this.i18n.note_upload_error)}data.record.commit()},fireUploadSuccessEvent:function(data){this.fireEvent("uploadsuccess",this,data.record.get("filename"),data.response,data.record)},fireUploadErrorEvent:function(data){this.fireEvent("uploaderror",this,data.record.get("filename"),data.response,data.record)},fireUploadFailedEvent:function(data){this.fireEvent("uploadfailed",this,data.record.get("filename"),data.record)},fireUploadCompleteEvent:function(){this.fireEvent("uploadcomplete",this)},findUploadFrame:function(){this.upload_frame=Ext.getBody().child("iframe.x-hidden:last")},resetUploadFrame:function(){this.upload_frame=null},removeUploadFrame:function(){if(this.upload_frame){this.upload_frame.removeAllListeners();this.upload_frame.dom.src="about:blank";this.upload_frame.remove()}this.upload_frame=null},abortUpload:function(){this.removeUploadFrame();var store=this.grid_panel.getStore();var record=null;store.each(function(r){if(r.get("state")==Ext.ux.UploadDialog.FileRecord.STATE_PROCESSING){record=r;return false}});record.set("state",Ext.ux.UploadDialog.FileRecord.STATE_FAILED);record.set("note",this.i18n.note_aborted);record.commit()},fireUploadStopEvent:function(){this.fireEvent("uploadstop",this)},repostHide:function(){this.fsa.postEvent("hide")},flushEventQueue:function(){this.fsa.flushEventQueue()},resetAddButton:function(browse_btn){browse_btn.detachInputFile()},onWindowRender:function(){this.fsa.postEvent("window-render")},onWindowBeforeHide:function(){return this.isUploading()?this.getAllowCloseOnUpload():true},onWindowHide:function(){this.fsa.postEvent("hide")},onWindowDestroy:function(){this.fsa.postEvent("destroy")},onGridRender:function(){this.fsa.postEvent("grid-render")},onGridSelectionChange:function(){this.fsa.postEvent("grid-selection-change")},onAddButtonFileSelected:function(btn){this.fsa.postEvent("file-selected",btn)},onUploadButtonClick:function(){if(this.is_uploading){this.fsa.postEvent("stop-upload")}else{this.fsa.postEvent("start-upload")}},onRemoveButtonClick:function(){var selections=this.grid_panel.getSelectionModel().getSelections();this.fsa.postEvent("remove-files",selections)},onResetButtonClick:function(){this.fsa.postEvent("reset-queue")},onCloseButtonClick:function(){this[this.closeAction].call(this)},onAjaxSuccess:function(response,options){var json_response={success:false,error:this.i18n.note_upload_error};try{var rt=response.responseText;var filter=rt.match(/^<[^>]+>((?:.|\n)*)<\/[^>]+>$/);if(filter){rt=filter[1]}json_response=Ext.util.JSON.decode(rt)}catch(e){}var data={record:options.record,response:json_response};if("success"in json_response&&json_response.success){this.fsa.postEvent("file-upload-success",data)}else{this.fsa.postEvent("file-upload-error",data)}},onAjaxFailure:function(response,options){var data={record:options.record,response:{success:false,error:this.i18n.note_upload_failed}};this.fsa.postEvent("file-upload-failed",data)},startUpload:function(){this.fsa.postEvent("start-upload")},stopUpload:function(){this.fsa.postEvent("stop-upload")},getUrl:function(){return this.url},setUrl:function(url){this.url=url},getBaseParams:function(){return this.base_params},setBaseParams:function(params){this.base_params=params},getUploadAutostart:function(){return this.upload_autostart},setUploadAutostart:function(value){this.upload_autostart=value},getAllowCloseOnUpload:function(){return this.allow_close_on_upload},setAllowCloseOnUpload:function(value){this.allow_close_on_upload=value},getResetOnHide:function(){return this.reset_on_hide},setResetOnHide:function(value){this.reset_on_hide=value},getPermittedExtensions:function(){return this.permitted_extensions},setPermittedExtensions:function(value){this.permitted_extensions=value},isUploading:function(){return this.is_uploading},isNotEmptyQueue:function(){return this.grid_panel.getStore().getCount()>0},getQueuedCount:function(count_processing){var count=0;var store=this.grid_panel.getStore();store.each(function(r){if(r.get("state")==Ext.ux.UploadDialog.FileRecord.STATE_QUEUE){count++}if(count_processing&&r.get("state")==Ext.ux.UploadDialog.FileRecord.STATE_PROCESSING){count++}});return count},hasUnuploadedFiles:function(){return this.getQueuedCount()>0}});var p=Ext.ux.UploadDialog.Dialog.prototype;p.i18n={title:"File upload dialog",state_col_title:"State",state_col_width:70,filename_col_title:"Filename",filename_col_width:230,note_col_title:"Note",note_col_width:150,add_btn_text:"Add",add_btn_tip:"Add file into upload queue.",remove_btn_text:"Remove",remove_btn_tip:"Remove file from upload queue.",reset_btn_text:"Reset",reset_btn_tip:"Reset queue.",upload_btn_start_text:"Upload",upload_btn_stop_text:"Abort",upload_btn_start_tip:"Upload queued files to the server.",upload_btn_stop_tip:"Stop upload.",close_btn_text:"Close",close_btn_tip:"Close the dialog.",progress_waiting_text:"Waiting...",progress_uploading_text:"Uploading: {0} of {1} files complete.",error_msgbox_title:"Error",permitted_extensions_join_str:",",err_file_type_not_permitted:"Selected file extension isn't permitted.<br/>Please select files with following extensions: {1}",note_queued_to_upload:"Queued for upload.",note_processing:"Uploading...",note_upload_failed:"Server is unavailable or internal server error occured.",note_upload_success:"OK.",note_upload_error:"Upload error.",note_aborted:"Aborted by user.",note_canceled:"Upload canceled"};

Ext.ux.Multiselect=Ext.extend(Ext.form.Field,{store:null,dataFields:[],data:[],width:100,height:100,displayField:0,valueField:1,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,blankText:Ext.form.TextField.prototype.blankText,minLengthText:'Minimum {0} item(s) required',maxLengthText:'Maximum {0} item(s) allowed',copy:false,allowDup:false,allowTrash:false,legend:null,focusClass:undefined,delimiter:',',view:null,dragGroup:null,dropGroup:null,tbar:null,appendOnly:false,sortField:null,sortDir:'ASC',defaultAutoCreate:{tag:"div"},initComponent:function(){Ext.ux.Multiselect.superclass.initComponent.call(this);this.addEvents({'dblclick':true,'click':true,'change':true,'drop':true});},onRender:function(ct,position){var fs,cls,tpl;Ext.ux.Multiselect.superclass.onRender.call(this,ct,position);cls='ux-mselect';fs=new Ext.form.FieldSet({renderTo:this.el,title:this.legend,height:this.height,width:this.width,style:"padding:1px;",tbar:this.tbar});if(!this.legend&&fs.el.down('.'+fs.headerCls))fs.el.down('.'+fs.headerCls).remove();fs.body.addClass(cls);tpl='<tpl for="."><div class="'+cls+'-item';if(Ext.isIE||Ext.isIE7)tpl+='" unselectable=on';else tpl+=' x-unselectable"';tpl+='>{'+this.displayField+'}</div></tpl>';if(!this.store){this.store=new Ext.data.SimpleStore({fields:this.dataFields,data:this.data});}
this.view=new Ext.ux.DDView({multiSelect:true,store:this.store,selectedClass:cls+"-selected",tpl:tpl,allowDup:this.allowDup,copy:this.copy,allowTrash:this.allowTrash,dragGroup:this.dragGroup,dropGroup:this.dropGroup,itemSelector:"."+cls+"-item",isFormField:false,applyTo:fs.body,appendOnly:this.appendOnly,sortField:this.sortField,sortDir:this.sortDir});fs.add(this.view);this.view.on('click',this.onViewClick,this);this.view.on('beforeClick',this.onViewBeforeClick,this);this.view.on('dblclick',this.onViewDblClick,this);this.view.on('drop',function(ddView,n,dd,e,data){return this.fireEvent("drop",ddView,n,dd,e,data);},this);this.hiddenName=this.name;var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name};if(this.isFormField){this.hiddenField=this.el.createChild(hiddenTag);}else{this.hiddenField=Ext.get(document.body).createChild(hiddenTag);}
fs.doLayout();},initValue:Ext.emptyFn,onViewClick:function(vw,index,node,e){var arrayIndex=this.preClickSelections.indexOf(index);if(arrayIndex!=-1)
{this.preClickSelections.splice(arrayIndex,1);this.view.clearSelections(true);this.view.select(this.preClickSelections);}
this.fireEvent('change',this,this.getValue(),this.hiddenField.dom.value);this.hiddenField.dom.value=this.getValue();this.fireEvent('click',this,e);this.validate();},onViewBeforeClick:function(vw,index,node,e){this.preClickSelections=this.view.getSelectedIndexes();if(this.disabled){return false;}},onViewDblClick:function(vw,index,node,e){return this.fireEvent('dblclick',vw,index,node,e);},getValue:function(valueField){var returnArray=[];var selectionsArray=this.view.getSelectedIndexes();if(selectionsArray.length==0){return'';}
for(var i=0;i<selectionsArray.length;i++){returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField!=null)?valueField:this.valueField)));}
return returnArray.join(this.delimiter);},setValue:function(values){var index;var selections=[];this.view.clearSelections();this.hiddenField.dom.value='';if(!values||(values=='')){return;}
if(!(values instanceof Array)){values=values.split(this.delimiter);}
for(var i=0;i<values.length;i++){index=this.view.store.indexOf(this.view.store.query(this.valueField,new RegExp('^'+values[i]+'$',"i")).itemAt(0));selections.push(index);}
this.view.select(selections);this.hiddenField.dom.value=this.getValue();this.validate();},reset:function(){this.setValue('');},getRawValue:function(valueField){var tmp=this.getValue(valueField);if(tmp.length){tmp=tmp.split(this.delimiter);}
else{tmp=[];}
return tmp;},setRawValue:function(values){setValue(values);},validateValue:function(value){if(value.length<1){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}
if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false;}
if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}
return true;}});Ext.reg("multiselect",Ext.ux.Multiselect);Ext.ux.ItemSelector=Ext.extend(Ext.form.Field,{msWidth:200,msHeight:300,hideNavIcons:false,imagePath:"",iconUp:"up2.gif",iconDown:"down2.gif",iconLeft:"left2.gif",iconRight:"right2.gif",iconTop:"top2.gif",iconBottom:"bottom2.gif",drawUpIcon:true,drawDownIcon:true,drawLeftIcon:true,drawRightIcon:true,drawTopIcon:true,drawBotIcon:true,fromStore:null,toStore:null,fromData:null,toData:null,displayField:0,valueField:1,switchToFrom:false,allowDup:false,focusClass:undefined,delimiter:',',readOnly:false,toLegend:null,fromLegend:null,toSortField:null,fromSortField:null,toSortDir:'ASC',fromSortDir:'ASC',toTBar:null,fromTBar:null,bodyStyle:null,border:false,defaultAutoCreate:{tag:"div"},initComponent:function(){Ext.ux.ItemSelector.superclass.initComponent.call(this);this.addEvents({'rowdblclick':true,'change':true});},onRender:function(ct,position){Ext.ux.ItemSelector.superclass.onRender.call(this,ct,position);this.fromMultiselect=new Ext.ux.Multiselect({legend:this.fromLegend,delimiter:this.delimiter,allowDup:this.allowDup,copy:this.allowDup,allowTrash:this.allowDup,dragGroup:this.readOnly?null:"drop2-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,dataFields:this.dataFields,data:this.fromData,displayField:this.displayField,valueField:this.valueField,store:this.fromStore,isFormField:false,tbar:this.fromTBar,appendOnly:true,sortField:this.fromSortField,sortDir:this.fromSortDir});this.fromMultiselect.on('dblclick',this.onRowDblClick,this);if(!this.toStore){this.toStore=new Ext.data.SimpleStore({fields:this.dataFields,data:this.toData});}
this.toStore.on('add',this.valueChanged,this);this.toStore.on('remove',this.valueChanged,this);this.toStore.on('load',this.valueChanged,this);this.toMultiselect=new Ext.ux.Multiselect({legend:this.toLegend,delimiter:this.delimiter,allowDup:this.allowDup,dragGroup:this.readOnly?null:"drop1-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,displayField:this.displayField,valueField:this.valueField,store:this.toStore,isFormField:false,tbar:this.toTBar,sortField:this.toSortField,sortDir:this.toSortDir});this.toMultiselect.on('dblclick',this.onRowDblClick,this);var p=new Ext.Panel({bodyStyle:this.bodyStyle,border:this.border,layout:"table",layoutConfig:{columns:3}});p.add(this.switchToFrom?this.toMultiselect:this.fromMultiselect);var icons=new Ext.Panel({header:false});p.add(icons);p.add(this.switchToFrom?this.fromMultiselect:this.toMultiselect);p.render(this.el);icons.el.down('.'+icons.bwrapCls).remove();if(this.imagePath!=""&&this.imagePath.charAt(this.imagePath.length-1)!="/")
this.imagePath+="/";this.iconUp=this.imagePath+(this.iconUp||'up2.gif');this.iconDown=this.imagePath+(this.iconDown||'down2.gif');this.iconLeft=this.imagePath+(this.iconLeft||'left2.gif');this.iconRight=this.imagePath+(this.iconRight||'right2.gif');this.iconTop=this.imagePath+(this.iconTop||'top2.gif');this.iconBottom=this.imagePath+(this.iconBottom||'bottom2.gif');var el=icons.getEl();if(!this.toSortField){this.toTopIcon=el.createChild({tag:'img',src:this.iconTop,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.upIcon=el.createChild({tag:'img',src:this.iconUp,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});}
this.addIcon=el.createChild({tag:'img',src:this.switchToFrom?this.iconLeft:this.iconRight,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.removeIcon=el.createChild({tag:'img',src:this.switchToFrom?this.iconRight:this.iconLeft,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});if(!this.toSortField){this.downIcon=el.createChild({tag:'img',src:this.iconDown,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.toBottomIcon=el.createChild({tag:'img',src:this.iconBottom,style:{cursor:'pointer',margin:'2px'}});}
if(!this.readOnly){if(!this.toSortField){this.toTopIcon.on('click',this.toTop,this);this.upIcon.on('click',this.up,this);this.downIcon.on('click',this.down,this);this.toBottomIcon.on('click',this.toBottom,this);}
this.addIcon.on('click',this.fromTo,this);this.removeIcon.on('click',this.toFrom,this);}
if(!this.drawUpIcon||this.hideNavIcons){this.upIcon.dom.style.display='none';}
if(!this.drawDownIcon||this.hideNavIcons){this.downIcon.dom.style.display='none';}
if(!this.drawLeftIcon||this.hideNavIcons){this.addIcon.dom.style.display='none';}
if(!this.drawRightIcon||this.hideNavIcons){this.removeIcon.dom.style.display='none';}
if(!this.drawTopIcon||this.hideNavIcons){this.toTopIcon.dom.style.display='none';}
if(!this.drawBotIcon||this.hideNavIcons){this.toBottomIcon.dom.style.display='none';}
var tb=p.body.first();this.el.setWidth(p.body.first().getWidth());p.body.removeClass();this.hiddenName=this.name;var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name};this.hiddenField=this.el.createChild(hiddenTag);this.valueChanged(this.toStore);},initValue:Ext.emptyFn,toTop:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){selectionsArray.sort();for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=records.length-1;i>-1;i--){record=records[i];this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(0,record);selectionsArray.push(((records.length-1)-i));}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(selectionsArray);},toBottom:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){selectionsArray.sort();for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.add(record);selectionsArray.push((this.toMultiselect.view.store.getCount())-(records.length-i));}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(selectionsArray);},up:function(){var record=null;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();selectionsArray.sort();var newSelectionsArray=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);if((selectionsArray[i]-1)>=0){this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(selectionsArray[i]-1,record);newSelectionsArray.push(selectionsArray[i]-1);}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(newSelectionsArray);}},down:function(){var record=null;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();selectionsArray.sort();selectionsArray.reverse();var newSelectionsArray=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);if((selectionsArray[i]+1)<this.toMultiselect.view.store.getCount()){this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(selectionsArray[i]+1,record);newSelectionsArray.push(selectionsArray[i]+1);}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(newSelectionsArray);}},fromTo:function(){var selectionsArray=this.fromMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.fromMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
if(!this.allowDup)selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];if(this.allowDup){var x=new Ext.data.Record();record.id=x.id;delete x;this.toMultiselect.view.store.add(record);}else{this.fromMultiselect.view.store.remove(record);this.toMultiselect.view.store.add(record);selectionsArray.push((this.toMultiselect.view.store.getCount()-1));}}}
this.toMultiselect.view.refresh();this.fromMultiselect.view.refresh();if(this.toSortField)this.toMultiselect.store.sort(this.toSortField,this.toSortDir);if(this.allowDup)this.fromMultiselect.view.select(selectionsArray);else this.toMultiselect.view.select(selectionsArray);},toFrom:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];this.toMultiselect.view.store.remove(record);if(!this.allowDup){this.fromMultiselect.view.store.add(record);selectionsArray.push((this.fromMultiselect.view.store.getCount()-1));}}}
this.fromMultiselect.view.refresh();this.toMultiselect.view.refresh();if(this.fromSortField)this.fromMultiselect.store.sort(this.fromSortField,this.fromSortDir);this.fromMultiselect.view.select(selectionsArray);},valueChanged:function(store){var record=null;var values=[];for(var i=0;i<store.getCount();i++){record=store.getAt(i);values.push(record.get(this.valueField));}
this.fireEvent('change',this,values.join(this.delimiter),this.hiddenField.dom.value);this.hiddenField.dom.value=values.join(this.delimiter);},getValue:function(){return this.hiddenField.dom.value;},onRowDblClick:function(vw,index,node,e){return this.fireEvent('rowdblclick',vw,index,node,e);},reset:function(){range=this.toMultiselect.store.getRange();this.toMultiselect.store.removeAll();if(!this.allowDup){this.fromMultiselect.store.add(range);this.fromMultiselect.store.sort(this.displayField,'ASC');}
this.valueChanged(this.toMultiselect.store);}});Ext.reg("itemselector",Ext.ux.ItemSelector);

Array.prototype.contains=function(element){return this.indexOf(element)!==-1;};Ext.namespace("Ext.ux");Ext.ux.DDView=function(config){if(!config.itemSelector){var tpl=config.tpl;if(this.classRe.test(tpl)){config.tpl=tpl.replace(this.classRe,'class=$1x-combo-list-item $2$1');}
else{config.tpl=tpl.replace(this.tagRe,'$1 class="x-combo-list-item" $2');}
config.itemSelector=".x-combo-list-item";}
Ext.ux.DDView.superclass.constructor.call(this,Ext.apply(config,{border:false}));};Ext.extend(Ext.ux.DDView,Ext.DataView,{sortDir:'ASC',isFormField:true,classRe:new RegExp("class=(['\"])(.*)\\1"),tagRe:/(<\w*)(.*?>)/,reset:Ext.emptyFn,clearInvalid:Ext.form.Field.prototype.clearInvalid,msgTarget:'qtip',afterRender:function(){Ext.ux.DDView.superclass.afterRender.call(this);if(this.dragGroup){this.setDraggable(this.dragGroup.split(","));}
if(this.dropGroup){this.setDroppable(this.dropGroup.split(","));}
if(this.deletable){this.setDeletable();}
this.isDirtyFlag=false;this.addEvents("drop");},validate:function(){return true;},destroy:function(){this.purgeListeners();this.getEl().removeAllListeners();this.getEl().remove();if(this.dragZone){if(this.dragZone.destroy){this.dragZone.destroy();}}
if(this.dropZone){if(this.dropZone.destroy){this.dropZone.destroy();}}},getName:function(){return this.name;},setValue:function(v){if(!this.store){throw"DDView.setValue(). DDView must be constructed with a valid Store";}
var data={};data[this.store.reader.meta.root]=v?[].concat(v):[];this.store.proxy=new Ext.data.MemoryProxy(data);this.store.load();},getValue:function(){var result='(';this.store.each(function(rec){result+=rec.id+',';});return result.substr(0,result.length-1)+')';},getIds:function(){var i=0,result=new Array(this.store.getCount());this.store.each(function(rec){result[i++]=rec.id;});return result;},isDirty:function(){return this.isDirtyFlag;},getTargetFromEvent:function(e){var target=e.getTarget();while((target!==null)&&(target.parentNode!=this.el.dom)){target=target.parentNode;}
if(!target){target=this.el.dom.lastChild||this.el.dom;}
return target;},getDragData:function(e){var target=this.findItemFromChild(e.getTarget());if(target){if(!this.isSelected(target)){delete this.ignoreNextClick;this.onItemClick(target,this.indexOf(target),e);this.ignoreNextClick=true;}
var dragData={sourceView:this,viewNodes:[],records:[],copy:this.copy||(this.allowCopy&&e.ctrlKey)};if(this.getSelectionCount()==1){var i=this.getSelectedIndexes()[0];var n=this.getNode(i);dragData.viewNodes.push(dragData.ddel=n);dragData.records.push(this.store.getAt(i));dragData.repairXY=Ext.fly(n).getXY();}else{dragData.ddel=document.createElement('div');dragData.ddel.className='multi-proxy';this.collectSelection(dragData);}
return dragData;}
return false;},getRepairXY:function(e){return this.dragData.repairXY;},collectSelection:function(data){data.repairXY=Ext.fly(this.getSelectedNodes()[0]).getXY();if(this.preserveSelectionOrder===true){Ext.each(this.getSelectedIndexes(),function(i){var n=this.getNode(i);var dragNode=n.cloneNode(true);dragNode.id=Ext.id();data.ddel.appendChild(dragNode);data.records.push(this.store.getAt(i));data.viewNodes.push(n);},this);}else{var i=0;this.store.each(function(rec){if(this.isSelected(i)){var n=this.getNode(i);var dragNode=n.cloneNode(true);dragNode.id=Ext.id();data.ddel.appendChild(dragNode);data.records.push(this.store.getAt(i));data.viewNodes.push(n);}
i++;},this);}},setDraggable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDraggable,this);return;}
if(this.dragZone){this.dragZone.addToGroup(ddGroup);}else{this.dragZone=new Ext.dd.DragZone(this.getEl(),{containerScroll:true,ddGroup:ddGroup});if(!this.multiSelect){this.singleSelect=true;}
this.dragZone.getDragData=this.getDragData.createDelegate(this);this.dragZone.getRepairXY=this.getRepairXY;this.dragZone.onEndDrag=this.onEndDrag;}},setDroppable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDroppable,this);return;}
if(this.dropZone){this.dropZone.addToGroup(ddGroup);}else{this.dropZone=new Ext.dd.DropZone(this.getEl(),{owningView:this,containerScroll:true,ddGroup:ddGroup});this.dropZone.getTargetFromEvent=this.getTargetFromEvent.createDelegate(this);this.dropZone.onNodeEnter=this.onNodeEnter.createDelegate(this);this.dropZone.onNodeOver=this.onNodeOver.createDelegate(this);this.dropZone.onNodeOut=this.onNodeOut.createDelegate(this);this.dropZone.onNodeDrop=this.onNodeDrop.createDelegate(this);}},getDropPoint:function(e,n,dd){if(n==this.el.dom){return"above";}
var t=Ext.lib.Dom.getY(n),b=t+n.offsetHeight;var c=t+(b-t)/2;var y=Ext.lib.Event.getPageY(e);if(y<=c){return"above";}else{return"below";}},isValidDropPoint:function(pt,n,data){if(!data.viewNodes||(data.viewNodes.length!=1)){return true;}
var d=data.viewNodes[0];if(d==n){return false;}
if((pt=="below")&&(n.nextSibling==d)){return false;}
if((pt=="above")&&(n.previousSibling==d)){return false;}
return true;},onNodeEnter:function(n,dd,e,data){if(this.highlightColor&&(data.sourceView!=this)){this.el.highlight(this.highlightColor);}
return false;},onNodeOver:function(n,dd,e,data){var dragElClass=this.dropNotAllowed;var pt=this.getDropPoint(e,n,dd);if(this.isValidDropPoint(pt,n,data)){if(this.appendOnly||this.sortField){return"x-tree-drop-ok-below";}
if(pt){var targetElClass;if(pt=="above"){dragElClass=n.previousSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-above";targetElClass="x-view-drag-insert-above";}else{dragElClass=n.nextSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-below";targetElClass="x-view-drag-insert-below";}
if(this.lastInsertClass!=targetElClass){Ext.fly(n).replaceClass(this.lastInsertClass,targetElClass);this.lastInsertClass=targetElClass;}}}
return dragElClass;},onNodeOut:function(n,dd,e,data){this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,data){if(this.fireEvent("drop",this,n,dd,e,data)===false){return false;}
var pt=this.getDropPoint(e,n,dd);var insertAt=(this.appendOnly||(n==this.el.dom))?this.store.getCount():n.viewIndex;if(pt=="below"){insertAt++;}
if(data.sourceView==this){if(pt=="below"){if(data.viewNodes[0]==n){data.viewNodes.shift();}}else{if(data.viewNodes[data.viewNodes.length-1]==n){data.viewNodes.pop();}}
if(!data.viewNodes.length){return false;}
if(insertAt>this.store.indexOf(data.records[0])){insertAt--;}}
if(data.node instanceof Ext.tree.TreeNode){var r=data.node.getOwnerTree().recordFromNode(data.node);if(r){data.records=[r];}}
if(!data.records){alert("Programming problem. Drag data contained no Records");return false;}
for(var i=0;i<data.records.length;i++){var r=data.records[i];var dup=this.store.getById(r.id);if(dup&&(dd!=this.dragZone)){if(!this.allowDup&&!this.allowTrash){Ext.fly(this.getNode(this.store.indexOf(dup))).frame("red",1);return true}
var x=new Ext.data.Record();r.id=x.id;delete x;}
if(data.copy){this.store.insert(insertAt++,r.copy());}else{if(data.sourceView){data.sourceView.isDirtyFlag=true;data.sourceView.store.remove(r);}
if(!this.allowTrash)this.store.insert(insertAt++,r);}
if(this.sortField){this.store.sort(this.sortField,this.sortDir);}
this.isDirtyFlag=true;}
this.dragZone.cachedTarget=null;return true;},onEndDrag:function(data,e){var d=Ext.get(this.dragData.ddel);if(d&&d.hasClass("multi-proxy")){d.remove();}},removeDropIndicators:function(n){if(n){Ext.fly(n).removeClass(["x-view-drag-insert-above","x-view-drag-insert-left","x-view-drag-insert-right","x-view-drag-insert-below"]);this.lastInsertClass="_noclass";}},setDeletable:function(imageUrl){if(!this.singleSelect&&!this.multiSelect){this.singleSelect=true;}
var c=this.getContextMenu();this.contextMenu.on("itemclick",function(item){switch(item.id){case"delete":this.remove(this.getSelectedIndexes());break;}},this);this.contextMenu.add({icon:imageUrl||AU.resolveUrl("/images/delete.gif"),id:"delete",text:AU.getMessage("deleteItem")});},getContextMenu:function(){if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({id:this.id+"-contextmenu"});this.el.on("contextmenu",this.showContextMenu,this);}
return this.contextMenu;},disableContextMenu:function(){if(this.contextMenu){this.el.un("contextmenu",this.showContextMenu,this);}},showContextMenu:function(e,item){item=this.findItemFromChild(e.getTarget());if(item){e.stopEvent();this.select(this.getNode(item),this.multiSelect&&e.ctrlKey,true);this.contextMenu.showAt(e.getXY());}},remove:function(selectedIndices){selectedIndices=[].concat(selectedIndices);for(var i=0;i<selectedIndices.length;i++){var rec=this.store.getAt(selectedIndices[i]);this.store.remove(rec);}},onDblClick:function(e){var item=this.findItemFromChild(e.getTarget());if(item){if(this.fireEvent("dblclick",this,this.indexOf(item),item,e)===false){return false;}
if(this.dragGroup){var targets=Ext.dd.DragDropMgr.getRelated(this.dragZone,true);while(targets.contains(this.dropZone)){targets.remove(this.dropZone);}
if((targets.length==1)&&(targets[0].owningView)){this.dragZone.cachedTarget=null;var el=Ext.get(targets[0].getEl());var box=el.getBox(true);targets[0].onNodeDrop(el.dom,{target:el.dom,xy:[box.x,box.y+box.height-1]},null,this.getDragData(e));}}}},onItemClick:function(item,index,e){if(this.ignoreNextClick){delete this.ignoreNextClick;return;}
if(this.fireEvent("beforeclick",this,index,item,e)===false){return false;}
if(this.multiSelect||this.singleSelect){if(this.multiSelect&&e.shiftKey&&this.lastSelection){this.select(this.getNodes(this.indexOf(this.lastSelection),index),false);}else if(this.isSelected(item)&&e.ctrlKey){this.deselect(item);}else{this.deselect(item);this.select(item,this.multiSelect&&e.ctrlKey);this.lastSelection=item;}
e.preventDefault();}
return true;}});

Ext.namespace("Ext.ux.plugins");Ext.ux.plugins.GroupHeaderGrid=function(config){this.config=config;};Ext.extend(Ext.ux.plugins.GroupHeaderGrid,Ext.util.Observable,{init:function(grid){Ext.applyIf(grid.colModel,this.config);this.parentView=grid.getView();Ext.apply(this.parentView,this.viewConfig);this.parentView.init(grid);},viewConfig:{initTemplates:function(){this.constructor.prototype.initTemplates.apply(this,arguments);var ts=this.templates||{};if(!ts.gcell){ts.gcell=new Ext.XTemplate('<td class="x-grid3-hd {cls} x-grid3-td-{id} ux-grid-hd-group-row-{row}" style="{style}">','<div {tooltip} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">','<tpl if="values.btn"><a class="x-grid3-hd-btn" href="#"></a></tpl>','{value}</div>','</td>');}
this.templates=ts;this.hrowRe=new RegExp("ux-grid-hd-group-row-(\\d+)","");},renderHeaders:function(){var ts=this.templates,headers=[],cm=this.cm,rows=cm.rows,tstyle='width:'+this.getTotalWidth()+';';for(var row=0,rlen=rows.length;row<rlen;row++){var r=rows[row],cells=[];for(var i=0,gcol=0,len=r.length;i<len;i++){var group=r[i];group.colspan=group.colspan||1;var id=this.getColumnId(group.dataIndex?cm.findColumnIndex(group.dataIndex):gcol);var gs=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupStyle.call(this,group,gcol);cells[i]=ts.gcell.apply({cls:group.header?'ux-grid-hd-group-cell':'ux-grid-hd-nogroup-cell',id:id,row:row,style:'width:'+gs.width+';'+(gs.hidden?'display:none;':'')+(group.align?'text-align:'+group.align+';':''),tooltip:group.tooltip?(Ext.QuickTips.isEnabled()?'ext:qtip':'title')+'="'+group.tooltip+'"':'',istyle:group.align=='right'?'padding-right:16px':'',btn:this.grid.enableHdMenu&&group.header,value:group.header||'&nbsp;'});gcol+=group.colspan;}
headers[row]=ts.header.apply({tstyle:tstyle,cells:cells.join('')});}
headers.push(this.constructor.prototype.renderHeaders.apply(this,arguments));return headers.join('');},onColumnWidthUpdated:function(){this.constructor.prototype.onColumnWidthUpdated.apply(this,arguments);Ext.ux.plugins.GroupHeaderGrid.prototype.updateGroupStyles.call(this);},onAllColumnWidthsUpdated:function(){this.constructor.prototype.onAllColumnWidthsUpdated.apply(this,arguments);Ext.ux.plugins.GroupHeaderGrid.prototype.updateGroupStyles.call(this);},onColumnHiddenUpdated:function(){this.constructor.prototype.onColumnHiddenUpdated.apply(this,arguments);Ext.ux.plugins.GroupHeaderGrid.prototype.updateGroupStyles.call(this);},getHeaderCell:function(index){return this.mainHd.query(this.cellSelector)[index];},findHeaderCell:function(el){return el?this.fly(el).findParent('td.x-grid3-hd',this.cellSelectorDepth):false;},findHeaderIndex:function(el){var cell=this.findHeaderCell(el);return cell?this.getCellIndex(cell):false;},updateSortIcon:function(col,dir){var sc=this.sortClasses;var hds=this.mainHd.select(this.cellSelector).removeClass(sc);hds.item(col).addClass(sc[dir=="DESC"?1:0]);},handleHdMenuClick:function(item){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(index),"ASC");break;case"desc":ds.sort(cm.getDataIndex(index),"DESC");break;default:if(item.id.substr(0,5)=='group'){var i=item.id.split('-'),row=parseInt(i[1],10),col=parseInt(i[2],10),r=this.cm.rows[row],group,gcol=0;for(var i=0,len=r.length;i<len;i++){group=r[i];if(col>=gcol&&col<gcol+group.colspan){break;}
gcol+=group.colspan;}
if(item.checked){var max=cm.getColumnsBy(this.isHideableColumn,this).length;for(var i=gcol,len=gcol+group.colspan;i<len;i++){if(!cm.isHidden(i)){max--;}}
if(max<1){this.onDenyColumnHide();return false;}}
for(var i=gcol,len=gcol+group.colspan;i<len;i++){if(cm.config[i].fixed!==true&&cm.config[i].hideable!==false){cm.setHidden(i,item.checked);}}}else{index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
item.checked=!item.checked;if(item.menu){var updateChildren=function(menu){menu.items.each(function(childItem){if(!childItem.disabled){childItem.setChecked(item.checked,false);if(childItem.menu){updateChildren(childItem.menu);}}});}
updateChildren(item.menu);}
var parentMenu=item,parentItem;while(parentMenu=parentMenu.parentMenu){if(!parentMenu.parentMenu||!(parentItem=parentMenu.parentMenu.items.get(parentMenu.id))||!parentItem.setChecked){break;}
var checked=parentMenu.items.findIndexBy(function(m){return m.checked;})>=0;parentItem.setChecked(checked,true);}
item.checked=!item.checked;}
return true;},beforeColMenuShow:function(){var cm=this.cm,rows=this.cm.rows;this.colMenu.removeAll();for(var col=0,clen=cm.getColumnCount();col<clen;col++){var menu=this.colMenu,text=cm.getColumnHeader(col);if(cm.config[col].fixed!==true&&cm.config[col].hideable!==false){for(var row=0,rlen=rows.length;row<rlen;row++){var r=rows[row],group,gcol=0;for(var i=0,len=r.length;i<len;i++){group=r[i];if(col>=gcol&&col<gcol+group.colspan){break;}
gcol+=group.colspan;}
if(group&&group.header){if(cm.hierarchicalColMenu){var gid='group-'+row+'-'+gcol;var item=menu.items.item(gid);var submenu=item?item.menu:null;if(!submenu){submenu=new Ext.menu.Menu({id:gid});submenu.on("itemclick",this.handleHdMenuClick,this);var checked=false,disabled=true;for(var c=gcol,lc=gcol+group.colspan;c<lc;c++){if(!cm.isHidden(c)){checked=true;}
if(cm.config[c].hideable!==false){disabled=false;}}
menu.add({id:gid,text:group.header,menu:submenu,hideOnClick:false,checked:checked,disabled:disabled});}
menu=submenu;}else{text=group.header+' '+text;}}}
menu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(col),text:text,checked:!cm.isHidden(col),hideOnClick:false,disabled:cm.config[col].hideable===false}));}}},renderUI:function(){this.constructor.prototype.renderUI.apply(this,arguments);Ext.apply(this.columnDrop,Ext.ux.plugins.GroupHeaderGrid.prototype.columnDropConfig);}},columnDropConfig:{getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);return this.view.findHeaderCell(t);},positionIndicator:function(h,n,e){var data=Ext.ux.plugins.GroupHeaderGrid.prototype.getDragDropData.call(this,h,n,e);if(data===false){return false;}
var px=data.px+this.proxyOffsets[0];this.proxyTop.setLeftTop(px,data.r.top+this.proxyOffsets[1]);this.proxyTop.show();this.proxyBottom.setLeftTop(px,data.r.bottom);this.proxyBottom.show();return data.pt;},onNodeDrop:function(n,dd,e,data){var h=data.header;if(h!=n){var d=Ext.ux.plugins.GroupHeaderGrid.prototype.getDragDropData.call(this,h,n,e);if(d===false){return false;}
var cm=this.grid.colModel,right=d.oldIndex<d.newIndex,rows=cm.rows;for(var row=d.row,rlen=rows.length;row<rlen;row++){var r=rows[row],len=r.length,fromIx=0,span=1,toIx=len;for(var i=0,gcol=0;i<len;i++){var group=r[i];if(d.oldIndex>=gcol&&d.oldIndex<gcol+group.colspan){fromIx=i;}
if(d.oldIndex+d.colspan-1>=gcol&&d.oldIndex+d.colspan-1<gcol+group.colspan){span=i-fromIx+1;}
if(d.newIndex>=gcol&&d.newIndex<gcol+group.colspan){toIx=i;}
gcol+=group.colspan;}
var groups=r.splice(fromIx,span);rows[row]=r.splice(0,toIx-(right?span:0)).concat(groups).concat(r);}
for(var c=0;c<d.colspan;c++){var oldIx=d.oldIndex+(right?0:c),newIx=d.newIndex+(right?-1:c);cm.moveColumn(oldIx,newIx);this.grid.fireEvent("columnmove",oldIx,newIx);}
return true;}
return false;}},getGroupStyle:function(group,gcol){var width=0,hidden=true;for(var i=gcol,len=gcol+group.colspan;i<len;i++){if(!this.cm.isHidden(i)){var cw=this.cm.getColumnWidth(i);if(typeof cw=='number'){width+=cw;}
hidden=false;}}
return{width:(Ext.isBorderBox?width:Math.max(width-this.borderWidth,0))+'px',hidden:hidden};},updateGroupStyles:function(col){var tables=this.mainHd.query('.x-grid3-header-offset > table'),tw=this.getTotalWidth(),rows=this.cm.rows;for(var row=0;row<tables.length;row++){tables[row].style.width=tw;if(row<rows.length){var cells=tables[row].firstChild.firstChild.childNodes;for(var i=0,gcol=0;i<cells.length;i++){var group=rows[row][i];if((typeof col!='number')||(col>=gcol&&col<gcol+group.colspan)){var gs=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupStyle.call(this,group,gcol);cells[i].style.width=gs.width;cells[i].style.display=gs.hidden?'none':'';}
gcol+=group.colspan;}}}},getGroupRowIndex:function(el){if(el){var m=el.className.match(this.hrowRe);if(m&&m[1]){return parseInt(m[1],10);}}
return this.cm.rows.length;},getGroupSpan:function(row,col){if(row<0){return{col:0,colspan:this.cm.getColumnCount()};}
var r=this.cm.rows[row];if(r){for(var i=0,gcol=0,len=r.length;i<len;i++){var group=r[i];if(col>=gcol&&col<gcol+group.colspan){return{col:gcol,colspan:group.colspan};}
gcol+=group.colspan;}
return{col:gcol,colspan:0};}
return{col:col,colspan:1};},getDragDropData:function(h,n,e){if(h.parentNode!=n.parentNode){return false;}
var cm=this.grid.colModel;var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var px,pt;if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.view.borderWidth;pt="after";}else{px=r.left;pt="before";}
var oldIndex=this.view.getCellIndex(h);var newIndex=this.view.getCellIndex(n);if(cm.isFixed(newIndex)){return false;}
var row=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupRowIndex.call(this.view,h);var oldGroup=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupSpan.call(this.view,row,oldIndex);var newGroup=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupSpan.call(this.view,row,newIndex);oldIndex=oldGroup.col;newIndex=newGroup.col+(pt=="after"?newGroup.colspan:0);if(newIndex>=oldGroup.col&&newIndex<=oldGroup.col+oldGroup.colspan){return false;}
var parentGroup=Ext.ux.plugins.GroupHeaderGrid.prototype.getGroupSpan.call(this.view,row-1,oldIndex);if(newIndex<parentGroup.col||newIndex>parentGroup.col+parentGroup.colspan){return false;}
return{r:r,px:px,pt:pt,row:row,oldIndex:oldIndex,newIndex:newIndex,colspan:oldGroup.colspan};},unbind:function(){Ext.apply(this.parentView,{initTemplates:Ext.grid.GridView.prototype.initTemplates,renderHeaders:Ext.grid.GridView.prototype.renderHeaders,onColumnWidthUpdated:Ext.grid.GridView.prototype.onColumnWidthUpdated,onAllColumnWidthsUpdated:Ext.grid.GridView.prototype.onAllColumnWidthsUpdated,onColumnHiddenUpdated:Ext.grid.GridView.prototype.onColumnHiddenUpdated,getHeaderCell:Ext.grid.GridView.prototype.getHeaderCell,findHeaderCell:Ext.grid.GridView.prototype.findHeaderCell,findHeaderIndex:Ext.grid.GridView.prototype.findHeaderIndex,updateSortIcon:Ext.grid.GridView.prototype.updateSortIcon,handleHdMenuClick:Ext.grid.GridView.prototype.handleHdMenuClick,beforeColMenuShow:Ext.grid.GridView.prototype.beforeColMenuShow});delete this.parentView;}});

FigtreeWeb.Widget.PanelNavigation=function(config){var items=config.items;delete config.items;FigtreeWeb.Widget.PanelNavigation.superclass.constructor.call(this,config);this.addEvents({'built':true});FigtreeWeb.app.getGMB().broadcast(this,'built',this.broadcastEventName);if(!(this.renderAs instanceof Object)){this.renderAs={xtype:this.renderAs};}
Ext.apply(this.renderAs,{iconSize:this.iconSize,iconPosition:this.iconPosition});this.border=false;this.bodyBorder=false;this.component=Ext.ComponentMgr.create(this.renderAs);this.component.on('itemclick',this.itemClick,this);this.component.on('itemcontext',this.itemContext,this);this.add(this.component);if(items){this.loadOnConstuction=false;this.on('afterlayout',function(items){this.component.add.apply(this.component,items);}.createDelegate(this,[items]),this,{single:true});}
if(this.loadOnConstuction){this.load();}};Ext.extend(FigtreeWeb.Widget.PanelNavigation,Ext.Panel,{url:'',renderAs:'',layout:'fit',broadcastEventName:'',loadOnConstuction:true,actionTarget:null,build:function(conn,response){this.unmask();this.component.add.apply(this.component,response.items);this.fireEvent('built',this);},exceptionHandler:function(conn,errorData){FigtreeWeb.app.throwError(errorData);this.unmask();},itemClick:function(item,actions,e){var context=e.ctrlKey;if(this.actionTarget){var action;for(var i=0;i<actions.length;i++){action=actions[i];if(/^navigate$/i.test(action.name)&&(!action.type||action.type===''||action.type==='NEW_TAB')){if(action.type==='NEW_TAB'){context=true;}
action.type='PANEL';action.id=this.actionTarget;}else if(/^runscript$/i.test(action.name)&&(action.script!=='')){var screen=this.findParentByType('fw-screen').find('wid',this.actionTarget);if(screen.length>0){screen=screen[0];if(screen.isXType('fw-tabbedscreenpanel')){screen=screen.tabPanel.getActiveTab();}
FigtreeWeb.app.fireActions(actions,context,screen);return;}}}}
FigtreeWeb.app.fireActions(actions,context,item);},itemContext:function(item,actions,contextItems,e){e.stopEvent();if(contextItems){var contextItem;var contextMenu=Ext.menu.MenuMgr.get({});contextItems=this.prepareContextItems(contextItems,item);contextMenu.add.apply(contextMenu,contextItems);contextMenu.showAt(e.getXY(),item.parentMenu);}},prepareContextItems:function(contextItems,parent){var menu=[];var contextItem;for(var i=0;i<contextItems.length;i++){contextItem=contextItems[i];if(contextItem.contextItems){contextItem.menu={id:Ext.id(),items:this.prepareContextItems(contextItem.contextItems,parent)};}
contextItem.parent=parent;contextItem.handler=(function(item,e){this.itemClick(item,item.actions,e.ctrlKey);}).createDelegate(this);contextItem.scope=contextItem;menu.push(contextItem);}
return menu;},load:function(params){params=params||{};var conn=new FigtreeWeb.Connection({url:this.url});conn.on('complete',this.build,this);conn.on('exception',this.exceptionHandler,this);conn.on('netexception',this.exceptionHandler,this);this.mask();conn.request(params);},mask:function(){if(this.component&&this.component.getEl&&this.component.getEl()){this.component.getEl().mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');}},unmask:function(){if(this.component&&this.component.getEl&&this.component.getEl()){this.component.getEl().unmask();}}});Ext.reg('fw-panel-navigation',FigtreeWeb.Widget.PanelNavigation);

FigtreeWeb.Widget.PanelInformation=function(config){if(!config.ds){if(!config.dataSpec){config.dataSpec=[{name:'type',type:'string'},{name:'icon'},{name:'time',type:'date',dateFormat:'G:i'},{name:'message',type:'string'},{name:'field'},{name:'misc',type:'string'},{name:'screenId',type:'string'},{name:'target'},{name:'params'}];}
config.ds=new Ext.data.JsonStore({fields:config.dataSpec,data:[]});}
if(!config.columns){config.columns=[{id:'icon',header:'',width:24,sortable:false,dataIndex:'icon'},{header:FigtreeWeb.app.translate('time'),width:40,sortable:true,dataIndex:'time',renderer:Ext.util.Format.dateRenderer('G:i')},{header:FigtreeWeb.app.translate('message'),width:450,sortable:true,dataIndex:'message'},{header:FigtreeWeb.app.translate('reference'),width:300,sortable:false,dataIndex:'misc'}];}
config.listeners={'rowcontextmenu':{fn:this.rowContextMenu,scope:this},'rowdblclick':{fn:this.rowDblClick,scope:this},'contextmenu':{fn:this.contextMenu,scope:this},'destroy':function(c){c.getStore().destroy();},'collapse':function(){this.newMessages=0;this.updateTitle();},'beforeslidein':function(){this.newMessages=0;this.updateTitle();},'beforeexpand':function(){this.setTitle(this.initialConfig.title);}};FigtreeWeb.Widget.PanelInformation.superclass.constructor.call(this,config);FigtreeWeb.app.getGMB().on('SET',this.actionSet,this);this.messageTypes={'I':{code:'I',description:FigtreeWeb.app.translate('information'),icon:FigtreeWeb.app.getIconPlain('information2.png',16),displayed:true},'E':{code:'E',description:FigtreeWeb.app.translate('warning'),icon:FigtreeWeb.app.getIconPlain('warning.png',16),displayed:true},'V':{code:'V',description:FigtreeWeb.app.translate('validation_rule'),icon:FigtreeWeb.app.getIconPlain('document_warning.png',16),displayed:true},'M':{code:'M',description:FigtreeWeb.app.translate('message'),icon:FigtreeWeb.app.getIconPlain('message.png',16),displayed:true},'R':{code:'R',description:FigtreeWeb.app.translate('report'),icon:FigtreeWeb.app.getIconPlain('form_blue.png',16),displayed:true}};this.exprortDesc=FigtreeWeb.app.translate('csv_export');FigtreeWeb.app.getGMB().on('screenactivated',this.screenFilter,this);FigtreeWeb.app.getGMB().on('screensubmitting',this.clearValidations,this);FigtreeWeb.app.getGMB().on('screenloaded',this.clearValidations,this);FigtreeWeb.app.getGMB().on('screendestroying',this.clearValidations,this);this.contextMenu=Ext.menu.MenuMgr.get({})
var menuItem=new Ext.menu.Item({text:FigtreeWeb.app.translate('open'),handler:this.contextOpen,scope:this,icon:FigtreeWeb.app.getIconPlain('folder.png',16),attributes:{}});this.contextMenu.add(menuItem);var menuItem=new Ext.menu.Item({text:FigtreeWeb.app.translate('open_in_new_tab'),handler:this.contextOpen,scope:this,icon:FigtreeWeb.app.getIconPlain('folder_new.png',16),attributes:{inNewTab:true}});this.contextMenu.add(menuItem);var menuItem=new Ext.menu.Item({text:FigtreeWeb.app.translate('csv_export'),handler:this.exportMessages,scope:this,icon:FigtreeWeb.app.getIconPlain('data_down.png',16)});this.contextMenu.add(menuItem);var subContextMenu={id:Ext.id(),items:[]};subContextMenu.items.push(new Ext.menu.CheckItem({checked:true,text:this.messageTypes['I'].description,handler:this.filterChange,scope:this,attributes:{msgType:'I'}}));subContextMenu.items.push(new Ext.menu.CheckItem({checked:true,text:this.messageTypes['M'].description,handler:this.filterChange,scope:this,attributes:{msgType:'M'}}));subContextMenu.items.push(new Ext.menu.CheckItem({checked:true,text:this.messageTypes['R'].description,handler:this.filterChange,scope:this,attributes:{msgType:'R'}}));menuItem=new Ext.menu.Item({text:FigtreeWeb.app.translate('show_hide_type'),menu:subContextMenu,hideOnClick:false});this.contextMenu.add(menuItem);};Ext.extend(FigtreeWeb.Widget.PanelInformation,Ext.grid.GridPanel,{exportUrl:'InfoPanelExport',enableColumnHide:false,actionSet:function(action,context,caller){if(action.infoType==this.messageTypes['V'].code&&(action.screenId==undefined)){var screen=FigtreeWeb.app.getScreenManager().getActiveScreen(action.scope,caller);action.screenId=screen.getId();}
if((action.infoType==this.messageTypes['V'].code)&&action.screenId!=this.currentScreenId){this.currentScreenId=action.screenId;}
if(action.type=='INFORMATION'){this.addMessage({type:action.infoType,message:action.msg,misc:action.misc,field:action.field,params:((action.clickable)?action.params:undefined),target:action.target,time:action.time,screenId:action.screenId});}},addMessage:function(message){message.message=message.message.replace(/\:lf\:/g,'<br><p>');message.icon=Ext.DomHelper.markup({tag:'img',src:this.messageTypes[message.type].icon,title:this.messageTypes[message.type].description});if(!message.time){message.time=FigtreeWeb.app.getTime();}
this.store.clearFilter(true);this.store.insert(0,this.store.reader.readRecords([message]).records);if(this.collapsed){this.newMessages++;}
this.filter();if((message.type==this.messageTypes['V'].code)&&this.collapsed){this.expand();}},rowDblClick:function(grid,rowIndex,e){var r=this.store.getAt(rowIndex);var screen;var field;var params;var tabPanel;if(r.get('type')==this.messageTypes['V'].code){screen=r.get('screenId');field=r.get('field');screen=Ext.getCmp(screen);if(screen){field=screen.getField(field);if(field&&field.isXType('component')){tabPanel=field.findParentByType("fw-tabpanel");if(tabPanel){tabPanel.setActiveTab(field.findParentByType("fw-panel")||field.findParentByType("panel"));}
field.focus();field.getEl().frame('FF0000',1,{duration:.5});}}}
params=r.get('params');if(params){this.openItem(params,false);}},openItem:function(params,inNewTab){var action={name:'NAVIGATE',params:Ext.apply({},params)}
FigtreeWeb.app.fireActions([action],inNewTab,this);},rowContextMenu:function(grid,rowIndex,e){var r=this.store.getAt(rowIndex);var item;var params=r.get('params');if(params){item=this.contextMenu.items.get(0);item.attributes.params=Ext.apply({},params)
item.show();item=this.contextMenu.items.get(1);item.attributes.params=Ext.apply({},params)
item.show();}
this.contextMenu.showAt(e.getXY());e.stopEvent();},contextMenu:function(e){this.contextMenu.items.get(0).hide();this.contextMenu.items.get(1).hide();this.contextMenu.showAt(e.getXY());e.stopEvent();},contextOpen:function(item){var params=item.attributes.params;if(params){this.openItem(params,item.attributes.inNewTab);}},screenFilter:function(screen){this.currentScreenId=screen.getId();this.filter();},clearValidations:function(screen){var screenId=screen.getId();var fn=function(r,id){return((r.get('type')==this.messageTypes['V'].code)&&(r.get('screenId')==screenId));};this.store.clearFilter(true);this.getView().refresh();var records=this.store.queryBy(fn,this);for(var i=0;i<records.getCount();i++){this.store.remove(records.get(i));if(this.collapsed&&(this.newMessages>0)){this.newMessages--;}}
this.filter();},filter:function(){var fn=function(r,id){if(!this.messageTypes[r.get('type')].displayed){return false;}
if((r.get('type')==this.messageTypes['V'].code)&&(r.get('screenId')!=this.currentScreenId)){return false;}
return true;};this.store.filterBy(fn,this);this.updateTitle()},filterChange:function(item){this.messageTypes[item.attributes.msgType].displayed=!this.messageTypes[item.attributes.msgType].displayed;this.filter();},exportMessages:function(){var items=[];var item;var params={};for(var i=0;i<this.store.getCount();i++){item={};item.time=this.store.getAt(i).get('time');item.type=this.store.getAt(i).get('type');item.msg=this.store.getAt(i).get('message');item.misc=this.store.getAt(i).get('misc');items.push(item);}
params.msgs=Ext.util.JSON.encode(items);var conn=new FigtreeWeb.Connection({url:this.exportUrl});conn.on('complete',this.exportComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);this.getEl().mask(FigtreeWeb.app.translate('saving'),'x-mask-loading');conn.request(params);},exportComplete:function(conn,response){this.getEl().unmask();var action={name:'DOWNLOAD',file:response}
FigtreeWeb.app.fireActions([action]);},connExceptionHandler:function(conn,errorData){this.getEl().unmask();FigtreeWeb.app.throwError(errorData);},updateTitle:function(){if(this.collapsed){var title=this.store.getCount()+' '+((this.store.getCount()==1)?FigtreeWeb.app.translate('message'):FigtreeWeb.app.translate('messages'));if(this.newMessages>0){title+=' <b>'+this.newMessages+'</b> '+FigtreeWeb.app.translate('new');}
this.setTitle(title);}},afterEffect:function(){FigtreeWeb.Widget.PanelInformation.superclass.afterEffect.apply(this,arguments);if(this.getEl().getWidth()>0){this.body.setWidth(this.getEl().getWidth());this.getView().scroller.setWidth(this.getEl().getWidth()-2);}}});Ext.reg('fw-panel-information',FigtreeWeb.Widget.PanelInformation);

FigtreeWeb.Widget.PanelQuickSearch=function(config){var ds=new Ext.data.JsonStore({fields:[{name:'text'},{name:'value'},{name:'params'}],data:[{text:'abc',value:'bbb',params:{a:'b'}}]});this.select=new Ext.form.ComboBox({id:'quick-search-combo',mode:'local',store:ds,displayField:'text',valueField:'value',triggerAction:'all',typeAhead:false,emptyText:FigtreeWeb.app.translate('select_record_type')});this.textBox=new Ext.form.TextField({emptyText:FigtreeWeb.app.translate('enter_search_string'),enableKeyEvents:true});this.recallSearchButton=new Ext.Button({xtype:'button',text:FigtreeWeb.app.translate('previous'),iconCls:'x-btn-text-icon',icon:FigtreeWeb.app.getIconPlain('find_again.png',16),disabled:true,handler:this.recallSearch,scope:this});Ext.applyIf(config,{layout:'ux.row',tbar:['<img src="'+FigtreeWeb.app.getIconPlain('find.png',16)+'">','',FigtreeWeb.app.translate('search')],bodyStyle:{padding:'5px'},listeners:{'resize':{fn:function(){this.doLayout.defer(100,this);},scope:this}},defaults:{bodyStyle:{'padding-bottom':'5px'},border:false},items:[{items:[this.select]},{items:[this.textBox]},{items:[{xtype:'button',text:FigtreeWeb.app.translate('search'),iconCls:'x-btn-text-icon',icon:FigtreeWeb.app.getIconPlain('find.png',16),handler:this.doSearch,scope:this}],listeners:{'render':{fn:function(p){p.getEl().dom.align='center'}}}},{items:[this.recallSearchButton],listeners:{'render':{fn:function(p){p.getEl().dom.align='center'}}}}]});FigtreeWeb.Widget.PanelQuickSearch.superclass.constructor.call(this,config);FigtreeWeb.app.getGMB().on('quicksearchitemsvailable',this.loadSelect,this);FigtreeWeb.app.getGMB().on('quicksearchwindow',this.checkWindow,this);this.textBox.on('keydown',function(o,e){if(e.getKey()==13){this.doSearch();}},this);};Ext.extend(FigtreeWeb.Widget.PanelQuickSearch,Ext.Panel,{loadSelect:function(quickSearch){this.select.store.loadData(quickSearch.items,false);this.select.setValue(quickSearch.selected);},doSearch:function(){var params=this.select.findRecord(this.select.valueField,this.select.getValue()).get('params');params=Ext.util.JSON.decode(Ext.util.JSON.encode(params));params.keyHistory=FigtreeWeb.app.getKeyHistory();params.key=this.textBox.getValue();if(!this.window){this.window=this.createQuickSearchWindow();this.recallSearchButton.enable();FigtreeWeb.app.setQuickSearchScreen(this.window.getComponent(0));}
this.window.show();this.window.getComponent(0).doGet(params);},recallSearch:function(){if(this.window){this.window.show();}},createQuickSearchWindow:function(){var windowConfig={minWidth:300,minHeight:300,collapsible:false,width:(document.body.clientWidth*0.75),height:(document.body.clientHeight*0.55),layout:'fit',modal:true,closeAction:'hide',constrain:true,title:FigtreeWeb.app.translate('search'),items:{xtype:'fw-screen',isPopup:true,getParent:function(){return FigtreeWeb.app.getScreenManager().getActiveScreen();},destroy:function(){this.fireEvent('beforedestroy');}}}
var window=new Ext.Window(windowConfig);var fwScreen=window.getComponent(0);fwScreen.parent=window;fwScreen.on('beforedestroy',function(){this.hide();},window);return window;},checkWindow:function(){if(this.window&&this.window.isVisible()){return this.window.getComponent(0);}
return undefined;},doLayout:function(){FigtreeWeb.Widget.PanelQuickSearch.superclass.doLayout.call(this);if(this.rendered){this.select.setWidth(this.getInnerWidth()-this.body.getPadding('lr'));this.textBox.setWidth(this.getInnerWidth()-this.body.getPadding('lr'));}}});Ext.reg('fw-panelquicksearch',FigtreeWeb.Widget.PanelQuickSearch);

FigtreeWeb.Widget.PanelMain=function(config){FigtreeWeb.Widget.PanelMain.superclass.constructor.call(this,config);this.id='panel-main';this.layout='fit';};Ext.extend(FigtreeWeb.Widget.PanelMain,Ext.Panel,{});Ext.reg('fw-panel-main',FigtreeWeb.Widget.PanelMain);

FigtreeWeb.Widget.PanelCustomerLogo=function(config){FigtreeWeb.Widget.PanelCustomerLogo.superclass.constructor.call(this,config);this.id='customer-logo';};Ext.extend(FigtreeWeb.Widget.PanelCustomerLogo,Ext.Panel,{});Ext.reg('fw-panel-customer-logo',FigtreeWeb.Widget.PanelCustomerLogo);

FigtreeWeb.Widget.PanelValidation=Ext.extend(Ext.Panel,{layout:'fit',initComponent:function(){this.store=new Ext.data.JsonStore({fields:[{name:'icon'},{name:'message',type:'string'},{name:'field'},{name:'reference'},{name:'screenId'}],data:[]});this.grid=new Ext.grid.GridPanel({enableHdMenu:false,ds:this.store,columns:[{header:FigtreeWeb.app.translate('validation_panel_help','Double-click items below to focus the relevant field'),width:300,sortable:true,dataIndex:'message',renderer:function(value,metatdata,record,grid){metatdata.attr='title="'+record.get('reference')+': '+value+'"';return'<b>'+record.get('reference')+'</b><br/> '+value;}}],listeners:{'rowdblclick':{fn:this.rowDblClick,scope:this}}});this.items=[this.grid];FigtreeWeb.app.getGMB().on('screensubmitting',this.clear,this);FigtreeWeb.app.getGMB().on('screenloading',this.clear,this);FigtreeWeb.app.getGMB().on('screenloaded',this.clear,this);FigtreeWeb.app.getGMB().on('screendestroying',this.clear,this);FigtreeWeb.app.getGMB().on('SET',this.actionSet,this);FigtreeWeb.Widget.PanelValidation.superclass.initComponent.apply(this,arguments);this.on('loaded',this.flash,this);this.addEvents({'cleared':true});this.loadedTask=new Ext.util.DelayedTask();},flash:function(){this.getEl().frame('FF0000',1,{duration:.5});},actionSet:function(action,context,caller){if(action.type=='INFORMATION'&&(action.infoType=='V')){var screen=Ext.getCmp(action.screenId);if(action.infoType=='V'&&(action.screenId==undefined)){screen=FigtreeWeb.app.getScreenManager().getActiveScreen(action.scope,caller);action.screenId=screen.getId();}
if(screen&&(screen.findBy(function(c){return c.isXType('tabpanel');}).length>0)){var record={icon:Ext.DomHelper.markup({tag:'img',src:FigtreeWeb.app.getIconPlain('document_warning.png',16),title:FigtreeWeb.app.translate('validation_rule')}),message:action.msg.replace(/\:(cr|lf)\:/g,'<br>'),reference:action.misc,field:action.field,screenId:action.screenId};this.store.loadData([record],true);this.loadedTask.delay(1,this.fireEvent,this,['loaded',this,screen]);}}},clear:function(suppressEvent){this.store.loadData([]);if(suppressEvent!==true){this.fireEvent('cleared',this);}},rowDblClick:function(grid,rowIndex,e){var r=this.store.getAt(rowIndex);var screen=r.get('screenId');var field=r.get('field');screen=Ext.getCmp(screen);if(screen){field=screen.getField(field);if(field&&field.isXType('component')){var tabPanel=field.findParentByType("fw-tabpanel");if(tabPanel){tabPanel.setActiveTab(field.findParentByType("fw-panel")||field.findParentByType("panel"));}
field.focus();field[typeof field.getPositionEl==='function'?'getPositionEl':'getEl']().frame('FF0000',1,{duration:.5});}}},destroy:function(){FigtreeWeb.app.getGMB().un('screensubmitting',this.clear,this);FigtreeWeb.app.getGMB().un('screenloading',this.clear,this);FigtreeWeb.app.getGMB().un('screenloaded',this.clear,this);FigtreeWeb.app.getGMB().un('screendestroying',this.clear,this);FigtreeWeb.app.getGMB().un('SET',this.actionSet,this);this.loadedTask.cancel();delete this.loadedTask;FigtreeWeb.Widget.PanelValidation.superclass.destroy.apply(this,arguments);}});Ext.reg('fw-panel-validation',FigtreeWeb.Widget.PanelValidation);

FigtreeWeb.Widget.PanelHistory=Ext.extend(Ext.Panel,{maxAllowed:15,layout:'fit',cls:'fw-history-panel',displayType:false,initComponent:function(){this.addEvents({'itemselected':true});var tpl=new Ext.XTemplate('<tpl for=".">','<div title="{text}" class="fw-dv-item {[xindex]} fw-dv-{[xindex % 2 === 0 ? "even" : "odd"]}">{icon}<div>{text}</div></div>','</tpl>');if(this.displayType){tpl=new Ext.XTemplate('<tpl for=".">','<div title="{text}" class="fw-dv-item {[xindex]} fw-dv-{[xindex % 2 === 0 ? "even" : "odd"]}">','<div class="fw-hist-type">{type}</div>','{icon}<div class="fw-hist-label">{text}</div>','</div>','</tpl>');}
this.store=new Ext.data.JsonStore({fields:['icon','text','params','type']});this.items=[new Ext.DataView({store:this.store,tpl:tpl,singleSelect:true,overClass:'fw-dv-item-over',selectedClass:'fw-dv-item-selected',itemSelector:'div.fw-dv-item',listeners:{'render':{fn:function(){this.getEl().setOverflow('auto');}},'click':{fn:this.itemClick,scope:this},'contextmenu':{fn:this.contextMenu,scope:this}}})];FigtreeWeb.Widget.PanelHistory.superclass.initComponent.apply(this,arguments);},itemClick:function(view,index,node,e){var record=this.store.getAt(index);var action={name:'navigate',params:record.get('params')};this.fireEvent('itemselected',this,record,record.get('params'));var target=this.target;if(target.isXType('fw-tabbedscreenpanel')){action.type='PANEL';action.id=target.wid;}
FigtreeWeb.app.fireActions([action],e.ctrlKey,target);},contextMenu:function(dv,index,node,e){var record=this.store.getAt(index),action={name:'navigate',params:record.get('params')},target=this.target,addNewTabItem=false,contextMenu=Ext.menu.MenuMgr.get({});contextMenu.on('hide',function(){contextMenu.destroy();contextMenu=record=action=target=null;});if(target.isXType('fw-tabbedscreenpanel')){target=target.getActiveScreen();addNewTabItem=true;}
contextMenu.add({handler:function(){FigtreeWeb.app.fireActions([action],false,target);},text:FigtreeWeb.app.translate('open'),scope:this,icon:FigtreeWeb.app.getIconPlain('folder.png',16)});if(addNewTabItem){contextMenu.add({handler:function(){FigtreeWeb.app.fireActions([action],true,target);},text:FigtreeWeb.app.translate('open_in_new_tab'),scope:this,icon:FigtreeWeb.app.getIconPlain('folder_new.png',16)});}
contextMenu.showAt(e.getXY());e.stopEvent();},afterRender:function(){FigtreeWeb.Widget.PanelHistory.superclass.afterRender.apply(this,arguments);this.target=this.findParentByType('fw-screen');if(this.targetWid){var screen=this.target.getPanel(this.targetWid);if(screen!==null){this.target=screen;}}
this.target.on('loaded',this.updateHistory,this);},updateHistory:function(screen){var params=Ext.apply({},screen.currentParams);if(!/view/i.test(params.mode)||!screen.form.historyLabel){return;}
var paramsCompare=function(p1,p2){if(p1.name!=p2.name){return false;}
if(p1.mode!=p2.mode){return false;}
if(p1.client!=p2.client){return false;}
if(p1.module!=p2.module){return false;}
if(p1.cob!=p2.cob){return false;}
if(p1.key!=p2.key){return false;}
return true;};for(var i=0;i<this.store.getCount();i++){if(paramsCompare(params,this.store.getAt(i).get('params'))){this.store.remove(this.store.getAt(i));break;}}
var icon=screen.form.historyIcon;if(!icon){icon='';}else{icon=FigtreeWeb.app.getIconPlain(icon,16);icon=Ext.DomHelper.markup({tag:'img',src:icon});}
var text=screen.formatHistoryLabel();var type=screen.form.historyType;var item={text:text,icon:icon,params:params,type:type};this.store.insert(0,this.store.reader.readRecords([item]).records);if(this.store.getCount()>this.maxAllowed){this.store.remove(this.store.getAt(this.store.getCount()-1));}
this.findByType('dataview')[0].refresh();}});Ext.reg('fw-panel-history',FigtreeWeb.Widget.PanelHistory);

FigtreeWeb.Widget.PanelPoweredBy=function(config){FigtreeWeb.Widget.PanelPoweredBy.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.PanelPoweredBy,Ext.Panel,{html:{tag:'img',src:'images/figtreeweb.gif',height:'30px',width:'159px'}});Ext.reg('fw-panel-powered-by',FigtreeWeb.Widget.PanelPoweredBy);

FigtreeWeb.Widget.MenuMain=function(config){FigtreeWeb.Widget.MenuMain.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.MenuMain,FigtreeWeb.Widget.PanelNavigation,{broadcastEventName:'menu-main-loaded',url:'MenuTop',renderAs:'fw-renderer-toolbar'});Ext.reg('fw-menu-main',FigtreeWeb.Widget.MenuMain);

FigtreeWeb.Widget.MenuLeft=function(config){FigtreeWeb.Widget.MenuLeft.superclass.constructor.call(this,config);FigtreeWeb.app.getGMB().on('screenloaded',this.reload,this);FigtreeWeb.app.getGMB().on('screenactivated',this.reload,this);FigtreeWeb.app.getGMB().on('screendestroying',this.kill,this);};Ext.extend(FigtreeWeb.Widget.MenuLeft,FigtreeWeb.Widget.PanelNavigation,{broadcastEventName:'menu-main-loaded',url:'MenuLeft',renderAs:'fw-renderer-tree',loadOnConstuction:false,reload:function(screen){if(screen.isPopup){return;}
if(screen.isPanel){return;}
if(!screen.form){return;}
if(!screen.form.baseParams){return;}
if(!screen.form.baseParams.menuLeftId){return;}
var params={'from_session':true,id:screen.form.baseParams.menuLeftId,diagnostics:FigtreeWeb.app.diagsOn()};this.load(params);},kill:function(screen){if(screen.isPopup){return;}
if(screen.isPanel){return;}
if(!screen.form){return;}
if(!screen.form.baseParams){return;}
if(!screen.form.baseParams.menuLeftId){return;}
var conn=new FigtreeWeb.Connection({url:this.url});var params={'killId':screen.form.baseParams.menuLeftId,diagnostics:FigtreeWeb.app.diagsOn()};conn.request(params);}});Ext.reg('fw-menu-left',FigtreeWeb.Widget.MenuLeft);

FigtreeWeb.Widget.MenuRecall=Ext.extend(FigtreeWeb.Widget.PanelNavigation,{broadcastEventName:'recall-loaded',url:'Recall',renderAs:'fw-renderer-tree',loadOnConstuction:false,recallListModCOBs:'',expandedPaths:null,initComponent:function(){if(!this.title&&!this.tbar){this.tbar=['<img src="'+FigtreeWeb.app.getIconPlain('history.png',16)+'">','',FigtreeWeb.app.translate('recall')]}
if(this.isCaricaComp()){this.cls=(this.cls||'')+' fw-history-panel fw-menu-recall-carica';}
FigtreeWeb.Widget.MenuRecall.superclass.initComponent.apply(this,arguments);if(!(this.isCaricaComp()&&this.actionTarget)){FigtreeWeb.app.getGMB().on('screenloaded',this.reload,this);}},afterRender:function(){var topScreen,screen;FigtreeWeb.Widget.MenuRecall.superclass.afterRender.apply(this,arguments);if(this.isCaricaComp()&&this.actionTarget){topScreen=this.findParentBy(function(c){return c.isXType('fw-screen')&&(c.findParentByType('fw-screen')===null);});screen=topScreen.getPanel(this.actionTarget);if(screen){screen.setRequestRecall(true,this.recallListModCOBs);screen.on('loaded',this.reload,this);}}},reload:function(screen){if(screen.isPopup){return;}
if(screen.isPanel){return;}
if(!screen.form){return;}
if(this.isCaricaComp()){this.expandedPaths=this.getExpandedPaths();}
var params={};this.load(params);},build:function(conn,response){FigtreeWeb.Widget.MenuRecall.superclass.build.apply(this,arguments);if(this.isCaricaComp()){this.setExpandedPaths(this.expandedPaths);}},getExpandedPaths:function(){var paths=[],root=this.component&&this.component.getRootNode();if(root){root.cascade(function(n){if(n.isExpanded()){paths.push(n.getPath('text'));}});}
return paths;},setExpandedPaths:function(paths){var root=this.component&&this.component.getRootNode(),me=this;if(paths&&paths.length>0&&root){root.cascade(function(n){var currPath=n.getPath('text');Ext.each(paths,function(path){if(currPath===path){me.expandNode(n);return false;}});});}},expandNode:function(node){node.expand();while(node=node.parentNode){node.expand();}}});Ext.reg('fw-menu-recall',FigtreeWeb.Widget.MenuRecall);

FigtreeWeb.Widget.MenuFavourites=function(config){this.renderAs={xtype:'fw-renderer-tree',enableDD:true,uiProvider:Ext.tree.TreeNodeUI};config.tbar=['<img src="'+FigtreeWeb.app.getIconPlain('star_yellow.png',16)+'">','',FigtreeWeb.app.translate('favourites'),'->',{cls:'x-btn-text-icon',text:FigtreeWeb.app.translate('save'),tooltip:FigtreeWeb.app.translate('save'),tooltipType:'title',icon:FigtreeWeb.app.getIconPlain('disk_blue.png',16),handler:this.saveFavourites,scope:this}];FigtreeWeb.Widget.MenuFavourites.superclass.constructor.call(this,config);FigtreeWeb.app.getGMB().on('savingpreferences',this.getIds,this);FigtreeWeb.app.getGMB().on('preferencessaved',function(){this.getEl().unmask();},this);FigtreeWeb.app.getGMB().on('preferencessavefailed',function(){this.getEl().unmask();},this);FigtreeWeb.app.getGMB().on('ADD',this.actionAdd,this);FigtreeWeb.app.getGMB().on('DELETE',this.actionDelete,this);};Ext.extend(FigtreeWeb.Widget.MenuFavourites,FigtreeWeb.Widget.PanelNavigation,{broadcastEventName:'menu-main-loaded',url:'Favourites',renderAs:null,build:function(conn,response){if(response.items){for(var i=0;i<response.items.length;i++){if(!response.items[i]){response.items[i]={text:'broken fav'}}
response.items[i].allowDrop=false;}}
FigtreeWeb.Widget.MenuFavourites.superclass.build.call(this,conn,response);if(this.blankTextEl){this.blankTextEl[(this.component.root.childNodes.length>0)?'hide':'show']();this.blankTextEl.center(this.body);}},saveFavourites:function(){this.getEl().mask(FigtreeWeb.app.translate('saving'),'x-mask-loading');FigtreeWeb.app.fireActions([{name:'SAVE_PREFERENCES'}]);},getIds:function(){if(!this.component.isXType('fw-renderer-tree')){return;}
var rootNode=this.component.root;var node;var ids=[];for(var i=0;i<rootNode.childNodes.length;i++){node=rootNode.childNodes[i];ids.push(node.attributes.menuId);}
FigtreeWeb.app.getStateProvider().set('favourites',ids);},actionDelete:function(action,context,caller){if(action.type!='FAVOURITE'){return;}
caller=caller.parent;if(!caller){return;}
if(!this.component.isXType('fw-renderer-tree')){return;}
var rootNode=this.component.root;rootNode.removeChild(caller);if(rootNode.childNodes.length==0){this.blankTextEl.show();this.blankTextEl.center(this.body);}},actionAdd:function(action,context,caller){if(action.type!='FAVOURITE'){return;}
caller=caller.parent;if(!caller){return;}
if(this.blankTextEl){this.blankTextEl.hide();this.blankTextEl.center(this.body);}
var config=Ext.apply({},caller.initialConfig);var contextItems=config.contextItems;var contextItem=contextItems[3];contextItem.icon=FigtreeWeb.app.getIconPlain('delete2.png',16);contextItem.text=FigtreeWeb.app.translate('remove');contextItem.actions=[{name:'DELETE',type:'FAVOURITE'}];if(this.component.isXType('fw-renderer-tree')){var rootNode=this.component.root;this.component.addChildren(rootNode,[config]);}else{this.component.add(config);}},afterRender:function(){FigtreeWeb.Widget.MenuFavourites.superclass.afterRender.apply(this,arguments);this.blankTextEl=this.body.createChild({style:'text-align:center; font-family: tahoma; font-size: 10px; color: #808080',html:FigtreeWeb.app.translate('favourite_instructions')});fn=function(){var rootNode=this.component.root;this.blankTextEl[(this.component.root.childNodes.length>0)?'hide':'show']();this.blankTextEl.center(this.body);};this.on('afterlayout',fn,this,{single:true});}});Ext.reg('fw-menu-favourites',FigtreeWeb.Widget.MenuFavourites);

FigtreeWeb.Widget.FormPanel=function(config){FigtreeWeb.Widget.FormPanel.superclass.constructor.call(this,config);this.fields={};this.addEvents({'oktopost':true,'notoktopost':true,'afterload':true,'aftersubmit':true});};Ext.extend(FigtreeWeb.Widget.FormPanel,Ext.form.FormPanel,{fields:null,header:false,border:false,dataChanged:false,hideMode:'offsets',validationSlideInPos:'tl-tr',historyType:'',uiRulesApplied:false,refreshOnActivate:false,initFields:function(){if(!this.items){return;}
var formPanel=this;var fn=function(c){var lblFn=function(){var lbls=this.ownerCt.find('wid',this.name.replace(/\./g,'_')+'_lbl');if(lbls.length>0){lbls[0].setVisible(!this.hidden);}};var reAlignErrorIcons=function(){for(i in this.fields){if(this.fields[i].errorIcon){this.fields[i].alignErrorIcon();}}};if(c.isFormField&&((c.name!=undefined)&&(c.name.length>0))){formPanel.fields[c.name]=c;if(c.isHiddenField){this.remove(c,false);}else{c.msgTarget='side';if(c.alignErrorIcon){c.alignErrorIcon=c.alignErrorIcon.createSequence(function(){if(this.hidden&&this.errorIcon){var pos=this.errorIcon.getPositioning();pos.top="-1000px";pos.left="-1000px";this.errorIcon.setPositioning(pos);}});}
if(c.mandatory){c.allowBlank=false;c.invalidClassBkp=c.invalidClass;c.invalidClass='';c.ownerCt.on('afterlayout',function(){if(this.validate){this.validate();}
if(this.errorIcon){this.alignErrorIcon();}},c,{single:true,delay:1});c.ownerCt.on('afterlayout',function(){c.invalidClass=c.invalidClassBkp;},c,{single:true,delay:150});}}
c.on('hide',lblFn,c);c.on('show',lblFn,c);c.on('hide',reAlignErrorIcons,formPanel);c.on('show',reAlignErrorIcons,formPanel);c.hideParent=(c.ownerCt.initialConfig.layout=='fw-table');if(c.name&&(c.name.indexOf('.')!=-1)){c.on('change',function(f){if(f){this.dataChanged=true;}},formPanel);}}else if(c.doLayout&&c!=formPanel&&!c.isFormField){if(c.items){c.items.each(fn,c.items);}}};this.items.each(fn,this.items);},createForm:function(){var config=Ext.applyIf({listeners:{},standardSubmit:true},this.initialConfig);return new Ext.form.BasicForm(null,config);},initComponent:function(){FigtreeWeb.Widget.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:'div',cls:this.baseCls+'-body',id:this.formId||Ext.id()};},onRender:function(ct,position){var ttbar;var btbar;if(this.topToolbar&&Ext.isArray(this.topToolbar)){ttbar=this.topToolbar;delete this.topToolbar;}
if(this.bottomToolbar&&Ext.isArray(this.bottomToolbar)){btbar=this.bottomToolbar;delete this.bottomToolbar;}
FigtreeWeb.Widget.FormPanel.superclass.onRender.call(this,ct,position);if(this.tbar&&ttbar){this.topToolbar=ttbar;delete ttbar;this.topToolbar=new FigtreeWeb.Widget.Toolbar(this.topToolbar);this.topToolbar.render(this.tbar);this.topToolbar.ownerCt=this;}
if(this.bbar&&btbar){this.bottomToolbar=btbar;delete btbar;this.bottomToolbar=new FigtreeWeb.Widget.Toolbar(this.bottomToolbar);this.bottomToolbar.render(this.bbar);this.bottomToolbar.ownerCt=this;}
if(this.onLoadScript){this.on('afterlayout',function(){this.screen.performFWScript(this.onLoadScript);},this,{single:true,delay:100});}
if(this.bodyClass){this.body.addClass(this.bodyClass);}
this.on('afterlayout',function(){this.navigateContext();if(this.uiRules){this.applyUIRules(this.uiRules);this.dataChanged=false;}
this.fireEvent('afterload',this);},this,{single:true,delay:100});this.on('show',this.focusFirstField,this,{single:true});},navigateContext:function(){if(this.ownerCt.ownerCt.isXType('tabpanel')&&(this.ownerCt.ownerCt.getActiveTab()!==this.ownerCt)){return;}
if(this.contextScreen&&this.contextScreen!==''){FigtreeWeb.app.fireAction({name:'NAVIGATE',type:'PANEL',id:'scrContext',params:Ext.decode(this.contextScreen).params},false,FigtreeWeb.app.getScreenManager().getActiveScreen());}},validate:function(surpressOkEvent,specificFields){var okToPost=true,fields=this.fields,values=Ext.apply({},this.baseParams||{}),field,value,notOkMsg,notOkTitle,xtype,invalidTrigger,invalidTextbox,wantSpecific=Ext.isArray(specificFields),preventSubmitOnInvalidTextbox=FigtreeWeb.app.getStateProvider().get('preventSubmitOnInvalidTextbox',true),translate=function(t){return FigtreeWeb.app.translate(t);};for(field in fields){if(wantSpecific&&specificFields.indexOf(fields[field].name)==-1){continue;}
value=fields[field].getValue();values[field]=value;if(typeof fields[field].clearInvalid==='function'){fields[field].clearInvalid();}
if(fields[field].mandatory&&value===''){if(fields[field].rendered&&fields[field].validate){fields[field].validate();}
this.fireValidationAction(fields[field],translate('figweb_mandatory_message'));okToPost=false;notOkMsg=translate('mandatory_fields_error_message');notOkTitle='&nbsp;';}else if(fields[field].getXType){xtype=fields[field].getXType();invalidTrigger=/^fw\-(select|numberfield|datefield)$/.test(xtype)&&!fields[field].isValid();invalidTextbox=/^fw-text(field|box)$/.test(xtype)&&preventSubmitOnInvalidTextbox&&!fields[field].isValid();if(invalidTrigger||invalidTextbox){this.fireValidationAction(fields[field],translate('invalid_field'));okToPost=false;notOkMsg=translate('not_all_fields_valid');notOkTitle=translate('warning');}}}
if(!okToPost){this.fireEvent('notoktopost',notOkMsg,notOkTitle);return null;}
if(!surpressOkEvent){this.fireEvent('oktopost',values);}
return values;},getField:function(name){if(!this.fields){return null;}
if(!this.fields[name]){if(name.indexOf('.')==-1){return this.find('wid',name)[0];}else{return null;}}
return this.fields[name];},fireValidationAction:function(field,msg){var label;if(field.isCaricaComp()&&field.fwLabel){label=field.fwLabel;}else{label=(field.labelText||field.name);var labels=field.ownerCt.find('wid',field.name.replace(/\./g,'_')+'_lbl');if(labels.length>0){label=labels[0].text;}}
if(!FigtreeWeb.app.getGMB().fireEvent('screenvalidations',this.screen,[{message:msg,screen:this.screen,links:[{text:label,fieldname:field.name,params:0}]}])){return;}
var action={name:'SET',type:'INFORMATION',infoType:'V',msg:msg,field:field.name,misc:label,screenId:this.screen.getId()};FigtreeWeb.app.fireActions([action]);},destroy:function(){for(field in this.fields){if(this.fields[field].isHiddenField){this.fields[field].destroy();}
delete this.fields[field];}
delete this.fields;FigtreeWeb.Widget.FormPanel.superclass.destroy.call(this);if(this.form){delete this.form.el;}},addField:function(field){this.fields[field.name]=field;field.on('change',function(f){if(f){this.dataChanged=true;}},this);},removeField:function(field){delete this.fields[field.name];field.un('change',function(f){if(f){this.dataChanged=true;}},this);},applyUIRules:function(rules){rules=this.readUIRules(rules);var rule,component,compsArray,changeFn;this.allRuleChangeFns=[];var onChangeFn=function(rule,form){var comps;var comp;var diag='\n-----------------------------------------------\n'+rule.name+' ';var diagOldCond='';var implicitAnd=false;var condition='(';for(var i=0;i<rule.when.length;i++){if(rule.when[i].booleanOperator){var op=rule.when[i].booleanOperator;switch(op){case'(':if(implicitAnd){condition+='&&';}
condition+=op;implicitAnd=false;break;case')':condition+=op;implicitAnd=true;break;case'AND':condition+='&&';implicitAnd=false;break;case'OR':condition+='||';implicitAnd=false;break;case'NOT':if(implicitAnd){condition+='&&';}
condition+='!';implicitAnd=false;break;}}else{diag+=condition.substring(diagOldCond.length);if(rule.when[i].component.idProperty=='name'){var tempArr=rule.when[i].component.id.split('.');if(tempArr.length>1&&tempArr[0].toUpperCase()=='CALC'){rule.when[i].component.id=tempArr[0]+'_'+tempArr[1];}}
compsArray=form.findBy(function(comp){return(rule.when[i].component.id===comp[rule.when[i].component.idProperty]);});if(compsArray.length===0){condition+='true';diag+='(no comp found <'+Ext.encode(rule.when[i].component)+'> [true] )';diagOldCond=condition;continue;}
component=compsArray[0];var re=new RegExp('^'+rule.when[i].text+'$',((rule.when[i].ignoreCase)?'i':''));var m=re.test(component.actualValue||component.getValue());switch(rule.when[i].method){case'yesMatch':m=m;break;case'noMatch':m=!m;break;}
if(implicitAnd){condition+='&&';diag+='&&';}
condition+=m;diag+='('+(component.fwLabel||component.name)+' '+rule.when[i].method+' '+re+' ['+m+'])';implicitAnd=true;diagOldCond=condition;}}
condition+=')';FigtreeWeb.app.diagLog('uirules',diag+')');var condSuccess=eval(condition);FigtreeWeb.app.diagLog('uirules','eval result '+condSuccess+'; now running actions');for(var i=0;i<rule.actions.macros.length;i++){if(rule.actions.macros[i].component.idProperty=='name'){var tempArr=rule.actions.macros[i].component.id.split('.');if(tempArr.length>1&&tempArr[0].toUpperCase()=='CALC'){rule.actions.macros[i].component.id=tempArr[0]+'_'+tempArr[1];}}
comps=form.findBy(function(comp){return(rule.actions.macros[i].component.id===comp[rule.actions.macros[i].component.idProperty]);});if(comps.length===0){continue;}
comp=comps[0];if(condSuccess){if(comp[rule.actions.macros[i].macro.trueMacro]&&(typeof(comp[rule.actions.macros[i].macro.trueMacro])=='function')){comp[rule.actions.macros[i].macro.trueMacro].apply(comp,(rule.actions.macros[i].args||[]));FigtreeWeb.app.diagLog('uirules',rule.actions.macros[i].macro.trueMacro+' '+rule.actions.macros[i].args);}}else if(rule.actions.macros[i].macro.falseMacro){if(comp[rule.actions.macros[i].macro.falseMacro]&&(typeof(comp[rule.actions.macros[i].macro.falseMacro])=='function')){comp[rule.actions.macros[i].macro.falseMacro].apply(comp,(rule.actions.macros[i].args||[]));FigtreeWeb.app.diagLog('uirules',rule.actions.macros[i].macro.falseMacro+' '+rule.actions.macros[i].args);}}}
if(rule.actions.scripts){if(condSuccess&&rule.actions.scripts.enabled){form.screen.performFWScript(rule.actions.scripts.enabled,form.screen,false);}else if(!condSuccess&&rule.actions.scripts.disabled){form.screen.performFWScript(rule.actions.scripts.disabled,form.screen,false);}}};for(var i=0;i<rules.length;i++){for(var j=0;j<rules[i].when.length;j++){if(rules[i].when[j].booleanOperator){continue;}
if(rules[i].when[j].component.idProperty=='name'){var tempArr=rules[i].when[j].component.id.split('.');if(tempArr.length>1&&tempArr[0].toUpperCase()=='CALC'){rules[i].when[j].component.id=tempArr[0]+'_'+tempArr[1];}}
compsArray=this.findBy(function(comp){return(rules[i].when[j].component.id===comp[rules[i].when[j].component.idProperty]);});if(compsArray.length===0){continue;}
component=compsArray[0];changeFn=onChangeFn.createDelegate(component,[rules[i],this],false);component.on('change',changeFn);component.fireEvent('change',component,(component.actualValue||component.getValue()),true);this.allRuleChangeFns.push(changeFn);}}
this.uiRulesApplied=true;},runAllUIRules:function(){var dc=this.dataChanged;if(!this.allRuleChangeFns||(this.allRuleChangeFns.length===0)){return;}
for(var i=0;i<this.allRuleChangeFns.length;i++){this.allRuleChangeFns[i].call();}
this.dataChanged=dc;},readUIRules:function(rules){if(!rules||rules.length==0||rules[0].name){return rules||[];}
var newRules=[];for(var i=0;i<rules.length;i++){var newRule={};var oldRule=rules[i];newRule.name=String.format('When {0} matches {1} run {2} on {3}',oldRule.whenField.id,oldRule.matches,oldRule.macro.trueMacro,oldRule.on[0].id);newRule.when=[{component:{id:oldRule.whenField.id,idProperty:oldRule.whenField.idProperty},ignoreCase:oldRule.ignoreCase,method:oldRule.doesMatch?'yesMatch':'noMatch',text:oldRule.matches}];newRule.actions={macros:[]};for(var j=0;j<oldRule.on.length;j++){newRule.actions.macros.push({macro:{trueMacro:oldRule.macro.trueMacro,falseMacro:oldRule.macro.falseMacro},component:{id:oldRule.on[j].id,idProperty:oldRule.on[j].idProperty}});}
newRules.push(newRule);}
return newRules;},reset:function(config){config=config||{};config.exclusions=config.exclusions||[];if(typeof config.exclusions==='string'){config.exclusions=config.exclusions.split(',');}
config.inclusions=config.inclusions||[];if(typeof config.inclusions==='string'){config.inclusions=config.inclusions.split(',');}
function resetField(c){if(!c.isXType('field')){return;}
var value=c.initialConfig.value;if(config.resetMethod==='clear'){value='';}
c.setValue(value);}
this.cascade(function doReset(c){if(c.isXType('fw-screen')){return false;}
if(config.inclusions.length>0){if(config.inclusions.indexOf(c.name)!==-1||config.inclusions.indexOf(c.wid)!==-1){resetField(c);}}else if(config.exclusions.length>0){if(config.exclusions.indexOf(c.name)===-1&&config.exclusions.indexOf(c.wid)===-1){resetField(c);}}else{resetField(c);}});},focusFirstField:function(){var me=this,done=false;this.cascade(function(c){if(c!==me&&(done||c.hidden||c.readOnly||c.disabled)){return false;}
if(c.isFormField&&typeof c.focus==='function'){c.focus(false,150);done=true;}});}});Ext.reg('fw-formpanel',FigtreeWeb.Widget.FormPanel);

FigtreeWeb.Widget.Container=function(config){FigtreeWeb.Widget.Container.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.Container,Ext.Container,{onRender:function(ct,position){if(!this.el){this.el=ct.createChild({id:this.id,cls:this.baseCls},position);}
this.renderTo=this.el;}});Ext.reg('fw-container',FigtreeWeb.Widget.Container);

FigtreeWeb.Widget.TabPanel=function(config){if(config.tbar&&Ext.isArray(config.tbar)){config.tbar=new FigtreeWeb.Widget.Toolbar({items:config.tbar});}
if(config.bbar&&Ext.isArray(config.bbar)){config.bbar=new FigtreeWeb.Widget.Toolbar({items:config.bbar});}
FigtreeWeb.Widget.TabPanel.superclass.constructor.call(this,config);if(this.selectedTab!=undefined){this.activeTab=this.selectedTab;delete this.selectedTab;}};Ext.extend(FigtreeWeb.Widget.TabPanel,Ext.TabPanel,{setActiveTab:function(item){this.unhideTabStripItem(item);FigtreeWeb.Widget.TabPanel.superclass.setActiveTab.call(this,item);item=this.getComponent(item);var action={name:'SET',type:'BASE_PARAMS',params:{currentFolderName:item.title}};FigtreeWeb.app.fireActions([action],false,this);},hideTabStripItem:function(item){if(!this.rendered){this.on('render',this.hideTabStripItem.createDelegate(this,[item]),this,{delay:100,single:true});return;}
FigtreeWeb.Widget.TabPanel.superclass.hideTabStripItem.call(this,item);item.tabHidden=true;if(this.activeTab==item){var el;item.hide();for(var i=0;i<this.items.getCount();i++){item=this.items.get(i);el=this.getTabEl(item);if(el.style.display!='none'){item.show();break;}}}},unhideTabStripItem:function(item){if(!this.rendered){this.on('render',this.unhideTabStripItem.createDelegate(this,[item]),this,{delay:100,single:true});return;}
var visibleTabCount=0;for(var i=0;i<this.items.getCount();i++){tab=this.items.get(i);el=this.getTabEl(tab);if(el.style.display!='none'){visibleTabCount++;}}
FigtreeWeb.Widget.TabPanel.superclass.unhideTabStripItem.call(this,item);item.tabHidden=false;if(visibleTabCount==0){if(this.activeTab==item){item.show();}else{this.setActiveTab(item);}}},createComponent:function(config){config.hideMode=config.hideMode||'offsets';return FigtreeWeb.Widget.TabPanel.superclass.createComponent.call(this,config);},add:function(comp){comp.hideTab=function(){this.ownerCt.hideTabStripItem(this);};comp.showTab=function(){this.ownerCt.unhideTabStripItem(this);};comp.tabHidden=(comp.tabHidden===true);comp.printIfHidden=true;return FigtreeWeb.Widget.TabPanel.superclass.add.apply(this,arguments);},createPDFPrintXML:function(){var items=this.items;this.items=items.filterBy(function(o){return(o.tabHidden!=true);});for(var i=0;i<this.items.items.length;i++){this.items.items[i].hidden=false;this.items.items[i].printable=(this.items.items[i].printable!==false);}
FigtreeWeb.Widget.TabPanel.superclass.createPDFPrintXML.apply(this,arguments);this.items=items;},afterRender:function(){FigtreeWeb.Widget.TabPanel.superclass.afterRender.call(this);this.items.each(function(item){if(item.tabHidden){this.hideTabStripItem(item);}},this);}});Ext.reg('fw-tabpanel',FigtreeWeb.Widget.TabPanel);

FigtreeWeb.Widget.Textbox=function(config){if(config.baseType&&config.baseType=='numberfield'){config.style='text-align:right';}
if(config.maskRe){config.regex=(config.maskReOpts)?new RegExp(config.maskRe,config.maskReOpts):new RegExp(config.maskRe);delete config.maskRe;if(config.maskReMsg){config.regexText=config.maskReMsg;delete config.maskReMsg;}}
FigtreeWeb.Widget.Textbox.superclass.constructor.call(this,config);this.on('specialKey',this.checkForEnter,this);if(config.adtType&&config.adtType.toUpperCase()=='TIME'){this.on('blur',this.format24HrTime,this);}};Ext.extend(FigtreeWeb.Widget.Textbox,Ext.form.TextField,{width:200,numbersOnlyChars:'0123456789.-',onRender:function(ct,position){FigtreeWeb.Widget.Textbox.superclass.onRender.apply(this,arguments);if(Ext.isIE8&&this.ownerCt.initialConfig.layout=='fw-table'){this.getEl().setStyle({'margin-top':'3px'});}
if(this.numbersOnly===true){this.getEl().on('keypress',this.isNumber,this);}},checkForEnter:function(field,e){if(e.getKey()==e.ENTER&&!this.readOnly){this.fireEvent('enterkeypress',this);if(this.submitOnEnter){var action={name:'SUBMIT'};FigtreeWeb.app.fireActions([action],false,this);}}},isNumber:function(e){var k=e.getKey();if(!Ext.isIE&&(e.isSpecialKey()||k==e.BACKSPACE||k==e.DELETE)){return;}
var c=e.getCharCode();if(this.numbersOnlyChars.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}},format24HrTime:function(){var v=this.getValue(),wantColon=this.regex.source.indexOf(':')!=-1;if(wantColon&&v&&v.length==4&&v.indexOf(':')===-1){v=v.substring(0,2)+':'+v.substring(2,4);this.setValue(v);}}});Ext.reg('fw-textbox',FigtreeWeb.Widget.Textbox);

FigtreeWeb.Widget.Checkbox=function(config){FigtreeWeb.Widget.Checkbox.superclass.constructor.call(this,config);this.on('check',function(){this.fireEvent('change',this,this.value);},this);};Ext.extend(FigtreeWeb.Widget.Checkbox,Ext.form.Checkbox,{getValue:function(){return String(FigtreeWeb.Widget.Checkbox.superclass.getValue.call(this));},markInvalid:Ext.form.Field.prototype.markInvalid,clearInvalid:Ext.form.Field.prototype.clearInvalid,alignErrorIcon:function(){this.errorIcon.alignTo(this.imageEl,'tl-tr',[2,-3]);},onRender:function(ct,position){FigtreeWeb.Widget.Checkbox.superclass.onRender.call(this,ct,position);if(this.labelEl){this.labelEl.addClass('x-form-item');}
if(this.ownerCt&&this.ownerCt.initialConfig.layout=='absolute'){this.innerWrap.dom.style.paddingTop='0px';this.wrap.dom.style.paddingTop='0px';if(Ext.isIE){this.y-=4;}}
var lbls=this.name?this.ownerCt.find('wid',this.name.replace(/\./g,'_')+'_lbl'):[];if(lbls.length>0){var fn=function(c){c.el.on('click',function(){if((this.readOnly!==true)&&!this.disabled){this.toggleValue();}},this);c.el.setStyle({'cursor':'pointer'});c.el.addClass('x-unselectable');c=null;};if(lbls[0].rendered){fn.call(this,lbls[0]);}else{lbls[0].on('render',fn,this,{single:true});}}
lbls=null;},onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass);this.innerWrap.removeClass(this.focusCls);}
this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate();}
this.fireEvent("blur",this);},onFocus:function(e){FigtreeWeb.Widget.Checkbox.superclass.onFocus.call(this,e);this.innerWrap.addClass(this.focusCls);}});Ext.reg('fw-checkbox',FigtreeWeb.Widget.Checkbox);

FigtreeWeb.Widget.Textarea=function(config){FigtreeWeb.Widget.Textarea.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.Textarea,Ext.form.TextArea,{width:200,height:120,actionMode:'wrap',hideDialogIcon:false,autoTruncate:false,initComponent:function(){if(this.enforceMaxLength){this.autoTruncate=(!this.readOnly&&this.maxLength&&(this.maxLength!=Number.MAX_VALUE));}
FigtreeWeb.Widget.Textarea.superclass.initComponent.apply(this,arguments);},onRender:function(ct,position){FigtreeWeb.Widget.Textarea.superclass.onRender.call(this,ct,position);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});if(!this.hideDialogIcon){this.iconCt=this.wrap.createChild({tag:'span',style:'padding-left: 5px'});this.icon=new FigtreeWeb.Widget.Icon({iconName:'view.png'});this.iconCt.on('click',this.showDialog,this);this.icon.render(this.iconCt);}
this.el.on('dblclick',function(){if(!FigtreeWeb.Application.disableTextareaDoubleClickExpand){this.showDialog();}},this);if(this.preventScrollbars){this.el.setStyle("overflow","hidden");}},initEvents:function(){FigtreeWeb.Widget.Textarea.superclass.initEvents.apply(this,arguments);if(this.autoTruncate){this.truncateMsg=String.format(this.maxLengthText,this.maxLength);this.validationTask=new Ext.util.DelayedTask(this.checkTruncateAndValidate,this);}},checkTruncateAndValidate:function(){var v=this.getRawValue();if(v.length>this.maxLength){this.setRawValue(this.getRawValue().substring(0,this.maxLength));this.markInvalid(this.truncateMsg);this.showValQTip();return false;}
return this.validate();},showValQTip:function(){var tip=Ext.QuickTips.getQuickTip();var el=this.errorIcon||this.getEl();var xy=el.getAlignToXY(el,'tr');xy[0]-=(tip.mouseOffset[0]-5);xy[1]-=tip.mouseOffset[1];el=el.dom;var e={getTarget:function(){return el;},getXY:function(){return xy;},preventDefault:function(){}};var showDelay=tip.showDelay;tip.showDelay=0;tip.onTargetOver(e);tip.showDelay=showDelay;},clearInvalid:function(){FigtreeWeb.Widget.Textarea.superclass.clearInvalid.apply(this,arguments);if(this.autoTruncate){Ext.QuickTips.getQuickTip().hide();}},onResize:function(w,h){FigtreeWeb.Widget.Textarea.superclass.onResize.call(this,w,h);if(typeof w=='number'){this.el.setWidth(this.adjustWidth('textarea',w));}
this.el.setHeight(h);this.wrap.setHeight(h);this.wrap.setWidth(this.el.getWidth()
+((this.iconCt)?this.iconCt.getWidth():0));},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap;},getPositionEl:function(){return this.wrap;},showDialog:function(){if(this.disableDialog){return;}
if(!this.dlg){var buttons=[];if(this.readOnly||this.disabled){buttons.push({text:FigtreeWeb.app.translate('close'),handler:this.dlgCancel,scope:this,cls:'carica-button-primary'});}else{buttons.push({text:FigtreeWeb.app.translate('ok'),handler:this.dlgOk,scope:this,cls:'carica-button-primary'});buttons.push({text:FigtreeWeb.app.translate('cancel'),handler:this.dlgCancel,scope:this,cls:'carica-button-secondary'});}
this.popId=this.getEl().dom.id+'pop';var config={height:(document.body.clientHeight*0.55),width:(document.body.clientWidth*0.40),buttonAlign:'center',resizable:true,collapsible:false,closable:false,layout:'fit',modal:true,items:[{xtype:'fw-textarea',id:this.popId,readOnly:this.readOnly,maxLength:this.maxLength,disabled:this.disabled,hideDialogIcon:true,disableDialog:true}],buttons:buttons}
this.dlg=new Ext.Window(config);}
this.dlg.getComponent(this.popId).setValue(this.getValue());this.dlg.show();},dlgOk:function(){this.setValue(this.dlg.getComponent(this.popId).getValue());this.dlg.hide();},dlgCancel:function(){this.dlg.hide();},destroy:function(){if(this.dlg){this.dlg.destroy();}
if(this.iconCt){Ext.destroy(this.iconCt);}
if(this.icon){this.icon.destroy();}
FigtreeWeb.Widget.Textarea.superclass.destroy.call(this);},setValue:function(value){value=value.replace(/\:lf\:/g,'\n').replace(/\:cr\:/g,'\r');FigtreeWeb.Widget.Textarea.superclass.setValue.call(this,value);}});Ext.reg('fw-textarea',FigtreeWeb.Widget.Textarea);

FigtreeWeb.Widget.Tile=function(config){FigtreeWeb.Widget.Tile.superclass.constructor.call(this,config);this.addEvents({'click':true});};Ext.extend(FigtreeWeb.Widget.Tile,Ext.BoxComponent,{onRender:function(ct,position){this.autoEl={tag:'table',cls:'fw-tile',style:{'border-spacing':0,'background-color':this.backgroundColour,cursor:'pointer'},children:[]};var iconCell={tag:'td',style:{'vertical-align':'middle','text-align':'center'},children:[{tag:'img',src:'images/v2/tile/'+this.icon+'.png'}]};var textCell={tag:'td',style:{'vertical-align':'middle','text-align':this.textAlign,width:'100%'},children:[{tag:'span',style:{'font-size':this.fontSize+'px','line-height':'1em','color':this.fontColour},html:this.text}]};switch(this.iconAlign){case'none':this.autoEl.children.push(textCell);break;case'left':this.autoEl.children.push(iconCell,textCell);break;case'right':this.autoEl.children.push(textCell,iconCell);break;case'center':this.autoEl.children.push(iconCell);break;}
FigtreeWeb.Widget.Tile.superclass.onRender.call(this,ct,position);this.el.on('click',this.onClick,this);this.el.addClassOnOver('fw-tile-over');},onClick:function(e){if(!this.disabled){this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}}});Ext.reg('fw-tile',FigtreeWeb.Widget.Tile);

FigtreeWeb.Widget.Icon=function(config){FigtreeWeb.Widget.Icon.superclass.constructor.call(this,config);this.addEvents({'click':true});};Ext.extend(FigtreeWeb.Widget.Icon,Ext.BoxComponent,{iconPathShadow:'/shadow/',iconPathPlain:'/plain/',iconPathBase:'images/icons/',iconSize:'16',iconName:'',title:'',tabIndex:undefined,isLinkIcon:undefined,onRender:function(ct,position){this.iconPathPlain=this.iconPathBase+this.iconSize+this.iconPathPlain+this.iconName;this.iconPathShadow=this.iconPathBase+this.iconSize+this.iconPathShadow+this.iconName;var config={tag:'img',src:this.iconPathPlain,border:'0',width:this.iconSize,height:this.iconSize,title:this.title};this.el=ct.createChild(config);if(this.hasListener('click')||this.isLinkIcon){this.el.on('mouseover',this.mouseOver,this);this.el.on('mouseout',this.mouseOut,this);this.el.dom.style.cursor='pointer';this.el.on('keydown',function(e){if(e.getKey()==e.ENTER){this.onClick(e);}},this);if(this.tabIndex!=undefined){this.el.dom.tabIndex=this.tabIndex;}}
this.el.on('click',this.onClick,this);},mouseOver:function(e,t){this.el.dom.src=this.iconPathShadow;},mouseOut:function(e,t){this.el.dom.src=this.iconPathPlain;},onClick:function(e){this.fireEvent('click',e,this);}});Ext.reg('fw-icon',FigtreeWeb.Widget.Icon);

FigtreeWeb.Widget.TriggerField=function(config){FigtreeWeb.Widget.TriggerField.superclass.constructor.call(this,config);if(!this.triggerTip){this.triggerTip=this.toolTip;}};Ext.extend(FigtreeWeb.Widget.TriggerField,Ext.form.TriggerField,{triggerConfig:{tag:'span',cls:'x-form-trigger x-form-trigger-plain'},baseCls:'fw-trigger-field',onRender:function(){FigtreeWeb.Widget.TriggerField.superclass.onRender.apply(this,arguments);this.triggerImagePathPlain=FigtreeWeb.app.getIconPlain('',16);this.triggerImagePathShadow=FigtreeWeb.app.getIconShadow('',16);this.triggerImage=this.trigger.createChild({tag:'img',cls:'fw-trigger-image',src:this.triggerImagePathPlain+this.triggerImageName});if(!this.x&&!this.y){this.wrap.setStyle({'position':'relative'});}
this.wrap.addClass('fw-trigger-field-wrap');this.trigger.setStyle({'vertical-align':'baseline','position':'absolute','top':'0'});if(!this.x&&!this.y&&Ext.isIE8){this.getEl().setStyle({'margin-top':(this.hideTrigger)?'0px':'3px'});}
this.getEl().addClass(this.baseCls);},initTrigger:function(){this.trigger.un('click',this.onTriggerClick,this);this.trigger.un('mouseover',this.onMouseOver,this);this.trigger.un('mouseout',this.onMouseOut,this);this.trigger.on('click',this.onTriggerClick,this,{preventDefault:true});this.trigger.on('mouseover',this.onMouseOver,this);this.trigger.on('mouseout',this.onMouseOut,this);if(this.triggerTip){this.trigger.dom.title=this.triggerTip;}},disableTrigger:function(){this.trigger.un('click',this.onTriggerClick,this);this.trigger.un('mouseover',this.onMouseOver,this);this.trigger.un('mouseout',this.onMouseOut,this);this.trigger.dom.title='';},onMouseOver:function(){this.triggerImage.dom.src=this.triggerImagePathShadow+this.triggerImageName;},onMouseOut:function(){this.triggerImage.dom.src=this.triggerImagePathPlain+this.triggerImageName;},validate:function(){if(this.wrap){FigtreeWeb.Widget.TriggerField.superclass.validate.call(this);}},destroy:function(){if(this.triggerImage){this.triggerImage.remove();}
FigtreeWeb.Widget.TriggerField.superclass.destroy.call(this);},onClick:Ext.emptyFn,onEnable:function(){FigtreeWeb.Widget.TriggerField.superclass.onEnable.apply(this,arguments);this.initTrigger();},onDisable:function(){FigtreeWeb.Widget.TriggerField.superclass.onDisable.apply(this,arguments);this.disableTrigger();}});Ext.reg('fw-triggerfield',FigtreeWeb.Widget.TriggerField);

FigtreeWeb.Widget.DateField=function(config){config.format=config.format||FigtreeWeb.app.getDateFormat();config.altFormats=config.altFormats||(config.format.indexOf("Y")>0)?config.format.replace(/Y/g,"y"):config.format.replace(/y/g,"Y");if(FigtreeWeb.Widget.DateField.altDateFormats){config.altFormats=FigtreeWeb.Widget.DateField.altDateFormats;config.invalidText=FigtreeWeb.app.translate('invalid_field');}
FigtreeWeb.Widget.DateField.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.DateField,Ext.form.DateField,{width:200,onTriggerClick:function(){if(this.disabled||this.readOnly){return;}
if(this.menu==null){this.menu=new Ext.menu.DateMenu();}
Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue)),monthNames:FigtreeWeb.app.translate('month_list').split('[|]'),dayNames:FigtreeWeb.app.translate('day_names').split('[|]')});this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.picker.setValue(this.getValue(true)||new Date());this.menu.show(this.el,"tl-bl?");},getValue:function(asDate){if(asDate){return FigtreeWeb.Widget.DateField.superclass.getValue.call(this);}else{return Ext.form.DateField.superclass.getValue.call(this);}},onRender:function(ct,postition){FigtreeWeb.Widget.DateField.superclass.onRender.call(this,ct,postition);this.on('specialKey',this.checkForEnter,this);},setValue:function(value){var fireChange=(this.formatDate(this.parseDate(value))!=this.getValue());FigtreeWeb.Widget.DateField.superclass.setValue.call(this,value);if(fireChange){this.fireEvent('change',{field:this,newValue:this.value});}},checkForEnter:function(field,e){if(e.getKey()==e.ENTER&&!this.readOnly){this.onTriggerClick();}},validateValue:function(date){return/^today(\s*[+-]{1}\s*\d+)?$/i.test(date.trim())||FigtreeWeb.Widget.DateField.superclass.validateValue.call(this,date);}});Ext.reg('fw-datefield',FigtreeWeb.Widget.DateField);FigtreeWeb.Widget.DateField.altDateFormats=undefined;

FigtreeWeb.Widget.NumberField=function(config){if(config.baseType&&config.baseType=='numberfield'){config.style='text-align:right';}
if(config.maskRe){config.regex=(config.maskReOpts)?new RegExp(config.maskRe,config.maskReOpts):new RegExp(config.maskRe);delete config.maskRe;if(config.maskReMsg){config.regexText=config.maskReMsg;delete config.maskReMsg;}}
config.decimalSeparator=config.decimalSeparator||FigtreeWeb.app.getDecimalSeparator();config.thousandsSeparator=config.thousandsSeparator||FigtreeWeb.app.getThousandsSeparator();config.hideTrigger=config.hideTrigger||(config.decimalSeparator!=='.');FigtreeWeb.Widget.NumberField.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.NumberField,FigtreeWeb.Widget.TriggerField,{validationEvent:false,baseCls:'fw-number-field',fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",thousandsSeparator:",",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",width:200,allowZero:true,initEvents:function(){FigtreeWeb.Widget.NumberField.superclass.initEvents.call(this);var allowed=this.baseChars+'';if(this.allowDecimals){allowed+=this.decimalSeparator;}
if(this.commas){allowed+=this.thousandsSeparator;}
if(this.allowNegative){allowed+="-";}
this.stripCharsRe=new RegExp('[^'+allowed+']','gi');var keyPress=function(e){var k=e.getKey();if(!Ext.isIE&&(e.isSpecialKey()||k==e.BACKSPACE||k==e.DELETE)){return;}
var c=e.getCharCode();if(allowed.indexOf(String.fromCharCode(c))===-1){e.stopEvent();}};this.el.on("keypress",keyPress,this);},validateValue:function(value){if(!FigtreeWeb.Widget.NumberField.superclass.validateValue.call(this,value)){return false;}
if(value.length<1){return true;}
if(isNaN(this.parseValue(value,true))){this.markInvalid(String.format(this.nanText,value));return false;}
var num=this.parseValue(value);if(num<this.minValue){this.markInvalid(String.format(this.minText,this.minValue));return false;}
if(num>this.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false;}
if(!this.allowZero&&(num+0)==0){this.markInvalid(FigtreeWeb.app.translate('zero_not_allowed'));return false;}
return true;},getValue:function(){return this.fixPrecision(this.parseValue(FigtreeWeb.Widget.NumberField.superclass.getValue.call(this)));},parseValue:function(value,skipIsNaNCheck){var rex=new RegExp('\\'+this.thousandsSeparator,'g');value=String(value);value=value.replace(rex,'').replace(this.decimalSeparator,'.');value=parseFloat(value);if(skipIsNaNCheck===true){return value;}
return isNaN(value)?'':value;},fixPrecision:function(value){var nan=isNaN(value);if(!this.allowDecimals||this.decimalPrecision==-1||nan||(!value&&value!==0)){return nan?'':value;}
var v=parseFloat(value).toFixed(this.decimalPrecision);return v;},beforeBlur:function(){var v=this.parseValue(this.getRawValue());if(v===0||v){this.setValue(v);}},setValue:function(v){if(this.thousandsSeparator===','&&typeof v==='string'){v=v.replace(/\,/g,'');}
v=this.fixPrecision(v);this.value=v;if(this.rendered){v=this.formatValue(v);this.el.dom.value=(v===null||v===undefined?'':v);this.validate();}},calculatorShadow:'sides',calculatorAlign:'bl',triggerImageName:'calculator.png',calculator:null,onTriggerClick:function(){if(this.disabled||this.readOnly||this.hideTrigger){return;}
if(this.calculator!=null&&this.calculator.isVisible())
{this.calculator.hide();}
else
{if(this.calculator==null)
{this.calculator=new Ext.ux.Calculator({decimalPrecision:this.decimalPrecision});this.calculator.on('hide',function(){this.setValue(this.calculator.getValue());this.calculator.hide();var startValue=this.startValue;this.focus();(function(){this.startValue=startValue;}).defer(10,this);},this);this.calculator.on('cancel',function(){this.calculator.hide();},this);this.calculator.render();this.calculator.alignTo(this.el,this.calculatorAlign);this.calculator.show();}
else
{this.calculator.alignTo(this.el,this.calculatorAlign);this.calculator.show();}
this.calculator.setValue(String(this.getValue()));}},onRender:function(ct,postition){FigtreeWeb.Widget.NumberField.superclass.onRender.call(this,ct,postition);this.on('specialKey',this.checkForEnter,this);this.beforeBlur();},checkForEnter:function(field,e){if(e.getKey()==e.ENTER&&!this.readOnly){this.onTriggerClick();}},formatValue:function(v){v=String(v).split('.');if(this.commas){v[0]=v[0].replace(/(\d)(?=(\d{3})+(?!\d))/g,'$1'+this.thousandsSeparator);}
v=v.join(this.decimalSeparator);return v;},commify:function(){if(!this.rendered||!this.commas){return;}
this.setRawValue(this.formatValue(this.parseValue(this.getRawValue())));}});Ext.reg('fw-numberfield',FigtreeWeb.Widget.NumberField);

FigtreeWeb.Widget.Select=function(config){var foundBlankDesc=false;for(var i=0;i<config.data.length;i++){if(config.data[i][0]==''&&config.data[i][1]==''){foundBlankDesc=true;}}
if(!config.store){var store=new Ext.data.SimpleStore({fields:config.dataFields,data:config.data});config.store=store;}
config.typeAhead=false;config.mode='local';config.triggerAction='all';FigtreeWeb.Widget.Select.superclass.constructor.call(this,config);if(foundBlankDesc){this.tpl='<tpl for="."><div style="height:12px" class="x-combo-list-item" title="{'+
this.displayField+'}">{'+this.displayField+'}</div></tpl>';}else{this.tpl='<tpl for="."><div class="x-combo-list-item" title="{'+
this.displayField+'}">{'+this.displayField+'}</div></tpl>';}
this.on('select',this.selectFired,this);this.blankValue=FigtreeWeb.app.translate('blank');};Ext.extend(FigtreeWeb.Widget.Select,Ext.form.ComboBox,{width:200,filterOn:'description',anyFilterMatch:false,afterRender:function(){if(this.readOnly){this.editable=false;}
FigtreeWeb.Widget.Select.superclass.afterRender.apply(this,arguments);},onTriggerClick:function(){if(this.readOnly){return;}
FigtreeWeb.Widget.Select.superclass.onTriggerClick.call(this);},selectFired:function(){var v=this.getValue();if(String(v)!==String(this.startValue)){this.fireEvent('change',this,v,this.startValue);this.startValue=v;}},validateValue:function(value){if(FigtreeWeb.Widget.Select.superclass.validateValue.call(this,value)&&(value.length>=1&&value!==this.emptyText&&value!==this.blankValue)){for(var i=0;i<this.store.getCount();i++){if(this.store.getAt(i).get((this.lastSelectionText&&this.rendered)?this.displayField:this.valueField).toUpperCase()==value.toUpperCase()){this.clearInvalid();return true;}}
this.value=value;this.markInvalid(FigtreeWeb.app.translate('invalid_field'));return false;}else if(this.allowBlank&&(value.length<1||value===this.emptyText||value===this.blankValue)){this.value='';return true;}
return false;},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('font','data');el.innerHTML=this.value||'';if(this.value&&this.store){var record=this.store.find(this.valueField,this.value);if(record!=-1){record=this.store.getAt(record);el.innerHTML=record.get(this.displayField);}}
el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;},initValue:function(){if(this.isRendering){return;}
FigtreeWeb.Widget.Select.superclass.initValue.call(this);},onRender:function(ct,position){this.isRendering=true;FigtreeWeb.Widget.Select.superclass.onRender.call(this,ct,position);this.isRendering=undefined;this.initValue();},findRecord:function(prop,value){var record;if(this.store.getCount()>0){this.store.each(function(r){if((typeof value=='string')&&(typeof r.data[prop]=='string')){if(new RegExp("^"+RegExp.escape(r.data[prop])+"$","i").test(value)){record=r;return false;}}else if(r.data[prop]==value){record=r;return false;}});}
return record;},initEvents:function(){FigtreeWeb.Widget.Select.superclass.initEvents.call(this);if(!this.editable&&!this.readOnly){this.el.on("keyup",this.onNoEdKeyUp,this);}},onNoEdKeyUp:function(e){if(!this.isExpanded()){return;}
var ch=String.fromCharCode(e.getKey()).toLowerCase();var index=this.store.findBy(function(r,id){return r.get(this.displayField).toLowerCase().indexOf(ch)===0;},this,((this.selectedIndex!==-1)?this.selectedIndex+1:0));if(index===-1&&(this.selectedIndex!==-1)){index=this.store.findBy(function(r,id){return r.get(this.displayField).toLowerCase().indexOf(ch)===0;},this);}
if(index!==-1){this.select(index,true);}},getDisplayValue:function(){return this.getRawValue();},doQuery:function(q,forceAll){if(q===undefined||q===null){q='';}
var qe={query:q,forceAll:forceAll,combo:this,cancel:false};if(this.fireEvent('beforequery',qe)===false||qe.cancel){return false;}
q=qe.query;forceAll=qe.forceAll;if(forceAll===true||(q.length>=this.minChars)){if(this.lastQuery!==q){this.lastQuery=q;if(this.mode=='local'){this.selectedIndex=-1;if(forceAll){this.store.clearFilter();}else{if(this.filterOn==='both'){this.store.filterBy(function(r){var vm=this.store.data.createValueMatcher(q,this.anyFilterMatch);return vm.test(r.get(this.displayField))||vm.test(r.get(this.valueField));},this);}else if(this.filterOn==='code'){this.store.filter(this.valueField,q,this.anyFilterMatch);}else{this.store.filter(this.displayField,q,this.anyFilterMatch);}}
this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.load({params:this.getParams(q)});this.expand();}}else{this.selectedIndex=-1;this.onLoad();}}},validateBlur:function(){if(!this.store){Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);return false;}
return FigtreeWeb.Widget.Select.superclass.validateBlur.apply(this,arguments);}});Ext.reg('fw-select',FigtreeWeb.Widget.Select);

FigtreeWeb.Widget.Radioset=function(config){this.defaults={bodyStyle:{'padding-right':'10px'}};FigtreeWeb.Widget.Radioset.superclass.constructor.call(this,config);if(this.orientation==='vertical'&&!this.columns){this.columns=1;}};Ext.extend(FigtreeWeb.Widget.Radioset,Ext.form.RadioGroup,{allowDomMove:false,tabIndex:undefined,columns:undefined,orientation:'horizontal',onRender:function(ct,position){if(!this.el){var namePostfix=Ext.id().replace('ext',''),panelCfg={cls:this.groupCls,layout:'fw-table',border:false,renderTo:ct,autoHeight:true,layoutConfig:{stretch:false,columns:this.columns||this.items.length},autoWidth:false};for(var i=0,len=this.items.length;i<len;i++){Ext.applyIf(this.items[i],{xtype:this.defaultType,toolTip:this.toolTip,disabled:this.readOnly,boxLabel:this.items[i].label,name:this.name,inputValue:this.items[i].value});if(this.tabIndex!=undefined){this.items[i].tabIndex=this.tabIndex;}
this.items[i].name+=namePostfix;};this.tabIndex=undefined;Ext.apply(panelCfg,{defaults:this.defaults,items:this.items});this.panel=new FigtreeWeb.Widget.Container(panelCfg);var tableEl=Ext.get(this.panel.getLayout().table);tableEl.addClass('fw-radioset');this.el=tableEl;var fields=this.panel.findBy(function(c){return c.isFormField;},this);this.items=new Ext.util.MixedCollection();this.items.addAll(fields);this.on('change',function(){this.validate();},this);}
FigtreeWeb.Widget.Radioset.superclass.onRender.call(this,ct,position);if(Ext.isIE9&&(!this.columns||this.columns>1)){var col,width,totalWidth=0;for(var i=0;i<fields.length;i++){width=fields[i].wrap.getWidth()+12;col=this.el.createChild({tag:'col',width:width});totalWidth+=width;}
this.el.dom.width=totalWidth+'px';this.el.setStyle({'table-layout':'fixed'});}},getValue:function(){if(this.rendered){var val=this.items.first().getGroupValue();return(val!=null)?val:'';}else{for(var i in this.items){if(this.items[i].checked){return this.items[i].inputValue;}}}
return'';},getLabel:function(){var items=this.items;if(this.rendered){items=this.items.items;}
for(var i in items){if(items[i].checked){return items[i].boxLabel;}}
return'';},setValue:function(value){if(this.rendered){this.items.first().setValue(value);}else{for(var i in this.items){this.items[i].checked=(this.items[i].inputValue==value);}}
this.fireEvent('change',this,value);},initValue:function(){FigtreeWeb.Widget.Radioset.superclass.initValue.call(this);if(this.value!==undefined){this.suspendEvents();this.setValue(this.value);this.resumeEvents();}else if(this.rendered){this.validate();}},bufferChecked:function(){var out=null;this.items.each(function(item){if(item.checked){out=item.inputValue;return false;}});this.fireEvent('change',this,out);},createPDFPrintXML:function(parent){var el=FigtreeWeb.Widget.Radioset.superclass.createPDFPrintXML.call(this,parent);el.innerHTML=this.getLabel();el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');return el;}});Ext.reg('fw-radioset',FigtreeWeb.Widget.Radioset);

FigtreeWeb.Widget.Lookup=Ext.extend(FigtreeWeb.Widget.TriggerField,{triggerImageName:'find.png',value:'',description:'',width:200,simpleLookup:true,autoSelectFirstRow:false,alwaysSendValue:false,lookupOnChange:false,enableKeyEvents:true,editable:false,popGridWidth:300,popGridHeight:200,activeScreen:null,baseCls:'fw-lookup-field',initComponent:function(){FigtreeWeb.Widget.Lookup.superclass.initComponent.apply(this,arguments);this.alwaysSendValue=this.alwaysSendValue||(this.name=='search.search_string');this.addEvents({'triggerclick':true});this.on('specialKey',this.onSpecialKey,this);if(this.lookupOnChange&&this.alwaysSendValue){this.lookupOnChange=false;}},onRender:function(ct,position){FigtreeWeb.Widget.Lookup.superclass.onRender.call(this,ct,position);this.on('keydown',function(f,e){if(this.grid&&this.grid.isVisible()){var k=e.getKey();if(k===e.TAB||k===e.ESC){this.grid.hide();}}});this.on('keyup',function(f,e){if(this.simpleLookup&&!this.disabled&&!this.readOnly&&!this.hasListener('triggerclick')){var k=e.getKey();if((k==e.BACKSPACE||!e.isSpecialKey())&&k!==e.TAB&&k!==0){this.onTriggerClick();}}},this,{buffer:300});if(this.linkField){var screen=this.findParentByType('fw-screen'),linkField=screen.form.fields[this.linkField];linkField.on('change',function(c,value,firedByApplyUIRules){if(firedByApplyUIRules!==true){this.setValue('','');}},this);}
if(!this.editable){var triggerClickEvent='triggerClick',behaviour=this.initialConfig.behaviour;if(behaviour){var triggerClick=behaviour[triggerClickEvent]||behaviour[triggerClickEvent.toLowerCase()];if(triggerClick&&triggerClick.actions&&triggerClick.actions.length>0&&triggerClick.actions[0].name.toUpperCase()==='RUNSCRIPT'&&/^popupNavigate/.test(triggerClick.actions[0].script)){this.getEl().dom.readOnly=true;this.getEl().setStyle({'cursor':'pointer'});this.getEl().on('click',this.onTriggerClick,this);}}}},getValue:function(){return this.value;},setValue:function(value,desc){var oldVal=this.getValue();if(value instanceof Object){desc=value.description;value=value.value;}
desc=desc||'';if(this.rendered){this.setRawValue((desc!=='')?desc:value);if(desc!==''){desc=this.getRawValue();}}
this.value=value;this.description=desc;this.startValue=desc;this.validate();if(this.value!=oldVal){this.fireEvent('change',this,this.value,oldVal);}},validateValue:function(){return FigtreeWeb.Widget.Lookup.superclass.validateValue.call(this,this.value);},initValue:function(){if(this.value!==undefined){this.setValue(this.value,this.description);}
this.originalValue=this.getValue();this.originalDesc=this.description;},reset:function(){this.setValue(this.originalValue,this.originalDesc);this.clearInvalid();},shouldSendRawValue:function(){return(!this.readOnly&&(this.alwaysSendValue||(this.getRawValue()!=this.description)));},onTriggerClick:function(){var parentScreen,activeScreen;if(this.activeScreen){return;}
if(this.hasListener('triggerclick')){this.fireEvent('triggerclick',this);}else{if(this.simpleLookup){if(this.readOnly){return;}
var query='';if(this.shouldSendRawValue()){query=this.getRawValue();}
this.showGrid(query,'');return;}
this.popupFieldValue=this.getValue();this.actionKey='';this.actionExtraParams='';if(this.shouldSendRawValue()){this.actionKey=this.getRawValue();this.popupFieldValue=this.getRawValue();this.actionExtraParams=';lookup';}
FigtreeWeb.app.fireActions(this.actions,false,this);}
parentScreen=this.findParentByType('fw-screen');activeScreen=parentScreen&&parentScreen.getPopup();if(activeScreen&&activeScreen!==parentScreen){this.activeScreen=activeScreen;var onDestroy=function(){this.activeScreen=null;this.focus(false,150);};this.activeScreen.on('destroy',onDestroy,this,{delay:20});var win=this.activeScreen.findParentByType('window');if(win&&win.focusEl){win.focus();}}},onSpecialKey:function(field,e){var sm,gv,key=e.getKey(),wrap;if(key==e.ENTER&&!this.readOnly){if(this.grid&&this.grid.isVisible()&&this.grid.getStore().getCount()===1){this.grid.fireEvent('rowdblclick',this.grid,0,{ctrlKey:false});}else{this.onTriggerClick();}}
if(key==e.TAB&&this.lookupOnChange&&this.shouldSendRawValue()){this.onTriggerClick();}
if((key==e.UP||key==e.DOWN)&&!this.readOnly){if(!this.grid||!this.grid.isVisible()){this.onTriggerClick();}else{sm=this.grid.getSelectionModel();gv=this.grid.getView();if(sm.hasSelection()){sm[key==e.DOWN?'selectNext':'selectPrevious']();}else{sm[key==e.DOWN?'selectFirstRow':'selectLastRow']();if(sm.lastActive!==false){gv.focusRow(sm.lastActive);}}}}},onFocus:function(){if(this.focusClass){this.el.addClass(this.focusClass);}
if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getRawValue();this.fireEvent("focus",this);}},onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass);}
this.hasFocus=false;var v=this.getRawValue();if(String(v)!==String(this.startValue)){this.setValue(v);}
this.fireEvent("blur",this);},showGrid:function(query,extraParams){var params=Ext.applyIf({},this.params);params.params+=';query;'+query;if(this.getFields){var screen=this.findParentByType('fw-screen');var getFields=this.getFields.split(',');var fields=[];var field;for(var i=0;i<getFields.length;i++){field=screen.getField(getFields[i]);if(field){fields.push({name:field.name,value:field.getValue()});}}
params.fields=Ext.util.JSON.encode(fields);}
if(this.grid&&this.grid.isVisible()){if(!this.grid.getEl().isMasked()){this.grid.doGet(params);}
return;}
this.destroyGrid();var gridConfig={width:this.wrap.getWidth(),height:this.popGridHeight,columns:[],dataSpec:[],data:[],bbar:[],ownerCt:this.ownerCt,floating:true,parentControl:this,ignoreValidTarget:true};if(this.addScreen){var action={name:'NAVIGATE',type:'POPUP',width:this.addPopupWidth,height:this.addPopupHeight,params:Ext.apply({},this.addScreen)};var button={text:this.addButtonText||FigtreeWeb.app.translate('add'),icon:FigtreeWeb.app.getIconPlain((this.addButtonIcon||'add.png'),16),cls:'x-btn-text-icon',handler:(function(a){this.grid.hide();FigtreeWeb.app.fireActions([a],false,this);}).createDelegate(this,[action]),scope:this};gridConfig.tbar=[button];gridConfig.baseType='grid';}
this.grid=new FigtreeWeb.Widget.Grid(gridConfig);this.grid.render(Ext.getBody());this.grid.hide();this.grid.hideIf=function(e){if(!e.within(this.getEl())&&!e.within(this.parentControl.wrap)){if(this.getView().hmenu&&e.within(this.getView().hmenu.getEl())){return;}
this.hide();}};this.grid.on('show',function(){Ext.getDoc().on('mousedown',this.hideIf,this);if(!this.resizer){this.resizer=new Ext.Resizable(this.el,{handles:'all',pinned:false});this.resizer.on('resize',function(rz,width,height){this.width=width;this.height=height;this.setSize({width:width,height:height});if(this.viewReady){this.view.layout();}},this);}},this.grid,{delay:1});this.grid.on('hide',function(){Ext.getDoc().un('mousedown',this.grid.hideIf,this.grid);delete this.grid.name;},this);this.grid.on('linkfired',function(grid,link){this.setValue(link.actionKey,link.actionDescription);grid.hide();this.focus(false,1);},this);this.grid.on('reconfiguring',function(){this.getEl().focus();},this,{delay:1});this.grid.on('keydown',function(e){if(e){if(e.keyCode===e.ENTER||e.keyCode===e.TAB){var sm=this.grid.getSelectionModel(),store=this.grid.getStore(),selected=store.indexOf(sm.getSelected());this.grid.fireEvent('rowdblclick',this.grid,selected,{ctrlKey:false});}else if(e.keyCode===e.ESC){this.grid.hide();this.focus();}}},this);this.ownerCt.items.add(this.grid);this.grid.show();this.grid.getEl().alignTo(this.wrap,'tl-bl?');this.grid.getView().on('refresh',function(){this.grid.getEl().alignTo(this.wrap,'tl-bl?');},this,{single:true,delay:1});if(this.autoSelectFirstRow===true){this.grid.getView().on('refresh',function(){if(this.store.getCount()==1){this.selectFirstRow();}},this.grid,{single:true});}
this.grid.doGet(params);},destroyGrid:function(){if(this.grid){this.ownerCt.items.remove(this.grid);this.popGridWidth=this.grid.width;this.popGridHeight=this.grid.height;this.grid.hide();this.grid.destroy();this.grid.resizer.destroy();}},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('font','data');el.innerHTML=this.description||this.value||'';el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;},destroy:function(){delete this.activeScreen;this.destroyGrid();delete this.grid;FigtreeWeb.Widget.Lookup.superclass.destroy.apply(this,arguments);},getDisplayValue:function(){return this.getRawValue();}});Ext.reg('fw-lookup',FigtreeWeb.Widget.Lookup);

FigtreeWeb.Widget.Image=function(config){FigtreeWeb.Widget.Image.superclass.constructor.call(this,config);this.addEvents({'click':true,'mouseover':true,'mouseout':true});};Ext.extend(FigtreeWeb.Widget.Image,Ext.BoxComponent,{onRender:function(ct,position){var id=Ext.id();var config={tag:'img',id:id,src:this.src,title:this.title||''};if(this.height&&this.height!=''){config.height=this.height;}
if(this.width&&this.width!=''){config.width=this.width;}
if(this.name&&this.name!=''){config.name=this.name;}
this.el=ct.createChild(config);if(this.clickInfo!=null){this.areas=[];this.map=ct.createChild({tag:'map',name:'map_'+this.el.dom.id});for(var i=0;i<this.clickInfo.length;i++){tempArea=this.map.createChild({tag:'area',shape:this.clickInfo[i].shape,coords:this.clickInfo[i].coords,href:'#',title:this.clickInfo[i].tooltip||''});tempArea.on('click',this.areaClick,this,this.clickInfo[i].actions);if(Ext.isIE){tempArea.on('focus',function(e,f){this.selectedArea=f?e:null;},this);tempArea.on('blur',function(){this.selectedArea=undefined;},this);}else{tempArea.on('contextmenu',function(e){e.stopEvent();},this);}
this.areas.push(tempArea);}
if(Ext.isIE){this.el.on('contextmenu',function(e){if(this.selectedArea){e.stopEvent();}},this);}
this.el.dom.useMap='#map_'+this.el.dom.id;}
if(this.thumbnail){this.handler=this.imageViewer;}
if(this.hasListener('click')||this.handler){this.el.dom.style.cursor='pointer';}
this.el.on('click',this.onClick,this);this.el.on('mouseover',this.onMouseOver,this);this.el.on('mouseout',this.onMouseOut,this);FigtreeWeb.Widget.Image.superclass.onRender.call(this,ct,position);if(this.resizable){new Ext.Resizable(id,{wrap:true,preserveRatio:true,pinned:true});}},destroy:function(){if(this.icon){this.icon.destroy();}
if(this.dlg){if(this.dlg.isVisible()){this.dlg.close();}
this.dlg.destroy();}
if(this.areas){for(var i=0;i<this.areas.length;i++){this.areas[i].removeAllListeners();this.areas[i].remove();}}
FigtreeWeb.Widget.Image.superclass.destroy.call(this);},areaClick:function(e,el,actions){e.stopPropagation();FigtreeWeb.app.fireActions(actions,false,this);},imageViewer:function(){if(!this.dlg){var viewportEl=FigtreeWeb.app.getViewport().getEl();var width=this.actualWidth||(viewportEl.getWidth()*0.40);var height=this.actualHeight||(viewportEl.getHeight()*0.55);width=(width>viewportEl.getWidth())?(viewportEl.getWidth()-100):width;height=(height>viewportEl.getHeight())?(viewportEl.getHeight()-100):height;var config={height:height,width:width,buttonAlign:'center',resizable:true,collapsible:false,closable:false,layout:'fit',modal:true,title:this.fileName,items:[{xtype:'fw-image',src:this.src}],buttons:[{text:FigtreeWeb.app.translate('close'),handler:this.dlgHide,scope:this}]}
this.dlg=new Ext.Window(config);}
this.dlg.show();},dlgHide:function(){this.dlg.hide();},onMouseOver:function(e){if(!this.disabled){this.fireEvent('mouseover',this,e);}},onMouseOut:function(e){if(!this.disabled){this.fireEvent('mouseout',this,e);}},onClick:function(e){if(!this.disabled){this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('type','image');el.setAttribute('align','centre');el.setAttribute('border','no');el.setAttribute('smartscale','yes');el.innerHTML=this.fileName||this.src;parent.appendChild(el);return el;}});Ext.reg('fw-image',FigtreeWeb.Widget.Image);

FigtreeWeb.Widget.SearchFilter=function(config){FigtreeWeb.Widget.SearchFilter.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.SearchFilter,Ext.form.Field,{name:'',value:'',chars:null,initComponent:function(){FigtreeWeb.Widget.SearchFilter.superclass.initComponent.apply(this,arguments);this.chars=[];},onRender:function(ct,position){var BR={tag:'br'};var SPACER={tag:'span',html:'&nbsp;&nbsp;&nbsp;'};var i,j,start,end,chr,chrEl;this.el=ct.createChild();if(this.custom){this.custom=this.custom.split(/,/);if(this.custom.length>0){for(i=0;i<this.custom.length;i++){chr=this.fixedFromCharCode(this.custom[i]);chrEl=this.el.createChild(this.createChar(chr));chrEl.on('click',this.charClick,this,{charClicked:chr});this.chars.push(chrEl);this.el.createChild(SPACER);}
this.el.createChild(BR);}}
if(this.ranges&&this.ranges.length>0){for(i=0;i<this.ranges.length;i++){start=this.ranges[i].startsWith;end=this.ranges[i].endsWith;for(j=start;j<=end;j++){chr=this.fixedFromCharCode(j);chrEl=this.el.createChild(this.createChar(chr));chrEl.on('click',this.charClick,this,{charClicked:chr});this.chars.push(chrEl);this.el.createChild(SPACER);}
this.el.createChild(BR);}}},fixedFromCharCode:function(codePt){if(codePt>0xFFFF){codePt-=0x10000;return String.fromCharCode(0xD800+(codePt>>10),0xDC00+(codePt&0x3FF));}else{return String.fromCharCode(codePt);}},createChar:function(chr){return{tag:'span',html:chr,cls:'x-form-field',style:{'font-weight':'bold','color':'#0000FF','text-decoration':'underline','cursor':'pointer'}};},charClick:function(e,el,options){this.value=options.charClicked;var actions=[{name:'SUBMIT'}];FigtreeWeb.app.fireActions(actions,false,this);},getValue:function(){return this.value;},beforeDestroy:function(){for(var i=0;i<this.chars.length;i++){this.chars[i].removeAllListeners();this.chars[i].remove();}
FigtreeWeb.Widget.SearchFilter.superclass.beforeDestroy.call(this);}});Ext.reg('fw-searchfilter',FigtreeWeb.Widget.SearchFilter);

FigtreeWeb.Widget.Hidden=function(config){Ext.apply(this,config);this.addEvents({"change":true});FigtreeWeb.Widget.Hidden.superclass.constructor.call(this);};Ext.extend(FigtreeWeb.Widget.Hidden,Ext.form.Field,{value:'',name:'',isHiddenField:true,isFormField:true,getValue:function(){return this.value;},setValue:function(v){var oldVal=this.value;this.value=v;if(oldVal!=this.value){this.fireEvent('change',this,this.value,oldVal);}},getXType:function(){return this.constructor.xtype;}});Ext.reg('fw-hidden',FigtreeWeb.Widget.Hidden);

FigtreeWeb.Widget.Button=function(config){FigtreeWeb.Widget.Button.superclass.constructor.call(this,config);this.addEvents({'click':true});};Ext.extend(FigtreeWeb.Widget.Button,Ext.BoxComponent,{tabIndex:undefined,onClick:function(btn,e){if(!this.disabled){this.fireEvent("click",this,e);if(this.actions){FigtreeWeb.app.fireActions(this.actions,false,((this.parentControl)?this.parentControl:this));}}},initComponent:function(){FigtreeWeb.Widget.Button.superclass.initComponent.apply(this,arguments);this.button=new Ext.Button({text:this.text,icon:this.icon,cls:this.cls,tooltip:this.tooltip,tooltipType:this.tooltipType,listeners:{'click':{fn:this.onClick,scope:this}}});},destroy:function(){this.button.destroy();delete this.button;FigtreeWeb.Widget.Button.superclass.destroy.apply(this,arguments);},onRender:function(ct,pos){this.button.tabIndex=this.tabIndex;this.button.render(ct);this.el=this.button.getEl();if(this.customCls){this.el.addClass(this.customCls);}
FigtreeWeb.Widget.Button.superclass.onRender.apply(this,arguments);},setText:function(text){this.button.setText(text);}});Ext.reg('fw-button',FigtreeWeb.Widget.Button);

FigtreeWeb.Widget.Text=function(config){FigtreeWeb.Widget.Text.superclass.constructor.call(this,config);this.addEvents({'click':true});};Ext.extend(FigtreeWeb.Widget.Text,Ext.BoxComponent,{linkedField:'',onRender:function(ct,position){this.autoEl='div';if(this.ownerCt&&this.ownerCt.initialConfig.layout=='fw-table'){var alFn=function(container){var target=container.getLayoutTarget();var size=target.getViewSize();this.setSize({width:size.width-target.getPadding('lr')});};this.ownerCt.ownerCt.on('afterlayout',alFn,this.ownerCt);var tabPanel=this.findParentByType('fw-tabpanel');if(tabPanel!=null){alFn.call(this.ownerCt,this.ownerCt.ownerCt);}}
FigtreeWeb.Widget.Text.superclass.onRender.call(this,ct,position);this.el.addClass(this.cls||'x-form-field');this.el.dom.id=this.id;this.el.setStyle(this.style);this.el.dom.name=this.name;this.el.dom.innerHTML=this.text;this.el.on('click',this.onClick,this);if(this.initialConfig.behaviour){this.el.on('keyup',function(e){if(e.getKey()==e.ENTER){this.onClick(e);}},this);this.el.dom.tabIndex=0;this.el.on('focus',function(){this.el.addClass('x-form-focus');},this);this.el.on('blur',function(){this.el.removeClass('x-form-focus');},this);}
if(this.ownerCt&&this.ownerCt.initialConfig.layout=='fw-table'){this.getEl().setStyle({'white-space':'normal','overflow':'hidden'});}
if(this.linkedField&&this.linkedField.length>0){this.linkedField=this.linkedField.replace(/^calc-[a-z0-9]{2,3}\./i,'calc.');if(/^calc\./i.test(this.linkedField)){this.linkedField=this.linkedField.replace('.','_');}
var screen=this.findParentByType('fw-screen');var field=screen.find('name',this.linkedField);this.el.update('');if(field.length>0){field=field[0];if(field.getDisplayValue){this.el.update(field.getDisplayValue().safeHTML());field.on('change',function(){this.el.update(field.getDisplayValue().safeHTML());},this);}}}},onClick:function(e){if(!this.disabled){this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}},createPDFPrintXML:function(parent){if(this.printable===false){return null;}
var el=document.createElement('pdfcolumn');el.setAttribute('font','data');el.innerHTML=this.text;el.innerHTML=el.innerHTML.replace(/<.*?>/g,'').replace(/&.*?;/g,'');parent.appendChild(el);return el;}});Ext.reg('fw-string',FigtreeWeb.Widget.Text);

FigtreeWeb.Widget.BlockText=Ext.extend(FigtreeWeb.Widget.Text,{onRender:function(){FigtreeWeb.Widget.BlockText.superclass.onRender.apply(this,arguments);this.getEl().setStyle({'overflow':'auto'});}});Ext.reg('fw-blocktext',FigtreeWeb.Widget.BlockText);

FigtreeWeb.Widget.Box=Ext.extend(Ext.Panel,{baseCls:'',scrollable:false,hideMode:'fw-offsets',initComponent:function(){FigtreeWeb.Widget.Box.superclass.initComponent.apply(this,arguments);this.header=false;this.addEvents({'click':true});},onRender:function(ct,pos){FigtreeWeb.Widget.Box.superclass.onRender.call(this,ct,pos);this.body.on('click',this.onClick,this);},onClick:function(e){this.fireEvent('click',this,e);},afterRender:function(){FigtreeWeb.Widget.Box.superclass.afterRender.apply(this,arguments);this.body.dom.className='';if(this.scrollable===false){this.body.setStyle({'overflow':'hidden'});this.getEl().setStyle({'overflow':'hidden'});}},beforeDestroy:function(){if(this.rendered){this.body.removeAllListeners();}
FigtreeWeb.Widget.Box.superclass.beforeDestroy.apply(this,arguments);}});Ext.reg('fw-box',FigtreeWeb.Widget.Box);

FigtreeWeb.Widget.TabbedScreenPanel=Ext.extend(Ext.Panel,{tabPosition:'bottom',layout:'fit',alwaysShowTabs:false,newTabButton:false,refocusExistingScreens:false,destroying:false,requestRecall:false,recallListModCOBs:'',initComponent:function(){this.newTabCount=this.newTabButton?2:1;this.hideStripCount=this.newTabButton?2:1;this.showStripCount=this.hideStripCount+1;this.screenFns=['submit','clear','setSubmitRefreshTarget','setBaseParams','setDataChanged','print','refresh','setNavigationDisabled'];this.screenEvents=['loaded'];this.tabPanel=new Ext.TabPanel({border:false,tabPosition:this.tabPosition,enableTabScroll:true,listeners:{'contextmenu':{scope:this,fn:this.tabPanelContextMenu}}});this.tabPanel.onItemTitleChanged=function(item){var el=this.getTabEl(item);if(el){var icon='';if(item.form&&item.form.historyIcon){icon=item.form.historyIcon;icon=FigtreeWeb.app.getIconPlain(icon,16);icon=Ext.DomHelper.markup({tag:'img',src:icon,align:'top',style:{'padding-right':'3px'}});}
Ext.fly(el).child('span.x-tab-strip-text',true).innerHTML=icon+item.title;}};this.tabPanel.on('beforeremove',this.tabGettingRemoved,this);if(this.alwaysShowTabs!==true){this.tabPanel.on('add',this.checkShowTabStrip,this);this.tabPanel.on('remove',this.checkHideTabStrip,this);}
this.tabPanel.on('tabChange',this.tabChanged,this);this.items=[this.tabPanel];FigtreeWeb.Widget.TabbedScreenPanel.superclass.initComponent.apply(this,arguments);if(this.alwaysShowTabs!==true){this.on('afterlayout',this.checkHideTabStrip,this,{single:true});}
if(this.newTabButton){this.tabPanel.stack.remove(this.tabPanel.add({iconCls:'fw-new-tab-button',title:'&nbsp',listeners:{'activate':{fn:function(){if(!this.destroying){this.tabPanel.stack.remove(this.tabPanel.getActiveTab());var screen=this.newScreen(this.initialParams);}},scope:this}}}));}
var screen=this.newScreen(this.initialParams);},newScreen:function(initialParams){var tp=this.tabPanel,screen=this.checkForExistingScreen(initialParams);if(screen){tp.setActiveTab(screen);if(screen.focusAndRefresh){screen.doGet.apply(screen,arguments);delete screen.focusAndRefresh;}
return screen;}
screen=tp.getActiveTab();if(!screen||!screen.newScreen){screen=new FigtreeWeb.Screen({hideMode:'offsets',listeners:{'destroy':{fn:this.screenDestroyed,scope:this}},title:'.',blankText:this.initialConfig.blankText,formAutoScroll:this.initialConfig.formAutoScroll,initialDelay:this.initialConfig.initialDelay,initialParams:initialParams,autoRefresh:this.initialConfig.autoRefresh,formAutoScroll:this.initialConfig.formAutoScroll,requestRecall:this.requestRecall,recallListModCOBs:this.recallListModCOBs});screen.on('titleset',tp.delegateUpdates,tp);this.relayEvents(screen,this.screenEvents);screen.closable=true;if(this.newTabButton){tp.insert(tp.items.getCount()-1,screen);}else{tp.add(screen);}
tp.setActiveTab(screen);}
return screen;},screenDestroyed:function(screen){this.tabPanel.remove(screen,false);},tabGettingRemoved:function(tabPanel,screen){if(!this.tabPanel.items.contains(screen)){return;}
if(!screen.okToLeave(this.remove.createDelegate(this,[screen]),this)){return false;}
if(this.tabPanel.items.getCount()==this.newTabCount){this.newScreen.defer(1,this,[this.initialParams]);}},checkShowTabStrip:function(){var tsTarget=(this.tabPanel.tabPosition=='top')?'header':'footer';if(this.tabPanel.items.getCount()==this.showStripCount){this.tabPanel.unhideTabStripItem(this.tabPanel.items.get(0));this.tabPanel[tsTarget].setStyle({'height':'','padding-top':''});this.tabPanel.body.setHeight(this.tabPanel.body.getHeight()-this.tabPanel[tsTarget].getHeight());this.doLayout();}},checkHideTabStrip:function(){var tsTarget=(this.tabPanel.tabPosition=='top')?'header':'footer';if(this.tabPanel.items.getCount()==this.hideStripCount){var tsHeight=this.tabPanel[tsTarget].getHeight()==1?0:this.tabPanel[tsTarget].getHeight();this.tabPanel.body.setHeight(this.tabPanel.body.getHeight()+tsHeight);this.tabPanel[tsTarget].setStyle({'height':'0px','padding-top':'0px'});this.doLayout();}},tabChanged:function(){var activeTab=this.tabPanel.getActiveTab();var fnName;for(var i=0;i<this.screenFns.length;i++){fnName=this.screenFns[i];this[fnName]=activeTab[fnName].createDelegate(activeTab);}
FigtreeWeb.app.getGMB().fireEvent('screenfocused',activeTab,this);},getActiveScreen:function(){var activeTab=this.tabPanel.getActiveTab();return activeTab;},destroy:function(){if(this.tabPanel){this.tabPanel.un('beforeremove',this.tabGettingRemoved,this);this.tabPanel.un('add',this.checkShowTabStrip,this);this.tabPanel.un('remove',this.checkHideTabStrip,this);this.tabPanel.un('tabChange',this.tabChanged,this);}
this.destroying=true;FigtreeWeb.Widget.TabbedScreenPanel.superclass.destroy.apply(this,arguments);},doGet:function(params){var tp=this.tabPanel,screen=this.checkForExistingScreen(params);if(screen){tp.setActiveTab(screen);if(screen.focusAndRefresh){screen.doGet.apply(screen,arguments);delete screen.focusAndRefresh;}}else{screen=tp.getActiveTab();screen.doGet.apply(screen,arguments);}},checkForExistingScreen:function(params){var tp=this.tabPanel,screen;if(this.refocusExistingScreens&&params&&(params!==this.initialParams)&&!params.alwaysOpenNewTab&&((params.mode||'').toUpperCase()!=='ADD')){for(var i=0;i<tp.items.getCount();i++){screen=tp.items.get(i);if(this.compareParams(params,screen.currentParams||{},screen)){return screen;}}}
return null;},compareParams:function(p1,p2,screen){var p1Params=p1.params||'',p2Params=p2.params||'',getFAParamValue=FigtreeWeb.app.getFAParamValue,p1Table=getFAParamValue(p1Params,'table'),p2Table=getFAParamValue(p2Params,'table'),p1ScreenId=getFAParamValue(p1Params,'do_json'),p2ScreenId=getFAParamValue(p2Params,'do_json'),p1RetKeyInfo=getFAParamValue(p1Params,'return_key_info'),p2RetKeyInfo=getFAParamValue(p2Params,'return_key_info');if(p1.module===p2.module&&p1Table===p2Table&&p1ScreenId===p2ScreenId&&(p1.cob===p2.cob||(p1.cob===''&&p2.cob===p2.module)||(p2.cob===''&&p1.cob===p1.module))&&p1.key===p2.key){if(p1RetKeyInfo!==p2RetKeyInfo){screen.focusAndRefresh=true;}
return true;}
return false;},goBack:function(){var tp=this.tabPanel,items=tp.items,screen=tp.getActiveTab(),index=items.indexOf(screen);if(screen.goBack()===false&&index>0){tp.setActiveTab(items.itemAt(index-1));}},goForward:function(){var tp=this.tabPanel,items=tp.items,screen=tp.getActiveTab(),index=items.indexOf(screen),end=items.getCount()-((this.newTabButton)?2:1);if(screen.goForward()===false&&index!==end){tp.setActiveTab(items.itemAt(index+1));}},tabPanelContextMenu:function(tp,target,e){if(target.iconCls!=='fw-new-tab-button'){var contextMenu=Ext.menu.MenuMgr.get({}),tp=this.tabPanel,items=tp.items,item;contextMenu.add({text:'Close',handler:function doClose(){if(this.okToLeave(doClose,this)){this.destroy();}},scope:target},{text:'Close All',handler:function closeAll(){for(var i=0;i<items.items.length;i++){item=items.items[i];if(item.iconCls==='fw-new-tab-button'){continue;}
if(!item.okToLeave(closeAll,this)){break;}
item.destroy.defer(1,item);}},scope:this},{text:'Close Others',handler:function closeOthers(){for(var i=0;i<items.items.length;i++){item=items.items[i];if(item.iconCls==='fw-new-tab-button'||item===target){continue;}
if(!item.okToLeave(closeOthers,this)){break;}
item.destroy.defer(1,item);}},scope:this},'-',{text:'New',handler:function newTab(){this.newScreen(this.initialParams);},scope:this});contextMenu.showAt(e.getXY());}},setRequestRecall:function(requestRecall,recallListModCOBs){var tp=this.tabPanel,screen;if(tp){for(var i=0;i<tp.items.getCount();i++){screen=tp.items.get(i);if(screen.setRequestRecall){screen.setRequestRecall(requestRecall,recallListModCOBs);}}}
this.requestRecall=requestRecall;this.recallListModCOBs=recallListModCOBs}});Ext.reg('fw-tabbedscreenpanel',FigtreeWeb.Widget.TabbedScreenPanel);

FigtreeWeb.Widget.OneOfSelector=Ext.extend(FigtreeWeb.Widget.TriggerField,{value:null,popupWidth:400,popupHeight:400,popupVisible:false,triggerImageName:'find.png',description:'',cls:'fw-lookup-field',mode:'default',popup:null,initComponent:function(){this.value=this.value||[];FigtreeWeb.Widget.OneOfSelector.superclass.initComponent.apply(this,arguments);this.addEvents({'valueset':true});},onRender:function(){FigtreeWeb.Widget.OneOfSelector.superclass.onRender.apply(this,arguments);if(this.mode!=='adhoc'){this.on('specialKey',function(lu,e){if(e.getKey()==e.ENTER){this.onTriggerClick();}},this);this.getEl().on('keyup',function(e){if(!this.disabled&&!this.readOnly){var k=e.getKey();if((k==e.BACKSPACE||!e.isSpecialKey())&&k!==e.TAB&&k!==0){this.onTriggerClick();}}},this,{buffer:300});}},setValue:function(value){this.value=Ext.util.JSON.decode(Ext.util.JSON.encode(value));if(this.rendered){var displayValue='';for(var i=0;i<value.length;i++){displayValue+=(value[i].desc||'')+((i<(value.length-1))?', ':'');}
this.setRawValue(displayValue);this.description=displayValue;}},getValue:function(){var value=[];Ext.each(this.value,function(item){value.push(item.value);});return value.join(',');},onTriggerClick:function(){var query='';if(!this.readOnly&&(this.getRawValue()!=this.description)){query=this.getRawValue();}
var params=Ext.applyIf({},this.params);if(this.mode==='adhoc'||this.mode==='adhocv2'){params.params+=';adhoc_info;';params.params+='module;'+this.module+';';params.params+='table;'+this.table+';';params.params+='field;'+this.field;}
if(this.popup===null){this.popup=new FigtreeWeb.Widget.OneOfSelector.popup({parentControl:this,params:params,value:this.value,width:Math.max(this.popupWidth,this.wrap.getWidth()),height:this.popupHeight,query:query,mode:this.mode});this.popup.show();this.popup.getEl().alignTo(this.wrap,'tl-bl?');this.popup.initialise();this.popup.ownerCt=this.ownerCt;this.ownerCt.items.add(this.popup);}else{this.popup.params=params;this.popup.query=query;this.popup.gridDoGet(this.popup.query);}}});Ext.reg('fw-oneofselector',FigtreeWeb.Widget.OneOfSelector);FigtreeWeb.Widget.OneOfSelector.popup=Ext.extend(Ext.Panel,{layout:'anchor',autoRender:true,initComponent:function(){if(this.mode==='adhoc'){this.lookup=new FigtreeWeb.Widget.TriggerField({cls:'fw-lookup-field carica-lookup-view',triggerImageName:'find.png',onTriggerClick:function(){this.ownerCt.gridDoGet(this.getValue());},anchor:'100% '+Math.round((22/this.height)*100)+'%'});this.lookup.on('specialKey',function(lu,e){if(e.getKey()==e.ENTER){this.onTriggerClick();}},this.lookup);}
this.grid=new FigtreeWeb.Widget.Grid({columns:[],dataSpec:[],data:[],bbar:[],anchor:'100% '+(70-Math.round((22/this.height)*100))+'%'});this.grid.on('linkfired',function(grid,link){if(this.selectedStore.find('value',link.actionKey)==-1){this.selectedStore.add(this.selectedStore.reader.readRecords([{value:link.actionKey,desc:link.actionDescription}]).records);}},this);this.selectedStore=new Ext.data.JsonStore({fields:['value','desc']});var icon=FigtreeWeb.app.getIconPlain('delete2.png',16);icon=Ext.DomHelper.markup({tag:'div',html:'remove',cls:'fw-grid-link',style:{'float':'right','padding-right':'5px'}});var tpl=new Ext.XTemplate('<tpl for=".">','<div class="fw-dv-item" style="clear:both;"><div style="float:left">{desc}</div>'+icon+'</div>','</tpl>');this.selectedView=new Ext.DataView({store:this.selectedStore,tpl:tpl,itemSelector:'div.fw-dv-item',anchor:'100% 30%',emptyText:'Select items from the list above',listeners:{'render':{fn:function(){this.getEl().setStyle({'font':'10px tahoma,arial,helvetica,sans-serif','overflow-x':'hidden','overflow-y':'auto'});}},'click':{fn:this.selectedItemClick,scope:this}}});this.items=[this.grid,this.selectedView];if(this.mode==='adhoc'){this.items.unshift(this.lookup);}
this.bbar=['->',{cls:'carica-button-primary',text:FigtreeWeb.app.translate('ok'),handler:this.ok,scope:this},{xtype:'label',text:'',style:{'padding-left':'7px'}},{cls:'carica-button-secondary',text:FigtreeWeb.app.translate('cancel'),handler:this.hide,scope:this}];FigtreeWeb.Widget.OneOfSelector.popup.superclass.initComponent.apply(this,arguments);},initialise:function(){this.gridDoGet(this.query);this.selectedStore.loadData(this.value);},gridDoGet:function(query){var params=Ext.apply({},this.params);if(query!=''){if(this.parentControl.mode==='adhoc'||this.parentControl.mode==='adhocv2'){params.params+=';';}
params.params+='query;'+query;}
this.grid.doGet(params);},selectedItemClick:function(view,index,node,e){if(e.getTarget().className==='fw-grid-link'){this.selectedStore.removeAt(index);}},hideIf:function(e){if(!e.within(this.getEl())&&!e.within(this.parentControl.wrap)){this.hide();}},onRender:function(){FigtreeWeb.Widget.OneOfSelector.popup.superclass.onRender.apply(this,arguments);this.getEl().setStyle("z-index",'11000');},onShow:function(){FigtreeWeb.Widget.OneOfSelector.popup.superclass.onShow.apply(this,arguments);Ext.getDoc().on('mousedown',this.hideIf,this);this.resizer=new Ext.Resizable(this.el,{handles:'all',pinned:false});this.resizer.on('resize',function(rz,width,height){this.width=width;this.height=height;this.setSize({width:width,height:height});},this);this.parentControl.popupVisible=true;},onHide:function(){FigtreeWeb.Widget.OneOfSelector.popup.superclass.onHide.apply(this,arguments);Ext.getDoc().un('mousedown',this.hideIf,this);this.parentControl.popupWidth=this.width;this.parentControl.popupHeight=this.height;this.parentControl.popupVisible=false;this.ownerCt.items.remove(this);this.destroy();this.parentControl.popup=null;},ok:function(){this.parentControl.setValue(this.getValue());this.parentControl.fireEvent('valueset',this.parentControl,this.parentControl.getValue());this.hide();},getValue:function(){var record;var value=[];for(var i=0;i<this.selectedStore.getCount();i++){record=this.selectedStore.getAt(i);value.push({value:record.get('value'),desc:record.get('desc')});}
return value;},destroy:function(){this.selectedStore.destroy();this.resizer.destroy();FigtreeWeb.Widget.OneOfSelector.popup.superclass.destroy.apply(this,arguments);}});

FigtreeWeb.Widget.Slider=Ext.extend(Ext.Slider,{name:undefined,tipConfig:undefined,initComponent:function(){var tip=new FigtreeWeb.Widget.Slider.Tip(this.tipConfig);this.plugins=tip;FigtreeWeb.Widget.Slider.superclass.initComponent.apply(this,arguments);},afterRender:function(){FigtreeWeb.Widget.Slider.superclass.afterRender.apply(this,arguments);if(this.labelEvery>0){for(var i=this.minValue;i<=this.maxValue;i+=this.labelEvery){var left=this.translateValue(i);var el=this.el.createChild({cls:'x-form-field x-abs-layout-item',html:new String(i)});left-=el.getWidth()/2;left+=this.halfThumb;el.alignTo(this.innerEl,'bl',[left,-10]);}}}});Ext.reg('fw-slider',FigtreeWeb.Widget.Slider);FigtreeWeb.Widget.Slider.Tip=Ext.extend(Ext.Tip,{minWidth:10,init:function(slider){slider.on('dragstart',this.onSlide,this);slider.on('drag',this.onSlide,this);slider.on('dragend',this.hide,this);slider.on('render',function(sldr){sldr.thumb.on('mouseover',this.onSlide.createDelegate(this,[sldr]),this);sldr.thumb.on('mouseout',this.hide,this);},this);slider.on('destroy',this.destroy,this);},onSlide:function(slider){this.show();this.body.update(this.getText(slider));this.doAutoWidth();this.el.alignTo(slider.thumb,'b-t?',[0,-10]);},getText:function(slider){return slider.getValue();}});

FigtreeWeb.Widget.EventCalendar=Ext.extend(Ext.Panel,{layout:'fw-table',width:1140,height:650,border:true,defaults:{border:true},layoutConfig:{columns:7},cls:'fw-ecal',screen:null,daysOfWeek:'Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(/ /),dateFormat:null,currentDisplayDate:null,lnkMonthPrev:null,lnkMonthNext:null,slots:null,slotPrefix:'slot',calendarData:null,initComponent:function(){this.items=[];this.dateFormat=FigtreeWeb.app.getDateFormat();FigtreeWeb.Widget.EventCalendar.superclass.initComponent.apply(this,arguments);this.on('afterlayout',function(){this.initCalendarHeader();this.drawCalendar(new Date());},this,{single:true,delay:100});},initCalendarHeader:function(){this.lnkMonthPrev=new Ext.BoxComponent({cellCls:'fw-ecal-month-nav carica-form-link',autoEl:{tag:'span',html:'<< Previous'}});this.lnkMonthPrev.on('render',function(){this.lnkMonthPrev.getEl().on('click',this.calendarNavigate.createDelegate(this,['prev']),this);},this);this.lnkMonthNext=new Ext.BoxComponent({cellCls:'fw-ecal-month-nav carica-form-link',autoEl:{tag:'span',html:'Next >>'},containerAlign:'right'});this.lnkMonthNext.on('render',function(){this.lnkMonthNext.getEl().on('click',this.calendarNavigate.createDelegate(this,['next']),this);},this);this.monthYearDisplay=new Ext.BoxComponent({cellCls:'fw-ecal-month-year-heading',autoEl:{tag:'span',html:'MONTH YEAR'},colspan:5});this.add(this.lnkMonthPrev,this.monthYearDisplay,this.lnkMonthNext);this.daySlots=[];for(var i=0;i<this.daysOfWeek.length;i++){var day={cellCls:'fw-ecal-day-heading',html:this.daysOfWeek[i],width:(this.getSize().width/7)};this.daySlots.push(this.add(day));}
this.doLayout();},getHeaderHeight:function(){return this.items.get(1).getSize().height+
this.items.get(7).getSize().height;},refresh:function(){this.drawCalendar(this.currentDisplayDate);},drawCalendar:function(date){if(this.slots!=null){this.removeSlots();}
var self=this;self.screen=self.findParentByType('fw-screen');self.screen.callFigApp({'token':'eventCalendarMonth',args:{'arg.calendar.month':date.format('n'),'arg.calendar.year':date.format('Y')},maskText:'Loading, please wait ...',maskEl:self.getEl(),callback:function(rsp){self.calendarData=Ext.util.JSON.decode(rsp.data);self.drawSlots(date);self.doLayout();self.currentDisplayDate=date;self.monthYearDisplay.getEl().update(date.format('F Y'));}});},removeSlots:function(){var td,tr;for(var slot in this.slots){td=this.slots[slot].container;this.remove(this.slots[slot]);if(td){tr=td.parent();td.remove();if(!tr.first()){tr.remove();}}}
var lo=this.getLayout();lo.currentRow=1;lo.currentColumn=6;for(var i=2;i<lo.cells.length;i++){lo.cells[i]=[];}},drawSlots:function(date){var slotHeight=((this.getSize().height-this.getHeaderHeight())/6)-3,slotWidth=this.getSize().width/7,numSlots=42,slot,slotId;this.slots={};for(var i=1;i<=42;i++){slotId=this.slotPrefix+i;slot=new FigtreeWeb.Widget.EventCalendarSlot({slotId:slotId,height:slotHeight,width:slotWidth});this.add(slot);this.slots[slotId]=slot;}
var yearMonth=date.format('Ym'),year=yearMonth.substring(0,4),month=yearMonth.substring(4),monthName=date.format('F'),daysInMonth=date.getDaysInMonth(),d=Date.parseDate('1/'+month+'/'+year,'j/m/Y'),dayOf1st=d.format('N');for(var i=1;i<=daysInMonth;i++){slot=this.slots[this.slotPrefix+(dayOf1st+i-1)];slot.init({year:year,month:month,day:i});}
var item,itemDate;for(var j=0;j<this.calendarData.length;j++){item=this.calendarData[j];itemDate=Date.parseDate(item.date,this.dateFormat);slot=this.slots[this.slotPrefix+(itemDate.format('j')+dayOf1st-1)];slot.add(new FigtreeWeb.Widget.EventCalendarItem(item));}},calendarNavigate:function(direction){var n=(direction=='next')?1:-1;this.drawCalendar(this.currentDisplayDate.add(Date.MONTH,n));},itemNewClick:function(data){this.fireEvent('itemnewclick',data);},itemClick:function(data){this.fireEvent('itemclick',data);},onResize:function(){FigtreeWeb.Widget.EventCalendar.superclass.onResize.apply(this,arguments);if(this.currentDisplayDate){var slotHeight=((this.getSize().height-this.getHeaderHeight())/6)-3,slotWidth=this.getSize().width/7;Ext.each(this.daySlots,function(slot){slot.setWidth(slotWidth);});for(var slot in this.slots){this.slots[slot].setSize(slotWidth,slotHeight);}
this.doLayout();}},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('font','label');el.innerHTML='(Calendar not printable)';parent.appendChild(el);return el;}});Ext.reg('fw-eventcalendar',FigtreeWeb.Widget.EventCalendar);FigtreeWeb.Widget.EventCalendarSlot=Ext.extend(Ext.Panel,{slotId:null,calendar:null,slotData:null,slotHeader:null,hidden:true,cls:'fw-ecal-slot',initComponent:function(){FigtreeWeb.Widget.EventCalendarSlot.superclass.initComponent.apply(this,arguments);},init:function(slotInfo){this.calendar=this.findParentByType('fw-eventcalendar');this.slotInfo=slotInfo;this.slotHeader=new Ext.BoxComponent({xtype:'box',autoEl:{html:this.slotInfo.day,cls:'fw-ecal-slot-heading'}});this.slotHeader.on('render',function(){var el=this.slotHeader.getEl();el.addClassOnOver('fw-ecal-slot-heading-over');el.on('mouseover',this.headerOver,this);el.on('mouseout',this.headerOut,this);el.on('click',this.headerClick,this);},this);this.add(this.slotHeader);this.setVisible(true);},headerOver:function(){this.slotHeader.getEl().update('New Event');},headerOut:function(){this.slotHeader.getEl().update(this.slotInfo.day);},headerClick:function(){this.calendar.itemNewClick(this.slotInfo);},createPDFPrintXML:undefined});FigtreeWeb.Widget.EventCalendarItem=Ext.extend(Ext.BoxComponent,{defaultIcon:'bullet_ball_green.png',initComponent:function(){this.autoEl={tag:'div',cls:'fw-ecal-item',children:[{tag:'img',src:FigtreeWeb.app.getIconPlain(this.icon||this.defaultIcon,16)},{tag:'span',html:this.title}]};FigtreeWeb.Widget.EventCalendarItem.superclass.initComponent.apply(this,arguments);},onRender:function(){FigtreeWeb.Widget.EventCalendarItem.superclass.onRender.apply(this,arguments);this.calendar=this.findParentByType('fw-eventcalendar');this.getEl().on('click',this.itemClick,this);this.getEl().addClassOnOver('fw-ecal-item-over');},itemClick:function(){this.calendar.itemClick({id:this.itemId});}});

FigtreeWeb.Widget.Link=function(config){FigtreeWeb.Widget.Link.superclass.constructor.call(this,config);this.addEvents({'click':true});this.autoEl={tag:'span',cls:'x-form-item fw-link',style:{'cursor':'pointer'}};this.defaultStyle={'font-weight':'bold','text-decoration':'underline','color':'#0000FF'};};Ext.extend(FigtreeWeb.Widget.Link,Ext.BoxComponent,{defaultStyle:null,iconName:null,icon:null,wrap:null,tabIndex:undefined,onRender:function(ct,position){if(this.iconName!=null){this.icon=new FigtreeWeb.Widget.Icon({iconName:this.iconName,title:this.title,iconSize:this.iconSize,tabIndex:this.tabIndex,isLinkIcon:true});this.icon.render(ct);this.el=this.icon.getEl();}else{if(this.title){this.autoEl.title=this.title;}
this.autoEl.html=this.text
FigtreeWeb.Widget.Link.superclass.onRender.call(this,ct,position)
if(this.style){this.el.setStyle(this.style);}else if(!this.cls){this.el.setStyle(this.defaultStyle);}
if(this.tabIndex!=undefined){this.el.dom.tabIndex=this.tabIndex;}}
if(this.actions&&(this.actions.length>0)){this.handler=this.fwLinkClick;}else if(!this.hasListener('click')){if(this.type.match(/url/i)){this.handler=function(){window.open(this.text,'_blank','');};}else if(this.type.match(/email/i)){if(Ext.isIE7){this.wrap=this.el.wrap({tag:'a',href:'mailto:'+this.text});}else{this.handler=function(){var win=window.open('mailto:'+this.text,'_blank','width=1,height=1');win.close();};}}}
this.el.on('click',this.onClick,this);if(this.initialConfig.behaviour){this.el.dom.tabIndex=0;this.el.on('focus',function(){this.el.addClass('x-form-focus');},this);this.el.on('blur',function(){this.el.removeClass('x-form-focus');},this);}
this.el.on('keydown',function(e){if(e.getKey()==e.ENTER){this.onClick(e);}},this);},getResizeEl:function(){return this.wrap||this.el;},getPositionEl:function(){return this.wrap||this.el;},onClick:function(e){if(!this.disabled){this.fireEvent("click",this,e);if(this.handler){this.handler.call(this.scope||this,this,e);}}},fwLinkClick:function(e){FigtreeWeb.app.fireActions(this.actions,e.ctrlKey,this);},destroy:function(){if(this.icon){this.icon.destroy();this.rendered=false;}
FigtreeWeb.Widget.Link.superclass.destroy.call(this);if(this.wrap){this.wrap.remove();}}});Ext.reg('fw-link',FigtreeWeb.Widget.Link);

FigtreeWeb.Widget.GridView=function(config){FigtreeWeb.Widget.GridView.superclass.constructor.apply(this,arguments);this.addEvents({'afterrender':true});};Ext.extend(FigtreeWeb.Widget.GridView,Ext.grid.GridView,{cellSelectorDepth:10,svrFilteredCls:'fw-svr-filtered-column',afterRender:function(){FigtreeWeb.Widget.GridView.superclass.afterRender.apply(this,arguments);this.fireEvent('afterrender',this);if(Ext.isIE){(function(){try{this.processRows(0,true);this.updateHeaders();}catch(e){}}).defer(200,this);}
if(this.grid.autoSelectFirstRow){this.grid.selectFirstRow();}
this.mainHd.on('dblclick',this.grid.checkAutoSizeCol,this.grid);if(this.hmenu){if(this.colMenu){this.colMenu.parentEl=this.hmenu.getEl();}
this.hmenu.insert(this.hmenu.items.indexOfKey('desc'),new Ext.menu.Item({text:this.sortAscText+" (this page)",id:'local-sort-asc'}));this.hmenu.insert(this.hmenu.items.indexOfKey('desc')+1,new Ext.menu.Item({text:this.sortDescText+" (this page)",id:'local-sort-desc'}));this.hmenu.addItem(new Ext.menu.Separator({id:'remote-sort-clear-sep',hidden:true}));this.hmenu.add({text:'Clear Sort',id:'remote-sort-clear',hidden:true});this.hmenu.add({text:'Clear All Sort',id:'remote-sort-clear-all',hidden:true});this.hmenu.addItem(new Ext.menu.Separator({id:'remote-filter-sep'}));this.hmenu.add({text:'Filter',id:'remote-filter'});this.hmenu.addItem(new Ext.menu.Separator({id:'remote-filter-clear-sep'}));this.hmenu.add({text:'Clear Filter',id:'remote-filter-clear'});this.hmenu.add({text:'Clear All Filters',id:'remote-filter-clear-all'});}},onHeaderClick:function(g,index,e){if(this.headersDisabled||!this.cm.isSortable(index)){return;}
if(this.activeHd){var ss=this.activeHd.style;if(ss.cursor!=''){return;}}
g.stopEditing(true);if(this.cm.config[index].serverSortable&&!e.ctrlKey){this.grid.serverSort(this.cm.config[index]);}else{this.grid.svrSideSortState='';g.store.sort(this.cm.getDataIndex(index));}},onRowOver:function(e,t){FigtreeWeb.Widget.GridView.superclass.onRowOver.apply(this,arguments);this.grid.fireEvent('rowover',e,this.grid,this.findRowIndex(t));},onRowOut:function(e,t){FigtreeWeb.Widget.GridView.superclass.onRowOut.apply(this,arguments);this.grid.fireEvent('rowout',this.grid,this.findRowIndex(t));},handleHdMenuClick:function(item,e){var index=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":this.grid.serverSort(cm.config[index],'ASC');break;case"desc":this.grid.serverSort(cm.config[index],'DESC');break;case'local-sort-asc':this.grid.svrSideSortState='';ds.sort(cm.getDataIndex(index),"ASC");break;case'local-sort-desc':this.grid.svrSideSortState='';ds.sort(cm.getDataIndex(index),"DESC");break;case'remote-sort-clear':this.grid.clearServerSort(cm.config[index]);break;case'remote-sort-clear-all':this.grid.clearAllServerSort();break;case'remote-filter':this.grid.showFilterScreen(cm.config[index],this.getHeaderCell(index));break;case'remote-filter-clear':this.grid.clearFilter(cm.config[index]);break;case'remote-filter-clear-all':this.grid.clearAllFilters();break;default:index=cm.getIndexById(item.id.substr(4));if(index!=-1){if(item.checked&&cm.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false;}
cm.setHidden(index,item.checked);}}
return true;},handleHdDown:function(e,t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd=this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index=this.getCellIndex(hd);this.hdCtxIndex=index;var ms=this.hmenu.items,cm=this.cm;var canGridRemFilter=!Ext.isEmpty(this.grid.filterScreenParams);ms.get('local-sort-asc').setDisabled(!cm.isSortable(index));ms.get('local-sort-desc').setDisabled(!cm.isSortable(index));ms.get('asc').setVisible(cm.config[index].serverSortable);ms.get('desc').setVisible(cm.config[index].serverSortable);ms.get('remote-filter').setVisible(canGridRemFilter);ms.get('remote-filter-clear').setVisible(canGridRemFilter);ms.get('remote-filter-sep').setVisible(canGridRemFilter);ms.get('remote-filter-clear-all').setVisible(canGridRemFilter);ms.get('remote-filter-clear-sep').setVisible(canGridRemFilter);ms.get('remote-filter').setDisabled(!(cm.config[index].filter));ms.get('remote-filter-clear').setDisabled(!(cm.config[index].filter&&cm.config[index].filtered));ms.get('remote-filter-clear-all').setDisabled(Ext.isEmpty(this.grid.svrSideFilterState));this.hmenu.on("hide",function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');},this,{single:true});this.hmenu.show(t,"tl-bl?");}},getColumnStyle:function(col,isHeader){var style=FigtreeWeb.Widget.GridView.superclass.getColumnStyle.apply(this,arguments);if(isHeader&&this.cm.config[col].headerCss){style+=this.cm.config[col].headerCss;}
return style;},updateHeaderSortState:function(){var state,sortColumn,sortDir,i,hds=this.mainHd.select('td');hds.removeClass(this.sortClasses)
hds.removeClass('fw-grd-svrsort');if(this.grid.svrSideSortState.length>0){state=this.grid.svrSideSortState.split(';');for(i=0;i<state.length;i+=2){sortColumn=this.grid.getColumn(state[i].replace('virtual.sort.',''),true);sortDir=state[i+1];this.updateSortIcon(sortColumn,sortDir,true);}}else{state=this.ds.getSortState();if(!state){return;}
if(!this.sortState||(this.sortState.field!=state.field||this.sortState.direction!=state.direction)){this.grid.fireEvent('sortchange',this.grid,state);}
this.sortState=state;sortColumn=this.cm.findColumnIndex(state.field);if(sortColumn!=-1){sortDir=state.direction;this.updateSortIcon(sortColumn,sortDir);}}},updateSortIcon:function(col,dir,server){var sc=this.sortClasses;var hds=this.mainHd.select('td');hds.item(col).addClass(sc[dir=="DESC"?1:0]);if(server){hds.item(col).addClass('fw-grd-svrsort');}},updateHeaders:function(){FigtreeWeb.Widget.GridView.superclass.updateHeaders.apply(this,arguments);this.updateFilteredColumns();},updateFilteredColumns:function(){var hds=this.mainHd.select('td').removeClass(this.svrFilteredCls);for(var i=0,len=this.cm.config.length;i<len;i++){if(this.cm.config[i].filtered){hds.item(i).addClass(this.svrFilteredCls);}}}});

FigtreeWeb.Widget.GroupingView=Ext.extend(FigtreeWeb.Widget.GridView,{groupIgnoreCase:true,hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:false,enableNoGroups:true,emptyGroupText:'(None)',ignoreAdd:false,groupTextTpl:'{text}',gidSeed:1000,initTemplates:function(){FigtreeWeb.Widget.GroupingView.superclass.initTemplates.call(this);this.state={};var sm=this.grid.getSelectionModel();sm.on(sm.selectRow?'beforerowselect':'beforecellselect',this.onBeforeRowSelect,this);if(!this.startGroup){this.startGroup=new Ext.XTemplate('<div id="{groupId}" class="x-grid-group {cls}">','<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div>',this.groupTextTpl,'</div></div>','<div id="{groupId}-bd" class="x-grid-group-body">');}
this.startGroup.compile();this.endGroup='</div></div>';},findGroup:function(el){return Ext.fly(el).up('.x-grid-group',this.mainBody.dom);},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[];},onAdd:function(){if(this.enableGrouping&&!this.ignoreAdd){var ss=this.getScrollState();this.refresh();this.restoreScroll(ss);}else if(!this.enableGrouping){FigtreeWeb.Widget.GroupingView.superclass.onAdd.apply(this,arguments);}},onRemove:function(ds,record,index,isUpdate){FigtreeWeb.Widget.GroupingView.superclass.onRemove.apply(this,arguments);var g=document.getElementById(record._groupId);if(g&&g.childNodes[1].childNodes.length<1){Ext.removeNode(g);}
this.applyEmptyText();},refreshRow:function(record){if(this.ds.getCount()==1){this.refresh();}else{this.isUpdating=true;FigtreeWeb.Widget.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false;}},beforeMenuShow:function(){var field=this.getGroupField();var g=this.hmenu.items.get('groupBy');if(g){g.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false);}
var s=this.hmenu.items.get('showGroups');if(s){s.setDisabled(!field&&this.cm.config[this.hdCtxIndex].groupable===false);s.setChecked(!!field,true);}},renderUI:function(){FigtreeWeb.Widget.GroupingView.superclass.renderUI.call(this);this.mainBody.on('mousedown',this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add('-',{id:'groupBy',text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:'x-group-by-icon'});if(this.enableNoGroups){this.hmenu.add({id:'showGroups',text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this});}
this.hmenu.on('beforeshow',this.beforeMenuShow,this);}},onGroupByClick:function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow();},onShowGroupsClick:function(mi,checked){if(checked){this.onGroupByClick();}else{this.grid.store.clearGrouping();}},toggleGroup:function(group,expanded){this.grid.stopEditing(true);group=Ext.getDom(group);var gel=Ext.fly(group);expanded=expanded!==undefined?expanded:gel.hasClass('x-grid-group-collapsed');this.state[gel.dom.id]=expanded;gel[expanded?'removeClass':'addClass']('x-grid-group-collapsed');},toggleAllGroups:function(expanded){var groups=this.getGroups();for(var i=0,len=groups.length;i<len;i++){this.toggleGroup(groups[i],expanded);}},expandAllGroups:function(){this.toggleAllGroups(true);},collapseAllGroups:function(){this.toggleAllGroups(false);},interceptMouse:function(e){var hd=e.getTarget('.x-grid-group-hd',this.mainBody);if(hd){e.stopEvent();this.toggleGroup(hd.parentNode);}},getGroup:function(v,r,groupRenderer,rowIndex,colIndex,ds){var g=groupRenderer?groupRenderer(v,{},r,rowIndex,colIndex,ds):String(v);if(g===''){g=this.cm.config[colIndex].emptyGroupText||this.emptyGroupText;}
return g;},getGroupField:function(){return this.grid.store.getGroupState();},afterRender:function(){FigtreeWeb.Widget.GroupingView.superclass.afterRender.call(this);if(this.grid.deferRowRender){this.updateGroupWidths();}},renderRows:function(){var groupField=this.getGroupField();var eg=!!groupField;if(this.hideGroupedColumn){var colIndex=this.cm.findColumnIndex(groupField);if(!eg&&this.lastGroupField!==undefined){this.mainBody.update('');this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField),false);delete this.lastGroupField;}else if(eg&&this.lastGroupField===undefined){this.lastGroupField=groupField;this.cm.setHidden(colIndex,true);}else if(eg&&this.lastGroupField!==undefined&&groupField!==this.lastGroupField){this.mainBody.update('');var oldIndex=this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(oldIndex,false);this.lastGroupField=groupField;this.cm.setHidden(colIndex,true);}}
return FigtreeWeb.Widget.GroupingView.superclass.renderRows.apply(this,arguments);},doRender:function(cs,rs,ds,startRow,colCount,stripe){if(rs.length<1){return'';}
var groupField=this.getGroupField();var colIndex=this.cm.findColumnIndex(groupField);this.enableGrouping=!!groupField;if(!this.enableGrouping||this.isUpdating){return FigtreeWeb.Widget.GroupingView.superclass.doRender.apply(this,arguments);}
var gstyle='width:'+this.getTotalWidth()+';';var gidPrefix=this.grid.getGridEl().id;var cfg=this.cm.config[colIndex];var groupRenderer=cfg.groupRenderer||cfg.renderer;var prefix=this.showGroupName?(cfg.groupName||cfg.header)+': ':'';var groups=[],curGroup,i,len,gid;for(i=0,len=rs.length;i<len;i++){var rowIndex=startRow+i;var r=rs[i],gvalue=r.data[groupField],g=this.getGroup(gvalue,r,groupRenderer,rowIndex,colIndex,ds);if(!(curGroup&&this.compareGroups(curGroup.group,g,curGroup.gvalue,gvalue))){gid=gidPrefix+'-gp-'+groupField+'-'+Ext.util.Format.htmlEncode(g);var isCollapsed=typeof this.state[gid]!=='undefined'?!this.state[gid]:this.startCollapsed;var gcls=isCollapsed?'x-grid-group-collapsed':'';curGroup={group:g,gvalue:gvalue,text:prefix+g,groupId:gid,startRow:rowIndex,rs:[r],cls:gcls,style:gstyle};groups.push(curGroup);}else{curGroup.rs.push(r);}
r._groupId=gid;}
var buf=[];for(i=0,len=groups.length;i<len;i++){var g=groups[i];this.doGroupStart(buf,g,cs,ds,colCount);buf[buf.length]=FigtreeWeb.Widget.GroupingView.superclass.doRender.call(this,cs,g.rs,ds,g.startRow,colCount,stripe);this.doGroupEnd(buf,g,cs,ds,colCount);}
return buf.join('');},getGroupId:function(value){var gidPrefix=this.grid.getGridEl().id;var groupField=this.getGroupField();var colIndex=this.cm.findColumnIndex(groupField);var cfg=this.cm.config[colIndex];var groupRenderer=cfg.groupRenderer||cfg.renderer;var gtext=this.getGroup(value,{data:{}},groupRenderer,0,colIndex,this.ds);return gidPrefix+'-gp-'+groupField+'-'+Ext.util.Format.htmlEncode(value);},doGroupStart:function(buf,g,cs,ds,colCount){buf[buf.length]=this.startGroup.apply(g);},doGroupEnd:function(buf,g,cs,ds,colCount){buf[buf.length]=this.endGroup;},getRows:function(){if(!this.enableGrouping){return FigtreeWeb.Widget.GroupingView.superclass.getRows.call(this);}
var r=[];var g,gs=this.getGroups();for(var i=0,len=gs.length;i<len;i++){g=gs[i].childNodes[1].childNodes;for(var j=0,jlen=g.length;j<jlen;j++){r[r.length]=g[j];}}
return r;},updateGroupWidths:function(){if(!this.enableGrouping||!this.hasRows()){return;}
var tw=Math.max(this.cm.getTotalWidth(),this.el.dom.offsetWidth-this.scrollOffset)+'px';var gs=this.getGroups();for(var i=0,len=gs.length;i<len;i++){gs[i].firstChild.style.width=tw;}},onColumnWidthUpdated:function(col,w,tw){FigtreeWeb.Widget.GroupingView.superclass.onColumnWidthUpdated.call(this,col,w,tw);this.updateGroupWidths();},onAllColumnWidthsUpdated:function(ws,tw){FigtreeWeb.Widget.GroupingView.superclass.onAllColumnWidthsUpdated.call(this,ws,tw);this.updateGroupWidths();},onColumnHiddenUpdated:function(col,hidden,tw){FigtreeWeb.Widget.GroupingView.superclass.onColumnHiddenUpdated.call(this,col,hidden,tw);this.updateGroupWidths();},onLayout:function(){this.updateGroupWidths();},onBeforeRowSelect:function(sm,rowIndex){if(!this.enableGrouping){return;}
var row=this.getRow(rowIndex);if(row&&!row.offsetParent){var g=this.findGroup(row);this.toggleGroup(g,true);}},groupByText:'Group By This Field',showGroupsText:'Show in Groups',compareGroups:function(g1,g2,v1,v2){if(this.groupIgnoreCase&&v1.toUpperCase&&v2.toUpperCase){return v1.toUpperCase()==v2.toUpperCase();}else{return g1==g2;}}});FigtreeWeb.Widget.GroupingView.GROUP_ID=1000;

FigtreeWeb.Widget.Grid=function(config){config.plugins=config.plugins||[];for(var i=0;i<config.columns.length;i++){if(config.columns[i].xtype){config.columns[i]=Ext.ComponentMgr.create(config.columns[i]);config.plugins.push(config.columns[i]);}}
config.listeners=config.listeners||{};config.listeners['cellclick']={fn:this.cellClick,scope:this};config.listeners['cellcontextmenu']={fn:this.cellContextMenu,scope:this};config.listeners['rowdblclick']={fn:this.rowDblClick,scope:this};if(!config.height&&!config.fitContainer){config.height=(screen.height*0.55)-200;}
if(config.tbar){if(config.tbar.length===0){delete config.tbar;}else{config.tbar=new FigtreeWeb.Widget.GridToolbar(config.tbar);config.tbar.ownerCt=this;config.tbar.grid=this;}}
if(config.bbar&&Ext.isArray(config.bbar)){if(config.bbar.length===0){delete config.bbar;}else{config.bbar=new FigtreeWeb.Widget.Toolbar({items:config.bbar});config.bbar.ownerCt=this;}}
if(config.ddGroup&&config.ddGroup.length>0){config.enableDragDrop=true;}
if(config.singleSelect){config.selModel=new Ext.grid.RowSelectionModel({singleSelect:true});}
FigtreeWeb.Widget.Grid.superclass.constructor.call(this,config);if(!this.filterScreenParams){this.initLocalFilters(false);}
Ext.each(this.colModel.config,this.processColumnConfig,this);this.addEvents({'linkfired':true,'rowover':true,'rowout':true});if(this.displaySnapshot){this.initialiseSnapshot();}
this.on('celldblclick',this.cellDblClick,this);this.refreshDt=new Ext.util.DelayedTask();};Ext.extend(FigtreeWeb.Widget.Grid,Ext.grid.GridPanel,{getUrl:'ScreenGet',postUrl:'ScreenPost',firstIteration:false,displaySnapshot:true,enableDragDrop:false,dblClickBehaviourIndex:0,sortState:null,filterState:null,colSpecHashKey:'colSpecHashKey',allowEmptyCriteria:true,isLoaded:false,refreshDt:null,pagingToolbarHeight:26,headerRowHeight:23,maintainFilterState:true,maintainSortState:true,noRecsFoundMsg:'',noRecsFoundEl:undefined,enableColumnHide:false,snapShowId:null,afterRenderTempExtraParams:undefined,figappCurrentParams:undefined,filterScreenParams:undefined,svrSideFilterState:undefined,svrSideSortState:'',isGrouped:false,groupOn:'',groupTextTpl:'{text} ({[values.rs.length]})',groupIgnoreCase:true,startGroupsCollapsed:false,initComponent:function(){this.ds=this.createStore(this.dataSpec,this.data,this.sortInfo,this.columns);FigtreeWeb.Widget.Grid.superclass.initComponent.apply(this,arguments);},render:function(ct){if(this.deferRender){var fn=function(el){this.width=el.getWidth(true);};fn.defer(50,this,[Ext.get(ct)]);FigtreeWeb.Widget.Grid.superclass.render.defer(100,this,arguments);}else{FigtreeWeb.Widget.Grid.superclass.render.apply(this,arguments);}},onRender:function(ct,position){if(!this.fitContainer&&this.ownerCt.initialConfig.layout=='fw-table'){var alFn=function(container){var target=container.getLayoutTarget();var size=target.getViewSize();this.setSize({width:size.width-target.getPadding('lr')});};this.ownerCt.ownerCt.on('afterlayout',alFn,this.ownerCt);var tabPanel=this.findParentByType('fw-tabpanel');if(tabPanel!=null){alFn.call(this.ownerCt,this.ownerCt.ownerCt);}
this.width=this.width||ct.getWidth(true);this.ctPercentage=this.width/this.ownerCt.getEl().getViewSize().width;this.width-=5;this.moniterCTWidth=true;}
FigtreeWeb.Widget.Grid.superclass.onRender.call(this,ct,position);if(this.loadAfterRender&&this.currentParams){(function(){this.doGet(this.currentParams,this.afterRenderTempExtraParams);}).defer(100,this);}},afterRender:function(){FigtreeWeb.Widget.Grid.superclass.afterRender.apply(this,arguments);this.ownerCt.on('afterlayout',this.ctAfterLayout,this);},ctAfterLayout:function(container){if(!this.getStore().data){return;}
if(this.moniterCTWidth){this.setSize({width:(this.ownerCt.getEl().getViewSize().width*this.ctPercentage)-5});}
if(this.viewReady){this.view.layout();}},manageToolbarEls:function(tbar,bbar){if(!tbar&&this.tbar){this.tbar.remove();delete this.tbar;}
if(!bbar&&this.bbar){this.bbar.remove();this.body.removeClass(this.bodyCls+'-bbar');delete this.bbar;}
if(tbar&&!this.tbar){this.tbar=Ext.DomHelper.insertBefore(this.body,{tag:'div',cls:this.tbarCls},true);if(this.border===false){this.tbar.addClass(this.tbarCls+'-noborder');}
if(this.border===false){this.tbar.addClass(this.tbarCls+'-noborder');}}
if(bbar&&!this.bbar){this.bbar=Ext.DomHelper.insertAfter(this.body,{tag:'div',cls:this.bbarCls},true);if(this.border===false){this.bbar.addClass(this.bbarCls+'-noborder');}
this.body.addClass(this.bodyCls+'-bbar');}},deleteRecord:function(key){var yes=function(){var conn=new FigtreeWeb.Connection({url:this.postUrl,method:'POST'});conn.on('complete',this.refresh,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);var delParams=Ext.apply({},this.currentParams);delParams.mode='delete';delParams.key=key;conn.request(delParams);};var no=Ext.emptyFn();FigtreeWeb.app.confirm(key,FigtreeWeb.app.translate('confirm_delete'),yes,no,this);},doGet:function(params,tempExtraParams){if(!this.rendered){this.afterRenderTempExtraParams=tempExtraParams;this.currentParams=Ext.decode(Ext.encode(params));this.loadAfterRender=true;return;}
this.loadAfterRender=false;var conn=new FigtreeWeb.Connection({url:this.getUrl,method:'GET'});conn.on('complete',this.getComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);var selected=this.getSelectionModel().getSelected();if(selected!=null){this.selectedKey=selected.get('recordKey');}else{this.selectedKey=undefined;}
if(this.noRecsFoundEl){this.noRecsFoundEl.remove();delete this.noRecsFoundEl;}
this.getEl().mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');params.gridDataOnly=true;this.currentParams=Ext.apply({},params);if(tempExtraParams!=undefined){params.params+=';temp_extra_params;'+tempExtraParams;}
var epStart=';start_ep;',epEnd=';end_ep;',extraParams=epStart;if(this.linkViewType){extraParams+=';link_view_type;'+this.linkViewType+';';}
if(this.linkActionTarget){extraParams+=';link_target;'+this.linkActionTargetType+','+this.linkActionTarget;if(this.linkActionTargetType=='popup'&&this.linkPopupHeight){extraParams+=';popup_height='+this.linkPopupHeight;}
if(this.linkActionTargetType=='popup'&&this.linkPopupWidth){extraParams+=';popup_width='+this.linkPopupWidth;}
extraParams+=';';}
if(this.filterQuery&&this.filterQuery!=''){extraParams+=';apply_extra_criteria;'+
this.parseFilterQuery(this.filterQuery)+';';}
var view=this.getView();if(view&&view.scroller){var bodyHeight=view.scroller.getSize().height;if(!this.isLoaded){bodyHeight-=this.headerRowHeight;}
if(!this.bbar&&/(^|;)(grid_paging_toolbar)(;|$)/.test(params.params)){bodyHeight-=this.pagingToolbarHeight;}
extraParams+=';grid_body_height='+
bodyHeight+';';}
if(this.svrSideFilterState){extraParams+=';filter_state;'+this.svrSideFilterState+';end_filter_state;';}
if(this.svrSideSortState.length>0){extraParams+=';sort_state;'+this.svrSideSortState+';end_sort_state;';}
extraParams+=epEnd;if((new RegExp('('+epStart+'.*?'+epEnd+')')).test(params.params)){params.params=params.params.replace(RegExp.$1,'');}
params.params=extraParams+params.params;conn.request(params);},parseFilterQuery:function(query){var re=/(getString\(['"](.*?)['"]\))/g,screen=this.findParentByType('fw-screen'),form=null;if(screen){form=screen.form;if(form){var fields=form.fields,v=null;query=query.replace(re,function(m,m1,m2){v=(fields[m2])?fields[m2].getValue():'INVALID';return m.replace(m1,v);});}}
return query;},navigate:function(fieldValues,baseParams,tempExtraParams){if(!this.currentParams){return;}
var fields=[];var field;var emptyCrit=true;for(fieldValue in fieldValues){field={name:fieldValue,value:fieldValues[fieldValue]};fields.push(field);if(!baseParams||baseParams[fieldValue]===undefined){emptyCrit=emptyCrit&&field.value==='';}}
if(this.allowEmptyCriteria===false&&emptyCrit){Ext.Msg.show({title:FigtreeWeb.app.translate('warning'),buttons:Ext.MessageBox.OK,msg:FigtreeWeb.app.translate('empty_criteria'),icon:Ext.MessageBox.WARNING});return;}
this.currentParams.fields=Ext.util.JSON.encode(fields);this.doGet(this.currentParams,tempExtraParams);},refresh:function(tempExtraParams){this.refreshDt.delay(10,this.doGet,this,[Ext.apply({},this.currentParams),tempExtraParams]);},connExceptionHandler:function(conn,errorData){this.getEl().unmask();FigtreeWeb.app.throwError(errorData);},getComplete:function(conn,response){var summary=false;if(response.gridData){var colSpecHash=Ext.util.JSON.encode(response.gridData.columns).HMACSHA1(this.colSpecHashKey).toString();if(colSpecHash==this.colSpecHash){this.storeState();}
this.colSpecHash=colSpecHash;this.fireEvent('reconfiguring',this);this.name=response.gridData.name||this.name;this.links=response.gridData.links;this.widgets=response.gridData.widgets;this.autoExpandColumn=response.gridData.autoExpandColumn;this.svrSideFilterState=response.gridData.filterState;this.filterScreenParams=response.gridData.filterScreenParams;if(this.filterScreenParams){this.filterState=null;}
this.svrSideSortState=response.gridData.sortState;if(this.svrSideSortState.length>0){this.sortState=null;}
var ds=this.createStore(response.gridData.dataSpec,response.gridData.data,response.gridData.sortInfo,response.gridData.columns);for(var i=0;i<response.gridData.columns.length;i++){if(response.gridData.columns[i].xtype){response.gridData.columns[i]=Ext.ComponentMgr.create(response.gridData.columns[i]);}
if(response.gridData.columns[i].dataType==''){response.gridData.columns[i].sortable=false;response.gridData.columns[i].menuDisabled=true;}
if(!Ext.isEmpty(response.gridData.columns[i].summaryType)){response.gridData.columns[i].summaryRenderer=response.gridData.columns[i].summaryRenderer||(function(v){return v;});summary=true;}}
this.colModel=new Ext.grid.ColumnModel(response.gridData.columns);this.getView().syncFocusEl(0);if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({},{store:ds},this.initialConfig.loadMask));}
this.view.bind(ds,this.colModel);this.store=ds;for(var i=0;i<this.plugins.length;i++){if(this.plugins[i].unbind){this.plugins[i].unbind();}}
this.plugins=[];if(summary){summary=new Ext.grid.GroupSummary();this.plugins.push(summary);this.initPlugin(summary);}
if(!this.filterScreenParams){this.initLocalFilters(true);}
Ext.each(this.colModel.config,this.processColumnConfig,this);if(response.gridData.plugins&&response.gridData.plugins.length>0){for(var i=0;i<response.gridData.plugins.length;i++){this.plugins.push(response.gridData.plugins[i]);this.initPlugin(response.gridData.plugins[i]);}}
this.view.on('refresh',this.checkStoreCount,this,{delay:10,single:true});if(this.rendered){this.view.refresh(true);}
var hasTBarEl=(response.gridData.tbar!=undefined)||(this.initialConfig.tbar!==undefined);var hasBBarEl=(response.gridData.bbar!=undefined)&&(this.pagingToolbar!==false);this.manageToolbarEls(hasTBarEl,hasBBarEl);if(response.gridData.tbar&&!(this.isCaricaComp()&&(this.initialConfig.tbar!==undefined))){if(this.topToolbar){this.topToolbar.destroy();delete this.topToolbar;}
this.topToolbar=new FigtreeWeb.Widget.Toolbar(response.gridData.tbar);this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar);}
if(response.gridData.bbar&&(this.pagingToolbar!==false)){if(this.bottomToolbar){this.bottomToolbar.destroy();delete this.bottomToolbar;}
this.bottomToolbar=new FigtreeWeb.Widget.Toolbar(response.gridData.bbar);this.bottomToolbar.ownerCt=this;this.bottomToolbar.render(this.bbar);}
if(this.isCaricaComp()&&(this.height!=this.getSize().height)){this.body.setHeight(this.body.getHeight()+(this.height-this.getSize().height));this.getView().layout();if(this.initialConfig.anchor){delete this.anchorSpec;delete this.lastSize;this.ownerCt.doLayout();}}
if(response.gridData.pageSize){this.pageSize=response.gridData.pageSize;}
if(response.gridData.selectedKey){this.selectedKey=response.gridData.selectedKey;}
if(this.autoSelectFirstRow&&this.firstIteration){this.selectFirstRow();}else{this.reselect();}
if(this.isCaricaComp()&&!this.isLoaded){FigtreeWeb.app.getGMB().on('screensubmitted',this.onScreenSubmitted,this);}
this.isLoaded=true;if(response.gridData.currentParams){this.figappCurrentParams=Ext.apply({},response.gridData.currentParams);}else{this.figappCurrentParams=undefined;}}
if(response.actions){FigtreeWeb.app.fireActions(response.actions,false,this);}
this.restoreState.defer(1,this,[this.el.unmask,this.el]);},initLocalFilters:function(postRender){var filters=[],dateFilterFormat=FigtreeWeb.app.getDateFormat();for(var i=0;i<this.colModel.config.length;i++){var cfg=this.colModel.config[i],dataType=cfg.dataType,dataIndex=cfg.dataIndex,filterType='',filter={},uniqueStrings;switch(dataType){case'date':filterType='date';filter.dateFormat=dateFilterFormat;break;default:uniqueStrings=this.uniqueStrings(dataIndex);if(uniqueStrings.length>0&&uniqueStrings.length<=30){filterType='list';filter.options=uniqueStrings;}else{filterType='string';}}
filter.type=filterType;filter.dataIndex=dataIndex;filters.push(filter);}
var gf=new Ext.grid.GridFilters({local:true,updateBuffer:200,filters:filters,unbind:function(){if(this.sep){var hmenu=this.grid.getView().hmenu;hmenu.remove(this.sep);hmenu.remove(this.menu);hmenu.un('beforeshow',this.onMenu,this);}
this.grid.un("render",this.onRender,this);this.grid.un("beforestaterestore",this.applyState,this);this.grid.un("beforestatesave",this.saveState,this);delete this.grid.filters;delete this.grid;delete this.store;}});this.plugins.push(gf);this.initPlugin(gf);if(postRender){this.view.on('refresh',gf.onRender,gf,{single:true});}},uniqueStrings:function(dataIndex){var found=[],values=[],s,v;this.store.each(function(rec){s=new String(rec.get(dataIndex)).trim();v=rec.get(dataIndex);if(s.length>80){found=[];values=[];return false;}
if(s==''&&found.indexOf('(Blanks)')==-1){values.push(['(Blanks)','(Blanks)']);found.push('(Blanks)');}
if(s!=''&&found.indexOf(s)==-1){values.push([v,s]);found.push(s);}});return values.sort(function(a,b){if(a[1]=='(Blanks)'||a[1].toUpperCase()<b[1].toUpperCase())
return-1;if(b[1]=='(Blanks)'||a[1].toUpperCase()>b[1].toUpperCase())
return 1;return 0;});},getLink:function(rowIndex,columnIndex){var record=this.store.getAt(rowIndex);var data=record.get(this.colModel.getDataIndex(columnIndex)+'_data');var link;if(data.linkData&&this.links[data.linkData.id]){var linkData=data.linkData;link=Ext.apply({},this.links[linkData.id]);link.actionKey=linkData.actionKey;link.actionDescription=linkData.actionDescription;}
return link;},cellDblClick:function(grid,rowIndex,columnIndex,e){var col=this.colModel.config[columnIndex];if(col.behaviourHandler){col.behaviourHandler('dblclick',grid,rowIndex,columnIndex,e);return;}},cellClick:function(grid,rowIndex,columnIndex,e){if(this.checkCheckbox(grid,rowIndex,columnIndex,e)){return;}
var col=this.colModel.config[columnIndex];if(col.behaviourHandler){col.behaviourHandler('click',grid,rowIndex,columnIndex,e);return;}
var link=this.getLink(rowIndex,columnIndex);if(link!=undefined){this.fireLink(link,e.ctrlKey);}
e.stopEvent();},checkCheckbox:function(grid,rowIndex,columnIndex,e){var record=this.store.getAt(rowIndex);var data=record.get(this.colModel.getDataIndex(columnIndex)+'_data');var wrap=e.getTarget('span.x-form-check-wrap');if(data.widgetData&&(data.widgetData.isCB||(this.widgets[data.widgetData.id]&&(this.widgets[data.widgetData.id].xtype==='fw-checkbox')))&&wrap){wrap=Ext.get(wrap);var form=this.findParentByType('fw-formpanel');if(form&&form.fields[data.widgetData.name]){form.fields[data.widgetData.name].value=!form.fields[data.widgetData.name].value;wrap[form.fields[data.widgetData.name].value?'addClass':'removeClass']('x-form-check-checked');this.fireEvent('cellcheck',form.fields[data.widgetData.name]);return true;}}
return false;},cellContextMenu:function(grid,rowIndex,columnIndex,e){var col=this.colModel.config[columnIndex];if(col.behaviourHandler){col.behaviourHandler('contextmenu',grid,rowIndex,columnIndex,e);return;}
var canHaveConMen=false;var link=this.getLink(rowIndex,columnIndex);if(link!=undefined){for(var i=0;i<link.actions.length;i++){if(/^navigate$/i.test(link.actions[i].name)&&!/^(table|panel|popup|new_tab)$/i.test(link.actions[i].type)){canHaveConMen=true;}}
if(canHaveConMen){if(!this.contextMenu){this.contextMenu=Ext.menu.MenuMgr.get({});this.contextMenu.on('hide',this.contextMenu.removeAll,this.contextMenu);}
this.contextMenu.add({handler:function(){this.fireLink(link,false);},text:FigtreeWeb.app.translate('open'),scope:this,attributes:{link:link},icon:FigtreeWeb.app.getIconPlain('folder.png',16)});var screen=this.findParentByType('fw-screen');if(screen&&screen.ownerCt&&screen.ownerCt.isXType('tabpanel')){this.contextMenu.add({handler:function(){this.fireLink(link,true);},text:FigtreeWeb.app.translate('open_in_new_tab'),scope:this,attributes:{link:link,inNewTab:true},icon:FigtreeWeb.app.getIconPlain('folder_new.png',16)});}
this.contextMenu.showAt(e.getXY());}}
e.stopEvent();},rowDblClick:function(grid,rowIndex,e){var link,cm=this.colModel;for(var i=this.dblClickBehaviourIndex;i<cm.getColumnCount();i++){if(cm.config[i].isCustomColumn){if(cm.config[i].behaviour&&cm.config[i].behaviour['click']){var cell=Ext.get(this.getView().getCell(rowIndex,i));var behaviourTarget=cell.child('*[name=behaviourtarget]');behaviourTarget=behaviourTarget?behaviourTarget.dom:cell.dom;var e={getTarget:function(){return behaviourTarget;},stopEvent:Ext.emptyFn};this.firstIteration=false;cm.config[i].behaviourHandler('click',this,rowIndex,i,e);break;}}else{link=this.getLink(rowIndex,i);if(link!=undefined&&(link.linkId=='1')){this.fireLink(link,false);break;}}}},selectFirstRow:function(){if(this.store.getCount()>0){this.getSelectionModel().selectFirstRow();this.rowDblClick(this,0,{ctrlKey:false});}},reselect:function(){var selected;if(this.selectedKey!=undefined){selected=this.store.query('recordKey',this.selectedKey);if(selected.getCount()>0){selected=selected.first();this.getSelectionModel().selectRecords([selected]);if(this.getView().focusRow){this.getView().focusRow(this.store.indexOf(selected));}}}},fireLink:function(link,context){if(this.firstIteration){this.firstIteration=false;link.tableFirstIteration=true;}
var screen=this.findParentByType('fw-screen');if(!link.findParentByType){link.findParentByType=function(){return screen;};}
var linkActionTarget;if(this.linkActionTarget&&this.linkActionTargetType=='screen'){linkActionTarget=screen.getPanel(this.linkActionTarget);linkActionTarget.setSubmitRefreshTarget(this);}
FigtreeWeb.app.fireActions(link.actions,context,link);if(this.linkActionTarget&&(this.linkActionTargetType=='popup')){linkActionTarget=screen.getPopup();if(linkActionTarget){linkActionTarget.setSubmitRefreshTarget(this);}}
this.fireEvent('linkfired',this,link);},getPreferences:function(){var preferences=this.pageSize+'|';var sortState=this.store.getSortState();for(var i=0;i<this.colModel.getColumnCount();i++){preferences+=this.colModel.getColumnId(i)+','+this.colModel.getColumnWidth(i)+',';if(sortState&&(this.colModel.getDataIndex(i)==sortState.field)){preferences+=sortState.direction;}
if(i<(this.colModel.getColumnCount()-1)){preferences+='|';}}
return preferences;},checkAutoSizeCol:function(e,t){var view=this.view;if(view.activeHd&&!view.headersDisabled){var ss=view.activeHd.style;if(ss.cursor!=''){this.autoSizeColumn(view.activeHdIndex);}}},getView:function(){var viewConfig;if(!this.view){viewConfig=Ext.apply({},this.viewConfig);if(this.isGrouped){viewConfig.groupTextTpl=this.groupTextTpl;viewConfig.groupIgnoreCase=this.groupIgnoreCase;viewConfig.startCollapsed=this.startGroupsCollapsed;this.view=new FigtreeWeb.Widget.GroupingView(viewConfig);}else{this.view=new FigtreeWeb.Widget.GridView(viewConfig);}
this.view.on('refresh',function(){if(this.snapshotEl){delete this.snapshotEl.rowIndex;}},this);}
return this.view;},autoSizeColumn:function(c){var w=0;for(var i=0,l=this.store.getCount();i<l;i++){w=Math.max(w,Ext.util.TextMetrics.measure(this.view.getCell(i,c).firstChild,this.view.getCell(i,c).firstChild.innerHTML).width);}
this.colModel.setColumnWidth(c,w+10);return w;},onResize:function(){Ext.grid.GridPanel.superclass.onResize.apply(this,arguments);},createPDFPrintXML:function(parent){var columnModel=this.getColumnModel();var store=this.getStore();var el=document.createElement('pdfcolumn');parent.appendChild(el);if(columnModel.getColumnCount()===0){return el;}
el.setAttribute('type','table');var table=document.createElement('pdftable');table.setAttribute('columns',columnModel.getColumnCount());el.appendChild(table);var row;var col;var record;var value;var data;var valueColumn;if(this.title&&this.title!=''){row=document.createElement('pdfrow');var col=document.createElement('pdfcolumn');col.innerHTML=this.title;col.setAttribute('bgcolour','medium_light_grey');col.setAttribute('font','instruction');col.setAttribute('colspan',columnModel.getColumnCount());row.appendChild(col);table.appendChild(row);}
row=document.createElement('pdfrow');for(var i=0;i<columnModel.getColumnCount();i++){col=document.createElement('pdfcolumn');col.setAttribute('bgcolour','light_grey');col.setAttribute('font','label');col.innerHTML=columnModel.getColumnHeader(i);row.appendChild(col);}
table.appendChild(row);for(var i=0;i<store.getCount();i++){row=document.createElement('pdfrow');record=store.getAt(i);for(var j=0;j<columnModel.getColumnCount();j++){data=record.get(columnModel.getDataIndex(j)+'_data');valueColumn=columnModel.getColumnById(columnModel.getColumnId(j));value=record.get(valueColumn.dataIndex);if(typeof value=="string"){value=value.safeHTML();}
if(valueColumn.dataType){if(valueColumn.dataType.toUpperCase()=='DATE'){value=Ext.util.Format.date(value,FigtreeWeb.app.getDateFormat());}else if(valueColumn.dataType.toUpperCase()=='FLOAT'){value=parseFloat(value).toFixed(2).toString();value=value.replace(/\./,FigtreeWeb.app.getDecimalSeparator());}}
if(data&&data.widgetData){value=data.widgetData.value||'';}
col=document.createElement('pdfcolumn');col.innerHTML=value;col.setAttribute('font','data');row.appendChild(col);}
table.appendChild(row);}
return el;},initialiseSnapshot:function(){this.snapshotEl=null;this.on('rowover',function(e,grid,rowIndex){if(!this.snapshotEl){this.snapshotEl=Ext.getBody().createChild({tag:'div',cls:'fw-grid-snapshot'});this.on('beforedestroy',function(){Ext.destroy(this.snapshotEl);delete this.snapshotEl;},this);}
if(this.snapshotEl.rowIndex!==rowIndex){var snapShotHTML='<table cellspacing="2" cellpadding="2" width="100%">';var record=this.getStore().getAt(rowIndex);if(!record){return;}
var columnModel=this.getColumnModel();var valueColumn,value,data,header,textWidth,text;for(var i=0;i<columnModel.getColumnCount();i++){if(columnModel.config[i].isCustomColumn&&(columnModel.config[i].showInSnapShot===false)){continue;}
header=columnModel.getColumnHeader(i);valueColumn=columnModel.getColumnById(columnModel.getColumnId(i));value=record.get(valueColumn.dataIndex);if(valueColumn.dataType){var dataType=valueColumn.dataType.toUpperCase();if(dataType=='DATE'){value=Ext.util.Format.date(value,FigtreeWeb.app.getDateFormat());}else if(dataType=='FLOAT'){value=parseFloat(value).toFixed(2).toString();value=value.replace(/\./,FigtreeWeb.app.getDecimalSeparator());}else if(dataType=='STRING'){value=value.safeHTML();value=value.replace(/:lf:/g,'<br>');}}
data=record.get(columnModel.getDataIndex(i)+'_data');if(data&&data.widgetData){if(!data.widgetData.value){continue;}
value=data.widgetData.value;}
if(data.linkData&&this.links[data.linkData.id]){var link=this.links[data.linkData.id];if((link.iconName!=undefined)){continue;}
var dlLink=false;for(var j=0;j<link.actions.length;j++){if(/^download$/i.test(link.actions[j].name)){dlLink=true;}
if(/^report$/i.test(link.actions[j].name)&&/^download$/i.test(link.actions[j].type)){dlLink=true;}}
if(dlLink){continue;}}
if(value.length>200){value=value.substring(0,197)+'...';}
snapShotHTML+='<tr><td class="fw-grid-snapshot-label">'+header+'</td><td class="fw-grid-snapshot-data">'+value+'</td></tr>';}
snapShotHTML+='</table>';this.snapshotEl.update(snapShotHTML);this.snapshotEl.autoHeight();this.snapshotEl.rowIndex=rowIndex;}
var xy=e.getXY();xy[0]++;xy[1]++;var snapShow=function(){this.snapshotEl.show(!Ext.isIE);xy=this.snapshotEl.adjustForConstraints(xy);this.snapshotEl.moveTo(xy[0],xy[1]);this.snapShowId=null;};if(this.snapShowId!=null){clearTimeout(this.snapShowId);this.snapShowId=null;}
this.snapShowId=snapShow.defer(500,this);},this);this.on('rowout',function(){if(this.snapShowId!=null){clearTimeout(this.snapShowId);this.snapShowId=null;}
if(this.snapshotEl){this.snapshotEl.hide();}},this);},hide:function(){if(this.snapshotEl){this.snapshotEl.hide();}
FigtreeWeb.Widget.Grid.superclass.hide.apply(this,arguments);},getColumnVal:function(tokenName,record,getCode){var sm,cm;if(!record||!(record instanceof Ext.data.Record)){sm=this.getSelectionModel();record=sm.getSelected();if(!record){return null;}}
cm=this.colModel;for(var i=0;i<cm.config.length;i++){if(cm.config[i].tokenName==tokenName){if(getCode===true){return record.get(cm.config[i].dataIndex+'_data').codeValue;}else{return record.get(cm.config[i].dataIndex);}}}
return null;},getColumn:function(tokenName,getIndex){var cm=this.colModel;for(var i=0;i<cm.config.length;i++){if(cm.config[i].tokenName==tokenName){return getIndex===true?i:cm.config[i];}}
return getIndex===true?-1:null;},getCheckedRecords:function(fieldName,keyDelim){var form=this.findParentByType('fw-formpanel'),fields=form.fields,store=this.store,records=[],key,index;keyDelim=keyDelim||'-';for(var name in fields){if((new RegExp('^'+fieldName+keyDelim)).test(name)&&fields[name].getValue()){key=name.split(keyDelim)[1];index=store.find('recordKey',key);if(index>=0){records.push(store.getAt(index));}}}
return records;},setAllCBValues:function(fieldName,keyDelim,value){var form=this.findParentByType('fw-formpanel'),fields=form.fields,field,cell,wrap;keyDelim=keyDelim||'-';for(var name in fields){if((new RegExp('^'+fieldName+keyDelim)).test(name)&&(fields[name].getValue()!==value)){field=fields[name];if(this.getView().getRow(field.rowIndex)){field.value=value;cell=Ext.get(this.getView().getCell(field.rowIndex,field.colIndex));wrap=cell.child('div>span.x-form-check-wrap');wrap[value?'addClass':'removeClass']('x-form-check-checked');}}}},uncheckAll:function(fieldName,keyDelim){this.setAllCBValues(fieldName,keyDelim,false);this.fireEvent('uncheckall');},checkAll:function(fieldName,keyDelim){this.setAllCBValues(fieldName,keyDelim,true);this.fireEvent('checkall',this.getCheckedRecords(fieldName,keyDelim));},checkStoreCount:function(){if(this.noRecsFoundMsg.length===0||this.noRecsFoundEl){return;}
if(this.getStore().getCount()===0){var el=this.noRecsFoundEl=this.body.createChild({cls:'fw-grid-norecsfound',html:this.noRecsFoundMsg});var tm=Ext.util.TextMetrics.createInstance(el);el.setWidth(tm.getWidth(this.noRecsFoundMsg));el.center(this.body);}},clear:function(){this.getStore().loadData([]);if(this.noRecsFoundEl){this.noRecsFoundEl.remove();delete this.noRecsFoundEl;}},destroy:function(){if(this.ownerCt){this.ownerCt.un('afterlayout',this.ctAfterLayout,this);}
this.getStore().destroy();FigtreeWeb.app.getGMB().un('screensubmitted',this.onScreenSubmitted,this);FigtreeWeb.Widget.Grid.superclass.destroy.apply(this,arguments);},storeState:function(){if(this.maintainSortState){this.sortState=this.getStore().getSortState();}
if(this.maintainFilterState&&this.plugins){for(var i=0;i<this.plugins.length;i++){if(this.plugins[i]instanceof Ext.grid.GridFilters){this.filterState={};this.plugins[i].saveState(this,this.filterState);break;}}}},restoreState:function(cb,cbScope){var needsDC=false;var view=this.getView();view.ds.un("datachanged",view.onDataChange,view);if(this.maintainSortState&&this.sortState){this.getStore().sort(this.sortState.field,this.sortState.direction);needsDC=true;}
if(this.maintainFilterState&&this.filterState&&this.filterState.filters&&Ext.util.JSON.encode(this.filterState.filters)!=='{}'&&this.plugins){for(var i=0;i<this.plugins.length;i++){if(this.plugins[i]instanceof Ext.grid.GridFilters){this.plugins[i].applyState(this,this.filterState);needsDC=true;break;}}}
view.ds.on("datachanged",view.onDataChange,view);if(needsDC){view.ds.fireEvent("datachanged",view.ds);}
this.filterState=null;this.sortState=null;cb.call(cbScope);},onScreenSubmitted:function(screen){if(!this.currentParams||!FigtreeWeb.Application.refreshRelated){return;}
if(FigtreeWeb.app.compareParams(screen.currentParams,this.currentParams)){var it=this.getInactiveParentTab();if(!it){this.refresh();}else{it.un('activate',this.refresh,this);it.on('activate',this.refresh,this,{single:true});}}},showFilterScreen:function(cfg,headerCell){var params=Ext.apply({},this.filterScreenParams),screen=new FigtreeWeb.Screen({width:400,height:200,ownerCt:this.findParentByType('fw-formpanel')}),screenEl;screen.on('destroy',function(){this.submitGrid=null;this.modalMask.un('mousedown',this.destroy,this);this.modalMask.remove();},screen);params['temp_extra_params']='filtering-info='+cfg.tokenName+','+cfg.header
+';filter_state;'+this.svrSideFilterState+';end_filter_state;';params.noscrolling=true;screen.modalMask=this.findParentByType('fw-formpanel').body.createChild({style:{position:'fixed',top:0,left:0,width:'100%',height:'100%'}});screen.modalMask.on('mousedown',screen.destroy,screen);screen.render(this.findParentByType('fw-formpanel').body);screenEl=screen.getEl();screenEl.setXY(screenEl.adjustForConstraints(screenEl.getAlignToXY(headerCell,'tl-br'),this.findParentByType('fw-formpanel').body));screen.submitGrid=this;screen.doGet(params);},clearFilter:function(cfg){var values={};values['virtual.filterRemove.'+cfg.tokenName]='true';this.navigate(values);},clearAllFilters:function(){this.navigate({'virtual.filterRemoveAll':'true'});},processColumnConfig:function(cfg){this.plugins.push(cfg);this.initPlugin(cfg);},serverSort:function(cfg,direction){var sortState=this.svrSideSortState.split(';'),index=sortState.indexOf('virtual.sort.'+cfg.tokenName),currentDir,i,fields={};if(sortState.length===1){sortState=[];}
if(index!==-1){currentDir=sortState[index+1];sortState[index+1]=direction||((currentDir==='ASC')?'DESC':'ASC');}else{sortState=['virtual.sort.'+cfg.tokenName,direction||'ASC'];}
for(i=0;i<sortState.length;i+=2){fields[sortState[i]]=sortState[i+1];}
this.navigate(fields);},clearServerSort:function(cfg){var sortState=this.svrSideSortState.split(';'),index=sortState.indexOf(cfg.tokenName);if(index!==-1){return;}
sortState.splice(index,2);this.svrSideSortState=sortState.join(';');this.refresh();},clearAllServerSort:function(){this.svrSideSortState='';this.refresh();},createStore:function(fields,data,sortInfo,cols){var store,groupOn=this.groupOn;Ext.each(cols,function(col){if(col.tokenName===groupOn){groupOn=col.dataIndex;return false;}});if(this.isGrouped){if(!fields||fields.length===0){fields=['dummy'];groupOn='dummy';}
sortInfo=sortInfo||{field:groupOn,direction:'ASC'};store=new Ext.data.GroupingStore({reader:new Ext.data.JsonReader({},fields),data:data,groupField:groupOn,sortInfo:sortInfo});}else{store=new Ext.data.JsonStore({fields:fields,sortInfo:sortInfo,data:data});}
return store;},selectNext:function(doBehaviour){var store=this.getStore(),sm=this.getSelectionModel(),selected=sm.getSelected(),index;if(selected&&sm.selectNext()){selected=sm.getSelected();index=store.indexOf(selected);if(doBehaviour){this.rowDblClick(this,index,{ctrlKey:false});}}},selectPrevious:function(doBehaviour){var store=this.getStore(),sm=this.getSelectionModel(),selected=sm.getSelected(),index;if(selected&&sm.selectPrevious()){selected=sm.getSelected();index=store.indexOf(selected);if(doBehaviour){this.rowDblClick(this,index,{ctrlKey:false});}}}});Ext.reg('fw-grid',FigtreeWeb.Widget.Grid);FigtreeWeb.Widget.Grid.Column=function(config){Ext.apply(this,config);if(!this.id){this.id=Ext.id();}
this.renderer=this.renderer.createDelegate(this);};Ext.extend(FigtreeWeb.Widget.Grid.Column,Object,{init:function(grid){this.grid=grid;this.colModel=grid.colModel;this.links=grid.links;this.widgets=grid.widgets;this.form=null;},renderer:function(v,p,record,rowIndex,colIndex,store){var tooltip=null;p.attr='';var data=record.get(this.colModel.getDataIndex(colIndex)+'_data');if(this.dataType){if(this.dataType.toUpperCase()=='DATE'){v=Ext.util.Format.date(v,FigtreeWeb.app.getDateFormat());}else if(this.dataType.toUpperCase()=='FLOAT'){v=parseFloat(v).toFixed(2).toString();if(!(data&&data.widgetData)){v=v.replace(/\./,FigtreeWeb.app.getDecimalSeparator());}}}
if(data&&data.style){p.attr+='style="'+data.style+'" ';}
if(typeof v=="string"){v=v.safeHTML();v=v.replace(/\:lf\:/g,'<br><p>');}
tooltip=v;if(tooltip.length>200){tooltip=tooltip.substring(0,197)+'...';}
var widgStopEvFn=function(id){var el=Ext.get(id);if(el){el.on('mouseover',function(e){e.stopPropagation();},this);}};if(data.widgetData&&this.widgets[data.widgetData.id]&&(this.widgets[data.widgetData.id].xtype!=='fw-checkbox')){var widgetContainer=Ext.id();var widget=Ext.apply({},this.widgets[data.widgetData.id]);widget.name=data.widgetData.name;widget=Ext.ComponentMgr.create(widget);var form=this.getForm();form.addField(widget);widget.render.defer(50,widget,[widgetContainer]);if(this.grid.displaySnapshot){widgStopEvFn.defer(50,this,[widgetContainer]);}
widgetContainer=Ext.DomHelper.markup({tag:'span',title:tooltip,id:widgetContainer,cls:'x-form-field-wrap'});this.grid.getView().on('beforerefresh',widget.destroy,widget,{single:true});widget.on('beforedestroy',form.removeField.createDelegate(form,[widget]),form);data.linkData=undefined;return widgetContainer;}else if(data.widgetData&&this.widgets[data.widgetData.id]&&(this.widgets[data.widgetData.id].xtype==='fw-checkbox')){var widget=Ext.apply({},this.widgets[data.widgetData.id]);widget.name=data.widgetData.name;widget=new FigtreeWeb.Widget.Hidden(widget);widget.value=widget.checked;widget.rowIndex=rowIndex;widget.colIndex=colIndex;var form=this.getForm();form.addField(widget);var wrapId=Ext.id();v=Ext.DomHelper.markup({id:wrapId,tag:'span',cls:'x-form-check-wrap'+(widget.value?'x-form-check-checked':''),html:Ext.DomHelper.markup({tag:'div',cls:'x-form-check-wrap-inner',html:Ext.DomHelper.markup({tag:'img',src:Ext.BLANK_IMAGE_URL,cls:'x-form-check'})})});if(this.grid.displaySnapshot){widgStopEvFn.defer(50,this,[wrapId]);}
this.grid.getView().on('beforerefresh',widget.destroy,widget,{single:true});widget.on('beforedestroy',form.removeField.createDelegate(form,[widget]),form);}
if(data.linkData&&this.links[data.linkData.id]){var link=Ext.apply({},this.links[data.linkData.id]);if((link.tooltip!=undefined)){tooltip=link.tooltip;}
if((link.iconName!=undefined)){v=Ext.DomHelper.markup({tag:'img',src:FigtreeWeb.app.getIconPlain(link.iconName,16),border:'0',width:'16px',height:'16px'});}
var vId=Ext.id();if(this.grid.displaySnapshot){widgStopEvFn.defer(50,this,[vId]);}
v=Ext.DomHelper.markup({tag:'span',title:tooltip,id:vId,html:v,style:{'font-weight':'bold','text-decoration':'underline','cursor':'pointer','color':'#0000FF'},cls:'fw-grid-link'});}else if((tooltip!=null)&&!this.grid.displaySnapshot){p.attr+='ext:qtip="'+tooltip+'" ';}
return v;},getForm:function(){if(!this.form){this.form=this.grid.findParentByType('fw-formpanel');var delForm=function(){delete this.form;};delForm.defer(100,this);}
return this.form;}});Ext.reg('fw-gridcolumn',FigtreeWeb.Widget.Grid.Column);FigtreeWeb.Widget.Grid.CustomColumn=function(config){if(config.renderer){config.addtionalRenderer=config.renderer;delete config.renderer;}
this.renderer=this.renderer.createDelegate(this);Ext.apply(this,config);if(!this.id){this.id=Ext.id();}};Ext.extend(FigtreeWeb.Widget.Grid.CustomColumn,Object,{sortable:true,isCustomColumn:true,showInSnapShot:true,init:function(grid){this.grid=grid;if(this.hidden&&this.hidden===true){this.showInSnapShot=false;}},renderer:function(v,p,record,rowIndex,colIndex,store){p.attr='';p.cellStyle=p.rowStyle=null;if(this.dataType){if(this.dataType.toUpperCase()=='DATE'){v=Ext.util.Format.date(v,FigtreeWeb.app.getDateFormat());}else if(this.dataType.toUpperCase()=='FLOAT'){v=parseFloat(v).toFixed(2).toString();if(!this.addtionalRenderer){v=v.replace(/\./,FigtreeWeb.app.getDecimalSeparator());}}}
if(typeof v=="string"){v=v.safeHTML();v=v.replace(/\:lf\:/g,'<br><p>');}
if(!this.addtionalRenderer&&!this.grid.displaySnapshot){this.addToolTip(v,p.attr);}
if(this.addtionalRenderer){v=this.addtionalRenderer.call(this,v,p,record,rowIndex,colIndex,store);}
if(p.cellStyle){this.grid.getView().on('refresh',(function(view,style){Ext.fly(view.getCell(rowIndex,colIndex)).applyStyles(style);}).createDelegate(this,[p.cellStyle],true),this,{single:true});}
if(p.rowStyle){this.grid.getView().on('refresh',(function(view,style){Ext.fly(view.getRow(rowIndex)).child('tr').applyStyles(style);}).createDelegate(this,[p.rowStyle],true),this,{single:true});}
return v;},behaviourHandler:function(eventName,grid,rowIndex,columnIndex,e){if(!this.behaviour){return;}
var cell=Ext.get(grid.getView().getCell(rowIndex,columnIndex));var behaviourTarget=cell.child('*[name=behaviourtarget]');if(behaviourTarget){var target=e.getTarget();if(target!=behaviourTarget.dom&&!behaviourTarget.contains(target)){return;}}
var behaviour=this.behaviour[eventName];if(!behaviour){if(eventName=='contextmenu'){eventName='click';behaviour=this.behaviour[eventName];if(behaviour&&new RegExp("(^|;|\\n)((navigate)|(panelNavigate))\\(").test(behaviour.actions[0].script)){this.showContextMenu(eventName,grid,rowIndex,columnIndex,e);}}
return;}
var record=grid.store.getAt(rowIndex);var colModel=grid.colModel;var data=record.get(colModel.getDataIndex(columnIndex)+'_data');var screen=grid.findParentByType('fw-screen');var caller={findParentByType:(function(){return this;}).createDelegate(screen),actionKey:data.actionKey,actionDescription:data.actionDescription};screen.actionKey=data.actionKey;screen.actionDescription=data.actionDescription;FigtreeWeb.app.fireActions(behaviour.actions,e.ctrlKey,caller);delete screen.actionKey;delete screen.actionDescription;var script=behaviour.actions[0].script;var refreshTargetScreen;if(new RegExp("(^|;|\\n|\s)popupNavigate\\(").test(script)){refreshTargetScreen=screen.getPopup();if(refreshTargetScreen){refreshTargetScreen.setSubmitRefreshTarget(this.grid);}}
var match;var re=new RegExp("(^|;|\\n|\s)panelNavigate\\('(.*?)'","g");while(match=re.exec(script)){refreshTargetScreen=match[2];refreshTargetScreen=screen.getPanel(refreshTargetScreen);if(refreshTargetScreen){refreshTargetScreen.setSubmitRefreshTarget(this.grid);}}
if(screen.ownerCt.isXType('tabpanel')&&/(^|;|\n|\s)navigate\(\{.*?\},\s*?\{(.*?[\s,])?newTab:\s*?true/.test(script)){refreshTargetScreen=screen.ownerCt.getActiveTab();if(refreshTargetScreen&&(refreshTargetScreen!==screen)){refreshTargetScreen.setSubmitRefreshTarget(this.grid);}}
if(e.target&&/button/i.test(e.target.tagName)){e.target.blur();}
e.stopEvent();},addToolTip:function(v,attr){var tooltip=null;tooltip=v;if(tooltip.length>200){tooltip=tooltip.substring(0,197)+'...';}
if(tooltip!=null){p.attr+='ext:qtip="'+tooltip+'" ';}},stopSnapShot:function(id){if(!this.grid.displaySnapshot){return;}
this.showInSnapShot=false;var stopEvFn=function(id){var el=Ext.get(id);if(el){el.on('mouseover',function(e){e.stopPropagation();},this);}};stopEvFn=stopEvFn.createDelegate(this,[id]);this.grid.getView().on('refresh',stopEvFn,this,{single:true});},showContextMenu:function(eventName,grid,rowIndex,columnIndex,e){var contextMenu=Ext.menu.MenuMgr.get({});contextMenu.on('hide',contextMenu.removeAll,contextMenu);contextMenu.add({handler:this.behaviourHandler.createDelegate(this,[eventName,grid,rowIndex,columnIndex,{ctrlKey:false,stopEvent:Ext.emptyFn,getTarget:(function(){return this;}).createDelegate(e.getTarget())}]),text:FigtreeWeb.app.translate('open'),scope:this,icon:FigtreeWeb.app.getIconPlain('folder.png',16)});contextMenu.add({handler:this.behaviourHandler.createDelegate(this,[eventName,grid,rowIndex,columnIndex,{ctrlKey:true,stopEvent:Ext.emptyFn,getTarget:(function(){return this;}).createDelegate(e.getTarget())}]),text:FigtreeWeb.app.translate('open_in_new_tab'),scope:this,icon:FigtreeWeb.app.getIconPlain('folder_new.png',16)});contextMenu.showAt(e.getXY());e.stopEvent();},getForm:function(){if(!this.form){this.form=this.grid.findParentByType('fw-formpanel');var delForm=function(){delete this.form;};delForm.defer(100,this);}
return this.form;}});Ext.reg('fw-gridcustomcolumn',FigtreeWeb.Widget.Grid.CustomColumn);FigtreeWeb.Widget.Grid.linkRenderer=function(v,p,record,rowIndex,colIndex,store,text){if(text){v=text;}
var id=Ext.id();v=Ext.DomHelper.markup({tag:'span',name:'behaviourtarget',id:id,html:v,style:{'font-weight':'bold','text-decoration':'underline','cursor':'pointer','color':'#0000FF'},cls:'fw-grid-link'});this.stopSnapShot(id);return v;};FigtreeWeb.Widget.Grid.buttonRenderer=function(v,p,record,rowIndex,colIndex,store,text){if(text){v=text;}
p.attr+=' style="padding-top: 1px; padding-bottom: 1px;" ';var id=Ext.id();v=Ext.DomHelper.markup({tag:'button',name:'behaviourtarget',cls:'x-unselectable',type:'button',unselectable:'on',style:{'width':(this.grid.colModel.getColumnWidth(colIndex)-8)+'px','padding':'0px !important','cursor':'pointer'},id:id,html:v});this.stopSnapShot(id);return v;};FigtreeWeb.Widget.Grid.iconRenderer=function(v,p,record,rowIndex,colIndex,store,icon,iconSize){var id=Ext.id(),size=iconSize||16,sizePx=size+'px',ico={tag:'img',name:'behaviourtarget',id:id,src:FigtreeWeb.app.getIconPlain(icon,size),border:'0',width:sizePx,height:sizePx};if(this.behaviour){ico.style={'cursor':'pointer'};}
v=Ext.DomHelper.markup(ico);this.stopSnapShot(id);return v;};FigtreeWeb.Widget.Grid.standardIconRenderer=function(v,p,record,rowIndex,colIndex,store,type){var iconName='icon_'+type.toLowerCase()+'.png',id=Ext.id(),ico={tag:'img',name:'behaviourtarget',id:id,src:'images/v2/'+iconName,border:'0'};if(this.behaviour){ico.style={'cursor':'pointer'};}
v=Ext.DomHelper.markup(ico);this.stopSnapShot(id);return v;};FigtreeWeb.Widget.Grid.checkBoxRenderer=function(v,p,record,rowIndex,colIndex,store,field,keyDelimiter,defaultValue){defaultValue=(defaultValue!==undefined)?defaultValue:(/^(true)|(yes)$/i.test(v));keyDelimiter=keyDelimiter||'-';field=field||this.field;var form=this.getForm();var key=store.getAt(rowIndex).get('recordKey');var cbName=field+keyDelimiter+key;var id=Ext.id();v=Ext.DomHelper.markup({id:id,tag:'span',cls:'x-form-check-wrap'+(defaultValue?' x-form-check-checked':''),html:Ext.DomHelper.markup({tag:'div',cls:'x-form-check-wrap-inner',html:Ext.DomHelper.markup({tag:'img',src:Ext.BLANK_IMAGE_URL,cls:'x-form-check'})})});this.stopSnapShot(id);var widget=new FigtreeWeb.Widget.Hidden({name:cbName,value:defaultValue,rowIndex:rowIndex,colIndex:colIndex});form.addField(widget);var data=record.get(this.grid.colModel.getDataIndex(colIndex)+'_data');data.widgetData={name:cbName,isCB:true};this.grid.getView().on('beforerefresh',widget.destroy,widget,{single:true});widget.on('beforedestroy',form.removeField.createDelegate(form,[widget]),form);return v;};

FigtreeWeb.Widget.OrganisationSelector=function(config){FigtreeWeb.Widget.OrganisationSelector.superclass.constructor.call(this,config);this.on('specialKey',this.onSpecialKey,this);};Ext.extend(FigtreeWeb.Widget.OrganisationSelector,FigtreeWeb.Widget.TriggerField,{triggerImageName:"branch.png",value:'',url:null,width:200,hideTerminated:false,onSpecialKey:function(field,e){if(e.getKey()==e.ENTER){this.onTriggerClick();}},onTriggerClick:function(){if(!this.baseParams){var screen=this.findParentByType('fw-screen');if(screen){this.baseParams=Ext.apply({},screen.getBaseParams());}}
var popup=new FigtreeWeb.Widget.OrganisationSelectorPopup({baseParams:this.baseParams,levels:this.levels,readOnly:this.readOnly,launchingControl:this,shortcut:this.shortcut,filterThreshold:this.filterThreshold,getFields:this.getFields,depth:this.depth,codeInTreePos:this.codeInTreePos,sortInfo:this.sortInfo});popup.show();popup.on('destroy',this.focus,this,{delay:20});},setValue:function(levels){if(levels instanceof Object){var tempLevel=null;var displayValue='';var tempLevels=[];var fireChange=false;var displayType;for(var i=0;i<levels.length;i++){tempLevel={};Ext.apply(tempLevel,levels[i]);if(!tempLevel.label){tempLevel.label=this.levels[i].label;}
tempLevels.push(tempLevel);if(tempLevel.value!=this.levels[i].value){fireChange=true;}
if((!tempLevel.value||(tempLevel.value==''))&&tempLevel.desc.toLowerCase()=='(blank)'){continue;}
displayType=this.displayType;if(Ext.isArray(displayType)){displayType=displayType[i];}
if(displayType!='code'){displayValue+=(tempLevel.desc||'')+((i<(levels.length-1))?' ':'');}else{displayValue+=(tempLevel.value||'')+((i<(levels.length-1))?' ':'');}}
this.levels=tempLevels;FigtreeWeb.Widget.OrganisationSelector.superclass.setValue.call(this,displayValue);}
else{FigtreeWeb.Widget.OrganisationSelector.superclass.setValue.call(this,levels);}
if(fireChange){this.fireEvent('change',{field:this,newValue:this.levels});}},getValue:function(){var returnValue='';var allUndefined=true;for(var i=0;i<this.levels.length;i++){if(this.levels[i].value!=undefined){allUndefined=false;}
returnValue+=(this.levels[i].value||'')+((i<(this.levels.length-1))?',':'');}
return((allUndefined)?'':returnValue);},validateValue:function(value){if(this.mandatory){var pass=false;for(var i=0;i<this.levels.length;i++){pass=pass||(this.levels[i].value!=undefined);}
if(!pass){this.markInvalid(this.blankText);return false;}}
this.clearInvalid();return true;},onRender:function(ct,pos){FigtreeWeb.Widget.OrganisationSelector.superclass.onRender.call(this,ct,pos);this.el.dom.readOnly=true;this.el.addClass('fw-org-selector');},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('font','data');el.innerHTML=this.getRawValue();el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;},getDisplayValue:function(){return this.getRawValue();},reset:function(){this.setValue(this.originalDispValue);this.levels=Ext.util.JSON.decode(Ext.util.JSON.encode(this.originalLevels));this.clearInvalid();},initValue:function(){FigtreeWeb.Widget.OrganisationSelector.superclass.initValue.apply(this,arguments);this.originalDispValue=this.initialConfig.value;this.originalLevels=Ext.util.JSON.decode(Ext.util.JSON.encode(this.initialConfig.levels));},getFigtreeValue:function(){var val='';Ext.each(this.levels,function(level){var code=level.value||'';val+=code+Array(7-code.length+1).join(' ');});return val;},setPartialValue:function(levels){var value=Ext.decode(Ext.encode(this.levels)),i;for(i=0;i<levels.length;i++){value[i].code=value[i].value=levels[i].code
value[i].desc=levels[i].desc;}
for(;i<value.length;i++){value[i].code=undefined;value[i].value=undefined;value[i].desc='';}
this.setValue(value);}});Ext.reg('fw-orgselector',FigtreeWeb.Widget.OrganisationSelector);

FigtreeWeb.Widget.OrganisationSelectorPopup=function(config){var comp;if(config.readOnly){config.title=FigtreeWeb.app.translate('view');}else{config.title=FigtreeWeb.app.translate('select');}
config.title+=' '+FigtreeWeb.app.translate('organisation');this.rootNode=new Ext.tree.AsyncTreeNode({text:'Org',draggable:false,level:0,levels:[]});var tempLevel=null;config.levels=Ext.util.JSON.decode(Ext.util.JSON.encode(config.levels));this.initLevels=[];for(var i=0;i<config.levels.length;i++){this.initLevels[i]=config.levels[i].value;}
this.loader=new FigtreeWeb.Widget.OrganisationTreeLoader({initLevels:this.initLevels,filterThreshold:config.filterThreshold,depth:config.depth,codeInTreePos:config.codeInTreePos,sortInfo:config.sortInfo});this.loader.on('doneloading',this.doneLoading,this);this.loader.on('filterrequired',function(node,parent){this.filterNode=parent;this.filterLabel.setText(this.levels[parent.attributes.level].label);this.filterPanel.show();this.filterPanel.ownerCt.doLayout();this.filterField.setValue(node.attributes.previousQuery||'');this.filterField.focus.defer(500,this.filterField,[true]);},this);this.loader.on('filternotrequired',function(){this.filterNode=undefined;this.filterPanel.hide();this.filterPanel.ownerCt.doLayout();},this);var centrePanelItems=[];if(config.shortcut){comp={xtype:'label',text:FigtreeWeb.app.translate('org_shortcut'),cls:'x-form-item'};centrePanelItems.push(comp);comp={xtype:'fw-triggerfield',triggerImageName:'view.png',width:200,validateOnBlur:false,validationEvent:false,value:'',readOnly:config.readOnly,colspan:2,listeners:{'triggerclick':{fn:this.orgShortcutLookup,scope:this},'specialKey':{fn:function(field,e){if(e.getKey()==e.ENTER&&!this.readOnly){this.orgShortcutLookup(field);}},scope:this}},onTriggerClick:function(){this.fireEvent('triggerclick',this);}};centrePanelItems.push(comp);comp={xtype:'fw-spacer',colspan:3};centrePanelItems.push(comp);}
this.codeTextfields=[];this.descTextfields=[];for(var i=0;i<config.levels.length;i++){comp=Ext.ComponentMgr.create({xtype:'label',cls:'x-form-item',text:config.levels[i].label});centrePanelItems.push(comp);comp=Ext.ComponentMgr.create({xtype:'fw-orgcodefield',width:60,value:(config.levels[i].value||''),readOnly:(!(i==0)||config.readOnly),level:(i+1),parent:this});this.codeTextfields.push(comp);centrePanelItems.push(comp);comp=Ext.ComponentMgr.create({xtype:'textfield',width:200,value:(config.levels[i].desc||''),readOnly:true,msgTarget:'side',getErrorCt:function(){return Ext.get(this.getEl().findParent('.x-table-layout-cell'));}});this.descTextfields.push(comp);centrePanelItems.push(comp);}
Ext.applyIf(config,{baseParams:{},layout:'border',items:[{region:'center',layout:'fw-table',layoutConfig:{stretch:true,columns:3,tdStyle:{'padding-bottom':'5px'}},items:centrePanelItems,bodyStyle:{'padding-top':'5px','padding-left':'5px'}}],width:700-(config.readOnly?300:0),height:330,modal:true,collapsible:false,bbar:['->',{text:FigtreeWeb.app.translate('ok'),handler:this.ok,scope:this,cls:'carica-button-primary'}]});if(!config.readOnly){this.filterLabel=new FigtreeWeb.Widget.Label({text:'Filter',cls:'x-form-item',style:{'padding-left':'5px'}});this.filterField=new FigtreeWeb.Widget.TriggerField({triggerImageName:'view.png',width:200,validateOnBlur:false,validationEvent:false,value:'',listeners:{'triggerclick':{fn:this.performFilter,scope:this},'specialKey':{fn:function(field,e){if(e.getKey()==e.ENTER&&!this.readOnly){this.performFilter();e.stopEvent();}},scope:this}},onTriggerClick:function(){this.fireEvent('triggerclick',this);}});this.filterPanel=new Ext.Panel({hideMode:'offsets',region:'north',height:30,hidden:true,border:false,layout:'fw-table',layoutConfig:{stretch:true,columns:2,tdStyle:{'padding-bottom':'5px'}},items:[this.filterLabel,this.filterField]});this.treePanel=new Ext.tree.TreePanel({region:'center',xtype:'treepanel',loader:this.loader,root:this.rootNode,rootVisible:false,autoScroll:true,listeners:{'beforeexpandnode':{fn:this.nodeClick,scope:this},'click':{fn:this.nodeClick,scope:this}},animate:false});config.items.push({region:'west',width:300,collapsed:config.readOnly,layout:'border',border:false,items:[this.filterPanel,this.treePanel],listeners:{'afterlayout':{fn:this.startLoading,scope:this,single:true}}});config.bbar.push({text:FigtreeWeb.app.translate('cancel'),handler:this.cancel,scope:this,cls:'carica-button-secondary'});if(config.launchingControl&&config.launchingControl.hideTerminated===true){config.bbar.unshift({xtype:'fw-checkbox',listeners:{change:{fn:this.hideTermintatedOrgCodes,scope:this}}},' ',FigtreeWeb.app.translate('hide_terminated_org_codes'));}
config.items[0].tbar=['->',{text:FigtreeWeb.app.translate('reset'),handler:function(){this.nodeClick(this.rootNode);this.loader.initialising=true;this.treePanel.getEl().mask();this.rootNode.reload();},scope:this,cls:'carica-button-secondary'}];}
var fields=[];var field;if(config.getFields){var screen=config.launchingControl.findParentByType('fw-screen');if(screen){for(var j=0;j<config.getFields.length;j++){field=screen.getField(config.getFields[j].name);if(field!=null){fields.push({name:config.getFields[j].name,value:field.getValue()});}}}}
FigtreeWeb.Widget.OrganisationSelectorPopup.superclass.constructor.call(this,config);this.baseParams=Ext.apply({fields:Ext.util.JSON.encode(fields)},config.baseParams);this.loader.baseParams=this.baseParams;};Ext.extend(FigtreeWeb.Widget.OrganisationSelectorPopup,Ext.Window,{dataUrl:'Organisation',cls:'fw-orgselector-popup',nodeClick:function(node,e){if(!node.isSelected()){node.select();}
if(node.isLeaf()&&!node.attributes.lastLevel){return;}
for(var i=0;i<this.levels.length;i++){if(node.attributes.levels.length>i){this.levels[i].value=node.attributes.levels[i].code;this.levels[i].desc=node.attributes.levels[i].description;}else{this.levels[i].value=undefined;this.levels[i].desc='';}}
this.setTextFields();},setTextFields:function(){for(var i=0;i<this.levels.length;i++){this.codeTextfields[i].setReadOnly(!(i==0)&&(this.levels[i].value==undefined)&&!((i>0)&&(this.levels[i-1].value!=undefined)));this.codeTextfields[i].setValue(this.levels[i].value||'');this.descTextfields[i].setValue(this.levels[i].desc||'');}},startLoading:function(treePanel){this.loader.initialising=true;this.treePanel.getEl().mask();this.rootNode.expand();},doneLoading:function(loader){if(this.treePanel&&this.treePanel.el){this.treePanel.getEl().unmask();}},validateLevels:function(){var pass;if(this.launchingControl.minRequiredLevel&&(this.launchingControl.minRequiredLevel<=this.levels.length)){pass=true;for(var i=0;i<this.launchingControl.minRequiredLevel;i++){if(this.levels[i].value===undefined){this.codeTextfields[i].markInvalid(this.launchingControl.blankText);this.descTextfields[i].markInvalid(this.launchingControl.blankText);pass=false;}}
return pass;}
return true;},ok:function(){if(!this.readOnly){if(!this.validateLevels()){return;}
this.launchingControl.setValue(Ext.util.JSON.decode(Ext.util.JSON.encode(this.levels)));}
this.close();},cancel:function(){this.close();},orgShortcutLookup:function(field){var errorFn=function(conn,errorData){FigtreeWeb.app.throwError(errorData);this.getEl().unmask();};var conn=new FigtreeWeb.Connection({url:this.dataUrl,listeners:{'beforerequest':{fn:function(){this.getEl().mask(FigtreeWeb.app.translate('org_shortcut'),'x-mask-loading');},scope:this},'netexception':{fn:errorFn,scope:this},'exception':{fn:errorFn,scope:this},'complete':{fn:this.orgLookupComplete,scope:this}}});var params=Ext.apply({},this.baseParams);params.shortcut=field.getValue();if(params.shortcut==''){return;}
conn.request(params);},orgLookupComplete:function(conn,response){for(var i=0;i<this.levels.length;i++){this.levels[i].value=undefined;this.levels[i].desc='';this.codeTextfields[i].setValue('');this.descTextfields[i].setValue('');}
this.getEl().unmask();if(!response){return;}
var code=response.code.split('[|]');var desc=response.desc.split('[|]');for(var i=0;i<code.length;i++){this.levels[i].value=code[i];this.levels[i].desc=desc[i];this.codeTextfields[i].setValue(code[i]);this.descTextfields[i].setValue(desc[i]);}},performFilter:function(){if(this.filterField.getValue()==''){return;}
for(var i=0;i<this.initLevels.length;i++){delete this.initLevels[i];}
if(this.filterNode){this.filterNode.attributes.query=this.filterField.getValue();this.loader.initialising=true;this.treePanel.getEl().mask();this.filterNode.reload();}},hideTermintatedOrgCodes:function(c){var value=c.getValue();if(c.ignoreChange){return;}
if(this.loader.initialising){c.ignoreChange=true;c.setValue(!(value==='true'));c.ignoreChange=false;return;}
this.loader.baseParams.hideTerminated=value;this.loader.initialising=true;this.treePanel.getEl().mask();this.loader.initLevels=[];for(var i=0;i<this.levels.length;i++){this.loader.initLevels.push(this.levels[i].value);}
this.rootNode.reload();}});FigtreeWeb.Widget.OrganisationTreeLoader=function(config){FigtreeWeb.Widget.OrganisationTreeLoader.superclass.constructor.call(this,config);this.addEvents({'doneloading':true,'filterrequired':true,'filternotrequired':true});};Ext.extend(FigtreeWeb.Widget.OrganisationTreeLoader,Ext.tree.TreeLoader,{dataUrl:'Organisation',initLevels:null,getParams:function(node){var buf=FigtreeWeb.Widget.OrganisationTreeLoader.superclass.getParams.call(this,node).split('&');buf.push('level='+(node.attributes.levels.length+1));for(var i=0;i<node.attributes.levels.length;i++){buf.push('level'+(i+1)+'='+encodeURIComponent(node.attributes.levels[i].code));}
if(this.depth!=undefined){buf.push('depth='+this.depth);}
if(FigtreeWeb.app&&FigtreeWeb.app.getStateProvider()){buf.push('uniqueId='+FigtreeWeb.app.getStateProvider().get('uniqueId',''));}
if(this.codeInTreePos){buf.push('codeInTreePos='+this.codeInTreePos);}
if(this.sortInfo){buf.push('sortInfo='+this.sortInfo);}
if(this.filterThreshold!=undefined){buf.push('filterThreshold'+'='+this.filterThreshold);if(node.attributes.query){buf.push('query'+'='+encodeURIComponent(node.attributes.query));delete node.attributes.query;}}
return buf.join('&');},createNode:function(attr){return FigtreeWeb.Widget.OrganisationTreeLoader.superclass.createNode.call(this,attr);},processResponse:function(response,node,callback){var json=response.responseText;try{var o=eval("("+json+")");node.beginUpdate();var doneLoading=true;for(var i=0,len=o.length;i<len;i++){var n=this.createNode(o[i]);if(n){node.appendChild(n);if(n.attributes.requiresQuery){this.fireEvent('filterrequired',n,node);break;}else{this.fireEvent('filternotrequired');}
if(node.attributes.levels){n.attributes.levels=Ext.util.JSON.decode(Ext.util.JSON.encode(node.attributes.levels));n.attributes.level=(node.attributes.level+1);n.attributes.value=o[i].code;n.attributes.levels.push({code:o[i].code,description:o[i].desc});}
if(len==1){if(this.initLevels&&(this.initLevels.length>=node.attributes.levels.length)){this.initLevels[node.attributes.levels.length]=undefined;}
if(n.attributes.levels.length==this.initLevels.length){n.ui.fireEvent.defer(1,n.ui,['click',n]);}else if(n.attributes.code!==undefined){n.expand.defer(1,n);doneLoading=false;}}else if(this.initLevels&&(this.initLevels.length>=node.attributes.levels.length)&&(this.initLevels[node.attributes.levels.length]==n.attributes.code)){if(this.initLevels&&(this.initLevels.length>=node.attributes.levels.length)){this.initLevels[node.attributes.levels.length]=undefined;}
if(n.attributes.levels.length==this.initLevels.length){n.ui.fireEvent.defer(1,n.ui,['click',n]);}else{n.expand.defer(1,n);doneLoading=false;}}}}
if(this.initialising&&doneLoading){this.initialising=false;this.fireEvent('doneloading',this);}
node.endUpdate();if(typeof callback=="function"){callback(this,node);}}catch(e){this.fireEvent('doneloading',this);this.handleFailure(response);}}});FigtreeWeb.Widget.OrgCodeField=function(config){FigtreeWeb.Widget.OrgCodeField.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.OrgCodeField,Ext.form.TextField,{validationDelay:250,validateOnBlur:false,validateValue:function(value){if(this.getValue()!=this.getValue().toUpperCase()){this.setValue(this.getValue().toUpperCase());}
if(this.readOnly){return true;}
this.parent.descTextfields[this.level-1].setValue('');for(var i=this.level;i<this.parent.levels.length;i++){this.parent.levels[i].value=undefined;this.parent.levels[i].desc='';this.parent.codeTextfields[i].setValue('');this.parent.codeTextfields[i].setReadOnly(true);this.parent.descTextfields[i].setValue('');}
var node=this.parent.rootNode;for(var i=0;i<this.level;i++){node=node.findChild('value',this.parent.codeTextfields[i].getValue());if(node){if((node.attributes.level==this.level)){node.ui.fireEvent('click',node);if(!node.loaded){node.expand();}
if(this.level<this.parent.codeTextfields.length){this.parent.codeTextfields[this.level].focus.defer(200,this.parent.codeTextfields[this.level]);}else{this.focus.defer(200,this);}
break;}}else{this.markInvalid(FigtreeWeb.app.translate('invalid_code'));this.parent.descTextfields[this.level-1].markInvalid(FigtreeWeb.app.translate('invalid_code'));return false;}}
return true;},setValue:function(v){if(this.emptyText&&this.el&&v!==undefined&&v!==null&&v!==''){this.el.removeClass(this.emptyClass);}
this.value=v;if(this.rendered){this.el.dom.value=(v===null||v===undefined?'':v);}
this.applyEmptyText();this.autoSize();this.clearInvalid();}});Ext.reg('fw-orgcodefield',FigtreeWeb.Widget.OrgCodeField);

FigtreeWeb.Widget.MultiOrganisationSelector=Ext.extend(FigtreeWeb.Widget.OrganisationSelector,{onTriggerClick:function(){if(!this.baseParams){var screen=this.findParentByType('fw-screen');if(screen){this.baseParams=Ext.apply({},screen.getBaseParams());}}
var popup=new FigtreeWeb.Widget.MultiOrganisationSelectorPopup({baseParams:this.baseParams,levels:this.levels,readOnly:this.readOnly,launchingControl:this,shortcut:this.shortcut,filterThreshold:this.filterThreshold,getFields:this.getFields,depth:this.depth,codeInTreePos:this.codeInTreePos,sortInfo:this.sortInfo,paths:this.getValue()});popup.show();},getValue:function(){if(!this.paths&&this.levels){var path=[];Ext.each(this.levels,function(l){if(l.value===null){return false;}
path.push(l.value);});path=path.join(',');this.paths=[path].join('|');}
return this.paths;},setPaths:function(paths,desc){this.paths=paths;this.setRawValue(desc);}});Ext.reg('fw-multiorgselector',FigtreeWeb.Widget.MultiOrganisationSelector);

FigtreeWeb.Widget.MultiOrganisationSelectorPopup=Ext.extend(Ext.Window,{levels:null,baseParams:null,readOnly:false,launchingControl:null,shortcut:null,filterThreshold:null,getFields:null,depth:null,codeInTreePos:null,sortInfo:null,ddGrp:'multi-org-select',valueSeparator:'|',descSeparator:' | ',layout:'border',height:600,width:800,treePanel:null,levelsPanel:null,initPaths:null,initComponent:function(){var me=this,i,lb=[],ls=me.levels=Ext.util.JSON.decode(Ext.util.JSON.encode(me.levels)),ip,rootNode,loader,txtFilter,btnClearFilter;if(me.readOnly){me.title=FigtreeWeb.app.translate('view');}else{me.title=FigtreeWeb.app.translate('select');}
me.title+=' '+FigtreeWeb.app.translate('organisation');rootNode=new Ext.tree.AsyncTreeNode({level:0,levels:[],code:'>>',desc:'>>'});if(me.paths){me.initPaths=me.paths.replace(/\,/g,'/').split(me.valueSeparator);}
loader=new FigtreeWeb.Widget.OrganisationTreeLoader({initLevels:[],depth:me.depth,codeInTreePos:me.codeInTreePos,sortInfo:me.sortInfo,baseParams:me.baseParams,initialising:true});loader.on('doneloading',this.expandInitPaths,this,{single:true});txtFilter=new FigtreeWeb.Widget.Textbox({width:270});txtFilter.on('enterkeypress',this.filter,this);btnClearFilter=new Ext.Button({cls:'x-btn-icon',icon:FigtreeWeb.app.getIconPlain('funnel_delete.png',16),tooltip:'Clear Filter',handler:this.clearFilter.createDelegate(this,[txtFilter]),scope:this});me.treePanel=new Ext.tree.TreePanel({region:'west',width:300,xtype:'treepanel',loader:loader,root:rootNode,rootVisible:false,autoScroll:true,animate:false,enableDrag:true,ddGroup:me.ddGrp,listeners:{'dblclick':{fn:this.addNode,scope:this}},tbar:[txtFilter,btnClearFilter]});for(i=0;i<me.levels.length;i++){lb.push({level:(i+1),store:new Ext.data.JsonStore({fields:['desc','code','node'],data:[]}),columns:[{dataIndex:'desc',width:360,header:ls[i].label},{width:100,renderer:function(){return Ext.DomHelper.markup({tag:'span',html:'remove',cls:'fw-grid-link fw-mos-removelink'});}}],listeners:{'cellclick':{fn:me.bucketCellClick,scope:me}}});}
me.levelsPanel=new Ext.Panel({region:'center',layout:'anchor',defaults:{xtype:'grid',anchor:'100% '+String(100/lb.length)+'%',border:false,cls:'fw-mos-levelbucket'},listeners:{'render':{fn:me.initialiseDropZone,scope:me}},items:lb});me.items=[me.treePanel,me.levelsPanel];me.buttons=[{text:FigtreeWeb.app.translate('ok'),handler:me.doOk,scope:me},{text:FigtreeWeb.app.translate('reset'),handler:me.doReset,scope:me},{text:FigtreeWeb.app.translate('clear'),handler:me.clear,scope:me},{text:FigtreeWeb.app.translate('cancel'),handler:me.close,scope:me}];FigtreeWeb.Widget.MultiOrganisationSelectorPopup.superclass.initComponent.apply(this,arguments);},addNode:function(node){var attr=node.attributes,level=attr.level,grid=this.levelsPanel.find('level',level),pGrid,index;if(grid.length===0){return false;}
grid=grid[0];index=grid.store.find('node',node);if(index>=0){return false;}
this.addNode(node.parentNode);grid.store.loadData([{code:attr.code,desc:attr.desc,node:node}],true);return true;},removeNode:function(rec){var me=this,node=rec.get('node'),attr=node.attributes,level=attr.level,grid=this.levelsPanel.find('level',level+1),store;if(grid.length>0){grid=grid[0];store=grid.store;store.each(function(r){if(r.get('node').parentNode===node){me.removeNode(r);}});}
grid=this.levelsPanel.find('level',level)[0];store=grid.store;store.remove(rec);},initialiseDropZone:function(p){p.dropZone=new Ext.dd.DropZone(p.body,{ddGroup:this.ddGrp,getTargetFromEvent:function(e){return e.getTarget();},onNodeEnter:function(target,dd,e,data){Ext.fly(target).addClass('fw-mso-orgover');},onNodeOut:function(target,dd,e,data){Ext.fly(target).removeClass('fw-mso-orgover');},onNodeOver:function(target,dd,e,data){return Ext.dd.DropZone.prototype.dropAllowed;},onNodeDrop:(function(target,dd,e,data){return this.addNode(data.node);}).createDelegate(this)});},bucketCellClick:function(grid,rowIndex,columnIndex,e){var store=grid.store,t=e.getTarget('.fw-mos-removelink'),record=store.getAt(rowIndex);if(t){this.removeNode(record);}},afterShow:function(){FigtreeWeb.Widget.MultiOrganisationSelectorPopup.superclass.afterShow.apply(this,arguments);this.body.mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');},expandInitPaths:function(success,node){var me=this,ips=me.initPaths,ip;if(success&&node){me.addNode(node);}
if(!ips||ips.length===0){me.body.unmask();return;}
ip=ips.shift();me.treePanel.expandPath('/>>/'+ip,'code',me.expandInitPaths.createDelegate(me));},setParentValue:function(){var me=this,levMax=this.levels.length,i,g,ls,s,paths=[],desc=[];for(i=levMax;i>0;i--){g=me.levelsPanel.find('level',i)[0];s=g.store;s.each(function(r){var n=r.get('node');if(ls&&ls.findBy(function(lr){return(lr.get('node').parentNode==n);})>=0){return;}
paths.push(n.getPath('code').replace(/^\/>>\//,'').replace(/\//g,','));desc.push(n.getPath('desc').replace(/^\/>>\//,'').replace(/\//g,' '));});ls=s;}
me.launchingControl.setPaths(paths.join(me.valueSeparator),desc.join(me.descSeparator));},clear:function(){var me=this,grid=this.levelsPanel.find('level',1),store;if(grid.length===0){return;}
grid=grid[0];store=grid.store;store.each(me.removeNode,me);me.treePanel.root.collapseChildNodes(true);},doOk:function(){this.setParentValue();this.close();},doReset:function(){var me=this;me.clear();if(me.paths){me.initPaths=me.paths.replace(/\,/g,'/').split(me.valueSeparator);me.expandInitPaths();}},destroy:function(){this.treePanel=this.levelsPanel=null;FigtreeWeb.Widget.MultiOrganisationSelectorPopup.superclass.destroy.apply(this,arguments);},filter:function(txtFilter){var me=this,root=me.treePanel.root,filter=txtFilter.getValue(),rex;if(filter.length===0){this.clearFilter(txtFilter);return;}
rex=new RegExp(filter,'i');root.cascade(function(c){if(c!==root){c.getUI().hide();if(rex.test(c.text)){c.bubble(function(p){if(p!==root){p.getUI().show();if(p!==c){p.expand();}}});}}});},clearFilter:function(txtFilter){var me=this,root=me.treePanel.root;txtFilter.setValue('');root.cascade(function(c){if(c!==root){c.getUI().show();c.collapse();}});}});

FigtreeWeb.Widget.ObjectContainer=Ext.extend(Ext.BoxComponent,{data:'',type:'',classid:'',codetype:'',codebase:'',params:'',initComponent:function(){Ext.useShims=true;this.autoEl=this.buldHtmlConfig();FigtreeWeb.Widget.ObjectContainer.superclass.initComponent.apply(this,arguments);},buldHtmlConfig:function(){var config={tag:'object',height:this.initialConfig.height,width:this.initialConfig.width};if(this.data&&this.data.length>0){config.data=this.data;config.type=this.type;}else if(this.classid&&this.classid.length>0){config.classid=this.classid;config.codetype=this.codetype;config.codebase=this.codebase;}
if(this.params&&this.params.length>0){try{var params=Ext.util.JSON.decode(this.params);config.children=[];for(var i in params){config.children.push({tag:'param',name:i,value:params[i]});}}catch(e){}}
return config;},getObject:function(){if(!this.rendered){return null;}
return this.getEl().dom.object;}});Ext.reg('fw-objectcontainer',FigtreeWeb.Widget.ObjectContainer);

FigtreeWeb.Widget.Spacer=function(config){FigtreeWeb.Widget.Spacer.superclass.constructor.call(this,config);if(this.space){this.width=this.space;}};Ext.extend(FigtreeWeb.Widget.Spacer,Ext.Component,{width:'0',height:'0',onRender:function(ct,position){this.autoCreate={tag:'div',id:this.id,style:{'width':this.width+'px','height':this.height+'px','display':'inline-block'}};this.el=ct.createChild(this.autoCreate);}});Ext.reg('fw-spacer',FigtreeWeb.Widget.Spacer);

FigtreeWeb.Widget.Separator=function(config){FigtreeWeb.Widget.Separator.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.Separator,Ext.Component,{onRender:function(ct,position){this.autoCreate={tag:'hr',style:'width:99%'};this.el=ct.createChild(this.autoCreate);}});Ext.reg('fw-separator',FigtreeWeb.Widget.Separator);

FigtreeWeb.Widget.FileUpload=function(config){FigtreeWeb.Widget.FileUpload.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.FileUpload,FigtreeWeb.Widget.TriggerField,{triggerImageName:'paperclip_add.png',width:200,permittedExtensions:'',baseCls:'fw-fileupload-field',onTriggerClick:function(){if(!this.dlgUpload){var ieVersion=Ext.getIeVersion();if(ieVersion!==-1&&ieVersion<10){this.createOldDlg();}else{this.createNewDlg();}}
this.dlgUpload.show((!Ext.isIE&&!Ext.isIE7)?this.el:undefined);},fileUploaded:function(dlg,filename,data){if(data.filename!=undefined){this.setValue(Ext.util.Format.htmlDecode(data.filename));dlg.hide();}},destroy:function(){if(this.dlgUpload){if(this.dlgUpload.isVisible()){this.dlgUpload.close();}
this.dlgUpload.destroy();}
FigtreeWeb.Widget.FileUpload.superclass.destroy.call(this);},createOldDlg:function(){var screen=this.findParentByType('fw-screen');Ext.ux.UploadDialog.Dialog.prototype.i18n.note_upload_success=FigtreeWeb.app.translate('upload_success');this.dlgUpload=new Ext.ux.UploadDialog.Dialog({autoCreate:true,closable:true,collapsible:false,draggable:true,resizable:false,width:600,height:150,proxyDrag:true,constraintoviewport:true,title:FigtreeWeb.app.translate('upload_file'),url:'FileUpload',upload_autostart:true,permitted_extensions:(this.permittedExtensions.length>0)?this.permittedExtensions.split(','):null,base_params:screen?screen.getBaseParams():{}});this.dlgUpload.on('filetest',function(dlg,v){return v!='';},this);this.dlgUpload.on('uploadsuccess',this.fileUploaded,this);},createNewDlg:function(){var screen=this.findParentByType('fw-screen'),wantMulti=(FigtreeWeb.Application.multiUploadFieldRe.test(this.name)&&screen&&(screen.getBaseParams().mode||'').toLowerCase()==='add');this.dlgUpload=new Ext.Window({title:'Upload',layout:'fit',modal:true,width:600,height:300,closeAction:'hide',constrain:true,ownerCt:this,items:[{border:false,xtype:'fw-multifileupload',maxFiles:wantMulti?-1:1}],bbar:['->',{cls:'carica-button-primary',style:'padding-right: 7px;',text:FigtreeWeb.app.translate('ok'),handler:function(){var mfu=this.dlgUpload.findByType('fw-multifileupload')[0];if(mfu.uploading){mfu.flash('Please wait, files uploading ...');return;}
this.setValue(mfu.getValue());this.dlgUpload.hide();},scope:this},{cls:'carica-button-secondary',text:FigtreeWeb.app.translate('cancel'),handler:function(){this.dlgUpload.hide();},scope:this}]});this.dlgUpload.on('show',function(w){var mfu=w.findByType('fw-multifileupload')[0];mfu.setValue(this.getValue());},this);}});Ext.reg('fw-fileupload',FigtreeWeb.Widget.FileUpload);Ext.override(Ext.ux.UploadDialog.Dialog,{isPermittedFileType:function(filename){if(!this.permitted_extensions){return true;}
var result=false;for(var i=0;i<this.permitted_extensions.length;i++){if(this.getFileExtension(filename)&&(this.permitted_extensions[i].toLowerCase()===this.getFileExtension(filename).toLowerCase())){result=true;break;}}
return result;}});

FigtreeWeb.Widget.Multiselect=function(config){FigtreeWeb.Widget.Multiselect.superclass.constructor.call(this,config);}
Ext.extend(FigtreeWeb.Widget.Multiselect,Ext.ux.Multiselect,{tabIndex:0,focusClass:'x-form-focus',onRender:function(ct,position){FigtreeWeb.Widget.Multiselect.superclass.onRender.call(this,ct,position);this.getEl().child('div.x-fieldset-body').set({tabIndex:-1});if(this.value){this.setValue(this.value);}
this.getEl().on('keydown',this.keyDownListener,this);this.view.on('click',function(){this.focus();},this);this.view.getEl().on('mousedown',function(e){e.stopEvent();});},keyDownListener:function(e){var key=e.getKey();if(!this.keyDownLetters){this.keyDownLetters='';}
if(key==16){this.keyDownLetters='';}
if(key>=65&&key<=90){var index=undefined;if(!e.shiftKey){this.keyDownLetters='';if(this.view.getSelectedIndexes().length>0){index=this.view.getSelectedIndexes()[0]+1;}}
this.keyDownLetters+=String.fromCharCode(key);index=this.store.find(this.displayField,new RegExp('^'+this.keyDownLetters,'i'),index);if(index<0){index=this.store.find(this.displayField,new RegExp('^'+this.keyDownLetters,'i'));}
if(index>=0){var node=this.view.getNode(index);Ext.get(node).scrollIntoView(this.view.getEl());e.shiftKey=false;this.view.onItemClick(node,index,e);}
e.stopEvent();}}});Ext.reg('fw-multiselect',FigtreeWeb.Widget.Multiselect);

FigtreeWeb.Widget.ItemSelector=function(config){FigtreeWeb.Widget.ItemSelector.superclass.constructor.call(this,config);}
Ext.extend(FigtreeWeb.Widget.ItemSelector,Ext.ux.ItemSelector,{onRender:function(ct,position){var tabIndex=this.tabIndex;this.tabIndex=undefined;FigtreeWeb.Widget.ItemSelector.superclass.onRender.call(this,ct,position);this.fromMultiselect.keyDownListener=FigtreeWeb.Widget.Multiselect.prototype.keyDownListener;this.fromMultiselect.getEl().on('keydown',this.fromMultiselect.keyDownListener,this.fromMultiselect);this.fromMultiselect.getEl().dom.setAttribute('tabIndex',tabIndex);this.fromMultiselect.view.on('click',function(){this.getEl().focus();},this.fromMultiselect);this.toMultiselect.keyDownListener=FigtreeWeb.Widget.Multiselect.prototype.keyDownListener;this.toMultiselect.getEl().on('keydown',this.toMultiselect.keyDownListener,this.toMultiselect);this.toMultiselect.getEl().dom.setAttribute('tabIndex',tabIndex);this.toMultiselect.view.on('click',function(){this.getEl().focus();},this.toMultiselect);},isItemSelector:true,getValue:function(){if(this.toStore.getCount()==0){this.description='';return'';}
var returnValue={};returnValue.value='';returnValue.text='';var valueItem='';if(this.validateCriteria){var criteria='';var openBracs=0;var closeBracs=0;}
if(this.toStore.getCount()==0){return returnValue;}
returnValue.value=[];returnValue.text=[];for(var i=0;i<this.toStore.getCount();i++)
{valueItem=this.toStore.getAt(i).get(this.valueField).toUpperCase();if(this.validateCriteria){switch(valueItem){case'AND':valueItem=' && ';break;case'OR':valueItem=' || ';break;case'NOT':valueItem=' ! ';break;case'(':openBracs++;valueItem=' ( ';break;case')':closeBracs++;valueItem=' ) ';break;default:valueItem=' true ';break;}
criteria+=valueItem;}
returnValue.value.push(this.toStore.getAt(i).get(this.valueField));returnValue.text.push(this.toStore.getAt(i).get(this.displayField));}
if(this.validateCriteria){if(openBracs!=closeBracs){FigtreeWeb.app.throwError({headerText:FigtreeWeb.app.translate('invalid_criteria'),errors:[{message:((openBracs>closeBracs)?FigtreeWeb.app.translate('expecting')+' \')\'':FigtreeWeb.app.translate('expecting')+' \'(\'')}]});return null;}
try{bQueryOK=eval(criteria);}catch(e){FigtreeWeb.app.throwError({headerText:FigtreeWeb.app.translate('invalid_criteria'),errors:[{message:FigtreeWeb.app.translate('invalid_criteria')}]});return null;}}
returnValue.value=returnValue.value.join(',');if(this.descriptionDelimiter!=undefined){this.descriptionDelimiter=this.descriptionDelimiter.replace(/\:space\:/g,' ');this.descriptionDelimiter=this.descriptionDelimiter.replace(/\:lf\:/g,'\n');}else{this.descriptionDelimiter='\n';}
returnValue.text=returnValue.text.join(this.descriptionDelimiter).replace(/&nbsp;/g,' ');this.description=returnValue.text;return returnValue.value;},destroy:function(){var fn=function(ms){if(!ms){return;}
if(ms.view){if(ms.view.dragZone){ms.view.dragZone.destroy();delete ms.view.dragZone;}
if(ms.view.dropZone){ms.view.dropZone.destroy();delete ms.view.dropZone;}
ms.view.destroy();}
var fs=ms.getEl().first('fieldset');if(fs&&fs.dom){fs=Ext.getCmp(fs.dom.id);if(fs){fs.destroy();}}
if(ms.hiddenField){ms.hiddenField.remove();}}
fn(this.fromMultiselect);fn(this.toMultiselect);FigtreeWeb.Widget.ItemSelector.superclass.destroy.call(this);}});Ext.reg('fw-itemselector',FigtreeWeb.Widget.ItemSelector);

FigtreeWeb.Widget.ItemDisplay=function(config){FigtreeWeb.Widget.ItemDisplay.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.ItemDisplay,Ext.form.Field,{onRender:function(ct,position){if(!this.el){var panelCfg={cls:this.groupCls,layout:'fw-table',border:false,renderTo:ct,autoHeight:true,layoutConfig:{stretch:false,columns:1,tdCls:'x-form-field-wrap',tdStyle:{'padding-bottom':'2px'}},autoWidth:false,items:[]};if(this.buttonTop){this.buttonTop.parentControl=this;this.buttonTop=new FigtreeWeb.Widget.Button(this.buttonTop);panelCfg.items.push(this.buttonTop);}else if(this.label){this.label=new Ext.form.Label({text:this.label,cls:'x-form-item'});panelCfg.items.push(this.label);}
this.displayField=new Ext.form.TextArea({height:this.displayFieldHeight,width:this.displayFieldWidth,readOnly:true,value:this.text,grow:false});panelCfg.items.push(this.displayField);if(this.buttonBottom){this.buttonBottom.parentControl=this;this.buttonBottom=new FigtreeWeb.Widget.Button(this.buttonBottom);panelCfg.items.push(this.buttonBottom);}
this.panel=new Ext.Panel(panelCfg);this.el=this.panel.getEl();}},destroy:function(){if(this.panel){this.panel.destroy();}
FigtreeWeb.Widget.ItemDisplay.superclass.destroy.call(this);},setValue:function(v,text){var oldValue;if(text!=undefined){var temp={};temp.value=v;temp.text=text;v=temp;}
if(v.text!=undefined){oldValue=this.value;this.value=v.value;this.text=v.text;if(this.displayField){this.displayField.setValue(this.text);}
this.fireEvent('change',oldValue,v);return;}
oldValue=this.value;this.value=v;this.fireEvent('change',oldValue,v);},getValue:function(){return this.value;}});Ext.reg('fw-itemdisplay',FigtreeWeb.Widget.ItemDisplay);

FigtreeWeb.Widget.FieldSet=function(config){FigtreeWeb.Widget.FieldSet.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.FieldSet,Ext.form.FieldSet,{});Ext.reg('fw-fieldset',FigtreeWeb.Widget.FieldSet);

FigtreeWeb.Widget.Label=function(config){FigtreeWeb.Widget.Label.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.Label,Ext.form.Label,{afterRender:function(ct){FigtreeWeb.Widget.Label.superclass.afterRender.call(this,ct);if(!this.isCaricaComp()&&this.text==''){ct.dom.className='';ct.dom.style.padding=0;ct.dom.style.margin=0;this.el.dom.className='';this.el.dom.style.padding=0;this.el.dom.style.margin=0;}
if(this.text=='&nbsp;'){this.el.dom.innerHTML='&nbsp;';}
this.el.on('click',this.onClick,this);},createPDFPrintXML:function(parent){if(this.text==''&&this.text=='&nbsp;'){return;}
var el=document.createElement('pdfcolumn');el.setAttribute('font','label');el.innerHTML=this.text;el.innerHTML=el.innerHTML.replace(/>/g,'&gt;').replace(/</g,'&lt;');parent.appendChild(el);return el;},onClick:function(e){this.fireEvent("click",this,e);}});Ext.reg('fw-label',FigtreeWeb.Widget.Label);

FigtreeWeb.Widget.Panel=Ext.extend(Ext.Panel,{hideMode:'fw-offsets',initComponent:function(){if(this.tbar&&Ext.isArray(this.tbar)){this.tbar=new FigtreeWeb.Widget.Toolbar({items:this.tbar,ownerCt:this});}
if(this.bbar&&Ext.isArray(this.bbar)){this.bbar=new FigtreeWeb.Widget.Toolbar({items:this.bbar,ownerCt:this});}
FigtreeWeb.Widget.Panel.superclass.initComponent.apply(this,arguments);if(this.isCaricaComp()){this.autoScroll=false;if(this.autoScrollOn!==undefined){this.autoScroll=this.autoScrollOn;}}},onHide:function(){var hideEl;FigtreeWeb.Widget.Panel.superclass.onHide.apply(this,arguments);if(Ext.isChrome&&this.hideMode==='offsets'&&this.ownerCt&&this.ownerCt.isXType('tabpanel')){hideEl=(this.hideParent)?this.container:this.getActionEl();hideEl.setXY([-100000,-100000]);(function(){hideEl.setStyle({'top':'','left':''})}).defer(100);}}});Ext.reg('fw-panel',FigtreeWeb.Widget.Panel);

FigtreeWeb.Widget.Frame=Ext.extend(Ext.form.FieldSet,{hideMode:'fw-offsets',initComponent:function(){FigtreeWeb.Widget.Frame.superclass.initComponent.apply(this,arguments);if(this.isCaricaComp()){this.autoScroll=false;if(this.autoScrollOn!==undefined){this.autoScroll=this.autoScrollOn;}}},onRender:function(){FigtreeWeb.Widget.Frame.superclass.onRender.apply(this,arguments);if(!Ext.isIEOld){this.getEl().setHeight(this.height-5);return;}
if(Ext.isIE&&!Ext.isIE10Plus&&this.ownerCt&&(this.ownerCt.initialConfig.layout==='absolute')){this.getEl().dom.style.paddingTop='10px';this.body.setHeight(this.height-20);if(this.title||this.header||this.checkboxToggle){this.y-=10;}}}});Ext.reg('fw-frame',FigtreeWeb.Widget.Frame);

FigtreeWeb.Widget.RiskMatrix=Ext.extend(Ext.Container,{autoEl:{},layout:'table',defaults:{style:'border:1px solid white;text-align:center'},layoutConfig:{columns:null},previousValue:undefined,value:undefined,isFormField:true,readOnly:false,initComponent:function(){FigtreeWeb.Widget.RiskMatrix.superclass.initComponent.apply(this,arguments);var md=this.matrixData,ms=this.matrixStyle;var msh=ms.headers,msc=ms.colours;var i,j,row,col,header,data;for(i=0;i<md.length;i++){row=md[i];if(i===0){this.layoutConfig.columns=row.length;}
for(j=0;j<row.length;j++){col=row[j];switch(col.type.toUpperCase()){case"H":header=new Ext.BoxComponent({autoEl:{tag:'div'},width:ms.cellWidth,height:ms.cellHeight});header.autoEl.html=col.text;if(col.text!=''){header.autoEl.style='background-color:'+msh.backgroundColour+';color:'+msh.color+';font-weight:'+msh.fontWeight+';font-size:'+msh.fontSize+';font-family:tahoma';}
this.add(header);break;case"D":data=new FigtreeWeb.Widget.RiskMatrixCell({bgColor:msc[col.colour],value:col.value,icon:ms.icon,iconSize:ms.iconSize,width:ms.cellWidth,height:ms.cellHeight,readOnly:this.readOnly,tooltip:md[i][0].text+' / '+md[0][j].text});if(!this.readOnly){data.on('riskmatrixcellclick',this.cellClick,this);}
this.add(data);break;default:}}}
this.on('afterlayout',this.afterLayout,this,{single:true});},cellClick:function(cell){this.setValue(cell.value);},getValue:function(){return this.value;},getSelected:function(){return this.find('value',this.value)[0];},setValue:function(value){if(!this.rendered){this.value=value;return;}
if(this.find('value',value).length==1){this.previousValue=this.value;this.value=value;if(this.previousValue!=undefined){if(this.find('value',this.previousValue).length==1){this.find('value',this.previousValue)[0].clear();}}
this.find('value',this.value)[0].select();this.fireEvent('change');}},afterLayout:function(){if(!this.value){return;}
this.setValue(this.value);}});Ext.reg('fw-riskmatrix',FigtreeWeb.Widget.RiskMatrix);FigtreeWeb.Widget.RiskMatrixCell=Ext.extend(Ext.BoxComponent,{width:100,height:40,bgColor:'white',icon:'delete2.png',iconSize:'32',readOnly:false,tooltip:'',initComponent:function(){this.autoEl={tag:'div',title:this.tooltip};this.autoEl.style=((!this.readOnly)?'cursor:pointer;':'')+'background-color:'+this.bgColor;FigtreeWeb.Widget.RiskMatrixCell.superclass.initComponent.apply(this,arguments);},afterRender:function(){FigtreeWeb.Widget.RiskMatrixCell.superclass.afterRender.apply(this,arguments);this.getEl().unselectable();this.getEl().on('click',this.click,this);},click:function(){this.fireEvent('riskmatrixcellclick',this);},select:function(){this.getEl().createChild({tag:'img',src:'images/icons/'+this.iconSize+'/plain/'+this.icon,style:'padding-top:2px;'});},clear:function(){if(this.getEl().first()){this.getEl().first().remove();}}});

FigtreeWeb.Widget.WebMenu=Ext.extend(Ext.BoxComponent,{autoEl:'div',cls:'web-menu',table:null,colsPerRow:0,subMenuCpr:0,clsOverride:null,items:null,iconSize:'32',iconPosition:'left',initComponent:function(){FigtreeWeb.Widget.WebMenu.superclass.initComponent.apply(this,arguments);},afterRender:function(){FigtreeWeb.Widget.WebMenu.superclass.afterRender.apply(this,arguments);this.table=this.getEl().createChild({tag:'table',cellspacing:0,cn:{tag:'tbody'}},null,true);if(this.items){this.renderItems();}},renderItems:function(){if(!this.items){return;}
var table=this.table,item,row,cprCount=0;row=document.createElement('tr');table.tBodies[0].appendChild(row);for(var i=0;i<this.items.length;i++){item=Ext.apply({ownerCt:this,iconSize:this.iconSize,iconPos:this.iconPosition,menuCpr:this.subMenuCpr},this.items[i]);item=new FigtreeWeb.Widget.WebMenu.Item(item);item.on('beforemenushow',this.hideMenus,this);this.items[i]=item;item.render(row);cprCount++;if(cprCount===this.colsPerRow){row=document.createElement('tr');table.tBodies[0].appendChild(row);}}},destroy:function(){Ext.destroy.apply(Ext,this.items);FigtreeWeb.Widget.WebMenu.superclass.destroy.apply(this,arguments);},hideMenus:function(){for(var i=0;i<this.items.length;i++){this.items[i].hideMenu();}}});Ext.reg('fw-webmenu',FigtreeWeb.Widget.WebMenu);FigtreeWeb.Widget.WebMenu.Item=Ext.extend(Ext.BoxComponent,{autoEl:'td',contentDiv:null,text:'',showMenuOnHover:true,icon:null,iconSize:'32',iconPos:'left',cls:'',delayHide:null,initComponent:function(){FigtreeWeb.Widget.WebMenu.Item.superclass.initComponent.apply(this,arguments);this.cls='';if(this.items&&this.items.length>0){this.cls='wm-has-menu';this.menu=new FigtreeWeb.Widget.WebMenu({ownerCt:this,colsPerRow:this.menuCpr,subMenuCpr:this.menuCpr,items:this.items,hidden:true,iconSize:this.iconSize,iconPosition:this.iconPos,hideMode:'offsets',style:'position: absolute;'});}
if(this.itemCls){this.cls+=' '+this.itemCls;}
this.addEvents({'click':'true'});this.delayHide=new Ext.util.DelayedTask(function(){this.hideMenu();Ext.getBody().un('mousemove',this.onBodyMouseOver,this);},this);this.addEvents({'menuhidden':true,'menushown':true,'beforemenushow':true,'beforemenuhide':true});},onRender:function(){FigtreeWeb.Widget.WebMenu.Item.superclass.onRender.apply(this,arguments);var contentStyle;var cls='';if(this.icon&&this.text&&this.text.length>0){contentStyle={'background-image':'url('+this.icon+')','background-size':this.iconSize+'px '+this.iconSize+'px'};contentStyle['padding-'+this.iconPos]=(Number(this.iconSize)+10)+'px !important';if(/right|left/.test(this.iconPos)){contentStyle['line-height']=(this.iconSize)+'px';}
cls='wm-icon-'+this.iconPos;}else if(this.icon){contentStyle={'background-image':'url('+this.icon+')','background-size':this.iconSize+'px '+this.iconSize+'px','width':this.iconSize+'px','height':this.iconSize+'px'};cls='wm-icon-only';}
this.contentDiv=this.getEl().createChild({tag:'div',style:contentStyle,html:this.text,cls:cls});this.initListeners();},initListeners:function(){var el=this.getEl();el.hover(this.onMouseOver,this.onMouseOut,this);el.on('click',this.onClick,this);},onMouseOver:function(e){if(this.showMenuOnHover){this.showMenu();}},onMouseOut:function(e){},onClick:function(e,el){this.fireEvent("click",this,e);if(!this.showMenuOnHover){this.showMenu();}
e.stopEvent();},showMenu:function(){if(!this.menu||this.menu.isVisible()){return;}
if(this.fireEvent('beforemenushow',this,this.menu)===false){return;}
if(!this.menu.rendered){this.menu.render(this.getEl());var el=this.menu.getEl();el.setStyle({'top':this.getEl().getHeight()+'px'});if(!Ext.isGecko){el.setStyle({'left':'0px'});}}
var parent=this.findParentByType('fw-formpanel');this.menu.show();if(!el){var el=this.menu.getEl();}
var moveto=el.adjustForConstraints(el.getXY(),parent.getEl().dom);el.moveTo(moveto[0],moveto[1]);if(this.showMenuOnHover){this.monBodyMouseOver.defer(1,this);}
if(Ext.isChrome){var temp=el.parent().createChild({tag:'div',cls:'.x-hidden',style:{'width':'1px','height':'1px'}});temp.remove.defer(1,temp);}
this.fireEvent('menushown',this,this.menu);},monBodyMouseOver:function(){Ext.getBody().on('mousemove',this.onBodyMouseOver,this);},onBodyMouseOver:function(e){if(!this.eventWithin(e)){if(!this.delayHide.id){this.delayHide.delay(250);}}else{this.delayHide.cancel();}},eventWithin:function(e){return e.within(this.getEl().dom,false,true);},hideMenu:function(){if(!this.menu||!this.menu.isVisible()){return;}
if(this.fireEvent('beforemenuhide',this,this.menu)===false){return;}
this.menu.hide();this.fireEvent('menuhidden',this,this.menu);},destroy:function(){if(this.contentDiv&&this.icon){this.contentDiv.setStyle('background-image','none');}
Ext.destroy(this.contentDiv);FigtreeWeb.Widget.WebMenu.Item.superclass.destroy.apply(this,arguments);}});

FigtreeWeb.Widget.Renderer.Toolbar=function(config){FigtreeWeb.Widget.Renderer.Toolbar.superclass.constructor.call(this,config);this.addEvents({'itemclick':true,'itemcontext':true});};Ext.extend(FigtreeWeb.Widget.Renderer.Toolbar,Ext.Toolbar,{add:function(){if(this.items){var item
for(var i=0;i<this.items.getCount();i++){item=this.items.get(i);item.destroy();}
this.items.clear();}
this.convertItems(arguments);FigtreeWeb.Widget.Renderer.Toolbar.superclass.add.apply(this,arguments);},convertItems:function(itemsArray,isMenu){var item;for(var i=0;i<itemsArray.length;i++){item=itemsArray[i];if(item.actions){if(isMenu){item.listeners={'click':{fn:this.menuClick,scope:this},'contextmenu':{fn:this.menuContext,scope:this}};item.cls='x-menu-item';}}
if(isMenu&&item==='-'&&(i===(itemsArray.length-1)||itemsArray[i+1]==='-')){itemsArray[i]={xtype:'tbseparator',hidden:true};}
if(item.items){this.convertItems(item.items,true);item.menu={items:item.items};delete item.items;if(!item.actions||!item.actions.length){item.hideOnClick=false;}}
item.ownerCt=this;}},addButton:function(config){var button=FigtreeWeb.Widget.Renderer.Toolbar.superclass.addButton.call(this,config);if(button.actions&&!button.handler){button.handler=this.menuClick;button.scope=this;button.on('destroy',function(){delete this.scope;},button);}
return button;},menuClick:function(item,e){var actions=item.actions;this.fireEvent('itemclick',item,actions,e);},menuContext:function(item,e){var actions=item.actions;var contextItems=item.contextItems;this.fireEvent('itemcontext',item,actions,contextItems,e);}});Ext.menu.BaseItem.prototype.onRenderStandard=Ext.menu.BaseItem.prototype.onRender;Ext.menu.BaseItem.prototype.onRender=function(container,position){this.onRenderStandard(container,position);this.el.on('contextmenu',function(e){this.fireEvent('contextmenu',this,e);},this);};Ext.reg('fw-renderer-toolbar',FigtreeWeb.Widget.Renderer.Toolbar);

FigtreeWeb.Widget.Renderer.Tree=function(config){this.root=new Ext.tree.AsyncTreeNode({text:'Bogus Root Node',draggable:false,id:'source'});FigtreeWeb.Widget.Renderer.Tree.superclass.constructor.call(this,config);this.uiProvider=FigtreeWeb.Widget.Renderer.TreeNodeUI;this.addEvents({'afterrender':true,'itemclick':true,'itemcontext':true});this.on('click',this.itemClick,this);this.on('contextmenu',this.itemContext,this);this.on('afterrender',function(){if(this.tempItems===null){return;}
this.add.apply(this,this.tempItems);delete this.tempItems;},this,{single:true});};Ext.extend(FigtreeWeb.Widget.Renderer.Tree,Ext.tree.TreePanel,{rootVisible:false,autoScroll:true,border:false,tempItems:null,animate:false,add:function(){this.selectedNode=undefined;if(this.root){this.removeChildren(this.root);}
if(!this.rendered){this.tempItems=arguments;}else{this.addChildren(this.root,arguments);}
if(this.selectedNode){this.selModel.select(this.selectedNode);}},removeChildren:function(node){while(node.firstChild){this.removeChildren(node.firstChild);if(node.firstChild.ui.rendered){node.firstChild.ui.remove();}
node.removeChild(node.firstChild).destroy();}},addChildren:function(node,items){var config;var child;for(var i=0;i<items.length;i++){config=items[i];config.uiProvider=this.uiProvider;child=new Ext.tree.TreeNode(config);if(config.actions||config.contextItems){child.ownerCt=this;child.findParentBy=Ext.Component.prototype.findParentBy;child.findParentByType=Ext.Component.prototype.findParentByType;}
if(config.items){this.addChildren(child,config.items);}
node.appendChild(child);if(config.highlight){this.selectedNode=child;}}},afterRender:function(){FigtreeWeb.Widget.Renderer.Tree.superclass.afterRender.call(this);this.fireEvent('afterrender',this);},itemClick:function(item,e){var actions=item.attributes.actions;this.fireEvent('itemclick',item,actions,e);},itemContext:function(item,e){var actions=item.attributes.actions;var contextItems=item.attributes.contextItems;this.fireEvent('itemcontext',item,actions,contextItems,e);}});Ext.reg('fw-renderer-tree',FigtreeWeb.Widget.Renderer.Tree);FigtreeWeb.Widget.Renderer.TreeNodeUI=function(node){FigtreeWeb.Widget.Renderer.TreeNodeUI.superclass.constructor.call(this,node);}
Ext.extend(FigtreeWeb.Widget.Renderer.TreeNodeUI,Ext.tree.TreeNodeUI,{remove:function(){var E=Ext.EventManager;var a=this.anchor;var el=Ext.get(a);var icon=Ext.get(this.iconNode);this.node.un("move",this.onMove,this);E.removeAll(el);E.removeAll(icon);el.remove();icon.remove();E.removeAll(this.ecNode);FigtreeWeb.Widget.Renderer.TreeNodeUI.superclass.remove.call(this);}});

FigtreeWeb.Widget.Renderer.Accordion=function(config){config.layout='accordion';config.layoutConfig={hideCollapseTool:Ext.isIE}
FigtreeWeb.Widget.Renderer.Accordion.superclass.constructor.call(this,config);this.addEvents({'itemclick':true,'itemcontext':true});};Ext.extend(FigtreeWeb.Widget.Renderer.Accordion,Ext.Panel,{add:function(){var panel;var icon;if(this.items){while(this.items.first()!=null){this.remove(this.items.first(),true);}}
for(var i=0;i<arguments.length;i++){if(arguments[i].items){panel=new FigtreeWeb.Widget.Renderer.Tree({title:arguments[i].text,header:true});panel.on('itemclick',function(item,actions,e){this.fireEvent('itemclick',item,actions,e);},this);panel.on('itemcontext',function(item,actions,contextItems,e){this.fireEvent('itemcontext',item,actions,contextItems,e);},this);panel.add.apply(panel,arguments[i].items);}else{panel={title:arguments[i].text,html:'',layout:'fit',header:true};panel=new Ext.Panel(panel);}
panel.border=false;if(arguments[i].icon){panel.icon=arguments[i].icon;panel.on('render',function(){this.setIconClass('');var hd=this.header.dom;var img=hd.firstChild;img.src=this.icon;},panel);}
if(arguments[i].actions){panel.actions=arguments[i].actions;panel.contextItems=arguments[i].contextItems;panel.on('render',function(){this.header.on('click',function(e){this.ownerCt.fireEvent('itemclick',this,this.actions,e);},this);this.header.on('contextmenu',function(e){this.ownerCt.fireEvent('itemcontext',this,this.actions,this.contextItems,e);},this);},panel);}
FigtreeWeb.Widget.Renderer.Accordion.superclass.add.call(this,panel);}
this.doLayout();}});Ext.reg('fw-renderer-accordion',FigtreeWeb.Widget.Renderer.Accordion);

FigtreeWeb.Widget.Renderer.WebMenu=Ext.extend(FigtreeWeb.Widget.WebMenu,{initComponent:function(){FigtreeWeb.Widget.Renderer.WebMenu.superclass.initComponent.apply(this,arguments);this.addEvents({'itemclick':true,'itemcontext':true});},add:function(){this.items=this.convertItems(arguments);this.renderItems();},onRender:function(){FigtreeWeb.Widget.Renderer.WebMenu.superclass.onRender.apply(this,arguments);this.ownerCt.getEl().setStyle({'overflow':'visible'});this.ownerCt.bwrap.setStyle({'overflow':'visible'});this.ownerCt.body.setStyle({'overflow':'visible','background':'none'});},convertItems:function(oldItems){var items=[],item;for(var i=0;i<oldItems.length;i++){item=oldItems[i];if(item.icon){item.icon=item.icon.replace('/16/','/'+this.iconSize+'/');}
if(item.items){item.items=this.convertItems(item.items);}
var l=item.listeners||{};l['click']={fn:this.menuClick,scope:this};item.listeners=l;items.push(item);}
return items;},menuClick:function(item,e){var actions=item.actions;if(actions){this.fireEvent('itemclick',item,actions,e);}}});Ext.reg('fw-renderer-webmenu',FigtreeWeb.Widget.Renderer.WebMenu);

FigtreeWeb.Widget.Layout.TableLayout=function(config){FigtreeWeb.Widget.Layout.TableLayout.superclass.constructor.call(this,config);}
Ext.extend(FigtreeWeb.Widget.Layout.TableLayout,Ext.layout.TableLayout,{fixFirstColumn:false,fixFirstColumnWidth:200,stretch:true,tdCls:undefined,tdStyle:undefined,monitorResize:true,onResize:function(){if(this.container.collapsed){return;}
var items=this.container.items.items;for(var i=0,len=items.length;i<len;i++){var c=items[i];if(c.errorIcon&&c.errorIcon.isVisible()){c.alignErrorIcon();}}
this.container.fireEvent('afterlayout',this.container,this);},renderAll:function(ct,target){if(this.table&&this.stretch){this.table.width='100%';}
FigtreeWeb.Widget.Layout.TableLayout.superclass.renderAll.call(this,ct,target);},getNextCell:function(c){td=FigtreeWeb.Widget.Layout.TableLayout.superclass.getNextCell.call(this,c);if(this.fixFirstColumn&&(this.currentColumn==0)&&c.isXType('label')){td.width=this.fixFirstColumnWidth;}
td=Ext.get(td);if(this.tdCls){td.addClass(this.tdCls);}
if(this.tdStyle){td.setStyle(this.tdStyle);}
if(c.bodyStyle&&!c.doLayout){td.setStyle(c.bodyStyle);}
if(c.containerAlign&&(c.containerAlign!=='')){td.setStyle({'text-align':c.containerAlign});}
return td.dom;},destroy:function(){if(this.table){var table=Ext.get(this.table);var tbody=table.first('tbody');if(tbody){while(tbody.first('tr')!=null){this.removeTr(tbody.first('tr'));}
tbody.remove();}
table.remove();delete this.table;}},removeTr:function(tr){while(tr.first('td')!=null){var td=tr.first('td');td.remove();}
tr.remove();}});Ext.Container.LAYOUTS['fw-table']=FigtreeWeb.Widget.Layout.TableLayout;

FigtreeWeb.Widget.Layout.RowLayout=Ext.extend(Ext.ux.layout.RowLayout,{oldWidth:undefined,onLayout:function(ct,target){FigtreeWeb.Widget.Layout.RowLayout.superclass.onLayout.call(this,ct,target);this.checkWidthChange(ct);},checkWidthChange:function(ct){width=ct.getSize().width;if((this.oldWidth!=undefined)&&(width!=this.oldWidth)){var cs=ct.items.items;for(var i=0,len=cs.length;i<len;i++){var c=cs[i];if(c.doLayout){c.fireEvent('resize',c);}}}
this.oldWidth=width;},destroy:function(){if(this.innerCt){this.innerCt.remove();delete this.innerCt;}}});Ext.Container.LAYOUTS['fw-row']=FigtreeWeb.Widget.Layout.RowLayout;

Ext.layout.FloatLeftLayout=Ext.extend(Ext.layout.AbsoluteLayout,{renderItem:function(c,position,target){c.y=0;c.x=0;var prev,y;if(position>0){prev=this.container.items.items[position-1];c.x=prev.getPosition(true)[0]+prev.getSize().width+1;}
Ext.layout.FloatLeftLayout.superclass.renderItem.apply(this,arguments);}});Ext.Container.LAYOUTS['fw-floatleft']=Ext.layout.FloatLeftLayout;

FigtreeWeb.Widget.Layout.FormLayout=Ext.extend(Ext.layout.FormLayout,{labelSeparator:'',setContainer:function(ct){if(!this.fwFieldTpl){var t=new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">','<label for="{0}" style="{2}" class="x-form-item-label {7}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="{6}"></div>','</div>');t.disableFormats=true;t.compile();FigtreeWeb.Widget.Layout.FormLayout.prototype.fwFieldTpl=t;}
FigtreeWeb.Widget.Layout.FormLayout.superclass.setContainer.call(this,ct);},renderItem:function(c,position,target){if(c&&!c.rendered&&((c.isFormField&&c.inputType!='hidden')||(c.isXType&&c.isXType('fw-link')&&c.fieldLabel))){var args=[c.id,c.fieldLabel,this.getLabelStyle(c.labelStyle),this.elementStyle||'',typeof c.labelSeparator=='undefined'?this.labelSeparator:c.labelSeparator,(c.itemCls||this.container.itemCls||'')+(c.hideLabel?' x-hide-label':''),c.clearCls||'x-form-clear-left',(c.labelCls||this.container.labelCls||'')];if(typeof position=='number'){position=target.dom.childNodes[position]||null;}
if(position){this.fwFieldTpl.insertBefore(position,args);}else{this.fwFieldTpl.append(target,args);}
c.render('x-form-el-'+c.id);c.on('hide',function(c){var el=c.getEl();if(el){el=el.up('.x-form-item');if(el){el.hide();}}});c.on('show',function(c){var el=c.getEl();if(el){el=el.up('.x-form-item');if(el){el.show();}}});}else{FigtreeWeb.Widget.Layout.FormLayout.superclass.renderItem.apply(this,arguments);}}});Ext.Container.LAYOUTS['fw-form']=FigtreeWeb.Widget.Layout.FormLayout;

FigtreeWeb.Widget.Layout.AbsoluteLayout=Ext.extend(Ext.layout.AbsoluteLayout,{getAnchorViewSize:function(ct,target){return((target.dom==document.body)||ct.autoScroll)?target.getViewSize():target.getStyleSize();},setContainer:function(ct){FigtreeWeb.Widget.Layout.AbsoluteLayout.superclass.setContainer.call(this,ct);if(ct.autoScroll){ct.items.each(function(item){var anchorBits;if(item.anchor&&item.anchor.length>0){anchorBits=item.anchor.split(' ');anchorBits[0]=Number(anchorBits[0])>0?0:anchorBits[0];anchorBits[1]=Number(anchorBits[1])>0?0:anchorBits[1];item.anchor=anchorBits.join(' ');}});}}});Ext.Container.LAYOUTS['absolute']=FigtreeWeb.Widget.Layout.AbsoluteLayout;

FigtreeWeb.Widget.Layout.StartScreen=function(config){FigtreeWeb.Widget.Layout.StartScreen.superclass.constructor.call(this,config);this.scrollbarWidth=this.getScrollbarWidth();this.scrollbarOffset=(Ext.isChrome)?0:2;};Ext.extend(FigtreeWeb.Widget.Layout.StartScreen,Ext.layout.AbsoluteLayout,{scrollbarWidth:undefined,scrollbarOffset:undefined,onLayout:function(ct,target){target.clip();if(this.isForm){ct.body.position();}else{target.position();}
Ext.layout.AnchorLayout.superclass.onLayout.call(this,ct,target);var size=this.getAnchorViewSize(ct,target);var w=size.width,h=size.height;if(w<20||h<20){return;}
var aw,ah;if(ct.anchorSize){if(typeof ct.anchorSize=='number'){aw=ct.anchorSize;}else{aw=ct.anchorSize.width;ah=ct.anchorSize.height;}}else{aw=ct.initialConfig.width;ah=ct.initialConfig.height;}
var cs=ct.items.items,len=cs.length,i,c,a,cw,ch,ab,ar;for(i=0;i<len;i++){c=cs[i];if(c.anchor){a=c.anchorSpec;if(!a){var vs=c.anchor.split(' ');c.anchorSpec=a={right:this.parseAnchor(vs[0],c.initialConfig.width,aw),bottom:this.parseAnchor(vs[1],c.initialConfig.height,ah)};}
ar=a.right?a.right(w):undefined;ab=a.bottom?a.bottom(h):undefined;cw=a.right?this.adjustWidthAnchor(ar,c,ab):undefined;ch=a.bottom?this.adjustHeightAnchor(ab,c,ar):undefined;if(cw||ch){c.setSize(cw||undefined,ch||undefined);}}}
target.unclip();},adjustWidthAnchor:function(value,comp,height){if(value<comp.minWidth){return comp.minWidth;}
if(height<comp.minHeight){value-=(this.scrollbarWidth+this.scrollbarOffset);}
return value;},adjustHeightAnchor:function(value,comp,width){if(value<comp.minHeight){return comp.minHeight;}
if(width<comp.minWidth){value-=(this.scrollbarWidth+this.scrollbarOffset);}
return value;},parseAnchor:function(a,start,cstart){if(a&&a!='none'){if(/^(r|right|b|bottom)$/i.test(a)){var diff=cstart-start;return function(v){return v-diff;}}else if(a.indexOf('%')!=-1){var ratio=parseFloat(a.replace('%',''))*.01;return function(v){return Math.floor(v*ratio);}}else{a=parseInt(a,10);if(!isNaN(a)){return function(v){return v+a;}}}}
return false;},getScrollbarWidth:function(){var outer=document.createElement("div");outer.style.visibility="hidden";outer.style.width="100px";outer.style.msOverflowStyle="scrollbar";document.body.appendChild(outer);var widthNoScroll=outer.offsetWidth;outer.style.overflow="scroll";var inner=document.createElement("div");inner.style.width="100%";outer.appendChild(inner);var widthWithScroll=inner.offsetWidth;outer.parentNode.removeChild(outer);return widthNoScroll-widthWithScroll;}});Ext.Container.LAYOUTS['fw-startscreen']=FigtreeWeb.Widget.Layout.StartScreen;

FigtreeWeb.Widget.Toolbar=function(config){FigtreeWeb.Widget.Toolbar.superclass.constructor.call(this,config);this.initEvents();};Ext.extend(FigtreeWeb.Widget.Toolbar,FigtreeWeb.Widget.Renderer.Toolbar,{align:null,initEvents:function(){this.on('itemclick',this.itemClick,this);},itemClick:function(item,actions,e){FigtreeWeb.app.fireActions(actions,e.ctrlKey,this);},onRender:function(ct,pos){FigtreeWeb.Widget.Toolbar.superclass.onRender.call(this,ct,pos);if(this.align!=null){this.getEl().dom.align=this.align;}},afterRender:function(){FigtreeWeb.Widget.Toolbar.superclass.afterRender.apply(this,arguments);var fp=this.findParentByType('fw-formpanel');if(fp&&fp.uiRulesApplied){fp.runAllUIRules();}}});Ext.reg('fw-toolbar',FigtreeWeb.Widget.Toolbar);

FigtreeWeb.Widget.GridToolbar=function(config){if(Ext.isArray(config)){config={items:config};}
for(var i=0;i<config.items.length;i++){if(config.items[i].behaviour&&config.items[i].behaviour['click']){config.items[i].actions=config.items[i].behaviour['click'].actions;config.items[i].target=config.items[i].behaviour['click'].target;}
if(config.items[i].customCls){config.items[i].cls=(config.items[i].cls||'')+' '+config.items[i].customCls;}
delete config.items[i].behaviour;delete config.items[i].xtype;}
FigtreeWeb.Widget.Toolbar.superclass.constructor.call(this,config);this.initEvents();};Ext.extend(FigtreeWeb.Widget.GridToolbar,FigtreeWeb.Widget.Toolbar,{align:null,itemClick:function(item,actions,e){var screen;var action;var actionScreen;for(var i=0;i<actions.length;i++){action=actions[i];if(this.grid){actionScreen=FigtreeWeb.app.screenManager.getActiveScreen(action.scope,this);}
if(this.grid&&action.target&&(action.target!='')&&(action.target!='popup')){screen=actionScreen.find("wid",action.target);if(screen.length>0){screen=screen[0];if(screen.setSubmitRefreshTarget){screen.setSubmitRefreshTarget(this.grid);}}}
FigtreeWeb.app.fireAction(action,e.ctrlKey,this);if(this.grid&&action.target&&(action.target=='popup')){screen=actionScreen.getPopup();screen.setSubmitRefreshTarget(this.grid);}
if(action.script&&actionScreen.ownerCt.isXType('tabpanel')&&/(^|;|\n|\s)navigate\(\{.*?\},\s*?\{(.*?[\s,])?newTab:\s*?true/.test(action.script)){screen=actionScreen.ownerCt.getActiveTab();if(screen&&(screen!==actionScreen)){screen.setSubmitRefreshTarget(this.grid);}}}}});Ext.reg('fw-grid-tbar',FigtreeWeb.Widget.GridToolbar);

FigtreeWeb.Widget.ServletPanel=Ext.extend(Ext.Panel,{servlet:'',loadAfterRender:false,params:undefined,autoRefresh:0,autoRefreshTaskId:undefined,hideMode:'offsets',initialDelay:20,initComponent:function(){FigtreeWeb.Widget.ServletPanel.superclass.initComponent.apply(this,arguments);this.addEvents({'loaded':true});},afterRender:function(){FigtreeWeb.Widget.ServletPanel.superclass.afterRender.apply(this,arguments);if(this.loadAfterRender){if(this.autoRefresh&&this.autoRefresh>0){this.on('loaded',this.initAutoRefresh,this,{single:true,delay:1});}
(function(){this.doGet(this.params);}).defer(this.initialDelay,this);}else{if(this.autoRefresh&&this.autoRefresh>0){this.initAutoRefresh();}}},doGet:function(params){if(this.rendered){var conn=new FigtreeWeb.Connection({url:this.servlet});conn.on('complete',this.getComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.body.mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');},this);conn.request(params);this.loadAfterRender=false;}else{this.params=Ext.decode(Ext.encode(params));this.loadAfterRender=true;}},doPost:function(fieldValues){if(!this.params){return;}
var fields=[];var field;for(var fieldValue in fieldValues){field={name:fieldValue,value:fieldValues[fieldValue]};fields.push(field);}
if(this.initialConfig.currentParams){this.currentParams=Ext.apply({},this.initialConfig.currentParams);}
this.params.fields=Ext.util.JSON.encode(fields);this.doGet(this.params);},refresh:function(){this.doGet(this.params);},initAutoRefresh:function(){var interval=(this.autoRefresh*1000);this.autoRefreshTaskId=setInterval(this.refresh.createDelegate(this),interval);},connExceptionHandler:function(conn,errorData){this.body.unmask();FigtreeWeb.app.throwError(errorData);},getComplete:function(conn,response){this.body.unmask();this.fireEvent('loaded',this);},destroy:function(){if(this.autoRefreshTaskId){clearInterval(this.autoRefreshTaskId);}
FigtreeWeb.Widget.ServletPanel.superclass.destroy.apply(this,arguments);}});Ext.reg('fw-servletpanel',FigtreeWeb.Widget.ServletPanel);

FigtreeWeb.Widget.GraphicsPanel=Ext.extend(FigtreeWeb.Widget.ServletPanel,{loadAfterRender:true,clickTarget:'popup',initComponent:function(){FigtreeWeb.Widget.GraphicsPanel.superclass.initComponent.apply(this,arguments);this.initialConfig.layout='absolute';},graphicClick:function(params,key,label){if(this.clickTarget!=='popup'&&!this.grid){var parentForm=this.findParentByType('fw-formpanel');var grids=parentForm.findBy(function(comp,ctr){return(comp.isXType('fw-grid')&&(comp.wid===this.clickTarget));},this);if(grids.length===0){this.clickTarget='popup';}else{this.grid=grids[0];}}
if(this.clickTarget==='popup'){if(this.grid){this.items.remove(this.grid);this.popGridWidth=this.grid.width;this.popGridHeight=this.grid.height;this.grid.destroy();this.grid.resizer.destroy();}
this.grid=new FigtreeWeb.Widget.Grid({width:this.popGridWidth,height:this.popGridHeight,columns:[],dataSpec:[],data:[],tbar:[],bbar:[],ownerCt:this,floating:true});this.grid.render(Ext.getBody());this.grid.hide();this.grid.hideIf=function(e){if(!e.within(this.getEl())&&!this.getEl().isMasked()){if(this.getView().hmenu&&e.within(this.getView().hmenu.getEl())){return;}
this.hide();}};this.grid.on('show',function(){Ext.getDoc().on('mousedown',this.hideIf,this);if(!this.resizer){this.resizer=new Ext.Resizable(this.el,{handles:'all',pinned:false});this.resizer.on('resize',function(rz,width,height){this.width=width;this.height=height;this.setSize({width:width,height:height});if(this.viewReady){this.view.layout();}},this);}},this.grid,{delay:1});this.grid.on('hide',function(){Ext.getDoc().un('mousedown',this.grid.hideIf,this.grid);delete this.grid.name},this);this.grid.on('linkfired',this.grid.hide,this.grid);this.items.add(this.grid);}
var params=Ext.applyIf({key:key},params);if(this.grid.getEl().isMasked()){return;}
if(this.clickTarget==='popup'){this.grid.show();var xy=this.grid.getEl().adjustForConstraints(this.clickXY);this.grid.getEl().setLocation(xy[0],xy[1]);}
this.grid.linkActionTargetType=this.linkActionTargetType;this.grid.linkActionTarget=this.linkActionTarget;this.grid.linkViewType=this.linkViewType;this.grid.linkPopupHeight=this.linkPopupHeight;this.grid.linkPopupWidth=this.linkPopupWidth;this.grid.setTitle(label);this.grid.doGet(params);},getComplete:function(conn,response){FigtreeWeb.Widget.GraphicsPanel.superclass.getComplete.call(this,conn,response);this.clickParams=response.clickParams;if(this.destroyed!==true){this.drawGraphic();}},onResize:function(){FigtreeWeb.Widget.GraphicsPanel.superclass.onResize.apply(this,arguments);if(this.graphic){this.drawGraphic();}},drawGraphic:function(config){if(this.graphic){this.removeAll();}
Ext.applyIf(config,{clickParams:this.clickParams,height:this.body.getHeight(true),width:this.body.getWidth(true)});this.graphic=Ext.ComponentMgr.create(config);this.graphic.on('click',this.graphicClick,this,{delay:1});this.add(this.graphic);this.doLayout();this.graphic.getEl().on('mousedown',function(e){this.clickXY=e.getXY();},this);return this.graphic;},destroy:function(){if(this.clickTarget==='popup'&&this.grid&&this.grid.destroy){if(this.grid.resizer){this.grid.resizer.destroy();}
this.grid.destroy();}
this.destroyed=true;FigtreeWeb.Widget.GraphicsPanel.superclass.destroy.call(this);}});Ext.reg('fw-graphicspanel',FigtreeWeb.Widget.GraphicsPanel);

FigtreeWeb.Widget.MatrixPanel=Ext.extend(FigtreeWeb.Widget.GraphicsPanel,{servlet:'MatrixData',initComponent:function(){FigtreeWeb.Widget.MatrixPanel.superclass.initComponent.apply(this,arguments);},getComplete:function(conn,response){this.data=response.data;this.colours=response.colours;this.summary=response.summary;this.clickParams=response.clickParams;FigtreeWeb.Widget.MatrixPanel.superclass.getComplete.call(this,conn,response);},drawGraphic:function(){var config={data:this.data,clickParams:this.clickParams,title:this.matrixTitle,colours:this.colours,summary:this.summary,xTitle:this.xTitle,yTitle:this.yTitle,xtype:'fw-raphael-matrix'};FigtreeWeb.Widget.MatrixPanel.superclass.drawGraphic.call(this,config);}});Ext.reg('fw-matrixpanel',FigtreeWeb.Widget.MatrixPanel);

FigtreeWeb.Widget.ChartPanel=Ext.extend(FigtreeWeb.Widget.GraphicsPanel,{servlet:'ChartData',initComponent:function(){FigtreeWeb.Widget.ChartPanel.superclass.initComponent.apply(this,arguments);},getComplete:function(conn,response){this.labels=response.labels;this.values=response.values;this.keys=response.keys;FigtreeWeb.Widget.ChartPanel.superclass.getComplete.call(this,conn,response);},drawGraphic:function(){var config={values:this.values,labels:this.labels,keys:this.keys,title:this.chartTitle,xtype:'fw-'+(FigtreeWeb.Widget.ChartPanel.chartPackage||this.chartPackage)+'-'+this.chartType,legend:this.legend,legendPos:this.legendPos};if(this.scale!=undefined){config.scale=this.scale;}
if(this.displayValues!=undefined){config.displayValues=this.displayValues;}
if(/bar/i.test(this.chartType)){config.barWidth=this.barWidth;}
if(this.sameColourBarLine!=undefined){config.sameColourBarLine=this.sameColourBarLine;}
if(this.barLineColour!=undefined){config.barLineColour=this.barLineColour;}
if(this.margins!=undefined){config.margins=this.margins;}
if(this.colours!=undefined){config.colours=this.colours;}
config.isStatic=(this.isStatic===true);FigtreeWeb.Widget.ChartPanel.superclass.drawGraphic.call(this,config);}});Ext.reg('fw-chartpanel',FigtreeWeb.Widget.ChartPanel);FigtreeWeb.Widget.ChartPanel.chartPackage=undefined;

FigtreeWeb.Widget.MultiSeriesChartPanel=Ext.extend(FigtreeWeb.Widget.GraphicsPanel,{servlet:'MultiSeriesChartData',fixChromeDt:null,initComponent:function(){FigtreeWeb.Widget.MultiSeriesChartPanel.superclass.initComponent.apply(this,arguments);},getComplete:function(conn,response){var figAppChartData=response.chart,highchartsConfig=Ext.decode(Ext.encode(this.highchartsConfig));highchartsConfig=this.applyFigAppChartData(highchartsConfig,figAppChartData);this.drawConfig={xtype:'fw-highcharts-chart',hcConfig:highchartsConfig,isStatic:(this.isStatic===true)};FigtreeWeb.Widget.MultiSeriesChartPanel.superclass.getComplete.call(this,conn,response);},drawGraphic:function(){var config=Ext.decode(Ext.encode(this.drawConfig));FigtreeWeb.Widget.MultiSeriesChartPanel.superclass.drawGraphic.call(this,config);if(Ext.isChrome){for(var p=this.ownerCt;p!=null;p=p.ownerCt){if(p.ownerCt&&p.ownerCt.isXType('tabpanel')){p.on('activate',this.fixChrome,this);}}}},doEnlarge:function(){var config=Ext.decode(Ext.encode(this.graphic.initialConfig)),win,width=Ext.getBody().getWidth()*0.90,height=Ext.getBody().getHeight()*0.90;config.isStatic=true;config.isEnlarged=true;config.height=config.width=undefined;config.listeners={'resize':{fn:function(c){var size=c.getSize();c.chart.setSize(size.width,size.height,false);}}};win=new Ext.Window({layout:'fit',items:[config],height:height,width:width,autoRender:true,modal:true,originalChart:this,resizable:true,maximizable:true,draggable:!Ext.isChrome});win.show();},fixChrome:function(panel){if(!this.getInactiveParentTab()){if(!this.fixChromeDt){this.fixChromeDt=new Ext.util.DelayedTask(this.drawGraphic,this);}
this.fixChromeDt.delay(10);}},applyFigAppChartData:function(hc,fa){var i,hcSeries,faSeries;for(i=0;i<hc.series.length;i++){hcSeries=hc.series[i];faSeries=this.getFigAppSeries(fa,hcSeries.id);if(faSeries===null){continue;}
if(hcSeries.type&&hcSeries.type.toUpperCase()=="PIE"){var a=[];for(var j=0;j<fa.labels.length;j++){a.push([fa.labels[j],faSeries.values[j]]);}
hcSeries.data=a;}else{hcSeries.data=faSeries.values;}
hcSeries.name=faSeries.title;hcSeries.clickParams=faSeries.clickParams;hcSeries.figAppKeys=faSeries.keys;}
hc.xAxis.categories=fa.labels;return hc;},getFigAppSeries:function(cd,id){var s=cd.series||[],i;for(i=0;i<s.length;i++){if(s[i].id===id){var series=s[i];for(var j=0;j<series.values.length;j++){var value=series.values[j];if(value===0){value=null;}
series.values[j]=value;}
return series;}}
return null;},destroy:function(){FigtreeWeb.Widget.MultiSeriesChartPanel.superclass.destroy.apply(this,arguments);if(Ext.isChrome){for(var p=this.ownerCt;p!=null;p=p.ownerCt){if(p.ownerCt&&p.ownerCt.isXType('tabpanel')){p.un('activate',this.fixChrome,this);}}}}});Ext.reg('fw-multiserieschartpanel',FigtreeWeb.Widget.MultiSeriesChartPanel);

FigtreeWeb.Manager.Screen=function(config){FigtreeWeb.Manager.Screen.superclass.constructor.call(this,config);Ext.apply(this,config);if(this.gmb){var gmb=this.gmb;gmb.on('NAVIGATE',this.actionNavigate,this);gmb.on('CLOSE',this.actionClose,this);gmb.on('SET',this.actionSet,this);gmb.on('GET',this.actionGet,this);gmb.on('REFRESH',this.actionRefresh,this);gmb.on('CLEAR',this.actionClear,this);gmb.on('PRINT',this.actionPrint,this);gmb.on('SUBMIT',this.actionSubmit,this);gmb.on('PROMPT',this.actionPrompt,this);gmb.on('RUNSCRIPT',this.actionRunScript,this);gmb.on('COPY',this.actionCopy,this);gmb.on('SAVE_PREFERENCES',this.actionSavePreferences,this);}
this.addEvents({});};Ext.extend(FigtreeWeb.Manager.Screen,Ext.util.Observable,{actionNavigate:function(action,context,caller){var screen;var grid;var panel;var params={};Ext.apply(params,action.params);if(action.requiresKey){var keyHistory=FigtreeWeb.app.getKeyHistory()+";";var keyName=params.get_key;var re=new RegExp(keyName+'=(.*?);','i');var key=(keyHistory.search(re)!=-1)?RegExp.$1:'';var dialogKeySpecify=new FigtreeWeb.Widget.Dialog.KeySpecify({title:params.label,headerText:params.name,icon:params.icon_name,keyLabel:params.key_label,openButtonText:FigtreeWeb.app.translate('open'),cancelButtonText:FigtreeWeb.app.translate('cancel'),action:Ext.apply({},action),context:context,key:key});dialogKeySpecify.show();return;}
if(caller.actionKey!=undefined){params.key=caller.actionKey;}
if(caller.popupFieldValue!=undefined){params.popupFieldValue=caller.popupFieldValue;params.params+=caller.actionExtraParams;}
if(caller.tableFirstIteration){params.params+=';first_iteration';caller.tableFirstIteration=false;}
if(caller.getFieldFields!=undefined){params.fields=Ext.util.JSON.encode(caller.getFieldFields);delete caller.getFieldFields;}
screen=this.getActiveScreen(action.scope,caller);if(screen.form){screen.form.fireEvent('navigateinitiated',screen,action,context,caller);}
if(action.type=='NEW_TAB'||context){screen=this.getActiveScreen(action.scope,caller);if(action.type=='PANEL'){panel=screen.getPanel(action.id);if(panel!=null&&panel.getXType()=='fw-tabbedscreenpanel'){panel.newScreen(params);return;}else if(panel){panel.doGet(params);return;}}else if(screen.ownerCt&&screen.ownerCt.ownerCt&&screen.ownerCt.ownerCt.getXType()=='fw-tabbedscreenpanel'){screen.ownerCt.ownerCt.newScreen(params);return;}
if(!(context&&(action.type!='NEW_TAB')&&(this.constructor!=FigtreeWeb.Manager.Screen.TabPanel))){screen=this.newScreen();}
screen.doGet(params);}else if(action.type=='PANEL'){screen=this.getActiveScreen(action.scope,caller);panel=screen.getPanel(action.id);if(panel!=null){panel.doGet(params);}}else if(action.type=='POPUP'){screen=this.getActiveScreen(action.scope,caller);screen=screen.getWindowManager().newScreen(action,caller,screen);screen.doGet(params);}else if(action.type=='TABLE'){screen=this.getActiveScreen(action.scope,caller);grid=screen.getGrid(action.id);if(grid!=null){grid.doGet(params);}else{delete action.type;this.actionNavigate(action,context,caller);return;}}else{screen=this.getActiveScreen(action.scope,caller);if(screen.targetPanel){panel=screen.getPanel(screen.targetPanel);if(panel){screen=panel;}}
screen.doGet(params);}},actionClose:function(action,context,caller){this.closeActiveScreen(action.scope,caller);},actionSet:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);var widget;if(action.type=='PARENT_WIDGET'){widget=screen.getLaunchingWidget();if(widget){if(caller.actionKey!=undefined){action.value=caller.actionKey;action.description=caller.actionDescription;}
if(widget.setValue!=undefined){action.description=action.description.replace(/\[\|\]/g,'\n');widget.setValue(action.value,action.description);widget.findParentByType('fw-screen').setDataChanged(true);}}}else if(action.type=='FIELDS'){for(var i=0;i<action.fields.length;i++){widget=screen.getField(action.fields[i].name);if(widget){widget.setValue(action.fields[i].value,action.fields[i].description);}}}else if(action.type=='BASE_PARAMS'){screen.setBaseParams(action.params);}else if(action.type=='DATA_CHANGED'){screen.setDataChanged(action.value);}else if(action.type=='KEY_HISTORY'){if(screen&&screen.form&&screen.form.baseParams&&screen.form.baseParams.keyHistory){screen.form.baseParams.keyHistory=action.keyHistory;}
FigtreeWeb.app.setKeyHistory(action.keyHistory);}},actionGet:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);if(action.type=='FIELDS'){var fields=action.fields;var widget;var field;caller.getFieldFields=[];for(var i=0;i<fields.length;i++){widget=screen.getField(fields[i].name);if(widget){field={name:fields[i].name,value:widget.getValue()};caller.getFieldFields.push(field);}}}},actionRefresh:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);var grid;var panel
if(action.type=='PANEL'){for(var i=0;i<action.panels.length;i++){panel=screen.getPanel(action.panels[i].id);if(panel!=null){panel.refresh(action.panels[i].tempExtraParams);}}}else if(action.type=='TABLE'){for(var i=0;i<action.tables.length;i++){grid=screen.getGrid(action.tables[i].id);if(grid!=null){grid.refresh(action.tables[i].tempExtraParams);}}}else{screen.refresh();}},actionClear:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);if(action.type=='PANEL'){var panels=action.panels;var panel;for(var k=0;k<panels.length;k++){panel=screen.getPanel(panels[k].id);if(panel!=null){panel.clear(panels[k].blankText);}}}},actionPrint:function(action,context,caller){this.getActiveScreen(action.scope,caller).print(action.params);},actionSubmit:function(action,context,caller){this.getActiveScreen(action.scope,caller).submit();},actionPrompt:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);var prompt;var buttonConfig;var button;action=Ext.util.JSON.decode(Ext.util.JSON.encode(action));if(action.type=='SCREEN'){var params=Ext.apply({},action.params);if(caller.getFieldFields!=undefined){params.fields=Ext.util.JSON.encode(caller.getFieldFields);}
prompt=screen.getWindowManager().newScreen(action,caller,screen);prompt.doGet(params);}else if(action.type==''){action.actionKey=caller.actionKey;prompt=new FigtreeWeb.Widget.Dialog.Prompt(action);prompt.ownerCt=screen;prompt.show();}},actionRunScript:function(action,context,caller){var screen=this.getActiveScreen(action.scope,caller);screen.performFWScript(action.script,caller,context);},actionCopy:function(action,context,caller){var sourceField=null;var destField=null;var actionField;var value;var description;var destFieldValue;var destFieldDesc;var screen=this.getActiveScreen(action.scope,caller);var parent=screen.getParent();if(action.type=='FIELDS'){for(var i=0;i<action.fields.length;i++){actionField=action.fields[i];actionField.destinationLocation=actionField.destinationLocation.toUpperCase();actionField.mode=actionField.mode.toUpperCase();sourceField=screen.form.getField(actionField.source);if(actionField.destinationLocation=='PARENT'){destField=parent.getField(actionField.destination);}else if(actionField.destinationLocation=='SELF'){destField=screen.form.getField(actionField.destination);}
if((sourceField==null)||(destField==null)){continue;}
value=sourceField.getValue();if(actionField.hasDescription){description=sourceField.description;}
if((sourceField.isItemSelector==true)&&(sourceField.validateCriteria==true)&&(value==null)){return;}
if(actionField.mode=="APPEND"){destFieldValue=destField.getValue();if(destFieldValue!=''){destFieldValue+=actionField.appendDelimiterValue;}
value=destFieldValue+value;if(actionField.hasDescription){destFieldDesc=destField.description;if(destFieldDesc!=''&&destFieldDesc!=undefined){destFieldDesc+=actionField.appendDelimiterDescription;}
description=destFieldDesc+description;}}
if(actionField.hasDescription){destField.setValue(value,description);}else{destField.setValue(value);}}}},actionSavePreferences:function(action,context,caller){var screen;var params={};var maskEl;if(action.type=='SCREEN'){screen=this.getActiveScreen(action.scope,caller);maskEl=screen.getEl();params[action.screenId]=screen.getPanelPreferences();}else if(action.type=='TABLE'){screen=this.getActiveScreen(action.scope,caller);var grid=screen.getGrid(action.gridId);maskEl=grid.getEl();params[action.gridId]=grid.getPreferences();}else{return;}
params.type=action.type.toLowerCase();var conn=new FigtreeWeb.Connection({url:'PreferencesSave'});conn.on('exception',function(conn,errorData){FigtreeWeb.app.throwError(errorData);maskEl.unmask();},this);conn.on('netexception',function(conn,errorData){FigtreeWeb.app.throwError(errorData);maskEl.unmask();},this);conn.on('complete',function(){FigtreeWeb.app.msgBox(FigtreeWeb.app.translate('information'),FigtreeWeb.app.translate('preferences_saved'),'information2.png');maskEl.unmask();},this);maskEl.mask(FigtreeWeb.app.translate('saving'),'x-mask-loading');conn.request(params);},closeActiveScreen:function(scope,caller){this.getActiveScreen(scope,caller).destroy();},getActiveScreen:function(caller){var screen=undefined;if(caller&&caller.findParentByType){if(caller.isXType&&caller.isXType('fw-screen')){screen=caller;}else{screen=caller.findParentByType('fw-screen');}}
if(!screen){screen=FigtreeWeb.app.getQuickSearchScreen();}
return screen;},screensOkToLeave:function(caller,scope){return true;}});

FigtreeWeb.Manager.Screen.TabPanel=function(config){if(config.panel&&config.region&&!config.tabPanel){this.tabPanel=new Ext.TabPanel(config);config.panel.add(this.tabPanel);}
FigtreeWeb.Manager.Screen.TabPanel.superclass.constructor.call(this,config);this.tabPanel.on('beforeremove',this.tabDestroying,this);};Ext.extend(FigtreeWeb.Manager.Screen.TabPanel,FigtreeWeb.Manager.Screen,{newScreen:function(){var screen=new FigtreeWeb.Screen({listeners:{'destroy':{fn:this.screenDestroyed,scope:this}}});screen.closable=true;this.tabPanel.add(screen);this.tabPanel.setActiveTab(screen);this.tabPanel.ownerCt.doLayout();return screen;},getActiveScreen:function(scope,caller,autoCreate){var screen=FigtreeWeb.Manager.Screen.TabPanel.superclass.getActiveScreen.call(this,caller);if(!screen){screen=this.tabPanel.getActiveTab();if(autoCreate==false&&!screen){return undefined;}else if(autoCreate!=false&&!screen){screen=this.newScreen();}
screen=(screen.getPopup()||screen);}
if(scope=='PARENT'){screen=screen.getParent();}
return screen;},screenDestroyed:function(screen){this.tabPanel.remove(screen,false);},tabDestroying:function(tabPanel,screen){if(!this.tabPanel.items.contains(screen)){return;}
if(!screen.okToLeave(this.tabPanel.remove.createDelegate(this.tabPanel,[screen]),this.tabPanel)){return false;}
if(tabPanel.items.getCount()==1){var action={name:'NAVIGATE',params:FigtreeWeb.app.getStateProvider().get('startscreen',{})};FigtreeWeb.app.fireActions([action],false,this);return false;}},screensOkToLeave:function(caller,scope){var screen;for(var i=0;i<this.tabPanel.items.getCount();i++){screen=this.tabPanel.items.get(i);if(!screen.okToLeave(caller,scope)){this.tabPanel.activate(screen);return false;}}
return true;}});

FigtreeWeb.Manager.Screen.Window=function(config){FigtreeWeb.Manager.Screen.Window.superclass.constructor.call(this,config);this.items=new Ext.util.MixedCollection();FigtreeWeb.app.getGMB().on('windowactivated',this.windowActivated,this);};Ext.extend(FigtreeWeb.Manager.Screen.Window,FigtreeWeb.Manager.Screen,{activeScreen:undefined,newScreen:function(action,caller,parentScreen){action=action||{};var modal=(action.modal!==undefined)?action.modal:true;modal=(FigtreeWeb.app.diagsOn())?false:modal;if(action.windowConfig&&action.windowConfig.persistent&&this.screen.persistentPopup&&FigtreeWeb.app.getFAParamValue(this.screen.persistentPopup.currentParams.params,'do_json')===FigtreeWeb.app.getFAParamValue(action.params.params,'do_json')){this.screen.persistentPopup.ownerCt.show();this.screen.persistentPopup.doGetTmp=this.screen.persistentPopup.doGet
this.screen.persistentPopup.doGet=function(){this.doGet=this.doGetTmp;delete this.doGetTmp;};return this.screen.persistentPopup;}
var scrn=new FigtreeWeb.Screen({xtype:'fw-screen',parent:(parentScreen||this.screen),launchingWidget:caller,windowManager:(this.screen)?this.screen.windowManager:undefined,isPopup:true,listeners:{'beforedestroy':{fn:this.screenDestroying,scope:this}}});var windowConfig={xtype:'window',minWidth:300,minHeight:300,collapsible:false,width:action.width||(document.body.clientWidth*0.75),height:action.height||(document.body.clientHeight*0.55),layout:'fit',modal:modal,constrain:true,items:[scrn],resizable:((action.params||{}).sizeToFitContent!==true)};Ext.apply(windowConfig,action.windowConfig);if(action.buttons!=undefined){for(var i=0;i<action.buttons.length;i++){if(action.buttons[i].focus){delete action.buttons[i].focus;windowConfig.defaultButton=i;}
action.buttons[i].text=action.buttons[i].label;action.buttons[i].handler=function(){FigtreeWeb.app.fireActions(this.actions,false,scrn);};}
windowConfig.buttons=action.buttons;}
var window=new Ext.Window(windowConfig);this.items.add(window);window.on('destroy',this.removeWindow,this);window.on('beforeclose',this.windowClosing,this);var wc=windowConfig;if(wc.modal&&wc.modalEl){window.render(wc.modalEl);};window.show();if(action.params.sizeToFitContent===true){scrn.formAutoScroll=false;window.getEl().hide();window.hide.defer(1,window);scrn.on('loaded',this.sizeToFitContent,this,{single:true,delay:150});parentScreen.getEl().mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');scrn.on('destroy',parentScreen.getEl().unmask,parentScreen.getEl(),{single:true});}
scrn.on('titleset',function(screen,title){this.setTitle(title);},window);if(windowConfig.persistent){var hideWindow=function(){if(this.screen.persistentPopup){this.screen.persistentPopup.hide();}};var closeWindow=function(){this.screen.un('deactivate',hideWindow,this);this.screen.un('loaded',closeWindow,this);this.screen.un('destroy',closeWindow,this);if(this.screen.persistentPopup){this.screen.persistentPopup.destroy();delete this.screen.persistentPopup;}};this.screen.on('deactivate',hideWindow,this);this.screen.on('loaded',closeWindow,this,{single:true});this.screen.on('destroy',closeWindow,this,{single:true});scrn.on('destroy',function(){if(this&&this.screen){this.screen.persistentPopup=null;}},this);this.screen.persistentPopup=scrn;}
return scrn;},getActiveScreen:function(scope,caller){if(!this.activeWindow){return undefined;}
var screen=this.activeWindow.getComponent(0);if(scope=='PARENT'){screen=screen.getParent();}
return screen;},removeWindow:function(window){this.items.remove(window);if(this.items.getCount()==0){delete this.activeWindow;if(this.screen&&this.screen.ownerCt){this.screen.focus();}}},screenDestroying:function(screen){var window=screen.findParentByType('window');window.close();return false;},windowClosing:function(window){if(window.modal&&!this.items.last().modal){return false;}
var screen=window.getComponent(0);if(screen){if(!screen.okToLeave(window.close,window)){return false;}
screen.un('beforedestroy',this.screenDestroying,this);}},screensOkToLeave:function(caller,scope){var screen;for(var i=0;i<this.items.getCount();i++){screen=this.items.get(i);if(!screen.okToLeave(caller,scope)){screen.toFront();return false;}}
return true;},windowActivated:function(window,windowManager){if(this.items&&this.items.contains(window)){this.activeWindow=window;var zind;for(var i=this.items.getCount()-1;i>=0;i--){window=this.items.get(i);if(window.modal){if(zind!=undefined&&(window.mask.getStyle("z-index")>zind)){window.mask.setStyle("z-index",(zind-8));}
break;}else{if((zind==undefined)||(window.lastZIndex<zind)){zind=window.lastZIndex;}}}
var screen=this.getActiveScreen();if(screen){screen.focus();}}},destroy:function(){FigtreeWeb.app.getGMB().un('windowactivated',this.windowActivated,this);},sizeToFitContent:function(screen){screen.un('destroy',screen.getEl().unmask,screen.getEl());var window=screen.findParentByType('window'),firstContainer=screen.form.findByType('container'),windowSize=window.getSize(),screenSize=screen.getSize(),sizeDif={height:windowSize.height-screenSize.height,width:windowSize.width-screenSize.width},fcSize;if(firstContainer.length>0){firstContainer=firstContainer[0];fcSize=firstContainer.getSize();window.setSize(fcSize.width+sizeDif.width,fcSize.height+sizeDif.height);window.center();}
window.show();screen.getParent().getEl().unmask();}});

FigtreeWeb.Manager.Screen.SingleScreen=function(config){if(!config.panel){config.panel=FigtreeWeb.app.getViewport().getPanel('panel-main');if(!config.panel){config.panel=new Ext.Panel({});FigtreeWeb.app.getViewport().add(config.panel);}}
FigtreeWeb.Manager.Screen.SingleScreen.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Manager.Screen.SingleScreen,FigtreeWeb.Manager.Screen,{newScreen:function(){if(this.panel.items&&(this.panel.items.first()!=null)){return this.panel.items.first();}
var screen=new FigtreeWeb.Screen({listeners:{'destroy':{fn:this.screenDestroyed,scope:this}},border:false});screen.closable=true;this.panel.add(screen);this.panel.doLayout();return screen;},getActiveScreen:function(scope,caller,autoCreate){var screen=FigtreeWeb.Manager.Screen.SingleScreen.superclass.getActiveScreen.call(this,caller);if(!screen){if(this.panel.items&&(this.panel.items.first()!=null)){screen=this.panel.items.first();}
if(autoCreate==false&&!screen){return undefined;}else if(autoCreate!=false&&!screen){screen=this.newScreen();}
screen=(screen.getPopup()||screen);}
if(scope=='PARENT'){screen=screen.getParent();}
return screen;},screenDestroyed:function(screen){var action={name:'NAVIGATE',params:FigtreeWeb.app.getStateProvider().get('startscreen',{})};FigtreeWeb.app.fireActions([action],false,this);return false;},screensOkToLeave:function(caller,scope){var screen=this.panel.items.first();if(!screen.okToLeave(caller,scope)){return false;}
return true;}});

FigtreeWeb.Manager.Report=function(config){Ext.apply(this,config);if(this.gmb){var gmb=this.gmb;gmb.on('REPORT',this.actionReport,this);}};FigtreeWeb.Manager.Report.prototype={actionReport:function(action,context,caller){var conn=new FigtreeWeb.Connection({url:'Report'});var reportName;if(caller.actionKey!=undefined){reportName=caller.actionKey;}else{reportName=action.reportName}
var params={file:reportName,mode:action.type};conn.on('complete',this.requestComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.request(params);},connExceptionHandler:function(conn,errorData){FigtreeWeb.app.throwError(errorData);},requestComplete:function(conn,response){window.open(response.path,'_blank','height=250,width=400,menubar=yes,resizable=yes,scrollbars=yes');}};

FigtreeWeb.Screen=function(config){config=config||{};config.items={xtype:'panel',border:false};this.title='';FigtreeWeb.Screen.superclass.constructor.call(this,config);if(!this.isPanel){this.windowManager=config.windowManager||new FigtreeWeb.Manager.Screen.Window({screen:this});}else{var fn=function(){this.windowManager=this.getTop().windowManager;};fn.defer(1,this);}
this.on('activate',this.focus,this);this.on('activate',function(){if(this.form){if(this.form.refreshOnActivate){this.refresh();}else if(this.form.navigateContext){this.form.navigateContext();}}},this);if(this.initialParams){this.on('afterlayout',function(){this.doGet(this.initialParams);},this,{delay:this.initialDelay,single:true});}else if(this.blankText){this.on('afterlayout',function(){this.clear();},this,{single:true,delay:1});}
if(this.autoRefresh&&this.autoRefresh>0){this.on('render',this.initAutoRefresh,this);}
this.addEvents({'titleset':true,'loaded':true,'submitfailure':true,'submitsuccess':true});this.variableCache={};this.history=[];this.historyIndex=-1;}
Ext.extend(FigtreeWeb.Screen,Ext.Panel,{header:false,layout:'fit',getUrl:'ScreenGet',postUrl:'ScreenPost',unlockUrl:'RecordUnlock',title:'',newScreen:true,posting:false,blankText:'',hideMode:'offsets',autoRefreshTaskId:undefined,history:undefined,historyIndex:undefined,dontUpdateHistory:false,callFigAppsRunning:0,navigationDisabled:false,abortOldRequests:false,requestRecall:false,recallListModCOBs:'',initAutoRefresh:function(){var interval=(this.autoRefresh*1000);this.autoRefreshTaskId=setInterval(this.refresh.createDelegate(this),interval);},focus:function(){if(this.ownerCt.isXType('tabpanel')&&(this.ownerCt.getActiveTab()!==this)){return;}
this.doLayout();FigtreeWeb.app.getGMB().fireEvent('screenactivated',this);this.form&&this.form.focusFirstField();},getMode:function(){var bp=this.getBaseParams();return bp.mode||'unknown';},doGet:function(params){if(this.navigationDisabled){return;}
if(this.currentRequest){this.currentRequest.abort();this.currentRequest.destroy();delete this.currentRequest;}
if(!this.form&&this.ownerCt&&this.ownerCt.isXType('tabpanel')){this.setTitle(FigtreeWeb.app.translate('loading')+'...');}
if(!this.okToLeave(this.doGet.createDelegate(this,[params]))){return;}
this.doUnlock();var conn=new FigtreeWeb.Connection({url:this.getUrl,method:'GET'});conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');FigtreeWeb.app.getGMB().fireEvent('screenloading',this);},this);params.keyHistory=FigtreeWeb.app.getKeyHistory(this);if(this.getBaseParams().currentFolderName){params.currentFolderName=this.getBaseParams().currentFolderName;}
var currentParams=Ext.apply({},params);currentParams.temp_extra_params=undefined;if(params.temp_extra_params){params.params+=';temp_extra_params;'+params.temp_extra_params;}
if(this.getBaseParams().menuLeftId){params.killMenuLeftId=this.getBaseParams().menuLeftId;}
var historyParams=Ext.apply({},params);if(this.requestRecall){params.params+=';recall_list;';if(this.recallListModCOBs&&this.recallListModCOBs.length>0){params.params+='recall_mod_cobs='+this.recallListModCOBs+';';}}
var getComplete=this.getComplete.createDelegate(this,[currentParams,historyParams],true);conn.on('complete',getComplete,this);conn.request(params);if(this.abortOldRequests){this.currentRequest=conn;}},updateHistoryArray:function(params){if(this.dontUpdateHistory){return;}
if((this.historyIndex)<(this.history.length-1)){this.history.splice(this.historyIndex+1,(this.history.length-this.historyIndex));}
this.history.push(Ext.apply({},params));this.historyIndex++;},goBack:function(){if(this.historyIndex==0){return false;}
if(!this.okToLeave(this.goBack.createDelegate(this))){return;}
this.historyIndex--;this.dontUpdateHistory=true;this.doGet(this.history[this.historyIndex]);},goForward:function(){if(this.historyIndex==(this.history.length-1)){return false;}
if(!this.okToLeave(this.goForward.createDelegate(this))){return;}
this.historyIndex++;this.dontUpdateHistory=true;this.doGet(this.history[this.historyIndex]);},doPost:function(params){var conn=new FigtreeWeb.Connection({url:this.postUrl,method:'POST'});conn.on('complete',this.postComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);var mode=(params.mode)?params.mode.toUpperCase():"";var maskText;if(mode==='SEARCH'){maskText=FigtreeWeb.app.translate('searching');}else if(mode==='REPORT'){maskText=FigtreeWeb.app.translate('submitting_report');}else if(mode==='DELETE'){maskText=FigtreeWeb.app.translate('deleting_record');}else if(/ADD|UPDATE/.test(mode)){maskText=FigtreeWeb.app.translate('saving');}else{maskText='Submitting';}
conn.on('beforerequest',function(maskText){this.getEl().mask(maskText,'x-mask-loading');}.createDelegate(this,[maskText]),this);var bp=this.getBaseParams();if(bp.temp_extra_params){params.params+=';temp_extra_params;'+bp.temp_extra_params;delete bp.temp_extra_params;}
this.posting=true;conn.request(params);},callFigApp:function(obj){var isRtdInit=obj.token==='getRuntimeDirectives'&&obj.args['arg.initialise']==='true',formShow;if(isRtdInit){formShow=this.form.show;this.form.show=Ext.emptyFn;}
if(obj.token==='getRuntimeDirectives'){if(!obj.maskText){obj.maskText=FigtreeWeb.app.translate('loading')+'...'}
if(obj.suspendEvents!==false){obj.suspendEvents=true;}}
var bp=this.form.baseParams,callTokenRe=/^callFigApp:(.*?);/,args=obj.args||{};if(callTokenRe.test(bp.params)){bp.params=bp.params.replace(RegExp.$1,obj.token);}else{bp.params='callFigApp:'+obj.token+';'+bp.params+';';}
args=Ext.applyIf(args,bp);var conn=new FigtreeWeb.Connection({url:this.postUrl,method:'POST'});var before=function(c,rsp){if(obj.maskText){obj.maskEl=obj.maskEl||this.body;obj.maskEl.mask(obj.maskText,'x-mask-loading');}};var complete=function(c,rsp,cb,cbScope){this.callFigAppsRunning--;if(rsp.actions){if(obj.suspendEvents){this.cascade(function(){this.suspendEvents();});}
FigtreeWeb.app.fireActions(rsp.actions,false,this);if(obj.suspendEvents){this.cascade(function(){this.resumeEvents();});}}
var submitComplete=true;if(rsp.data){var data=FigtreeWeb.app.decodeCallFigAppData(rsp.data);if(data){if(data.validations){this.handleValidations(data.validations);}
submitComplete=(data.submitComplete!==false);}}
this.fireEvent('callfigappcomplete');if(submitComplete&&typeof cb=='function'){cb.call(cbScope||this,rsp);}
if(this.callFigAppsRunning===0){this.fireEvent('allcallfigappcomplete');}
if(isRtdInit){this.form.show=formShow;this.form.show();}
if(obj.maskText){obj.maskEl.unmask();}};complete=complete.createDelegate(this,[obj.callback,obj.callbackScope],true);var error=function(c,error,cb,cbScope){this.callFigAppsRunning--;if(obj.maskText){obj.maskEl.unmask();}
if(isRtdInit){this.form.show=formShow;this.form.show();}
FigtreeWeb.app.throwError(error);if(typeof cb=='function'){cb.call(cbScope||this,error);}
if(this.callFigAppsRunning===0){this.fireEvent('allcallfigappcomplete');}};error=error.createDelegate(this,[obj.failCallback,obj.failCallbackScope],true);conn.on('beforerequest',before,this);conn.on('complete',complete,this);conn.on('exception',error,this);conn.on('netexception',error,this);conn.request(args);bp.params=bp.params.replace(callTokenRe,'');this.callFigAppsRunning++;},connExceptionHandler:function(conn,errorData){delete this.currentRequest;if(this.posting){this.fireEvent('submitfailure',this,this.getBaseParams().mode);}
this.posting=false;var el=this.getEl();if(el){this.getEl().unmask();}
if(!this.checkForValidationErrors(errorData)||(!this.checkForValidationViewer()||(this.form.findBy(function(c){return c.isXType('tabpanel')}).length==0))){FigtreeWeb.app.throwError(errorData);}
if(this.newScreen&&(!this.isCaricaComp()||this.isPopup||(this.ownerCt&&this.ownerCt.isXType('tabpanel')))){this.destroy();}},checkForValidationErrors:function(errorData){var error;var field;var fields;var labels;var actions=[];var valErrors=false;for(var i in errorData.errors){error=errorData.errors[i];if(error.field){fields=error.field.split(',');labels=error.label.split(',');for(var j=0;j<fields.length;j++){field=this.getField(fields[j]);if(field){if(!field.markInvalid){if(FigtreeWeb.app.diagsOn()){FigtreeWeb.app.throwError({headerText:'Warning',errors:[{message:'The field "'+field.name+'" cannot be marked invalid ('+field.getXType()+').'}]});}}else{field.markInvalid(error.message.replace(/\:lf\:/g,'<br><p>'));}}
var action={name:'SET',type:'INFORMATION',infoType:'V',screenId:this.getId(),field:fields[j],msg:error.message,misc:labels[j]}
actions.push(action);valErrors=true;}}}
FigtreeWeb.app.fireActions(actions,false,this);return valErrors;},getComplete:function(conn,response,currentParams,historyParams){var tableRe=/(^|;)table=(.*?)($|;)/i;delete this.currentRequest;if(currentParams.noHistory!==true){this.updateHistoryArray(historyParams);}
this.dontUpdateHistory=false;delete this.nextFormActiveTab;if(this.currentParams){if(this.currentParams.client===currentParams.client&&this.currentParams.module===currentParams.module&&this.cobMatch(this.currentParams,currentParams)&&(tableRe.exec(this.currentParams.params)||[])[2]===(tableRe.exec(currentParams.params)||[])[2]&&((this.currentParams.mode===this.currentParams.mode)||(this.currentParams.key===currentParams.key))){this.nextFormActiveTab=currentParams.currentFolderName;}}
this.currentParams=currentParams;if(this.submitRefreshTarget&&!this.refreshTable){this.refreshTable=tableRe.exec(this.currentParams.params);this.refreshTable={module:this.currentParams.module,cob:this.currentParams.cob,table:(this.refreshTable&&(this.refreshTable.length>2))?this.refreshTable[2]:null};}
if(response.screen){this.genScreen(response.screen);this.setDataChanged.defer(1,this,[false]);}
if(this.currentParams.valAssFields){var flds=this.currentParams.valAssFields.fields;for(var i=0;i<flds.length;i++){fn=flds[i].fieldname;if(fn&&(f=this.getField(fn))&&f.markInvalid){f.markInvalid(this.currentParams.valAssFields.message);}}}
if(response.actions){FigtreeWeb.app.fireActions(response.actions,false,this);}
if(!response.screen){var el=this.getEl();if(el){this.getEl().unmask();}}},postComplete:function(conn,response){var submitComplete=true;if(response.data){var data=FigtreeWeb.app.decodeCallFigAppData(response.data);if(data){if(data.validations){this.handleValidations(data.validations);this.posting=false;this.getEl().unmask();this.fireEvent('submitfailure',this,this.getBaseParams().mode);if(response.actions){FigtreeWeb.app.fireActions(response.actions,false,this);}
return;}
submitComplete=(data.submitComplete!==false);}}
if(submitComplete){this.fireEvent('submitsuccess',this,this.getBaseParams().mode);this.form.fireEvent('aftersubmit',this.form);this.setDataChanged(false);}else{this.fireEvent('submitfailure',this,this.getBaseParams().mode);}
this.getEl().unmask();if(response.actions){FigtreeWeb.app.fireActions(response.actions,false,this);}
this.posting=false;if(submitComplete){FigtreeWeb.app.getGMB().fireEvent('screensubmitted',this);}
if(submitComplete&&this.submitRefreshTarget&&this.refreshTable){var newTable=/(^|;)table=(.*?)($|;)/.exec(this.currentParams.params);newTable=(newTable&&(newTable.length>2))?newTable[2]:null;if(this.refreshTable.table==newTable&&this.refreshTable.module==this.currentParams.module&&this.cobMatch(this.refreshTable,this.currentParams)){this.submitRefreshTarget.refresh();}}},submit:function(){var fn=function(){FigtreeWeb.app.getGMB().fireEvent('screensubmitting',this);this.form.validate();};if(this.callFigAppsRunning>0){this.on('allcallfigappcomplete',fn,this,{single:true});}else{fn.call(this);}},clear:function(blankText){blankText=blankText||this.blankText;while(this.items.first()!=null){this.remove(this.items.first(),true);}
this.form=new Ext.Panel({border:false});this.add(this.form);this.doLayout();var el=this.form.getEl();var balnkTextEl=el.createChild({style:'font-family: tahoma; font-size: 12px; color: #808080',html:blankText});var tm=Ext.util.TextMetrics.createInstance(balnkTextEl);balnkTextEl.setWidth(tm.getWidth(blankText));balnkTextEl.center(el);this.history=[];this.historyIndex=-1;},genScreen:function(screenDef){if(FigtreeWeb.app.diagsOn()){var timing={number:FigtreeWeb.Diagnostics.screenTiming.length,oldScreenName:(this.form)?this.form.name:'~~FIRST SCREEN~~',newScreenName:screenDef.name};var startTime=new Date();}
delete this.form;this.variableCache={};while(this.items.first()!=null){this.remove(this.items.first(),true);}
if(FigtreeWeb.app.diagsOn()){timing.destTime=(new Date())-startTime;}
if(screenDef.baseType){screenDef.cls=(screenDef.cls||'')+' fw-screen';}
screenDef.screen=this;if((this.formAutoScroll===false)||(this.currentParams.noscrolling===true)){screenDef.autoScroll=false;}
this.add(screenDef);this.form=this.items.first();this.form.on('oktopost',this.doPost,this);if(!this.checkForValidationViewer()||(this.form.findBy(function(c){return c.isXType('tabpanel');}).length==0)){this.form.on('notoktopost',function(msg,title){FigtreeWeb.app.throwError({headerText:title,errors:[{message:msg}]});},this);}
this.form.hide();this.doLayout();this.form.on('afterload',function(){if(this.form){this.form.show();if(this.currentParams.selectTab){var selectTab=this.currentParams.selectTab,comp=this.find('wid',selectTab);if(comp.length>0){comp=comp[0];while(comp!==this){if(comp.ownerCt.isXType('tabpanel')){comp.ownerCt.activate(comp);}
comp=comp.ownerCt;}}}
if(Ext.isChrome){var tempEl=this.form.body.createChild({tag:'isisatempel'});tempEl.remove.defer(100,tempEl);}}
if(this.el){this.getEl().unmask();}},this,{delay:100});this.doLayout();if(this.form.historyLabel){this.setTitle(this.formatHistoryLabel());}else if(screenDef.title){this.setTitle(screenDef.title);}else if(screenDef.name||(screenDef.baseParams&&screenDef.baseParams.name)){this.setTitle(screenDef.name||screenDef.baseParams.name);}
if(screenDef.name){this.title=screenDef.name;}
if(screenDef.baseType==='formpanel'&&(this.nextFormActiveTab)){var tabs,tab;tabs=this.findBy(function(c){return(c.initialConfig.title===this.nextFormActiveTab)&&c.ownerCt.isXType('fw-tabpanel');},this);if(tabs.length>0){tab=tabs[0];this.cascade(function(comp){if(comp.ownerCt.isXType('fw-tabpanel')){if(comp===tab){comp.ownerCt.setActiveTab(comp);return false;}
tabs=comp.findBy(function(c){return c===tab;});if(tabs.length>0){comp.ownerCt.setActiveTab(comp);}}});}}
FigtreeWeb.app.getGMB().fireEvent('screenloaded',this);this.fireEvent('loaded',this);this.newScreen=false;if(FigtreeWeb.app.diagsOn()){timing.totTime=(new Date())-startTime;timing.rendTime=timing.totTime-timing.destTime;FigtreeWeb.Diagnostics.screenTiming.push(timing);}},setTitle:function(title){FigtreeWeb.Screen.superclass.setTitle.call(this,title);this.fireEvent('titleset',this,title);},getPopup:function(){return this.windowManager.getActiveScreen();},getWindowManager:function(){return this.windowManager;},getGrid:function(name){var screen=this;if(this.isPanel){screen=this.getTop();}
var fn=function(c){return(this.isXType('fw-grid',true)&&(this.name==name||this.wid==name));}
var grids=screen.form.findBy(fn);if(grids.length==0)return null;return grids[0];},getPanel:function(id){var screen=this;if(this.isPanel){screen=this.getTop();}
var fn=function(c){return((this.isXType('fw-screen',true)||this.isXType('fw-tabbedscreenpanel',true))&&(this.wid==id));}
if(!screen.form){return null;}
var panels=screen.form.findBy(fn);if(panels.length==0)return null;return panels[0];},getTop:function(){var fn=function(c){return(c.isXType&&c.isXType('fw-screen',true)&&(!c.isPanel));}
var screen=this.findParentBy(fn);return screen;},getLaunchingWidget:function(){return this.launchingWidget;},setBaseParams:function(params){if(this.form&&this.form.baseParams){Ext.apply(this.form.baseParams,params);}else if(this.form){this.form.baseParams=params;}
if(this.currentParams){Ext.apply(this.currentParams,params);}},setDataChanged:function(value){if(this.form){this.form.dataChanged=value;}},getDataChanged:function(){var childForms=this.findByType('fw-formpanel');var returnVal=false;var mode;for(var i=0;i<childForms.length;i++){mode=((childForms[i].baseParams||{}).mode||'');returnVal=returnVal||(childForms[i].dataChanged&&/^(update|add)$/i.test(mode));}
return returnVal;},resetDataChanged:function(){this.setDataChanged(false);var childPanels=this.findByType('fw-screen');for(var i=0;i<childPanels.length;i++){childPanels[i].setDataChanged(false);}},okToLeave:function(caller,scope){scope=scope||this;var fields=this.findBy(function(c){return c.hasFocus;});for(var i=0;i<fields.length;i++){if(fields[i].onBlur){fields[i].onBlur();}}
if(this.getDataChanged()){FigtreeWeb.app.confirm(FigtreeWeb.app.translate('information_has_changed'),FigtreeWeb.app.translate('confirm_leave_without_saving'),function(){this.resetDataChanged();caller.call(scope);},function(){},this);return false;}
return true;},getField:function(name){if(!this.form){return null;}
return this.form.getField(name);},getParent:function(){var screen;if(this.isPanel){screen=this.getTop();}else if(this.launchingWidget){screen=this.parent||this.launchingWidget.findParentByType('fw-screen');}else if(this.parent){screen=this.parent;}else{screen=FigtreeWeb.app.getScreenManager().getActiveScreen();}
return screen;},printOld:function(params){params=params||Ext.apply({},this.currentParams);if(params.params){if(params.params.indexOf(";print")==-1){params.params=params.params+";print";}}else{params.params=";print";}
params.keyHistory='';var url='Print?'+Ext.urlEncode(params);window.open(url,'_blank','menubar=yes,resizable=yes,scrollbars=yes');},print:function(container){if(container&&(!container.isXType||!container.isXType('container'))){container=null;}
var mask=this.getEl().mask(FigtreeWeb.app.translate('preparing_print_preview'),'x-mask-loading');var headers;if(this.form.isCaricaComp()){if(!this.checkEverythingLoaded(this.print.createDelegate(this,[container]),this,container)){return;}
var url='PrintCarica?nofilter=true';var printParams=this.getPDFPrintXML(container);}else{var url='Print';var printParams=this.getPrintParams();printParams=Ext.util.JSON.encode(printParams);}
var conn=new FigtreeWeb.Connection({url:url,method:'POST'});conn.on('complete',this.printComplete,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);if(this.form.isCaricaComp()){conn.request({},{xmlData:printParams});}else{conn.request({params:printParams});}},checkEverythingLoaded:function(callback,scope,container){function activateParentTabs(c){var tp=c.findParentByType("fw-tabpanel"),t,p;if(tp){activateParentTabs(tp);t=tp.getActiveTab();p=c.findParentBy(function(container){return container.ownerCt===tp;});if(p){tp.setActiveTab(p);tp.setActiveTab(t);}}}
var everythingLoaded=true;container=container||this;container.cascade(function(c){if(!everythingLoaded){return false;}
if(c.getXType()===undefined){return;}
if(c.isXType('fw-eventcalendar')){return false;}
if(c.ownerCt&&c.ownerCt.isXType('fw-tabpanel')&&(c.printable===false||c.tabHidden===true)){return false;}
if(c.isXType('fw-grid')&&c.loadAfterRender){c.on('reconfiguring',callback,scope,{single:true,delay:1});activateParentTabs(c);everythingLoaded=false;return;}
if(c.isXType('fw-screen')&&c.initialParams&&!c.form){c.on('loaded',callback,scope,{single:true,delay:1});activateParentTabs(c);everythingLoaded=false;return;}
if(c.isXType('fw-servletpanel')&&c.loadAfterRender){c.on('loaded',callback,scope,{single:true,delay:1});activateParentTabs(c);everythingLoaded=false;return;}
if((c.getXType().indexOf('fw-raphael')==0)&&!c.rendered){c.on('render',callback,scope,{single:true,delay:1});activateParentTabs(c);everythingLoaded=false;return;}});return everythingLoaded;},getReturnKey:function(){var returnKey=null,re=/return_key;(.*?)(;|$)/i;if(this.currentParams&&this.currentParams.params){var p=this.currentParams.params;if(re.exec(p)){returnKey=RegExp.$1;}}
return returnKey;},getPDFPrintXML:function(container){if(!this.form&&!container){return null;}
var parent=Ext.getBody().createChild();var col=(container||this.form).createPDFPrintXML(parent);var figAppPDF=document.createElement('FigAppPDF');parent.dom.appendChild(figAppPDF);var doc=document.createElement('pdfdocument');doc.setAttribute('type','pdf');var orientation=((this.form.findByType('fw-grid').length>0)||(this.form.findByType('fw-raphael-chart').length>0)||(this.form.findByType('fw-highcharts-chart').length>0)||(this.form.findByType('fw-panel-questionnaire').length>0))?'landscape':'portrait';doc.setAttribute('orientation',orientation);var title=this.form.title||this.title,returnKey=this.getReturnKey();if(returnKey){title=returnKey+' - '+title;}
doc.setAttribute('header',title);doc.setAttribute('footer',title);doc.setAttribute('margin_left','10');doc.setAttribute('margin_right','10');doc.setAttribute('margin_top','10');doc.setAttribute('margin_bottom','10');figAppPDF.appendChild(doc);var fonts=document.createElement('pdffonts');var pdfFonts=[{id:'label',name:'helvetica',size:'10',styling:'bold'},{id:'data',name:'helvetica',size:'10',styling:'normal'},{id:'folder',name:'helvetica',size:'12',styling:'bold'},{id:'query_description',name:'helvetica',size:'9',styling:'bold italic'},{id:'instruction',name:'helvetica',size:'8',styling:'italic'}];var pdfFont;for(var i=0;i<pdfFonts.length;i++){pdfFont=document.createElement('pdffont');pdfFont.setAttribute('pdffontid',pdfFonts[i].id);pdfFont.setAttribute('name',pdfFonts[i].name);pdfFont.setAttribute('size',pdfFonts[i].size);pdfFont.setAttribute('styling',pdfFonts[i].styling);fonts.appendChild(pdfFont)}
doc.appendChild(fonts);var colours=document.createElement('pdfcolours');var pdfColours=[{id:'white',rgb:'255,255,255'},{id:'grey',rgb:'128,128,128'},{id:'medium_light_grey',rgb:'210,210,210'},{id:'light_grey',rgb:'230,230,230'}];var pdfColour;for(var i=0;i<pdfColours.length;i++){pdfColour=document.createElement('pdfcolour');pdfColour.setAttribute('pdfcolourid',pdfColours[i].id);pdfColour.setAttribute('rgb',pdfColours[i].rgb);colours.appendChild(pdfColour)}
doc.appendChild(colours);var body=document.createElement('pdfbody');doc.appendChild(body);body.appendChild(col.firstChild);parent.dom.removeChild(col);delete col;var pdfXML=parent.dom.innerHTML;pdfXML=pdfXML.replace(/&lt;(b|i|u)&gt;(.*?)&lt;\/(b|i|u)&gt;/gi,function(m,g1,g2,g3){return g2;});pdfXML=pdfXML.replace(/&lt;br(\/)?&gt;/gi,'\n');pdfXML=pdfXML.replace(/pdfcolumn/g,'col').replace(/\<pdf/g,'<').replace(/\<\/pdf/g,'</').replace(/styling/g,'style');pdfXML=pdfXML.replace(/pdffontid=/g,'id=').replace(/pdfcolourid=/g,'id=');pdfXML=pdfXML.replace(/\<cdata\>.*?\<\/cdata\>/gi,function(m){return m.replace(/&lt;/g,'<').replace(/&gt;/g,'>');});pdfXML=pdfXML.replace(/\<cdata\>/ig,'<![CDATA[').replace(/\<\/cdata\>/ig,']]>');parent.remove();return pdfXML;},printComplete:function(conn,response){this.getEl().unmask();if(response.file){window.open(response.file,'_blank','menubar=yes,resizable=yes,scrollbars=yes');}},getPrintParams:function(){var panel={params:{},panels:[],grids:[],images:[]};var form=this.form;var screen=null;Ext.apply(panel.params,this.currentParams);if(form.isMultiPanel){for(var i=0;i<form.items.getCount();i++){screen=form.items.get(i);if(!screen.currentParams){continue;}
panel.panels.push(screen.getPrintParams());}}else{var fn=function(c){if(!c.isXType('fw-image')){return false;}
if(c.findParentByType('fw-screen')!=this){return false;}
if(!c.rendered){return false;}
var tabPanel=c.findParentByType('fw-tabpanel');if(tabPanel){var tab=tabPanel.getActiveTab();if(!tab.findById(c.getId())){return false;}}
if(c.hidden){return false;}
if(c.ownerCt&&c.ownerCt.hidden){return false;}
return true;}
var images=this.findBy(fn,this);var i;for(i=0;i<images.length;i++){var img=images[i];var imgInfo={id:img.wid,filename:img.fileName};if(img.printTitle){imgInfo.printTitle=img.printTitle;}
panel.images.push(imgInfo);}
fn=function(c){if(!c.isXType('fw-grid')){return false;}
if(c.findParentByType('fw-screen')!=this){return false;}
return true;}
var grids=this.findBy(fn,this);var grid;for(i=0;i<grids.length;i++){grid={id:grids[i].id,name:grids[i].name};grid.preferences=grids[i].getPreferences();if(grids[i].currentParams){grid.params=Ext.apply({},grids[i].currentParams);}
panel.grids.push(grid);}}
return panel;},refresh:function(tempExtraParams){var params=Ext.apply({},this.currentParams);if(tempExtraParams){params.temp_extra_params=tempExtraParams;}
this.doGet(params);},beforeDestroy:function(){FigtreeWeb.app.getGMB().fireEvent('screendestroying',this);this.doUnlock();if(this.autoRefreshTaskId){clearInterval(this.autoRefreshTaskId);}
this.variableCache=null;if(!(this.isPanel||this.isPopup)){this.windowManager.destroy();}
FigtreeWeb.Screen.superclass.beforeDestroy.apply(this,arguments);},destroy:function(){if(!this.okToLeave(this.destroy,this)){return;}
FigtreeWeb.Screen.superclass.destroy.apply(this,arguments);},doUnlock:function(){if(this.form&&this.form.baseParams&&this.form.baseParams.mode&&(this.form.baseParams.mode.toUpperCase()=='UPDATE')&&!this.posting){var conn=new FigtreeWeb.Connection({url:this.unlockUrl});conn.request(this.currentParams);}},getBaseParams:function(){if(this.form){return this.form.baseParams||{};}else{return{};}},performFWScript:function(script,caller,context){FigtreeWeb.app.diagLog('fwscript',script);FigtreeWeb.app.diagLog('fwscript','caller: %o, context: %o',caller,context);var screen=this,_screen=screen,_parent=screen.isPopup?screen.getParent():screen.findParentByType('fw-screen');var callingControl=(caller||screen);delete caller;var eventIsContext=(context||false);delete context;var get=function(id){var c=screen.find("wid",id);if(c.length==0){alert('FWScript\n\nInvalid id: '+id);return;}
return c[0];};var getField=function(name){var fld=screen.getField(name);if(fld){return fld;}else{if(/^calc\./i.test(name)){return getField(name.replace('.','_'));}else if(/^calc(-.*?)\./.test(name)){return getField(name.replace(RegExp.$1,'').replace('.','_'));}
alert('FWScript\n\nInvalid field name: '+name);return;}};var getString=function(name){var fld=getField(name);if(fld){return(fld.getValue()!=null)?fld.getValue():'';}};var getNumber=function(name){var fld=getField(name);if(fld){var rx=new RegExp("\\d+");var n=String(fld.getValue()).replace(/,/g,'');return(rx.test(n))?Number(n):0;}};var getBoolean=function(name){var fld=getField(name);if(fld){var b=getField(name).getValue();if((b=='true')||(b=='false')){return b=='true';}else{alert('FWScript\n\nNot a boolean: '+name);return;}}};var showFields=function(flds){if(flds&&flds!=''){var fields=flds.split(',');for(var i=0;i<fields.length;i++){getField(fields[i]).setVisible(true);}}};var hideFields=function(flds){if(flds&&flds!=''){var fields=flds.split(',');for(var i=0;i<fields.length;i++){getField(fields[i]).setVisible(false);}}};var enableFields=function(flds){if(flds&&flds!=''){var fields=flds.split(',');for(var i=0;i<fields.length;i++){getField(fields[i]).setDisabled(false);}}};var disableFields=function(flds){if(flds&&flds!=''){var fields=flds.split(',');for(var i=0;i<fields.length;i++){getField(fields[i]).setDisabled(true);}}};var dateDiff=function(date1,date2,inclusive){var d1=(date1.isXType&&date1.isXType('datefield'))?date1.parseDate(date1.getValue()):date1;var d2=(date2.isXType&&date2.isXType('datefield'))?date2.parseDate(date2.getValue()):date2;if(!Ext.isDate(d1)){d1=Date.parseDate(d1,FigtreeWeb.app.getStateProvider().get('il8n-figweb_date_format'));}
if(!Ext.isDate(d2)){d2=Date.parseDate(d2,FigtreeWeb.app.getStateProvider().get('il8n-figweb_date_format'));}
if(isNaN(d1)||isNaN(d2)){return 0;}else{var diff=d1-d2;diff=Math.round(diff/(24*60*60*1000));return(inclusive)?(diff+1):diff;}};var round=function(num,places){return Math.round(num*Math.pow(10,places))/Math.pow(10,places);};var reEsc=function(s){return RegExp.escape(s);};var contains=function(search,list,delimeter,ignoreCase){var a=list.split(delimeter);search=(ignoreCase)?search.toLowerCase():search;for(var i=0;i<a.length;i++){var s=(ignoreCase)?a[i].toLowerCase():a[i];if(s==search){return true;}}
return false;};var showTab=function(tabId){var tab=get(tabId);if(tab){var tabPanel=tab.findParentByType('fw-tabpanel');tabPanel.unhideTabStripItem(tab);}};var hideTab=function(tabId){var tab=get(tabId);if(tab){var tabPanel=tab.findParentByType('fw-tabpanel');tabPanel.hideTabStripItem(tab);}};var listAdd=function(list,delim,item){if(list==''){return item;}
var l=list.split(delim);l.push(item);return l.join(delim);};var listRemove=function(list,delim,item){var l=list.split(delim);var nl=[];for(var i=0;i<l.length;i++){if(item!=l[i]){nl.push(l[i]);}}
return nl.join(delim);};var downloadFile=function(file){var action={name:'DOWNLOAD',type:'',file:file};FigtreeWeb.app.fireAction(action,false,screen);};var navigate=function(params,paramOverrides){Ext.apply(params.params,paramOverrides);var action={name:'navigate',params:params.params};eventIsContext=eventIsContext||(paramOverrides&&paramOverrides.newTab===true);FigtreeWeb.app.fireAction(action,eventIsContext,screen);};var refresh=function(){var action={name:'refresh',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var print=function(){var action={name:'print',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var submit=function(){var action={name:'submit',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var submitNavigate=function(nextScreenId){var token=';next_screen;';var p=screen.form.baseParams.params;if(p&&p.indexOf(token)==-1){p+=token+nextScreenId;screen.form.baseParams.params=p;}
var action={name:'submit',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var deleteRecord=function(){var yes=function(){this.form.baseParams.mode='delete';var action={name:'submit',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var no=Ext.emptyFn();FigtreeWeb.app.confirm('',FigtreeWeb.app.translate('confirm_delete'),yes,no,screen);};var deleteNavigate=function(nextScreenId){var yes=function(){var token=';next_screen;';var p=this.form.baseParams.params;if(p&&p.indexOf(token)==-1){p+=token+nextScreenId;this.form.baseParams.params=p;}
this.form.baseParams.mode='delete';var action={name:'submit',type:''};FigtreeWeb.app.fireAction(action,false,screen);};var no=Ext.emptyFn();FigtreeWeb.app.confirm('',FigtreeWeb.app.translate('confirm_delete'),yes,no,screen);};var getEl=function(id){return get(id).getEl();};var getDom=function(id){return getEl(id).dom;};var panelRefresh=function(panelId){var action={name:'REFRESH',type:'PANEL',panels:[{id:panelId}]};FigtreeWeb.app.fireAction(action,false,screen);};var panelPrint=function(panelId){var panel=screen.getPanel(panelId);panel.print();};var panelNavigate=function(panelId,params,paramOverrides,lookFromTop){var lookScope=screen;if(typeof lookFromTop=='number'){for(var i=0;i<lookFromTop;i++){lookScope=lookScope.findParentByType('fw-screen')||lookScope;}}else if(lookFromTop===true){lookScope=FigtreeWeb.app.getScreenManager().getActiveScreen();}
Ext.apply(params.params,paramOverrides);var action={name:'NAVIGATE',type:'PANEL',id:panelId,params:params.params};eventIsContext=eventIsContext||(paramOverrides&&paramOverrides.newTab===true);FigtreeWeb.app.fireAction(action,eventIsContext,lookScope);};var panelSubmitNavigate=function(panelId,nextScreenId){var token=';next_screen;';var panel=screen.getPanel(panelId);var p=panel.form.baseParams.params;if(p&&p.indexOf(token)==-1){p+=token+nextScreenId;panel.form.baseParams.params=p;}
panel.submit();};var panelSubmit=function(panelId){var panel=screen.getPanel(panelId);panel.submit();};var gridRefresh=function(gridId){var action={name:'REFRESH',type:'TABLE',tables:[{id:gridId}]};FigtreeWeb.app.fireAction(action,false,screen);};var gridSubmitTo=function(gridName,specificFields){var grid=screen.getGrid(gridName);var fieldValues=screen.form.validate(true,specificFields);if((fieldValues!=null)&&(grid!=null)){grid.navigate(fieldValues,screen.getBaseParams());}};var servletPanelSubmitTo=function(id,specificFields){var sp=screen.find("wid",id);if(sp&&sp.length>0){sp=sp[0];var fieldValues=screen.form.validate(true,specificFields);if(sp.doPost&&(fieldValues!=null)){sp.doPost(fieldValues);}}};var chartSubmitTo=function(id,specificFields){servletPanelSubmitTo(id,specificFields);};var popupNavigate=function(params,size,paramOverrides,windowConfig){Ext.apply(params.params,paramOverrides);var action={name:'NAVIGATE',type:'POPUP',params:params.params,width:size.width,height:size.height,windowConfig:windowConfig};FigtreeWeb.app.fireAction(action,false,screen);};var setVar=function(name,value){screen.variableCache[name]=value;};var getVar=function(name){if(!screen.variableCache[name]){alert("FWScript\n\nVariable '"+name+"' not found.");return;}
return screen.variableCache[name];};var dumpVars=function(){try{console.debug("Variables cached in screen '"+screen.title+"'");for(name in screen.variableCache){console.debug(name+' : '+screen.variableCache[name]);}}catch(e){}};var forward=function(){screen.goForward();};var back=function(){screen.goBack();};var panelForward=function(panelId){var panel=screen.getPanel(panelId);panel.goForward();};var panelBack=function(panelId){var panel=screen.getPanel(panelId);panel.goBack();};var logoff=function(force){FigtreeWeb.app.confirmLogoff(force);};var callFigApp=function(obj){screen.callFigApp(obj);};var setCache=function(key,value){FigtreeWeb.app.setCache(key,value);};var getCache=function(key){return FigtreeWeb.app.getCache(key);};var callFAForEachGridCbx=function(obj){obj.keyDelim=obj.keyDelim||'-';obj.args=obj.args||{};obj.value=(obj.value===undefined)?true:obj.value;var cbs=[];var counter=0;var grid=get(obj.gridId);for(var name in screen.form.fields){if((new RegExp('^'+obj.fieldName+obj.keyDelim)).test(name)&&(screen.form.fields[name].getValue()==obj.value)){cbs.push(screen.form.fields[name]);}}
var failCallback=function(){grid.getEl().unmask();grid.refresh();if(obj.failCallback){obj.failCallback.call(obj.failCallbackScope||this);}};var forEachFn=function(){if(counter>=cbs.length){grid.getEl().unmask();grid.refresh();if(obj.callback){obj.callback.call(obj.callbackScope||this);}
return;}
var cb=cbs[counter];var key=cb.name.split(obj.keyDelim)[1];callFigApp({token:obj.callFAToken,args:Ext.apply({'arg.key':key},obj.args),callback:forEachFn,failCallback:failCallback});counter++;};grid.getEl().mask((obj.maskText||obj.maskMsg),'x-mask-loading');forEachFn();};var backOrDestroy=function(){if(screen.historyIndex===0){screen.destroy();}else{screen.goBack();}};var clear=function(blankText){if(screen.okToLeave(screen.clear.createDelegate(screen,[blankText]),screen)){screen.clear(blankText);}};var backOrClear=function(blankText){if(screen.historyIndex===0){clear(blankText);}else{screen.goBack();}};var cancelAdd=function(blankText){if(screen.isPopup||(screen.ownerCt&&screen.ownerCt.ownerCt&&screen.ownerCt.ownerCt.getXType()=='fw-tabbedscreenpanel')){backOrDestroy();}else{backOrClear(blankText);}};var cancel=cancelAdd;var setRecordInfo=function(ri){screen.setRecordInfo(ri);};var runOn=function(c,f){if(c.rendered){f.call(this,c);}else{c.on('render',f.createDelegate(this,[c]),this);}};var ifExists=function(){var i,c,args=[];if(arguments.length<2){return;}
for(i=0;i<(arguments.length-1);i++){c=screen.find('name',arguments[i]);if(c.length===0){c=screen.find('wid',arguments[i]);}
if(c.length===0){return;}
args.push(c[0]);}
arguments[arguments.length-1].apply(this,args);};eval(script);},getPanelPreferences:function(){var panels=this.findByType('fw-screen');var panel;var preferences='';for(var i=0;i<panels.length;i++){panel=panels[i];preferences+=panel.wid+',';if(panel.region.toLowerCase()=='east'||panel.region.toLowerCase()=='west'){preferences+=((panel.collapsed)?panel.width:panel.getSize().width);}else if(panel.region.toLowerCase()=='north'||panel.region.toLowerCase()=='south'){preferences+=((panel.collapsed)?panel.height:panel.getSize().height);}
preferences+=','+panel.collapsed+'|';}
return preferences;},setSubmitRefreshTarget:function(submitRefreshTarget){this.submitRefreshTarget=submitRefreshTarget;delete this.refreshTable;},checkForValidationViewer:function(){if(FigtreeWeb.app.validationViewer!==undefined){return true;}
if(FigtreeWeb.app.getScreenManager().getActiveScreen().findByType('fw-panel-validation').length>0){return true;}
return false;},formatHistoryLabel:function(){var MAX_LEN=43;var screen=this;var historyLabel=screen.form.historyLabel||screen.currentParams.name;var pattern=/<([^>]*)>/gi;historyLabel=historyLabel.replace(pattern,function(match,key){var field=screen.getField(key);if(field){return field.getValue();}
return screen.form.baseParams[key]||key;});if(historyLabel.length>MAX_LEN){historyLabel=historyLabel.substring(0,(MAX_LEN-3))+"...";}
return historyLabel;},cobMatch:function(params1,params2){return((params1.cob==params2.cob)||(params1.cob==''&&params2.cob==params2.module)||(params2.cob==''&&params1.cob==params1.module));},setNavigationDisabled:function(value){this.navigationDisabled=value;},getState:function(keyPrefix){var state=Ext.apply({},this.currentParams),item,form,fields,field;if(keyPrefix){var stateCpy=Ext.apply({},state);for(item in state){stateCpy[keyPrefix+item]=state[item];delete stateCpy[item];}
state=stateCpy;}
if(this.form){form=this.form;fields=form.fields;for(field in fields){state[keyPrefix+field]=fields[field].actualValue||fields[field].getValue();}
var others=this.findBy(function(c){return/^button|link$/.test(c.baseType);},this);if(others&&others.length>0){Ext.each(others,function(other){state[keyPrefix+other.baseType+'.'+other.wid]='';});}}
return state;},handleValidations:function(validations){var v=validations,fn,links,f;for(var i=0;i<v.length;i++){v[i].screen=this;v[i].message=v[i].message.replace(/:lf:/g,'<br>');links=v[i].links;if(links){for(var j=0;j<links.length;j++){fn=links[j].fieldname;if(fn&&(f=this.getField(fn))&&f.markInvalid){f.markInvalid(v[i].message);}
if(links[j].fieldname===undefined){links[j].fieldname=0;}
if(links[j].params===undefined){links[j].params=0;}}}else{v[i].links=[];}}
FigtreeWeb.app.getGMB().fireEvent('screenvalidations',this,v);},setRecordInfo:function(ri){ri=ri.safeHTML();this.cascade(function(c){var bbar,riEl,td,ieVersion=Ext.getIeVersion();function findRecordInfoEl(){if(!bbar){return null;}
for(var i=0;i<bbar.items.getCount();i++){if(bbar.items.get(i).constructor===Ext.Toolbar.TextItem&&bbar.items.get(i).el.innerHTML==='recordInfo'){return bbar.items.get(i).el;}}
return null;}
function setRiMaxWidth(){var width;width=bbar.el.getWidth(true);for(var i=0;i<bbar.items.getCount();i++){if(bbar.items.get(i).constructor!==Ext.Toolbar.Fill&&bbar.items.get(i).el&&bbar.items.get(i).el!==riEl.dom){if(ieVersion>0&&ieVersion<9){width-=Ext.get(bbar.items.get(i).el).getWidth();}else{width-=Ext.get(bbar.items.get(i).el).parent().getWidth();}}}
width-=riEl.getPadding('rl');riEl.setStyle({'max-width':String(width)+'px'});if(ieVersion>0&&ieVersion<9){riEl.parent().dom.width=String(width)+'px';}}
function doSetRecInfo(alreadyRendered){bbar=this.bottomToolbar;riEl=findRecordInfoEl()
if(riEl!==null){riEl=Ext.get(bbar.items.get(0).el);td=riEl.findParentNode('td',undefined,true);riEl.replaceWith(riEl.parent().createChild({tag:'div',style:{'overflow':'hidden','text-overflow':'ellipsis','white-space':'nowrap'},html:ri,cls:'ytb-text'}));bbar.items.get(0).el=riEl.dom;if(ieVersion>0&&ieVersion<9){riEl.findParentNode('table',undefined,true).setStyle({'table-layout':'fixed'});for(var i=0;i<bbar.items.getCount();i++){if(bbar.items.get(i).constructor===Ext.Toolbar.Fill){Ext.get(bbar.items.get(i).el).parent().setStyle({'width':'0px'});break;}}}
c.on('resize',setRiMaxWidth);if(alreadyRendered===true){setRiMaxWidth();}}}
if(c.bottomToolbar){if(c.rendered){doSetRecInfo.call(c,true);}else{c.on('render',doSetRecInfo,c);}}},this);},iCalendar:function(params){var conn=new FigtreeWeb.Connection({url:'ICalendar',method:'GET'});conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');},this);var ISO8601formatter='Y-m-d\\TH:i:sO';params.startDateTime=params.startDateTime.format(ISO8601formatter);params.endDateTime=params.endDateTime.format(ISO8601formatter);conn.on('complete',function(c,resp){FigtreeWeb.app.downloader.download(resp,this);this.getEl().unmask();},this);conn.request(params);},onHide:function(){var hideEl;FigtreeWeb.Screen.superclass.onHide.apply(this,arguments);if(Ext.isChrome&&this.hideMode==='offsets'&&this.ownerCt&&this.ownerCt.isXType('tabpanel')){hideEl=(this.hideParent)?this.container:this.getActionEl();hideEl.setXY([-100000,-100000]);(function(){hideEl.setStyle({'top':'','left':''})}).defer(100);}},setRequestRecall:function(requestRecall,recallListModCOBs){this.requestRecall=requestRecall;this.recallListModCOBs=recallListModCOBs;}});Ext.reg('fw-screen',FigtreeWeb.Screen);

FigtreeWeb.Widget.Dialog.Error=function(config){Ext.apply(this,config);this.panelHead=new Ext.Panel({baseCls:'x-plain',cls:'fw-dialog-error-header',region:'north',html:this.data.headerText});var errorString='';var error;for(var i=0;i<this.data.errors.length;i++){error=this.data.errors[i];if(error.prompt==="false"){continue;}
errorString+='<p>'+error.message+'</p>';if(error.message&&error.message.match(/.*?session.*?timed.*?out.*?/i)){this.sessionExpired=true;}
if(FigtreeWeb.app.singleSignOn&&error.id&&/^105[0-9]$/.test(error.id)){errorString+='<br><p>(via Single Sign On)';this.closeBrowserOnOk=true;}}
this.panelErrors=new Ext.Panel({region:'center',border:false,bodyStyle:'padding:10px;overflow:auto',html:errorString.replace(/\:lf\:/g,'<br><p>')});var buttons=[{text:this.okButtonText,id:'btnErrorOkRetry',handler:this.ok,scope:this}];if(this.data.allowRetry){buttons=[{text:this.retryButtonText,id:'btnErrorOkRetry',handler:function(){this.data.retryConn.retry();this.close();},scope:this}];}
this.layout='border';this.width=290;this.height=200;this.closable=true;this.resizable=true;this.modal=true;this.bodyStyle={'padding':'5px;'};this.buttons=buttons;this.defaultButton=0;this.items=[this.panelHead,this.panelErrors];FigtreeWeb.Widget.Dialog.Error.superclass.constructor.call(this,config);this.on('show',function(){var l=Ext.get('fw-error-cause-show');if(l){l.on('click',function(){Ext.get('fw-error-cause').dom.style.display='';l.dom.style.display='none';});}
(function(){Ext.getCmp('btnErrorOkRetry').focus();}).defer(100);},this);Ext.EventManager.onWindowResize(this.center,this);};Ext.extend(FigtreeWeb.Widget.Dialog.Error,Ext.Window,{okButtonLabel:'',data:null,ok:function(){if(this.closeBrowserOnOk){top.close();}
if(this.sessionExpired){if(FigtreeWeb.app.singleSignOn){top.close();}else{top.document.body.innerHTML='';top.location='FigWeb.jsp';}}else{this.close();}},destroy:function(){Ext.EventManager.removeResizeListener(this.center,this);FigtreeWeb.Widget.Dialog.Error.superclass.destroy.call(this);}});

FigtreeWeb.Widget.Dialog.Login=function(config){Ext.apply(this,config);this.panelHead=new Ext.Panel({baseCls:'x-plain',html:this.headerText,cls:'fw-dialog-login-header',region:'north'});this.txtUsername=new Ext.form.TextField({xtype:'textfield',id:'username',name:'username',fieldLabel:this.usernameLabel,enableKeyEvents:(this.maxUsernameLength!==null),maxLength:this.maxUsernameLength||Number.MAX_VALUE,allowBlank:false});this.panelForm=new Ext.form.FormPanel({region:'center',border:false,bodyStyle:'padding:10px;',items:[this.txtUsername,{xtype:'textfield',inputType:'password',id:'password',name:'password',fieldLabel:this.passwordLabel,allowBlank:false}]});var buttons=[{text:this.loginButtonText,handler:this.submit,scope:this}];if(this.showForgotPassword){buttons.push({text:FigtreeWeb.app.translate('forgot_password'),handler:this.forgotPassword,scope:this});}
var keys=[{key:[10,13],handler:this.submit,scope:this}];this.layout='border';this.width=(Ext.isLinux&&Ext.isGecko)?320:290;this.height=200;this.closable=false;this.resizable=false;this.modal=true;this.bodyStyle='padding:5px;';this.buttons=buttons;this.keys=keys;this.items=[this.panelHead,this.panelForm];FigtreeWeb.Widget.Dialog.Login.superclass.constructor.call(this,config);this.addEvents({'loginsuccessful':true,'loginexception':true,'loginchangepassword':true});this.txtUsername.on('keyup',function(tf,e){if(tf.getValue().length>tf.maxLength){tf.setValue(tf.getValue().substring(0,tf.maxLength));}},this);Ext.EventManager.onWindowResize(this.reCentre,this);};Ext.extend(FigtreeWeb.Widget.Dialog.Login,Ext.Window,{usernameLabel:'',passwordLabel:'',loginButtonText:'',headerText:'',url:'',method:'',waitTitle:'',waitMsg:'',errorThrown:false,show:function(){FigtreeWeb.Widget.Dialog.Login.superclass.show.call(this);if(this.autoLogon){this.submit();}else{this.panelForm.getForm().findField('username').focus(true,100);}},setMessageText:function(msg){this.panelHead.body.update(msg);},submit:function(){var form=this.panelForm.getForm();var conn=new FigtreeWeb.Connection({url:this.url,method:this.method,waitMsg:this.waitMsg});conn.on('beforerequest',this.loginBefore,this);conn.on('netexception',this.loginException,this);conn.on('exception',this.loginException,this);conn.on('complete',this.loginSuccessful,this);conn.request(form.getValues());},loginBefore:function(conn,params){this.hide();FigtreeWeb.app.getViewport().getEl().mask(this.waitMsg,'x-mask-loading');},loginException:function(conn,errorData){FigtreeWeb.app.getViewport().getEl().unmask();this.fireEvent('loginexception',this,errorData);},loginSuccessful:function(conn,response){FigtreeWeb.app.getViewport().getEl().unmask();this.fireEvent((response.newPasswordRequired)?'loginchangepassword':'loginsuccessful',this,response);},reCentre:function(){this.hide();this.x=undefined;this.y=undefined;this.show();},destroy:function(){Ext.EventManager.removeResizeListener(this.reCentre,this);FigtreeWeb.Widget.Dialog.Login.superclass.destroy.call(this);},forgotPassword:function(){var fp=new FigtreeWeb.Widget.Dialog.ForgotPassword({username:this.txtUsername.getValue(),maxUsernameLength:this.maxUsernameLength,loginDialog:this});this.hide();fp.show();}});

FigtreeWeb.Widget.Dialog.KeySpecify=function(config){Ext.apply(this,config);this.iconRoot='../../../../'+FigtreeWeb.app.getIconPlain('',32);this.panelHead=new Ext.Panel({baseCls:'x-plain',region:'north',cls:'fw-dialog-keyspecify-header',html:this.headerText});Ext.util.CSS.updateRule('.fw-dialog-keyspecify-header','background','transparent url('+this.iconRoot+this.icon+') no-repeat scroll left center');this.panelForm=new Ext.form.FormPanel({region:'center',border:false,bodyStyle:'padding:10px;',items:[{xtype:'textfield',name:'key',fieldLabel:this.keyLabel,allowBlank:false,value:this.key}]});var buttons=[{text:this.openButtonText,handler:this.open,scope:this},{text:this.cancelButtonText,handler:this.cancel,scope:this}];var keys=[{key:[10,13],handler:this.open,scope:this},{key:[27],handler:this.cancel,scope:this}];this.layout='border';this.width=290;this.height=200;this.closable=false;this.resizable=false;this.modal=true;this.bodyStyle='padding:5px;';this.buttons=buttons;this.keys=keys;this.items=[this.panelHead,this.panelForm];FigtreeWeb.Widget.Dialog.KeySpecify.superclass.constructor.call(this,config);};Ext.extend(FigtreeWeb.Widget.Dialog.KeySpecify,Ext.Window,{headerText:'',keyLabel:'',openButtonText:'',newTabButtonText:'',icon:'',key:'',show:function(){FigtreeWeb.Widget.Dialog.KeySpecify.superclass.show.call(this);this.panelForm.getForm().findField('key').focus(true,100);},open:function(){this.action.requiresKey=false;var actions=[this.action];this.actionKey=this.panelForm.getForm().findField('key').getValue();FigtreeWeb.app.fireActions(actions,this.context,this);this.close();},cancel:function(){this.close();}});

FigtreeWeb.Widget.Dialog.ChangePassword=function(config){Ext.apply(this,config);this.panelHead=new Ext.Panel({baseCls:'x-plain',html:this.headerText,cls:'fw-dialog-login-header',region:'north'});this.panelForm=new Ext.form.FormPanel({region:'center',border:false,bodyStyle:'padding:10px;',items:[{xtype:'textfield',id:'username',name:'username',fieldLabel:this.usernameLabel,allowBlank:false,value:this.username},{xtype:'textfield',inputType:'password',id:'password',name:'password',fieldLabel:this.passwordLabel,allowBlank:false},{xtype:'textfield',inputType:'password',id:'new_password',name:'new_password',fieldLabel:this.newPasswordLabel,allowBlank:false},{xtype:'textfield',inputType:'password',id:'new_password_verify',name:'new_password_verify',fieldLabel:this.newPasswordConfirmLabel,allowBlank:false}]});var buttons=[{text:this.changePasswordText,handler:this.submit,scope:this}];var keys=[{key:[10,13],handler:this.submit,scope:this}];this.layout='border';this.width=290;this.height=250;this.closable=false;this.resizable=false;this.modal=true;this.bodyStyle='padding:5px;';this.buttons=buttons;this.keys=keys;this.items=[this.panelHead,this.panelForm];FigtreeWeb.Widget.Dialog.ChangePassword.superclass.constructor.call(this,config);this.addEvents({'loginsuccessful':true,'loginexception':true,'loginchangepassword':true});};Ext.extend(FigtreeWeb.Widget.Dialog.ChangePassword,Ext.Window,{username:'',passwordLabel:'',newPasswordLabel:'',newPasswordConfirmLabel:'',changePasswordText:'',headerText:'',url:'',method:'',waitTitle:'',waitMsg:'',show:function(){FigtreeWeb.Widget.Dialog.ChangePassword.superclass.show.call(this);this.panelForm.getForm().findField('password').focus(true,100);},setMessageText:function(msg){this.panelHead.body.update(msg);},submit:function(){var form=this.panelForm.getForm();if(form.isValid()){var conn=new FigtreeWeb.Connection({url:this.url,method:this.method,waitMsg:this.waitMsg});conn.on('beforerequest',this.loginBefore,this);conn.on('netexception',this.loginException,this);conn.on('exception',this.loginException,this);conn.on('complete',this.loginSuccessful,this);conn.request(form.getValues());}},loginBefore:function(conn,params){this.hide();FigtreeWeb.app.getViewport().getEl().mask(this.waitMsg,'x-mask-loading')},loginException:function(conn,errorData){FigtreeWeb.app.getViewport().getEl().unmask();this.show();this.fireEvent('loginexception',this,errorData);},loginSuccessful:function(conn,response){FigtreeWeb.app.getViewport().getEl().unmask();this.fireEvent((response.newPasswordRequired)?'loginchangepassword':'loginsuccessful',this,response);}});

FigtreeWeb.Widget.Dialog.About=Ext.extend(Ext.Window,{width:300,height:200,resizable:false,modal:true,bodyStyle:'background-color:white;padding:5px;',initComponent:function(){this.title=FigtreeWeb.app.translate('about');var html=['<center>','<img src="images/figtreeweb.gif"><p>','<table style="font-size:11px">','<tr><td>Web version</td><td>'+FigtreeWeb.app.getStateProvider().get('figwebVersion')+'</td></tr>','<tr><td>Figtree version</td><td>'+FigtreeWeb.app.getStateProvider().get('figtreeVersion')+'</td></tr>','<tr><td align="center" colspan=2><br><p><i>'+navigator.userAgent+'</i></td></tr>','</table>','</center>'];this.html=html.join('');this.bbar=['','','','','','','','','','','','','Copyright &copy; Figtree Systems Pty Ltd'];FigtreeWeb.Widget.Dialog.About.superclass.initComponent.apply(this,arguments);}});

FigtreeWeb.Widget.Dialog.Prompt=function(config){if(config.buttons!=undefined){for(var i=0;i<config.buttons.length;i++){if(!config.buttons[i].handler){config.buttons[i].handler=function(button){FigtreeWeb.app.fireActions(button.actions,false,this);this.close();}}else{config.buttons[i].btnHandler=config.buttons[i].handler;config.buttons[i].btnScope=config.buttons[i].scope||this;config.buttons[i].handler=function(button){button.btnHandler.call(button.btnScope);this.close();}}
if(config.buttons[i].focus){delete config.buttons[i].focus;config.defaultButton=i;}
config.buttons[i].scope=this;config.buttons[i].text=config.buttons[i].label;}}
config.items=[{xtype:'panel',layout:'fw-table',layoutConfig:{columns:2},bodyStyle:{'padding':'5px','padding-top':'15px','overflow':'auto'},items:[{xtype:'box',autoEl:{tag:'img',src:FigtreeWeb.app.getIconPlain(config.iconName,config.iconSize),style:{'padding-right':'10px'}},listeners:{'render':{fn:function(cmp){cmp.container.dom.vAlign='top';}}}},{xtype:'box',autoEl:{cls:'x-form-item',tag:'span',html:config.message}}]}];FigtreeWeb.Widget.Dialog.Prompt.superclass.constructor.call(this,config);this.on('show',this.focus,this,{delay:100,single:true});};Ext.extend(FigtreeWeb.Widget.Dialog.Prompt,Ext.Window,{layout:'fit',width:330,height:200,closable:true,resizable:true,modal:true});

FigtreeWeb.Widget.Dialog.ForgotPassword=Ext.extend(Ext.Window,{url:'ForgotPassword',maxUsernameLength:undefined,width:350,height:180,closable:false,resizable:false,modal:true,bodyStyle:'padding: 5px;',layout:'border',username:'',initComponent:function(){var emailRe=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;this.title=FigtreeWeb.app.translate('forgot_password');this.items=[{baseCls:'x-plain',html:FigtreeWeb.app.translate('forgot_password_instructions'),cls:'fw-dialog-login-header',region:'north'},{region:'center',xtype:'form',border:false,bodyStyle:'padding:10px;',defaults:{msgTarget:'side',allowBlank:false,xtype:'textfield',width:180},items:[{name:'username',fieldLabel:FigtreeWeb.app.translate('username'),maxLength:this.maxUsernameLength||Number.MAX_VALUE,value:this.username,listeners:{'render':{fn:function(tb){tb.validate();tb.focus.defer(150,tb);}}}},{name:'email',fieldLabel:FigtreeWeb.app.translate('email'),regex:emailRe,regexText:'Invalid email address'}]}];this.buttons=[{text:FigtreeWeb.app.translate('ok'),handler:this.submit,scope:this},{text:FigtreeWeb.app.translate('cancel'),handler:this.showLoginDialog,scope:this}];this.keys=[{key:[10,13],handler:this.submit,scope:this}];FigtreeWeb.Widget.Dialog.ForgotPassword.superclass.initComponent.apply(this,arguments);},submit:function(){var form=this.findByType('form')[0].getForm();var valid=true;form.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});if(!valid){return;}
var conn=new FigtreeWeb.Connection({url:this.url,method:'POST'});conn.on('beforerequest',function(){FigtreeWeb.app.getViewport().getEl().mask(FigtreeWeb.app.translate('please_wait'),'x-mask-loading');},this);conn.on('netexception',this.connException,this);conn.on('exception',this.connException,this);conn.on('complete',this.connSuccessful,this);conn.request(form.getValues());this.hide();},connException:function(conn,errorData){FigtreeWeb.app.getViewport().getEl().unmask();this.show();FigtreeWeb.app.throwError(errorData);},connSuccessful:function(){FigtreeWeb.app.getViewport().getEl().unmask();Ext.MessageBox.alert(FigtreeWeb.app.translate('forgot_password'),FigtreeWeb.app.translate('forgot_password_email_sent_msg'),this.showLoginDialog,this);},showLoginDialog:function(){this.destroy();this.loginDialog.show();}});

FigtreeWeb.Widget.Dialog.ValidationErrorViewer=Ext.extend(Ext.Window,{width:350,height:150,layout:'fit',closable:true,constrainHeader:true,collapsible:true,initComponent:function(){this.title=FigtreeWeb.app.translate('validation_assistant','Validation Assistant');this.valPanel=new FigtreeWeb.Widget.PanelValidation();this.valPanel.un('loaded',this.valPanel.flash,this.valPanel);this.valPanel.on('cleared',this.hide,this);this.valPanel.on('loaded',this.show,this);this.items=[this.valPanel];FigtreeWeb.Widget.Dialog.ValidationErrorViewer.superclass.initComponent.apply(this,arguments);this.render(Ext.getBody());},close:function(){this.valPanel.clear(true);this.hide();},show:function(valPanel,screen){if(FigtreeWeb.app.getScreenManager().getActiveScreen().findByType('fw-panel-validation').length>0){return;}
FigtreeWeb.Widget.Dialog.ValidationErrorViewer.superclass.show.call(this);var align=screen.form.validationSlideInPos||'tl-tr',alignOffsets=[0,2];if(align.toString().charAt(3)=='b'){alignOffsets[1]=-2;}
this.alignTo(screen.form.getEl(),align,alignOffsets);var shiftx=this.getEl().getX()-this.getEl().getWidth()-2;if(align.toString().charAt(4)=='l'){shiftx=this.getEl().getX()+this.getEl().getWidth()+2;}
this.getEl().shift({x:shiftx,callback:function(){this.doConstrain();this.valPanel.flash();},scope:this});}});Ext.reg('fw-dialog-validation',FigtreeWeb.Widget.Dialog.ValidationErrorViewer);

FigtreeWeb.Widget.Dialog.ValidationAssistant=Ext.extend(Ext.Window,{width:450,height:250,layout:'fit',closable:true,constrainHeader:true,collapsible:true,slideInTarget:null,slideInPos:null,valsId:null,initComponent:function(){this.title=FigtreeWeb.app.translate('validation_assistant','Validation Assistant');var tpl=new Ext.XTemplate('<tpl for=".">','<div class="fw-validation fw-val-{[xindex % 2 === 0 ? "even" : "odd"]}">','<div class="fw-validation-msg">','{message}','<tpl if="id">',' ({id})','</tpl>','</div>','<div class="fw-validation-links">','<tpl for="links">','<tpl if="fieldname">','<div class="fw-validation-link-{[values.noLink ? "no" : ""]}focus" id="{[Ext.id() + "-" + xindex]}">{text}</div>','</tpl>','<tpl if="params">','<div class="fw-validation-link-open" id="{[Ext.id() + "-" + xindex]}">{text}</div>','</tpl>','</tpl>','</div>','</div>','</tpl>');this.view=new Ext.DataView({store:new Ext.data.JsonStore({fields:[{name:'id',type:'string'},{name:'message',type:'string'},{name:'links'},{name:'screen'}],data:[]}),tpl:tpl,singleSelect:true,overClass:'fw-validation-over',selectedClass:'fw-validation-selected',itemSelector:'.fw-validation',listeners:{'render':{fn:function(){this.getEl().setOverflow('auto');}},'click':{fn:this.itemClick,scope:this}},cls:'fw-val-assistant-view'});this.items=[this.view];FigtreeWeb.Widget.Dialog.ValidationAssistant.superclass.initComponent.apply(this,arguments);FigtreeWeb.app.getGMB().on('screenloading',this.onScreenLoading,this);FigtreeWeb.app.getGMB().on('screenfocused',this.onScreenFocused,this);FigtreeWeb.app.getGMB().on('screensubmitting',this.hide,this);FigtreeWeb.app.getGMB().on('screenvalidations',this.loadValidations,this);this.addEvents({'findfield':true,'navigate':true});this.render(Ext.getBody());},close:function(){this.hide();},onScreenFocused:function(screen){if(screen.currentParams&&screen.currentParams.valAssId!==this.valsId){this.hide();}},onScreenLoading:function(screen){if(screen.currentParams&&screen.currentParams.valAssId===this.valsId){this.hide();}},hide:function(){this.view.getStore().loadData([]);this.valsId=null;FigtreeWeb.Widget.Dialog.ValidationAssistant.superclass.hide.apply(this,arguments);},loadValidations:function(screen,validations){this.valsId=Ext.id();screen.currentParams.valAssId=this.valsId;var store=this.view.getStore();store.add(store.reader.readRecords(validations).records);if(this.hidden){this.show(screen);}
return false;},show:function(screen){FigtreeWeb.Widget.Dialog.ValidationAssistant.superclass.show.call(this);var align=this.slideInPos||screen.form.validationSlideInPos||'tl-tr',alignOffsets=[0,2];if(align.toString().charAt(3)=='b'){alignOffsets[1]=-2;}
this.alignTo((this.slideInTarget?this.slideInTarget.getEl():screen.form.getEl()),align,alignOffsets);var shiftx=this.getEl().getX()-this.getEl().getWidth()-2;if(align.toString().charAt(4)=='l'){shiftx=this.getEl().getX()+this.getEl().getWidth()+2;}
this.getEl().shift({x:shiftx,callback:this.doConstrain,scope:this});},itemClick:function(dv,index,node,e){var target=Ext.get(e.getTarget()),r=dv.getStore().getAt(index),screen=r.get('screen'),link,id,i;if(target.hasClass('fw-validation-link-open')){id=target.dom.id;i=Number(id.substr(id.lastIndexOf('-')+1))-1;link=r.get('links')[i];if(link){this.navigate(screen,link.params,link.fields);}}else if(target.hasClass('fw-validation-link-focus')){id=target.dom.id;i=Number(id.substr(id.lastIndexOf('-')+1))-1;link=r.get('links')[i];if(link){this.findField(screen,link.fieldname);}}},navigate:function(screen,params,fields){params.valAssId=this.valsId;if(!this.hasListener('navigate')){var action={name:'navigate',params:params},eventIsContext=true;FigtreeWeb.app.fireAction(action,eventIsContext,screen);}else{this.fireEvent('navigate',screen,params);}},findField:function(screen,field){if(!this.hasListener('findfield')){field=screen.getField(field);if(field&&field.isXType('component')){var tab;while(tab=field.getInactiveParentTab()){tab.ownerCt.setActiveTab(tab);}
field.focus();field[typeof field.getPositionEl==='function'?'getPositionEl':'getEl']().frame('FF0000',1,{duration:.5});}}else{this.fireEvent('findfield',screen,field);}},setSlideInTarget:function(sit){this.slideInTarget=sit;}});Ext.reg('fw-dialog-valassistant',FigtreeWeb.Widget.Dialog.ValidationAssistant);

FigtreeWeb.Widget.Dialog.LocationMap=Ext.extend(Ext.Window,{map:null,oldLat:null,oldLng:null,mode:'',width:800,height:600,modal:true,layout:'fit',cls:'fw-screen',maximizable:true,screen:null,latField:null,lngField:null,formattedAddressField:null,fieldMap:null,zoom:15,zoomAdd:10,center:null,initComponent:function(){this.map=new FigtreeWeb.Widget.GoogleMap.LocationMap();if(typeof this.latField==='string'){this.latField=this.screen.getField(this.latField);}
this.oldLat=this.latField.getValue();if(typeof this.lngField==='string'){this.lngField=this.screen.getField(this.lngField);}
this.oldLng=this.lngField.getValue();if(typeof this.formattedAddressField==='string'){this.formattedAddressField=this.screen.getField(this.formattedAddressField);}
this.mode=this.screen.getBaseParams().mode.toLowerCase();this.on('show',function(){this.map.init({zoom:this.zoom,center:this.center,readOnly:(this.mode==='view')});if(this.latField.getValue()!=''&&this.lngField.getValue()!=''){this.map.setLocation({lat:this.latField.getValue(),lng:this.lngField.getValue()});}else{this.map.setZoom(this.zoomAdd);}},this,{single:true});this.map.on('locationselected',this.onMapLocationSet,this);this.items=[this.map];this.bbar=["->",{xtype:'fw-button',cls:'carica-button-primary',text:'Ok',listeners:{'click':{fn:this.commit,scope:this}}},{xtype:'fw-button',cls:'carica-button-secondary',text:'Cancel',visible:(this.mode!=='view'),listeners:{'click':{fn:this.cancel,scope:this}}}];if(this.formattedAddressField){this.bbar.unshift("...");}
FigtreeWeb.Widget.Dialog.LocationMap.superclass.initComponent.apply(this,arguments);},onMapLocationSet:function(latlng,addressComponents,geocoderResults){this.address=addressComponents;if(this.formattedAddressField&&addressComponents['formatted_address']&&addressComponents['formatted_address'].length)
this.bottomToolbar.items.get(0).el.innerHTML=addressComponents['formatted_address'][0].long_name;},commit:function(){if(this.mode=='update'||this.mode=='add'){var fieldMap=Ext.apply({lat:this.latField,lng:this.lngField,formatted_address:this.formattedAddressField},this.fieldMap);for(var key in fieldMap){if(this.address[key]&&this.address[key].length){fieldMap[key].setValue(this.address[key][0].long_name);}else{fieldMap[key].setValue('');}}}
this.close();},cancel:function(){this.close();}});

(function(){function R(){if(R.is(arguments[0],array)){var a=arguments[0],cnv=create[apply](R,a.splice(0,3+R.is(a[0],nu))),res=cnv.set();for(var i=0,ii=a[length];i<ii;i++){var j=a[i]||{};elements[has](j.type)&&res[push](cnv[j.type]().attr(j));}
return res;}
return create[apply](R,arguments);}
R.version="1.5.2";var separator=/[, ]+/,elements={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},formatrg=/\{(\d+)\}/g,proto="prototype",has="hasOwnProperty",doc=document,win=window,oldRaphael={was:Object[proto][has].call(win,"Raphael"),is:win.Raphael},Paper=function(){this.customAttributes={};},paperproto,appendChild="appendChild",apply="apply",concat="concat",supportsTouch="createTouch"in doc,E="",S=" ",Str=String,split="split",events="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[split](S),touchMap={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},join="join",length="length",lowerCase=Str[proto].toLowerCase,math=Math,mmax=math.max,mmin=math.min,abs=math.abs,pow=math.pow,PI=math.PI,nu="number",string="string",array="array",toString="toString",fillString="fill",objectToString=Object[proto][toString],paper={},push="push",ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,colourRegExp=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,isnan={"NaN":1,"Infinity":1,"-Infinity":1},bezierrg=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,round=math.round,setAttribute="setAttribute",toFloat=parseFloat,toInt=parseInt,ms=" progid:DXImageTransform.Microsoft",upperCase=Str[proto].toUpperCase,availableAttrs={blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},availableAnimAttrs={along:"along",blur:nu,"clip-rect":"csv",cx:nu,cy:nu,fill:"colour","fill-opacity":nu,"font-size":nu,height:nu,opacity:nu,path:"path",r:nu,rotation:"csv",rx:nu,ry:nu,scale:"csv",stroke:"colour","stroke-opacity":nu,"stroke-width":nu,translation:"csv",width:nu,x:nu,y:nu},rp="replace",animKeyFrames=/^(from|to|\d+%?)$/,commaSpaces=/\s*,\s*/,hsrg={hs:1,rg:1},p2s=/,?([achlmqrstvxz]),?/gi,pathCommand=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,pathValues=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,radial_gradient=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,sortByKey=function(a,b){return a.key-b.key;};R.type=(win.SVGAngle||doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");if(R.type=="VML"){var d=doc.createElement("div"),b;d.innerHTML='<v:shape adj="1"/>';b=d.firstChild;b.style.behavior="url(#default#VML)";if(!(b&&typeof b.adj=="object")){return R.type=null;}
d=null;}
R.svg=!(R.vml=R.type=="VML");Paper[proto]=R[proto];paperproto=Paper[proto];R._id=0;R._oid=0;R.fn={};R.is=function(o,type){type=lowerCase.call(type);if(type=="finite"){return!isnan[has](+o);}
return(type=="null"&&o===null)||(type==typeof o)||(type=="object"&&o===Object(o))||(type=="array"&&Array.isArray&&Array.isArray(o))||objectToString.call(o).slice(8,-1).toLowerCase()==type;};R.angle=function(x1,y1,x2,y2,x3,y3){if(x3==null){var x=x1-x2,y=y1-y2;if(!x&&!y){return 0;}
return((x<0)*180+math.atan(-y/-x)*180/PI+360)%360;}else{return R.angle(x1,y1,x3,y3)-R.angle(x2,y2,x3,y3);}};R.rad=function(deg){return deg%360*PI/180;};R.deg=function(rad){return rad*180/PI%360;};R.snapTo=function(values,value,tolerance){tolerance=R.is(tolerance,"finite")?tolerance:10;if(R.is(values,array)){var i=values.length;while(i--)if(abs(values[i]-value)<=tolerance){return values[i];}}else{values=+values;var rem=value%values;if(rem<tolerance){return value-rem;}
if(rem>values-tolerance){return value-rem+values;}}
return value;};function createUUID(){var s=[],i=0;for(;i<32;i++){s[i]=(~~(math.random()*16))[toString](16);}
s[12]=4;s[16]=((s[16]&3)|8)[toString](16);return"r-"+s[join]("");}
R.setWindow=function(newwin){win=newwin;doc=win.document;};var toHex=function(color){if(R.vml){var trim=/^\s+|\s+$/g;var bod;try{var docum=new ActiveXObject("htmlfile");docum.write("<body>");docum.close();bod=docum.body;}catch(e){bod=createPopup().document.body;}
var range=bod.createTextRange();toHex=cacher(function(color){try{bod.style.color=Str(color)[rp](trim,E);var value=range.queryCommandValue("ForeColor");value=((value&255)<<16)|(value&65280)|((value&16711680)>>>16);return"#"+("000000"+value[toString](16)).slice(-6);}catch(e){return"none";}});}else{var i=doc.createElement("i");i.title="Rapha\xebl Colour Picker";i.style.display="none";doc.body[appendChild](i);toHex=cacher(function(color){i.style.color=color;return doc.defaultView.getComputedStyle(i,E).getPropertyValue("color");});}
return toHex(color);},hsbtoString=function(){return"hsb("+[this.h,this.s,this.b]+")";},hsltoString=function(){return"hsl("+[this.h,this.s,this.l]+")";},rgbtoString=function(){return this.hex;};R.hsb2rgb=function(h,s,b,o){if(R.is(h,"object")&&"h"in h&&"s"in h&&"b"in h){b=h.b;s=h.s;h=h.h;o=h.o;}
return R.hsl2rgb(h,s,b/2,o);};R.hsl2rgb=function(h,s,l,o){if(R.is(h,"object")&&"h"in h&&"s"in h&&"l"in h){l=h.l;s=h.s;h=h.h;}
if(h>1||s>1||l>1){h/=360;s/=100;l/=100;}
var rgb={},channels=["r","g","b"],t2,t1,t3,r,g,b;if(!s){rgb={r:l,g:l,b:l};}else{if(l<.5){t2=l*(1+s);}else{t2=l+s-l*s;}
t1=2*l-t2;for(var i=0;i<3;i++){t3=h+1/3*-(i-1);t3<0&&t3++;t3>1&&t3--;if(t3*6<1){rgb[channels[i]]=t1+(t2-t1)*6*t3;}else if(t3*2<1){rgb[channels[i]]=t2;}else if(t3*3<2){rgb[channels[i]]=t1+(t2-t1)*(2/3-t3)*6;}else{rgb[channels[i]]=t1;}}}
rgb.r*=255;rgb.g*=255;rgb.b*=255;rgb.hex="#"+(16777216|rgb.b|(rgb.g<<8)|(rgb.r<<16)).toString(16).slice(1);R.is(o,"finite")&&(rgb.opacity=o);rgb.toString=rgbtoString;return rgb;};R.rgb2hsb=function(red,green,blue){if(green==null&&R.is(red,"object")&&"r"in red&&"g"in red&&"b"in red){blue=red.b;green=red.g;red=red.r;}
if(green==null&&R.is(red,string)){var clr=R.getRGB(red);red=clr.r;green=clr.g;blue=clr.b;}
if(red>1||green>1||blue>1){red/=255;green/=255;blue/=255;}
var max=mmax(red,green,blue),min=mmin(red,green,blue),hue,saturation,brightness=max;if(min==max){return{h:0,s:0,b:max,toString:hsbtoString};}else{var delta=(max-min);saturation=delta/max;if(red==max){hue=(green-blue)/delta;}else if(green==max){hue=2+((blue-red)/delta);}else{hue=4+((red-green)/delta);}
hue/=6;hue<0&&hue++;hue>1&&hue--;}
return{h:hue,s:saturation,b:brightness,toString:hsbtoString};};R.rgb2hsl=function(red,green,blue){if(green==null&&R.is(red,"object")&&"r"in red&&"g"in red&&"b"in red){blue=red.b;green=red.g;red=red.r;}
if(green==null&&R.is(red,string)){var clr=R.getRGB(red);red=clr.r;green=clr.g;blue=clr.b;}
if(red>1||green>1||blue>1){red/=255;green/=255;blue/=255;}
var max=mmax(red,green,blue),min=mmin(red,green,blue),h,s,l=(max+min)/2,hsl;if(min==max){hsl={h:0,s:0,l:l};}else{var delta=max-min;s=l<.5?delta/(max+min):delta/(2-max-min);if(red==max){h=(green-blue)/delta;}else if(green==max){h=2+(blue-red)/delta;}else{h=4+(red-green)/delta;}
h/=6;h<0&&h++;h>1&&h--;hsl={h:h,s:s,l:l};}
hsl.toString=hsltoString;return hsl;};R._path2string=function(){return this.join(",")[rp](p2s,"$1");};function cacher(f,scope,postprocessor){function newf(){var arg=Array[proto].slice.call(arguments,0),args=arg[join]("\u25ba"),cache=newf.cache=newf.cache||{},count=newf.count=newf.count||[];if(cache[has](args)){return postprocessor?postprocessor(cache[args]):cache[args];}
count[length]>=1e3&&delete cache[count.shift()];count[push](args);cache[args]=f[apply](scope,arg);return postprocessor?postprocessor(cache[args]):cache[args];}
return newf;}
R.getRGB=cacher(function(colour){if(!colour||!!((colour=Str(colour)).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1};}
if(colour=="none"){return{r:-1,g:-1,b:-1,hex:"none"};}!(hsrg[has](colour.toLowerCase().substring(0,2))||colour.charAt()=="#")&&(colour=toHex(colour));var res,red,green,blue,opacity,t,values,rgb=colour.match(colourRegExp);if(rgb){if(rgb[2]){blue=toInt(rgb[2].substring(5),16);green=toInt(rgb[2].substring(3,5),16);red=toInt(rgb[2].substring(1,3),16);}
if(rgb[3]){blue=toInt((t=rgb[3].charAt(3))+t,16);green=toInt((t=rgb[3].charAt(2))+t,16);red=toInt((t=rgb[3].charAt(1))+t,16);}
if(rgb[4]){values=rgb[4][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);rgb[1].toLowerCase().slice(0,4)=="rgba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);}
if(rgb[5]){values=rgb[5][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return R.hsb2rgb(red,green,blue,opacity);}
if(rgb[6]){values=rgb[6][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsla"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return R.hsl2rgb(red,green,blue,opacity);}
rgb={r:red,g:green,b:blue};rgb.hex="#"+(16777216|blue|(green<<8)|(red<<16)).toString(16).slice(1);R.is(opacity,"finite")&&(rgb.opacity=opacity);return rgb;}
return{r:-1,g:-1,b:-1,hex:"none",error:1};},R);R.getColor=function(value){var start=this.getColor.start=this.getColor.start||{h:0,s:1,b:value||.75},rgb=this.hsb2rgb(start.h,start.s,start.b);start.h+=.075;if(start.h>1){start.h=0;start.s-=.2;start.s<=0&&(this.getColor.start={h:0,s:1,b:start.b});}
return rgb.hex;};R.getColor.reset=function(){delete this.start;};R.parsePathString=cacher(function(pathString){if(!pathString){return null;}
var paramCounts={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},data=[];if(R.is(pathString,array)&&R.is(pathString[0],array)){data=pathClone(pathString);}
if(!data[length]){Str(pathString)[rp](pathCommand,function(a,b,c){var params=[],name=lowerCase.call(b);c[rp](pathValues,function(a,b){b&&params[push](+b);});if(name=="m"&&params[length]>2){data[push]([b][concat](params.splice(0,2)));name="l";b=b=="m"?"l":"L";}
while(params[length]>=paramCounts[name]){data[push]([b][concat](params.splice(0,paramCounts[name])));if(!paramCounts[name]){break;}}});}
data[toString]=R._path2string;return data;});R.findDotsAtSegment=function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t){var t1=1-t,x=pow(t1,3)*p1x+pow(t1,2)*3*t*c1x+t1*3*t*t*c2x+pow(t,3)*p2x,y=pow(t1,3)*p1y+pow(t1,2)*3*t*c1y+t1*3*t*t*c2y+pow(t,3)*p2y,mx=p1x+2*t*(c1x-p1x)+t*t*(c2x-2*c1x+p1x),my=p1y+2*t*(c1y-p1y)+t*t*(c2y-2*c1y+p1y),nx=c1x+2*t*(c2x-c1x)+t*t*(p2x-2*c2x+c1x),ny=c1y+2*t*(c2y-c1y)+t*t*(p2y-2*c2y+c1y),ax=(1-t)*p1x+t*c1x,ay=(1-t)*p1y+t*c1y,cx=(1-t)*c2x+t*p2x,cy=(1-t)*c2y+t*p2y,alpha=(90-math.atan((mx-nx)/(my-ny))*180/PI);(mx>nx||my<ny)&&(alpha+=180);return{x:x,y:y,m:{x:mx,y:my},n:{x:nx,y:ny},start:{x:ax,y:ay},end:{x:cx,y:cy},alpha:alpha};};var pathDimensions=cacher(function(path){if(!path){return{x:0,y:0,width:0,height:0};}
path=path2curve(path);var x=0,y=0,X=[],Y=[],p;for(var i=0,ii=path[length];i<ii;i++){p=path[i];if(p[0]=="M"){x=p[1];y=p[2];X[push](x);Y[push](y);}else{var dim=curveDim(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);X=X[concat](dim.min.x,dim.max.x);Y=Y[concat](dim.min.y,dim.max.y);x=p[5];y=p[6];}}
var xmin=mmin[apply](0,X),ymin=mmin[apply](0,Y);return{x:xmin,y:ymin,width:mmax[apply](0,X)-xmin,height:mmax[apply](0,Y)-ymin};}),pathClone=function(pathArray){var res=[];if(!R.is(pathArray,array)||!R.is(pathArray&&pathArray[0],array)){pathArray=R.parsePathString(pathArray);}
for(var i=0,ii=pathArray[length];i<ii;i++){res[i]=[];for(var j=0,jj=pathArray[i][length];j<jj;j++){res[i][j]=pathArray[i][j];}}
res[toString]=R._path2string;return res;},pathToRelative=cacher(function(pathArray){if(!R.is(pathArray,array)||!R.is(pathArray&&pathArray[0],array)){pathArray=R.parsePathString(pathArray);}
var res=[],x=0,y=0,mx=0,my=0,start=0;if(pathArray[0][0]=="M"){x=pathArray[0][1];y=pathArray[0][2];mx=x;my=y;start++;res[push](["M",x,y]);}
for(var i=start,ii=pathArray[length];i<ii;i++){var r=res[i]=[],pa=pathArray[i];if(pa[0]!=lowerCase.call(pa[0])){r[0]=lowerCase.call(pa[0]);switch(r[0]){case"a":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]-x).toFixed(3);r[7]=+(pa[7]-y).toFixed(3);break;case"v":r[1]=+(pa[1]-y).toFixed(3);break;case"m":mx=pa[1];my=pa[2];default:for(var j=1,jj=pa[length];j<jj;j++){r[j]=+(pa[j]-((j%2)?x:y)).toFixed(3);}}}else{r=res[i]=[];if(pa[0]=="m"){mx=pa[1]+x;my=pa[2]+y;}
for(var k=0,kk=pa[length];k<kk;k++){res[i][k]=pa[k];}}
var len=res[i][length];switch(res[i][0]){case"z":x=mx;y=my;break;case"h":x+=+res[i][len-1];break;case"v":y+=+res[i][len-1];break;default:x+=+res[i][len-2];y+=+res[i][len-1];}}
res[toString]=R._path2string;return res;},0,pathClone),pathToAbsolute=cacher(function(pathArray){if(!R.is(pathArray,array)||!R.is(pathArray&&pathArray[0],array)){pathArray=R.parsePathString(pathArray);}
var res=[],x=0,y=0,mx=0,my=0,start=0;if(pathArray[0][0]=="M"){x=+pathArray[0][1];y=+pathArray[0][2];mx=x;my=y;start++;res[0]=["M",x,y];}
for(var i=start,ii=pathArray[length];i<ii;i++){var r=res[i]=[],pa=pathArray[i];if(pa[0]!=upperCase.call(pa[0])){r[0]=upperCase.call(pa[0]);switch(r[0]){case"A":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]+x);r[7]=+(pa[7]+y);break;case"V":r[1]=+pa[1]+y;break;case"H":r[1]=+pa[1]+x;break;case"M":mx=+pa[1]+x;my=+pa[2]+y;default:for(var j=1,jj=pa[length];j<jj;j++){r[j]=+pa[j]+((j%2)?x:y);}}}else{for(var k=0,kk=pa[length];k<kk;k++){res[i][k]=pa[k];}}
switch(r[0]){case"Z":x=mx;y=my;break;case"H":x=r[1];break;case"V":y=r[1];break;case"M":mx=res[i][res[i][length]-2];my=res[i][res[i][length]-1];default:x=res[i][res[i][length]-2];y=res[i][res[i][length]-1];}}
res[toString]=R._path2string;return res;},null,pathClone),l2c=function(x1,y1,x2,y2){return[x1,y1,x2,y2,x2,y2];},q2c=function(x1,y1,ax,ay,x2,y2){var _13=1/3,_23=2/3;return[_13*x1+_23*ax,_13*y1+_23*ay,_13*x2+_23*ax,_13*y2+_23*ay,x2,y2];},a2c=function(x1,y1,rx,ry,angle,large_arc_flag,sweep_flag,x2,y2,recursive){var _120=PI*120/180,rad=PI/180*(+angle||0),res=[],xy,rotate=cacher(function(x,y,rad){var X=x*math.cos(rad)-y*math.sin(rad),Y=x*math.sin(rad)+y*math.cos(rad);return{x:X,y:Y};});if(!recursive){xy=rotate(x1,y1,-rad);x1=xy.x;y1=xy.y;xy=rotate(x2,y2,-rad);x2=xy.x;y2=xy.y;var cos=math.cos(PI/180*angle),sin=math.sin(PI/180*angle),x=(x1-x2)/2,y=(y1-y2)/2;var h=(x*x)/(rx*rx)+(y*y)/(ry*ry);if(h>1){h=math.sqrt(h);rx=h*rx;ry=h*ry;}
var rx2=rx*rx,ry2=ry*ry,k=(large_arc_flag==sweep_flag?-1:1)*math.sqrt(abs((rx2*ry2-rx2*y*y-ry2*x*x)/(rx2*y*y+ry2*x*x))),cx=k*rx*y/ry+(x1+x2)/2,cy=k*-ry*x/rx+(y1+y2)/2,f1=math.asin(((y1-cy)/ry).toFixed(9)),f2=math.asin(((y2-cy)/ry).toFixed(9));f1=x1<cx?PI-f1:f1;f2=x2<cx?PI-f2:f2;f1<0&&(f1=PI*2+f1);f2<0&&(f2=PI*2+f2);if(sweep_flag&&f1>f2){f1=f1-PI*2;}
if(!sweep_flag&&f2>f1){f2=f2-PI*2;}}else{f1=recursive[0];f2=recursive[1];cx=recursive[2];cy=recursive[3];}
var df=f2-f1;if(abs(df)>_120){var f2old=f2,x2old=x2,y2old=y2;f2=f1+_120*(sweep_flag&&f2>f1?1:-1);x2=cx+rx*math.cos(f2);y2=cy+ry*math.sin(f2);res=a2c(x2,y2,rx,ry,angle,0,sweep_flag,x2old,y2old,[f2,f2old,cx,cy]);}
df=f2-f1;var c1=math.cos(f1),s1=math.sin(f1),c2=math.cos(f2),s2=math.sin(f2),t=math.tan(df/4),hx=4/3*rx*t,hy=4/3*ry*t,m1=[x1,y1],m2=[x1+hx*s1,y1-hy*c1],m3=[x2+hx*s2,y2-hy*c2],m4=[x2,y2];m2[0]=2*m1[0]-m2[0];m2[1]=2*m1[1]-m2[1];if(recursive){return[m2,m3,m4][concat](res);}else{res=[m2,m3,m4][concat](res)[join]()[split](",");var newres=[];for(var i=0,ii=res[length];i<ii;i++){newres[i]=i%2?rotate(res[i-1],res[i],rad).y:rotate(res[i],res[i+1],rad).x;}
return newres;}},findDotAtSegment=function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t){var t1=1-t;return{x:pow(t1,3)*p1x+pow(t1,2)*3*t*c1x+t1*3*t*t*c2x+pow(t,3)*p2x,y:pow(t1,3)*p1y+pow(t1,2)*3*t*c1y+t1*3*t*t*c2y+pow(t,3)*p2y};},curveDim=cacher(function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y){var a=(c2x-2*c1x+p1x)-(p2x-2*c2x+c1x),b=2*(c1x-p1x)-2*(c2x-c1x),c=p1x-c1x,t1=(-b+math.sqrt(b*b-4*a*c))/2/a,t2=(-b-math.sqrt(b*b-4*a*c))/2/a,y=[p1y,p2y],x=[p1x,p2x],dot;abs(t1)>"1e12"&&(t1=.5);abs(t2)>"1e12"&&(t2=.5);if(t1>0&&t1<1){dot=findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t1);x[push](dot.x);y[push](dot.y);}
if(t2>0&&t2<1){dot=findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t2);x[push](dot.x);y[push](dot.y);}
a=(c2y-2*c1y+p1y)-(p2y-2*c2y+c1y);b=2*(c1y-p1y)-2*(c2y-c1y);c=p1y-c1y;t1=(-b+math.sqrt(b*b-4*a*c))/2/a;t2=(-b-math.sqrt(b*b-4*a*c))/2/a;abs(t1)>"1e12"&&(t1=.5);abs(t2)>"1e12"&&(t2=.5);if(t1>0&&t1<1){dot=findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t1);x[push](dot.x);y[push](dot.y);}
if(t2>0&&t2<1){dot=findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t2);x[push](dot.x);y[push](dot.y);}
return{min:{x:mmin[apply](0,x),y:mmin[apply](0,y)},max:{x:mmax[apply](0,x),y:mmax[apply](0,y)}};}),path2curve=cacher(function(path,path2){var p=pathToAbsolute(path),p2=path2&&pathToAbsolute(path2),attrs={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},attrs2={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},processPath=function(path,d){var nx,ny;if(!path){return["C",d.x,d.y,d.x,d.y,d.x,d.y];}!(path[0]in{T:1,Q:1})&&(d.qx=d.qy=null);switch(path[0]){case"M":d.X=path[1];d.Y=path[2];break;case"A":path=["C"][concat](a2c[apply](0,[d.x,d.y][concat](path.slice(1))));break;case"S":nx=d.x+(d.x-(d.bx||d.x));ny=d.y+(d.y-(d.by||d.y));path=["C",nx,ny][concat](path.slice(1));break;case"T":d.qx=d.x+(d.x-(d.qx||d.x));d.qy=d.y+(d.y-(d.qy||d.y));path=["C"][concat](q2c(d.x,d.y,d.qx,d.qy,path[1],path[2]));break;case"Q":d.qx=path[1];d.qy=path[2];path=["C"][concat](q2c(d.x,d.y,path[1],path[2],path[3],path[4]));break;case"L":path=["C"][concat](l2c(d.x,d.y,path[1],path[2]));break;case"H":path=["C"][concat](l2c(d.x,d.y,path[1],d.y));break;case"V":path=["C"][concat](l2c(d.x,d.y,d.x,path[1]));break;case"Z":path=["C"][concat](l2c(d.x,d.y,d.X,d.Y));break;}
return path;},fixArc=function(pp,i){if(pp[i][length]>7){pp[i].shift();var pi=pp[i];while(pi[length]){pp.splice(i++,0,["C"][concat](pi.splice(0,6)));}
pp.splice(i,1);ii=mmax(p[length],p2&&p2[length]||0);}},fixM=function(path1,path2,a1,a2,i){if(path1&&path2&&path1[i][0]=="M"&&path2[i][0]!="M"){path2.splice(i,0,["M",a2.x,a2.y]);a1.bx=0;a1.by=0;a1.x=path1[i][1];a1.y=path1[i][2];ii=mmax(p[length],p2&&p2[length]||0);}};for(var i=0,ii=mmax(p[length],p2&&p2[length]||0);i<ii;i++){p[i]=processPath(p[i],attrs);fixArc(p,i);p2&&(p2[i]=processPath(p2[i],attrs2));p2&&fixArc(p2,i);fixM(p,p2,attrs,attrs2,i);fixM(p2,p,attrs2,attrs,i);var seg=p[i],seg2=p2&&p2[i],seglen=seg[length],seg2len=p2&&seg2[length];attrs.x=seg[seglen-2];attrs.y=seg[seglen-1];attrs.bx=toFloat(seg[seglen-4])||attrs.x;attrs.by=toFloat(seg[seglen-3])||attrs.y;attrs2.bx=p2&&(toFloat(seg2[seg2len-4])||attrs2.x);attrs2.by=p2&&(toFloat(seg2[seg2len-3])||attrs2.y);attrs2.x=p2&&seg2[seg2len-2];attrs2.y=p2&&seg2[seg2len-1];}
return p2?[p,p2]:p;},null,pathClone),parseDots=cacher(function(gradient){var dots=[];for(var i=0,ii=gradient[length];i<ii;i++){var dot={},par=gradient[i].match(/^([^:]*):?([\d\.]*)/);dot.color=R.getRGB(par[1]);if(dot.color.error){return null;}
dot.color=dot.color.hex;par[2]&&(dot.offset=par[2]+"%");dots[push](dot);}
for(i=1,ii=dots[length]-1;i<ii;i++){if(!dots[i].offset){var start=toFloat(dots[i-1].offset||0),end=0;for(var j=i+1;j<ii;j++){if(dots[j].offset){end=dots[j].offset;break;}}
if(!end){end=100;j=ii;}
end=toFloat(end);var d=(end-start)/(j-i+1);for(;i<j;i++){start+=d;dots[i].offset=start+"%";}}}
return dots;}),getContainer=function(x,y,w,h){var container;if(R.is(x,string)||R.is(x,"object")){container=R.is(x,string)?doc.getElementById(x):x;if(container.tagName){if(y==null){return{container:container,width:container.style.pixelWidth||container.offsetWidth,height:container.style.pixelHeight||container.offsetHeight};}else{return{container:container,width:y,height:w};}}}else{return{container:1,x:x,y:y,width:w,height:h};}},plugins=function(con,add){var that=this;for(var prop in add){if(add[has](prop)&&!(prop in con)){switch(typeof add[prop]){case"function":(function(f){con[prop]=con===that?f:function(){return f[apply](that,arguments);};})(add[prop]);break;case"object":con[prop]=con[prop]||{};plugins.call(this,con[prop],add[prop]);break;default:con[prop]=add[prop];break;}}}},tear=function(el,paper){el==paper.top&&(paper.top=el.prev);el==paper.bottom&&(paper.bottom=el.next);el.next&&(el.next.prev=el.prev);el.prev&&(el.prev.next=el.next);},tofront=function(el,paper){if(paper.top===el){return;}
tear(el,paper);el.next=null;el.prev=paper.top;paper.top.next=el;paper.top=el;},toback=function(el,paper){if(paper.bottom===el){return;}
tear(el,paper);el.next=paper.bottom;el.prev=null;paper.bottom.prev=el;paper.bottom=el;},insertafter=function(el,el2,paper){tear(el,paper);el2==paper.top&&(paper.top=el);el2.next&&(el2.next.prev=el);el.next=el2.next;el.prev=el2;el2.next=el;},insertbefore=function(el,el2,paper){tear(el,paper);el2==paper.bottom&&(paper.bottom=el);el2.prev&&(el2.prev.next=el);el.prev=el2.prev;el2.prev=el;el.next=el2;},removed=function(methodname){return function(){throw new Error("Rapha\xebl: you are calling to method \u201c"+methodname+"\u201d of removed object");};};R.pathToRelative=pathToRelative;if(R.svg){paperproto.svgns="http://www.w3.org/2000/svg";paperproto.xlink="http://www.w3.org/1999/xlink";round=function(num){return+num+(~~num===num)*.5;};var $=function(el,attr){if(attr){for(var key in attr){if(attr[has](key)){el[setAttribute](key,Str(attr[key]));}}}else{el=doc.createElementNS(paperproto.svgns,el);el.style.webkitTapHighlightColor="rgba(0,0,0,0)";return el;}};R[toString]=function(){return"Your browser supports SVG.\nYou are running Rapha\xebl "+this.version;};var thePath=function(pathString,SVG){var el=$("path");SVG.canvas&&SVG.canvas[appendChild](el);var p=new Element(el,SVG);p.type="path";setFillAndStroke(p,{fill:"none",stroke:"#000",path:pathString});return p;};var addGradientFill=function(o,gradient,SVG){var type="linear",fx=.5,fy=.5,s=o.style;gradient=Str(gradient)[rp](radial_gradient,function(all,_fx,_fy){type="radial";if(_fx&&_fy){fx=toFloat(_fx);fy=toFloat(_fy);var dir=((fy>.5)*2-1);pow(fx-.5,2)+pow(fy-.5,2)>.25&&(fy=math.sqrt(.25-pow(fx-.5,2))*dir+.5)&&fy!=.5&&(fy=fy.toFixed(5)-1e-5*dir);}
return E;});gradient=gradient[split](/\s*\-\s*/);if(type=="linear"){var angle=gradient.shift();angle=-toFloat(angle);if(isNaN(angle)){return null;}
var vector=[0,0,math.cos(angle*PI/180),math.sin(angle*PI/180)],max=1/(mmax(abs(vector[2]),abs(vector[3]))||1);vector[2]*=max;vector[3]*=max;if(vector[2]<0){vector[0]=-vector[2];vector[2]=0;}
if(vector[3]<0){vector[1]=-vector[3];vector[3]=0;}}
var dots=parseDots(gradient);if(!dots){return null;}
var id=o.getAttribute(fillString);id=id.match(/^url\(#(.*)\)$/);id&&SVG.defs.removeChild(doc.getElementById(id[1]));var el=$(type+"Gradient");el.id=createUUID();$(el,type=="radial"?{fx:fx,fy:fy}:{x1:vector[0],y1:vector[1],x2:vector[2],y2:vector[3]});SVG.defs[appendChild](el);for(var i=0,ii=dots[length];i<ii;i++){var stop=$("stop");$(stop,{offset:dots[i].offset?dots[i].offset:!i?"0%":"100%","stop-color":dots[i].color||"#fff"});el[appendChild](stop);}
$(o,{fill:"url(#"+el.id+")",opacity:1,"fill-opacity":1});s.fill=E;s.opacity=1;s.fillOpacity=1;return 1;};var updatePosition=function(o){var bbox=o.getBBox();$(o.pattern,{patternTransform:R.format("translate({0},{1})",bbox.x,bbox.y)});};var setFillAndStroke=function(o,params){var dasharray={"":[0],"none":[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},node=o.node,attrs=o.attrs,rot=o.rotate(),addDashes=function(o,value){value=dasharray[lowerCase.call(value)];if(value){var width=o.attrs["stroke-width"]||"1",butt={round:width,square:width,butt:0}[o.attrs["stroke-linecap"]||params["stroke-linecap"]]||0,dashes=[];var i=value[length];while(i--){dashes[i]=value[i]*width+((i%2)?1:-1)*butt;}
$(node,{"stroke-dasharray":dashes[join](",")});}};params[has]("rotation")&&(rot=params.rotation);var rotxy=Str(rot)[split](separator);if(!(rotxy.length-1)){rotxy=null;}else{rotxy[1]=+rotxy[1];rotxy[2]=+rotxy[2];}
toFloat(rot)&&o.rotate(0,true);for(var att in params){if(params[has](att)){if(!availableAttrs[has](att)){continue;}
var value=params[att];attrs[att]=value;switch(att){case"blur":o.blur(value);break;case"rotation":o.rotate(value,true);break;case"href":case"title":case"target":var pn=node.parentNode;if(lowerCase.call(pn.tagName)!="a"){var hl=$("a");pn.insertBefore(hl,node);hl[appendChild](node);pn=hl;}
if(att=="target"&&value=="blank"){pn.setAttributeNS(o.paper.xlink,"show","new");}else{pn.setAttributeNS(o.paper.xlink,att,value);}
break;case"cursor":node.style.cursor=value;break;case"clip-rect":var rect=Str(value)[split](separator);if(rect[length]==4){o.clip&&o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);var el=$("clipPath"),rc=$("rect");el.id=createUUID();$(rc,{x:rect[0],y:rect[1],width:rect[2],height:rect[3]});el[appendChild](rc);o.paper.defs[appendChild](el);$(node,{"clip-path":"url(#"+el.id+")"});o.clip=rc;}
if(!value){var clip=doc.getElementById(node.getAttribute("clip-path")[rp](/(^url\(#|\)$)/g,E));clip&&clip.parentNode.removeChild(clip);$(node,{"clip-path":E});delete o.clip;}
break;case"path":if(o.type=="path"){$(node,{d:value?attrs.path=pathToAbsolute(value):"M0,0"});}
break;case"width":node[setAttribute](att,value);if(attrs.fx){att="x";value=attrs.x;}else{break;}
case"x":if(attrs.fx){value=-attrs.x-(attrs.width||0);}
case"rx":if(att=="rx"&&o.type=="rect"){break;}
case"cx":rotxy&&(att=="x"||att=="cx")&&(rotxy[1]+=value-attrs[att]);node[setAttribute](att,value);o.pattern&&updatePosition(o);break;case"height":node[setAttribute](att,value);if(attrs.fy){att="y";value=attrs.y;}else{break;}
case"y":if(attrs.fy){value=-attrs.y-(attrs.height||0);}
case"ry":if(att=="ry"&&o.type=="rect"){break;}
case"cy":rotxy&&(att=="y"||att=="cy")&&(rotxy[2]+=value-attrs[att]);node[setAttribute](att,value);o.pattern&&updatePosition(o);break;case"r":if(o.type=="rect"){$(node,{rx:value,ry:value});}else{node[setAttribute](att,value);}
break;case"src":if(o.type=="image"){node.setAttributeNS(o.paper.xlink,"href",value);}
break;case"stroke-width":node.style.strokeWidth=value;node[setAttribute](att,value);if(attrs["stroke-dasharray"]){addDashes(o,attrs["stroke-dasharray"]);}
break;case"stroke-dasharray":addDashes(o,value);break;case"translation":var xy=Str(value)[split](separator);xy[0]=+xy[0]||0;xy[1]=+xy[1]||0;if(rotxy){rotxy[1]+=xy[0];rotxy[2]+=xy[1];}
translate.call(o,xy[0],xy[1]);break;case"scale":xy=Str(value)[split](separator);o.scale(+xy[0]||1,+xy[1]||+xy[0]||1,isNaN(toFloat(xy[2]))?null:+xy[2],isNaN(toFloat(xy[3]))?null:+xy[3]);break;case fillString:var isURL=Str(value).match(ISURL);if(isURL){el=$("pattern");var ig=$("image");el.id=createUUID();$(el,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1});$(ig,{x:0,y:0});ig.setAttributeNS(o.paper.xlink,"href",isURL[1]);el[appendChild](ig);var img=doc.createElement("img");img.style.cssText="position:absolute;left:-9999em;top-9999em";img.onload=function(){$(el,{width:this.offsetWidth,height:this.offsetHeight});$(ig,{width:this.offsetWidth,height:this.offsetHeight});doc.body.removeChild(this);o.paper.safari();};doc.body[appendChild](img);img.src=isURL[1];o.paper.defs[appendChild](el);node.style.fill="url(#"+el.id+")";$(node,{fill:"url(#"+el.id+")"});o.pattern=el;o.pattern&&updatePosition(o);break;}
var clr=R.getRGB(value);if(!clr.error){delete params.gradient;delete attrs.gradient;!R.is(attrs.opacity,"undefined")&&R.is(params.opacity,"undefined")&&$(node,{opacity:attrs.opacity});!R.is(attrs["fill-opacity"],"undefined")&&R.is(params["fill-opacity"],"undefined")&&$(node,{"fill-opacity":attrs["fill-opacity"]});}else if((({circle:1,ellipse:1})[has](o.type)||Str(value).charAt()!="r")&&addGradientFill(node,value,o.paper)){attrs.gradient=value;attrs.fill="none";break;}
clr[has]("opacity")&&$(node,{"fill-opacity":clr.opacity>1?clr.opacity/100:clr.opacity});case"stroke":clr=R.getRGB(value);node[setAttribute](att,clr.hex);att=="stroke"&&clr[has]("opacity")&&$(node,{"stroke-opacity":clr.opacity>1?clr.opacity/100:clr.opacity});break;case"gradient":(({circle:1,ellipse:1})[has](o.type)||Str(value).charAt()!="r")&&addGradientFill(node,value,o.paper);break;case"opacity":if(attrs.gradient&&!attrs[has]("stroke-opacity")){$(node,{"stroke-opacity":value>1?value/100:value});}
case"fill-opacity":if(attrs.gradient){var gradient=doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g,E));if(gradient){var stops=gradient.getElementsByTagName("stop");stops[stops[length]-1][setAttribute]("stop-opacity",value);}
break;}
default:att=="font-size"&&(value=toInt(value,10)+"px");var cssrule=att[rp](/(\-.)/g,function(w){return upperCase.call(w.substring(1));});node.style[cssrule]=value;node[setAttribute](att,value);break;}}}
tuneText(o,params);if(rotxy){o.rotate(rotxy.join(S));}else{toFloat(rot)&&o.rotate(rot,true);}};var leading=1.2,tuneText=function(el,params){if(el.type!="text"||!(params[has]("text")||params[has]("font")||params[has]("font-size")||params[has]("x")||params[has]("y"))){return;}
var a=el.attrs,node=el.node,fontSize=node.firstChild?toInt(doc.defaultView.getComputedStyle(node.firstChild,E).getPropertyValue("font-size"),10):10;if(params[has]("text")){a.text=params.text;while(node.firstChild){node.removeChild(node.firstChild);}
var texts=Str(params.text)[split]("\n");for(var i=0,ii=texts[length];i<ii;i++)if(texts[i]){var tspan=$("tspan");i&&$(tspan,{dy:fontSize*leading,x:a.x});tspan[appendChild](doc.createTextNode(texts[i]));node[appendChild](tspan);}}else{texts=node.getElementsByTagName("tspan");for(i=0,ii=texts[length];i<ii;i++){i&&$(texts[i],{dy:fontSize*leading,x:a.x});}}
$(node,{y:a.y});var bb=el.getBBox(),dif=a.y-(bb.y+bb.height/2);dif&&R.is(dif,"finite")&&$(node,{y:a.y+dif});},Element=function(node,svg){var X=0,Y=0;this[0]=node;this.id=R._oid++;this.node=node;node.raphael=this;this.paper=svg;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};!svg.bottom&&(svg.bottom=this);this.prev=svg.top;svg.top&&(svg.top.next=this);svg.top=this;this.next=null;};var elproto=Element[proto];Element[proto].rotate=function(deg,cx,cy){if(this.removed){return this;}
if(deg==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][join](S);}
return this._.rt.deg;}
var bbox=this.getBBox();deg=Str(deg)[split](separator);if(deg[length]-1){cx=toFloat(deg[1]);cy=toFloat(deg[2]);}
deg=toFloat(deg[0]);if(cx!=null&&cx!==false){this._.rt.deg=deg;}else{this._.rt.deg+=deg;}
(cy==null)&&(cx=null);this._.rt.cx=cx;this._.rt.cy=cy;cx=cx==null?bbox.x+bbox.width/2:cx;cy=cy==null?bbox.y+bbox.height/2:cy;if(this._.rt.deg){this.transformations[0]=R.format("rotate({0} {1} {2})",this._.rt.deg,cx,cy);this.clip&&$(this.clip,{transform:R.format("rotate({0} {1} {2})",-this._.rt.deg,cx,cy)});}else{this.transformations[0]=E;this.clip&&$(this.clip,{transform:E});}
$(this.node,{transform:this.transformations[join](S)});return this;};Element[proto].hide=function(){!this.removed&&(this.node.style.display="none");return this;};Element[proto].show=function(){!this.removed&&(this.node.style.display="");return this;};Element[proto].remove=function(){if(this.removed){return;}
tear(this,this.paper);this.node.parentNode.removeChild(this.node);for(var i in this){delete this[i];}
this.removed=true;};Element[proto].getBBox=function(){if(this.removed){return this;}
if(this.type=="path"){return pathDimensions(this.attrs.path);}
if(this.node.style.display=="none"){this.show();var hide=true;}
var bbox={};try{bbox=this.node.getBBox();}catch(e){}finally{bbox=bbox||{};}
if(this.type=="text"){bbox={x:bbox.x,y:Infinity,width:0,height:0};for(var i=0,ii=this.node.getNumberOfChars();i<ii;i++){var bb=this.node.getExtentOfChar(i);(bb.y<bbox.y)&&(bbox.y=bb.y);(bb.y+bb.height-bbox.y>bbox.height)&&(bbox.height=bb.y+bb.height-bbox.y);(bb.x+bb.width-bbox.x>bbox.width)&&(bbox.width=bb.x+bb.width-bbox.x);}}
hide&&this.hide();return bbox;};Element[proto].attr=function(name,value){if(this.removed){return this;}
if(name==null){var res={};for(var i in this.attrs)if(this.attrs[has](i)){res[i]=this.attrs[i];}
this._.rt.deg&&(res.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(res.scale=this.scale());res.gradient&&res.fill=="none"&&(res.fill=res.gradient)&&delete res.gradient;return res;}
if(value==null&&R.is(name,string)){if(name=="translation"){return translate.call(this);}
if(name=="rotation"){return this.rotate();}
if(name=="scale"){return this.scale();}
if(name==fillString&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}
return this.attrs[name];}
if(value==null&&R.is(name,array)){var values={};for(var j=0,jj=name.length;j<jj;j++){values[name[j]]=this.attr(name[j]);}
return values;}
if(value!=null){var params={};params[name]=value;}else if(name!=null&&R.is(name,"object")){params=name;}
for(var key in this.paper.customAttributes)if(this.paper.customAttributes[has](key)&&params[has](key)&&R.is(this.paper.customAttributes[key],"function")){var par=this.paper.customAttributes[key].apply(this,[][concat](params[key]));this.attrs[key]=params[key];for(var subkey in par)if(par[has](subkey)){params[subkey]=par[subkey];}}
setFillAndStroke(this,params);return this;};Element[proto].toFront=function(){if(this.removed){return this;}
this.node.parentNode[appendChild](this.node);var svg=this.paper;svg.top!=this&&tofront(this,svg);return this;};Element[proto].toBack=function(){if(this.removed){return this;}
if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);toback(this,this.paper);var svg=this.paper;}
return this;};Element[proto].insertAfter=function(element){if(this.removed){return this;}
var node=element.node||element[element.length-1].node;if(node.nextSibling){node.parentNode.insertBefore(this.node,node.nextSibling);}else{node.parentNode[appendChild](this.node);}
insertafter(this,element,this.paper);return this;};Element[proto].insertBefore=function(element){if(this.removed){return this;}
var node=element.node||element[0].node;node.parentNode.insertBefore(this.node,node);insertbefore(this,element,this.paper);return this;};Element[proto].blur=function(size){var t=this;if(+size!==0){var fltr=$("filter"),blur=$("feGaussianBlur");t.attrs.blur=size;fltr.id=createUUID();$(blur,{stdDeviation:+size||1.5});fltr.appendChild(blur);t.paper.defs.appendChild(fltr);t._blur=fltr;$(t.node,{filter:"url(#"+fltr.id+")"});}else{if(t._blur){t._blur.parentNode.removeChild(t._blur);delete t._blur;delete t.attrs.blur;}
t.node.removeAttribute("filter");}};var theCircle=function(svg,x,y,r){var el=$("circle");svg.canvas&&svg.canvas[appendChild](el);var res=new Element(el,svg);res.attrs={cx:x,cy:y,r:r,fill:"none",stroke:"#000"};res.type="circle";$(el,res.attrs);return res;},theRect=function(svg,x,y,w,h,r){var el=$("rect");svg.canvas&&svg.canvas[appendChild](el);var res=new Element(el,svg);res.attrs={x:x,y:y,width:w,height:h,r:r||0,rx:r||0,ry:r||0,fill:"none",stroke:"#000"};res.type="rect";$(el,res.attrs);return res;},theEllipse=function(svg,x,y,rx,ry){var el=$("ellipse");svg.canvas&&svg.canvas[appendChild](el);var res=new Element(el,svg);res.attrs={cx:x,cy:y,rx:rx,ry:ry,fill:"none",stroke:"#000"};res.type="ellipse";$(el,res.attrs);return res;},theImage=function(svg,src,x,y,w,h){var el=$("image");$(el,{x:x,y:y,width:w,height:h,preserveAspectRatio:"none"});el.setAttributeNS(svg.xlink,"href",src);svg.canvas&&svg.canvas[appendChild](el);var res=new Element(el,svg);res.attrs={x:x,y:y,width:w,height:h,src:src};res.type="image";return res;},theText=function(svg,x,y,text){var el=$("text");$(el,{x:x,y:y,"text-anchor":"middle"});svg.canvas&&svg.canvas[appendChild](el);var res=new Element(el,svg);res.attrs={x:x,y:y,"text-anchor":"middle",text:text,font:availableAttrs.font,stroke:"none",fill:"#000"};res.type="text";setFillAndStroke(res,res.attrs);return res;},setSize=function(width,height){this.width=width||this.width;this.height=height||this.height;this.canvas[setAttribute]("width",this.width);this.canvas[setAttribute]("height",this.height);return this;},create=function(){var con=getContainer[apply](0,arguments),container=con&&con.container,x=con.x,y=con.y,width=con.width,height=con.height;if(!container){throw new Error("SVG container not found.");}
var cnvs=$("svg");x=x||0;y=y||0;width=width||512;height=height||342;$(cnvs,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:width,height:height});if(container==1){cnvs.style.cssText="position:absolute;left:"+x+"px;top:"+y+"px";doc.body[appendChild](cnvs);}else{if(container.firstChild){container.insertBefore(cnvs,container.firstChild);}else{container[appendChild](cnvs);}}
container=new Paper;container.width=width;container.height=height;container.canvas=cnvs;plugins.call(container,container,R.fn);container.clear();return container;};paperproto.clear=function(){var c=this.canvas;while(c.firstChild){c.removeChild(c.firstChild);}
this.bottom=this.top=null;(this.desc=$("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl"));c[appendChild](this.desc);c[appendChild](this.defs=$("defs"));};paperproto.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var i in this){this[i]=removed(i);}};}
if(R.vml){var map={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},bites=/([clmz]),?([^clmz]*)/gi,blurregexp=/ progid:\S+Blur\([^\)]+\)/g,val=/-?[^,\s-]+/g,coordsize=1e3+S+1e3,zoom=10,pathlike={path:1,rect:1},path2vml=function(path){var total=/[ahqstv]/ig,command=pathToAbsolute;Str(path).match(total)&&(command=path2curve);total=/[clmz]/g;if(command==pathToAbsolute&&!Str(path).match(total)){var res=Str(path)[rp](bites,function(all,command,args){var vals=[],isMove=lowerCase.call(command)=="m",res=map[command];args[rp](val,function(value){if(isMove&&vals[length]==2){res+=vals+map[command=="m"?"l":"L"];vals=[];}
vals[push](round(value*zoom));});return res+vals;});return res;}
var pa=command(path),p,r;res=[];for(var i=0,ii=pa[length];i<ii;i++){p=pa[i];r=lowerCase.call(pa[i][0]);r=="z"&&(r="x");for(var j=1,jj=p[length];j<jj;j++){r+=round(p[j]*zoom)+(j!=jj-1?",":E);}
res[push](r);}
return res[join](S);};R[toString]=function(){return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl "+this.version;};thePath=function(pathString,vml){var g=createNode("group");g.style.cssText="position:absolute;left:0;top:0;width:"+vml.width+"px;height:"+vml.height+"px";g.coordsize=vml.coordsize;g.coordorigin=vml.coordorigin;var el=createNode("shape"),ol=el.style;ol.width=vml.width+"px";ol.height=vml.height+"px";el.coordsize=coordsize;el.coordorigin=vml.coordorigin;g[appendChild](el);var p=new Element(el,g,vml),attr={fill:"none",stroke:"#000"};pathString&&(attr.path=pathString);p.type="path";p.path=[];p.Path=E;setFillAndStroke(p,attr);vml.canvas[appendChild](g);return p;};setFillAndStroke=function(o,params){o.attrs=o.attrs||{};var node=o.node,a=o.attrs,s=node.style,xy,newpath=(params.x!=a.x||params.y!=a.y||params.width!=a.width||params.height!=a.height||params.r!=a.r)&&o.type=="rect",res=o;for(var par in params)if(params[has](par)){a[par]=params[par];}
if(newpath){a.path=rectPath(a.x,a.y,a.width,a.height,a.r);o.X=a.x;o.Y=a.y;o.W=a.width;o.H=a.height;}
params.href&&(node.href=params.href);params.title&&(node.title=params.title);params.target&&(node.target=params.target);params.cursor&&(s.cursor=params.cursor);"blur"in params&&o.blur(params.blur);if(params.path&&o.type=="path"||newpath){node.path=path2vml(a.path);}
if(params.rotation!=null){o.rotate(params.rotation,true);}
if(params.translation){xy=Str(params.translation)[split](separator);translate.call(o,xy[0],xy[1]);if(o._.rt.cx!=null){o._.rt.cx+=+xy[0];o._.rt.cy+=+xy[1];o.setBox(o.attrs,xy[0],xy[1]);}}
if(params.scale){xy=Str(params.scale)[split](separator);o.scale(+xy[0]||1,+xy[1]||+xy[0]||1,+xy[2]||null,+xy[3]||null);}
if("clip-rect"in params){var rect=Str(params["clip-rect"])[split](separator);if(rect[length]==4){rect[2]=+rect[2]+(+rect[0]);rect[3]=+rect[3]+(+rect[1]);var div=node.clipRect||doc.createElement("div"),dstyle=div.style,group=node.parentNode;dstyle.clip=R.format("rect({1}px {2}px {3}px {0}px)",rect);if(!node.clipRect){dstyle.position="absolute";dstyle.top=0;dstyle.left=0;dstyle.width=o.paper.width+"px";dstyle.height=o.paper.height+"px";group.parentNode.insertBefore(div,group);div[appendChild](group);node.clipRect=div;}}
if(!params["clip-rect"]){node.clipRect&&(node.clipRect.style.clip=E);}}
if(o.type=="image"&&params.src){node.src=params.src;}
if(o.type=="image"&&params.opacity){node.filterOpacity=ms+".Alpha(opacity="+(params.opacity*100)+")";s.filter=(node.filterMatrix||E)+(node.filterOpacity||E);}
params.font&&(s.font=params.font);params["font-family"]&&(s.fontFamily='"'+params["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g,E)+'"');params["font-size"]&&(s.fontSize=params["font-size"]);params["font-weight"]&&(s.fontWeight=params["font-weight"]);params["font-style"]&&(s.fontStyle=params["font-style"]);if(params.opacity!=null||params["stroke-width"]!=null||params.fill!=null||params.stroke!=null||params["stroke-width"]!=null||params["stroke-opacity"]!=null||params["fill-opacity"]!=null||params["stroke-dasharray"]!=null||params["stroke-miterlimit"]!=null||params["stroke-linejoin"]!=null||params["stroke-linecap"]!=null){node=o.shape||node;var fill=(node.getElementsByTagName(fillString)&&node.getElementsByTagName(fillString)[0]),newfill=false;!fill&&(newfill=fill=createNode(fillString));if("fill-opacity"in params||"opacity"in params){var opacity=((+a["fill-opacity"]+1||2)-1)*((+a.opacity+1||2)-1)*((+R.getRGB(params.fill).o+1||2)-1);opacity=mmin(mmax(opacity,0),1);fill.opacity=opacity;}
params.fill&&(fill.on=true);if(fill.on==null||params.fill=="none"){fill.on=false;}
if(fill.on&&params.fill){var isURL=params.fill.match(ISURL);if(isURL){fill.src=isURL[1];fill.type="tile";}else{fill.color=R.getRGB(params.fill).hex;fill.src=E;fill.type="solid";if(R.getRGB(params.fill).error&&(res.type in{circle:1,ellipse:1}||Str(params.fill).charAt()!="r")&&addGradientFill(res,params.fill)){a.fill="none";a.gradient=params.fill;}}}
newfill&&node[appendChild](fill);var stroke=(node.getElementsByTagName("stroke")&&node.getElementsByTagName("stroke")[0]),newstroke=false;!stroke&&(newstroke=stroke=createNode("stroke"));if((params.stroke&&params.stroke!="none")||params["stroke-width"]||params["stroke-opacity"]!=null||params["stroke-dasharray"]||params["stroke-miterlimit"]||params["stroke-linejoin"]||params["stroke-linecap"]){stroke.on=true;}
(params.stroke=="none"||stroke.on==null||params.stroke==0||params["stroke-width"]==0)&&(stroke.on=false);var strokeColor=R.getRGB(params.stroke);stroke.on&&params.stroke&&(stroke.color=strokeColor.hex);opacity=((+a["stroke-opacity"]+1||2)-1)*((+a.opacity+1||2)-1)*((+strokeColor.o+1||2)-1);var width=(toFloat(params["stroke-width"])||1)*.75;opacity=mmin(mmax(opacity,0),1);params["stroke-width"]==null&&(width=a["stroke-width"]);params["stroke-width"]&&(stroke.weight=width);width&&width<1&&(opacity*=width)&&(stroke.weight=1);stroke.opacity=opacity;params["stroke-linejoin"]&&(stroke.joinstyle=params["stroke-linejoin"]||"miter");stroke.miterlimit=params["stroke-miterlimit"]||8;params["stroke-linecap"]&&(stroke.endcap=params["stroke-linecap"]=="butt"?"flat":params["stroke-linecap"]=="square"?"square":"round");if(params["stroke-dasharray"]){var dasharray={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};stroke.dashstyle=dasharray[has](params["stroke-dasharray"])?dasharray[params["stroke-dasharray"]]:E;}
newstroke&&node[appendChild](stroke);}
if(res.type=="text"){s=res.paper.span.style;a.font&&(s.font=a.font);a["font-family"]&&(s.fontFamily=a["font-family"]);a["font-size"]&&(s.fontSize=a["font-size"]);a["font-weight"]&&(s.fontWeight=a["font-weight"]);a["font-style"]&&(s.fontStyle=a["font-style"]);res.node.string&&(res.paper.span.innerHTML=Str(res.node.string)[rp](/</g,"&#60;")[rp](/&/g,"&#38;")[rp](/\n/g,"<br>"));res.W=a.w=res.paper.span.offsetWidth;res.H=a.h=res.paper.span.offsetHeight;res.X=a.x;res.Y=a.y+round(res.H/2);switch(a["text-anchor"]){case"start":res.node.style["v-text-align"]="left";res.bbx=round(res.W/2);break;case"end":res.node.style["v-text-align"]="right";res.bbx=-round(res.W/2);break;default:res.node.style["v-text-align"]="center";break;}}};addGradientFill=function(o,gradient){o.attrs=o.attrs||{};var attrs=o.attrs,fill,type="linear",fxfy=".5 .5";o.attrs.gradient=gradient;gradient=Str(gradient)[rp](radial_gradient,function(all,fx,fy){type="radial";if(fx&&fy){fx=toFloat(fx);fy=toFloat(fy);pow(fx-.5,2)+pow(fy-.5,2)>.25&&(fy=math.sqrt(.25-pow(fx-.5,2))*((fy>.5)*2-1)+.5);fxfy=fx+S+fy;}
return E;});gradient=gradient[split](/\s*\-\s*/);if(type=="linear"){var angle=gradient.shift();angle=-toFloat(angle);if(isNaN(angle)){return null;}}
var dots=parseDots(gradient);if(!dots){return null;}
o=o.shape||o.node;fill=o.getElementsByTagName(fillString)[0]||createNode(fillString);!fill.parentNode&&o.appendChild(fill);if(dots[length]){fill.on=true;fill.method="none";fill.color=dots[0].color;fill.color2=dots[dots[length]-1].color;var clrs=[];for(var i=0,ii=dots[length];i<ii;i++){dots[i].offset&&clrs[push](dots[i].offset+S+dots[i].color);}
fill.colors&&(fill.colors.value=clrs[length]?clrs[join]():"0% "+fill.color);if(type=="radial"){fill.type="gradientradial";fill.focus="100%";fill.focussize=fxfy;fill.focusposition=fxfy;}else{fill.type="gradient";fill.angle=(270-angle)%360;}}
return 1;};Element=function(node,group,vml){var Rotation=0,RotX=0,RotY=0,Scale=1;this[0]=node;this.id=R._oid++;this.node=node;node.raphael=this;this.X=0;this.Y=0;this.attrs={};this.Group=group;this.paper=vml;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};!vml.bottom&&(vml.bottom=this);this.prev=vml.top;vml.top&&(vml.top.next=this);vml.top=this;this.next=null;};elproto=Element[proto];elproto.rotate=function(deg,cx,cy){if(this.removed){return this;}
if(deg==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][join](S);}
return this._.rt.deg;}
deg=Str(deg)[split](separator);if(deg[length]-1){cx=toFloat(deg[1]);cy=toFloat(deg[2]);}
deg=toFloat(deg[0]);if(cx!=null){this._.rt.deg=deg;}else{this._.rt.deg+=deg;}
cy==null&&(cx=null);this._.rt.cx=cx;this._.rt.cy=cy;this.setBox(this.attrs,cx,cy);this.Group.style.rotation=this._.rt.deg;return this;};elproto.setBox=function(params,cx,cy){if(this.removed){return this;}
var gs=this.Group.style,os=(this.shape&&this.shape.style)||this.node.style;params=params||{};for(var i in params)if(params[has](i)){this.attrs[i]=params[i];}
cx=cx||this._.rt.cx;cy=cy||this._.rt.cy;var attr=this.attrs,x,y,w,h;switch(this.type){case"circle":x=attr.cx-attr.r;y=attr.cy-attr.r;w=h=attr.r*2;break;case"ellipse":x=attr.cx-attr.rx;y=attr.cy-attr.ry;w=attr.rx*2;h=attr.ry*2;break;case"image":x=+attr.x;y=+attr.y;w=attr.width||0;h=attr.height||0;break;case"text":this.textpath.v=["m",round(attr.x),", ",round(attr.y-2),"l",round(attr.x)+1,", ",round(attr.y-2)][join](E);x=attr.x-round(this.W/2);y=attr.y-this.H/2;w=this.W;h=this.H;break;case"rect":case"path":if(!this.attrs.path){x=0;y=0;w=this.paper.width;h=this.paper.height;}else{var dim=pathDimensions(this.attrs.path);x=dim.x;y=dim.y;w=dim.width;h=dim.height;}
break;default:x=0;y=0;w=this.paper.width;h=this.paper.height;break;}
cx=(cx==null)?x+w/2:cx;cy=(cy==null)?y+h/2:cy;var left=cx-this.paper.width/2,top=cy-this.paper.height/2,t;gs.left!=(t=left+"px")&&(gs.left=t);gs.top!=(t=top+"px")&&(gs.top=t);this.X=pathlike[has](this.type)?-left:x;this.Y=pathlike[has](this.type)?-top:y;this.W=w;this.H=h;if(pathlike[has](this.type)){os.left!=(t=-left*zoom+"px")&&(os.left=t);os.top!=(t=-top*zoom+"px")&&(os.top=t);}else if(this.type=="text"){os.left!=(t=-left+"px")&&(os.left=t);os.top!=(t=-top+"px")&&(os.top=t);}else{gs.width!=(t=this.paper.width+"px")&&(gs.width=t);gs.height!=(t=this.paper.height+"px")&&(gs.height=t);os.left!=(t=x-left+"px")&&(os.left=t);os.top!=(t=y-top+"px")&&(os.top=t);os.width!=(t=w+"px")&&(os.width=t);os.height!=(t=h+"px")&&(os.height=t);}};elproto.hide=function(){!this.removed&&(this.Group.style.display="none");return this;};elproto.show=function(){!this.removed&&(this.Group.style.display="block");return this;};elproto.getBBox=function(){if(this.removed){return this;}
if(pathlike[has](this.type)){return pathDimensions(this.attrs.path);}
return{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H};};elproto.remove=function(){if(this.removed){return;}
tear(this,this.paper);this.node.parentNode.removeChild(this.node);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);for(var i in this){delete this[i];}
this.removed=true;};elproto.attr=function(name,value){if(this.removed){return this;}
if(name==null){var res={};for(var i in this.attrs)if(this.attrs[has](i)){res[i]=this.attrs[i];}
this._.rt.deg&&(res.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(res.scale=this.scale());res.gradient&&res.fill=="none"&&(res.fill=res.gradient)&&delete res.gradient;return res;}
if(value==null&&R.is(name,"string")){if(name=="translation"){return translate.call(this);}
if(name=="rotation"){return this.rotate();}
if(name=="scale"){return this.scale();}
if(name==fillString&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient;}
return this.attrs[name];}
if(this.attrs&&value==null&&R.is(name,array)){var ii,values={};for(i=0,ii=name[length];i<ii;i++){values[name[i]]=this.attr(name[i]);}
return values;}
var params;if(value!=null){params={};params[name]=value;}
value==null&&R.is(name,"object")&&(params=name);if(params){for(var key in this.paper.customAttributes)if(this.paper.customAttributes[has](key)&&params[has](key)&&R.is(this.paper.customAttributes[key],"function")){var par=this.paper.customAttributes[key].apply(this,[][concat](params[key]));this.attrs[key]=params[key];for(var subkey in par)if(par[has](subkey)){params[subkey]=par[subkey];}}
if(params.text&&this.type=="text"){this.node.string=params.text;}
setFillAndStroke(this,params);if(params.gradient&&(({circle:1,ellipse:1})[has](this.type)||Str(params.gradient).charAt()!="r")){addGradientFill(this,params.gradient);}
(!pathlike[has](this.type)||this._.rt.deg)&&this.setBox(this.attrs);}
return this;};elproto.toFront=function(){!this.removed&&this.Group.parentNode[appendChild](this.Group);this.paper.top!=this&&tofront(this,this.paper);return this;};elproto.toBack=function(){if(this.removed){return this;}
if(this.Group.parentNode.firstChild!=this.Group){this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild);toback(this,this.paper);}
return this;};elproto.insertAfter=function(element){if(this.removed){return this;}
if(element.constructor==Set){element=element[element.length-1];}
if(element.Group.nextSibling){element.Group.parentNode.insertBefore(this.Group,element.Group.nextSibling);}else{element.Group.parentNode[appendChild](this.Group);}
insertafter(this,element,this.paper);return this;};elproto.insertBefore=function(element){if(this.removed){return this;}
if(element.constructor==Set){element=element[0];}
element.Group.parentNode.insertBefore(this.Group,element.Group);insertbefore(this,element,this.paper);return this;};elproto.blur=function(size){var s=this.node.runtimeStyle,f=s.filter;f=f.replace(blurregexp,E);if(+size!==0){this.attrs.blur=size;s.filter=f+S+ms+".Blur(pixelradius="+(+size||1.5)+")";s.margin=R.format("-{0}px 0 0 -{0}px",round(+size||1.5));}else{s.filter=f;s.margin=0;delete this.attrs.blur;}};theCircle=function(vml,x,y,r){var g=createNode("group"),o=createNode("oval"),ol=o.style;g.style.cssText="position:absolute;left:0;top:0;width:"+vml.width+"px;height:"+vml.height+"px";g.coordsize=coordsize;g.coordorigin=vml.coordorigin;g[appendChild](o);var res=new Element(o,g,vml);res.type="circle";setFillAndStroke(res,{stroke:"#000",fill:"none"});res.attrs.cx=x;res.attrs.cy=y;res.attrs.r=r;res.setBox({x:x-r,y:y-r,width:r*2,height:r*2});vml.canvas[appendChild](g);return res;};function rectPath(x,y,w,h,r){if(r){return R.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",x+r,y,w-r*2,r,-r,h-r*2,r*2-w,r*2-h);}else{return R.format("M{0},{1}l{2},0,0,{3},{4},0z",x,y,w,h,-w);}}
theRect=function(vml,x,y,w,h,r){var path=rectPath(x,y,w,h,r),res=vml.path(path),a=res.attrs;res.X=a.x=x;res.Y=a.y=y;res.W=a.width=w;res.H=a.height=h;a.r=r;a.path=path;res.type="rect";return res;};theEllipse=function(vml,x,y,rx,ry){var g=createNode("group"),o=createNode("oval"),ol=o.style;g.style.cssText="position:absolute;left:0;top:0;width:"+vml.width+"px;height:"+vml.height+"px";g.coordsize=coordsize;g.coordorigin=vml.coordorigin;g[appendChild](o);var res=new Element(o,g,vml);res.type="ellipse";setFillAndStroke(res,{stroke:"#000"});res.attrs.cx=x;res.attrs.cy=y;res.attrs.rx=rx;res.attrs.ry=ry;res.setBox({x:x-rx,y:y-ry,width:rx*2,height:ry*2});vml.canvas[appendChild](g);return res;};theImage=function(vml,src,x,y,w,h){var g=createNode("group"),o=createNode("image");g.style.cssText="position:absolute;left:0;top:0;width:"+vml.width+"px;height:"+vml.height+"px";g.coordsize=coordsize;g.coordorigin=vml.coordorigin;o.src=src;g[appendChild](o);var res=new Element(o,g,vml);res.type="image";res.attrs.src=src;res.attrs.x=x;res.attrs.y=y;res.attrs.w=w;res.attrs.h=h;res.setBox({x:x,y:y,width:w,height:h});vml.canvas[appendChild](g);return res;};theText=function(vml,x,y,text){var g=createNode("group"),el=createNode("shape"),ol=el.style,path=createNode("path"),ps=path.style,o=createNode("textpath");g.style.cssText="position:absolute;left:0;top:0;width:"+vml.width+"px;height:"+vml.height+"px";g.coordsize=coordsize;g.coordorigin=vml.coordorigin;path.v=R.format("m{0},{1}l{2},{1}",round(x*10),round(y*10),round(x*10)+1);path.textpathok=true;ol.width=vml.width;ol.height=vml.height;o.string=Str(text);o.on=true;el[appendChild](o);el[appendChild](path);g[appendChild](el);var res=new Element(o,g,vml);res.shape=el;res.textpath=path;res.type="text";res.attrs.text=text;res.attrs.x=x;res.attrs.y=y;res.attrs.w=1;res.attrs.h=1;setFillAndStroke(res,{font:availableAttrs.font,stroke:"none",fill:"#000"});res.setBox();vml.canvas[appendChild](g);return res;};setSize=function(width,height){var cs=this.canvas.style;width==+width&&(width+="px");height==+height&&(height+="px");cs.width=width;cs.height=height;cs.clip="rect(0 "+width+" "+height+" 0)";return this;};var createNode;doc.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!doc.namespaces.rvml&&doc.namespaces.add("rvml","urn:schemas-microsoft-com:vml");createNode=function(tagName){return doc.createElement('<rvml:'+tagName+' class="rvml">');};}catch(e){createNode=function(tagName){return doc.createElement('<'+tagName+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');};}
create=function(){var con=getContainer[apply](0,arguments),container=con.container,height=con.height,s,width=con.width,x=con.x,y=con.y;if(!container){throw new Error("VML container not found.");}
var res=new Paper,c=res.canvas=doc.createElement("div"),cs=c.style;x=x||0;y=y||0;width=width||512;height=height||342;width==+width&&(width+="px");height==+height&&(height+="px");res.width=1e3;res.height=1e3;res.coordsize=zoom*1e3+S+zoom*1e3;res.coordorigin="0 0";res.span=doc.createElement("span");res.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";c[appendChild](res.span);cs.cssText=R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",width,height);if(container==1){doc.body[appendChild](c);cs.left=x+"px";cs.top=y+"px";cs.position="absolute";}else{if(container.firstChild){container.insertBefore(c,container.firstChild);}else{container[appendChild](c);}}
plugins.call(res,res,R.fn);return res;};paperproto.clear=function(){this.canvas.innerHTML=E;this.span=doc.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[appendChild](this.span);this.bottom=this.top=null;};paperproto.remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var i in this){this[i]=removed(i);}
return true;};}
var version=navigator.userAgent.match(/Version\/(.*?)\s/);if((navigator.vendor=="Apple Computer, Inc.")&&(version&&version[1]<4||navigator.platform.slice(0,2)=="iP")){paperproto.safari=function(){var rect=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});win.setTimeout(function(){rect.remove();});};}else{paperproto.safari=function(){};}
var preventDefault=function(){this.returnValue=false;},preventTouch=function(){return this.originalEvent.preventDefault();},stopPropagation=function(){this.cancelBubble=true;},stopTouch=function(){return this.originalEvent.stopPropagation();},addEvent=(function(){if(doc.addEventListener){return function(obj,type,fn,element){var realName=supportsTouch&&touchMap[type]?touchMap[type]:type;var f=function(e){if(supportsTouch&&touchMap[has](type)){for(var i=0,ii=e.targetTouches&&e.targetTouches.length;i<ii;i++){if(e.targetTouches[i].target==obj){var olde=e;e=e.targetTouches[i];e.originalEvent=olde;e.preventDefault=preventTouch;e.stopPropagation=stopTouch;break;}}}
return fn.call(element,e);};obj.addEventListener(realName,f,false);return function(){obj.removeEventListener(realName,f,false);return true;};};}else if(doc.attachEvent){return function(obj,type,fn,element){var f=function(e){e=e||win.event;e.preventDefault=e.preventDefault||preventDefault;e.stopPropagation=e.stopPropagation||stopPropagation;return fn.call(element,e);};obj.attachEvent("on"+type,f);var detacher=function(){obj.detachEvent("on"+type,f);return true;};return detacher;};}})(),drag=[],dragMove=function(e){var x=e.clientX,y=e.clientY,scrollY=doc.documentElement.scrollTop||doc.body.scrollTop,scrollX=doc.documentElement.scrollLeft||doc.body.scrollLeft,dragi,j=drag.length;while(j--){dragi=drag[j];if(supportsTouch){var i=e.touches.length,touch;while(i--){touch=e.touches[i];if(touch.identifier==dragi.el._drag.id){x=touch.clientX;y=touch.clientY;(e.originalEvent?e.originalEvent:e).preventDefault();break;}}}else{e.preventDefault();}
x+=scrollX;y+=scrollY;dragi.move&&dragi.move.call(dragi.move_scope||dragi.el,x-dragi.el._drag.x,y-dragi.el._drag.y,x,y,e);}},dragUp=function(e){R.unmousemove(dragMove).unmouseup(dragUp);var i=drag.length,dragi;while(i--){dragi=drag[i];dragi.el._drag={};dragi.end&&dragi.end.call(dragi.end_scope||dragi.start_scope||dragi.move_scope||dragi.el,e);}
drag=[];};for(var i=events[length];i--;){(function(eventName){R[eventName]=Element[proto][eventName]=function(fn,scope){if(R.is(fn,"function")){this.events=this.events||[];this.events.push({name:eventName,f:fn,unbind:addEvent(this.shape||this.node||doc,eventName,fn,scope||this)});}
return this;};R["un"+eventName]=Element[proto]["un"+eventName]=function(fn){var events=this.events,l=events[length];while(l--)if(events[l].name==eventName&&events[l].f==fn){events[l].unbind();events.splice(l,1);!events.length&&delete this.events;return this;}
return this;};})(events[i]);}
elproto.hover=function(f_in,f_out,scope_in,scope_out){return this.mouseover(f_in,scope_in).mouseout(f_out,scope_out||scope_in);};elproto.unhover=function(f_in,f_out){return this.unmouseover(f_in).unmouseout(f_out);};elproto.drag=function(onmove,onstart,onend,move_scope,start_scope,end_scope){this._drag={};this.mousedown(function(e){(e.originalEvent||e).preventDefault();var scrollY=doc.documentElement.scrollTop||doc.body.scrollTop,scrollX=doc.documentElement.scrollLeft||doc.body.scrollLeft;this._drag.x=e.clientX+scrollX;this._drag.y=e.clientY+scrollY;this._drag.id=e.identifier;onstart&&onstart.call(start_scope||move_scope||this,e.clientX+scrollX,e.clientY+scrollY,e);!drag.length&&R.mousemove(dragMove).mouseup(dragUp);drag.push({el:this,move:onmove,end:onend,move_scope:move_scope,start_scope:start_scope,end_scope:end_scope});});return this;};elproto.undrag=function(onmove,onstart,onend){var i=drag.length;while(i--){drag[i].el==this&&(drag[i].move==onmove&&drag[i].end==onend)&&drag.splice(i++,1);}!drag.length&&R.unmousemove(dragMove).unmouseup(dragUp);};paperproto.circle=function(x,y,r){return theCircle(this,x||0,y||0,r||0);};paperproto.rect=function(x,y,w,h,r){return theRect(this,x||0,y||0,w||0,h||0,r||0);};paperproto.ellipse=function(x,y,rx,ry){return theEllipse(this,x||0,y||0,rx||0,ry||0);};paperproto.path=function(pathString){pathString&&!R.is(pathString,string)&&!R.is(pathString[0],array)&&(pathString+=E);return thePath(R.format[apply](R,arguments),this);};paperproto.image=function(src,x,y,w,h){return theImage(this,src||"about:blank",x||0,y||0,w||0,h||0);};paperproto.text=function(x,y,text){return theText(this,x||0,y||0,Str(text));};paperproto.set=function(itemsArray){arguments[length]>1&&(itemsArray=Array[proto].splice.call(arguments,0,arguments[length]));return new Set(itemsArray);};paperproto.setSize=setSize;paperproto.top=paperproto.bottom=null;paperproto.raphael=R;function x_y(){return this.x+S+this.y;}
elproto.resetScale=function(){if(this.removed){return this;}
this._.sx=1;this._.sy=1;this.attrs.scale="1 1";};elproto.scale=function(x,y,cx,cy){if(this.removed){return this;}
if(x==null&&y==null){return{x:this._.sx,y:this._.sy,toString:x_y};}
y=y||x;!+y&&(y=x);var dx,dy,dcx,dcy,a=this.attrs;if(x!=0){var bb=this.getBBox(),rcx=bb.x+bb.width/2,rcy=bb.y+bb.height/2,kx=abs(x/this._.sx),ky=abs(y/this._.sy);cx=(+cx||cx==0)?cx:rcx;cy=(+cy||cy==0)?cy:rcy;var posx=this._.sx>0,posy=this._.sy>0,dirx=~~(x/abs(x)),diry=~~(y/abs(y)),dkx=kx*dirx,dky=ky*diry,s=this.node.style,ncx=cx+abs(rcx-cx)*dkx*(rcx>cx==posx?1:-1),ncy=cy+abs(rcy-cy)*dky*(rcy>cy==posy?1:-1),fr=(x*dirx>y*diry?ky:kx);switch(this.type){case"rect":case"image":var neww=a.width*kx,newh=a.height*ky;this.attr({height:newh,r:a.r*fr,width:neww,x:ncx-neww/2,y:ncy-newh/2});break;case"circle":case"ellipse":this.attr({rx:a.rx*kx,ry:a.ry*ky,r:a.r*fr,cx:ncx,cy:ncy});break;case"text":this.attr({x:ncx,y:ncy});break;case"path":var path=pathToRelative(a.path),skip=true,fx=posx?dkx:kx,fy=posy?dky:ky;for(var i=0,ii=path[length];i<ii;i++){var p=path[i],P0=upperCase.call(p[0]);if(P0=="M"&&skip){continue;}else{skip=false;}
if(P0=="A"){p[path[i][length]-2]*=fx;p[path[i][length]-1]*=fy;p[1]*=kx;p[2]*=ky;p[5]=+(dirx+diry?!!+p[5]:!+p[5]);}else if(P0=="H"){for(var j=1,jj=p[length];j<jj;j++){p[j]*=fx;}}else if(P0=="V"){for(j=1,jj=p[length];j<jj;j++){p[j]*=fy;}}else{for(j=1,jj=p[length];j<jj;j++){p[j]*=(j%2)?fx:fy;}}}
var dim2=pathDimensions(path);dx=ncx-dim2.x-dim2.width/2;dy=ncy-dim2.y-dim2.height/2;path[0][1]+=dx;path[0][2]+=dy;this.attr({path:path});break;}
if(this.type in{text:1,image:1}&&(dirx!=1||diry!=1)){if(this.transformations){this.transformations[2]="scale("[concat](dirx,",",diry,")");this.node[setAttribute]("transform",this.transformations[join](S));dx=(dirx==-1)?-a.x-(neww||0):a.x;dy=(diry==-1)?-a.y-(newh||0):a.y;this.attr({x:dx,y:dy});a.fx=dirx-1;a.fy=diry-1;}else{this.node.filterMatrix=ms+".Matrix(M11="[concat](dirx,", M12=0, M21=0, M22=",diry,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')");s.filter=(this.node.filterMatrix||E)+(this.node.filterOpacity||E);}}else{if(this.transformations){this.transformations[2]=E;this.node[setAttribute]("transform",this.transformations[join](S));a.fx=0;a.fy=0;}else{this.node.filterMatrix=E;s.filter=(this.node.filterMatrix||E)+(this.node.filterOpacity||E);}}
a.scale=[x,y,cx,cy][join](S);this._.sx=x;this._.sy=y;}
return this;};elproto.clone=function(){if(this.removed){return null;}
var attr=this.attr();delete attr.scale;delete attr.translation;return this.paper[this.type]().attr(attr);};var curveslengths={},getPointAtSegmentLength=function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,length){var len=0,precision=100,name=[p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y].join(),cache=curveslengths[name],old,dot;!cache&&(curveslengths[name]=cache={data:[]});cache.timer&&clearTimeout(cache.timer);cache.timer=setTimeout(function(){delete curveslengths[name];},2000);if(length!=null){var total=getPointAtSegmentLength(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y);precision=~~total*10;}
for(var i=0;i<precision+1;i++){if(cache.data[length]>i){dot=cache.data[i*precision];}else{dot=R.findDotsAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,i/precision);cache.data[i]=dot;}
i&&(len+=pow(pow(old.x-dot.x,2)+pow(old.y-dot.y,2),.5));if(length!=null&&len>=length){return dot;}
old=dot;}
if(length==null){return len;}},getLengthFactory=function(istotal,subpath){return function(path,length,onlystart){path=path2curve(path);var x,y,p,l,sp="",subpaths={},point,len=0;for(var i=0,ii=path.length;i<ii;i++){p=path[i];if(p[0]=="M"){x=+p[1];y=+p[2];}else{l=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);if(len+l>length){if(subpath&&!subpaths.start){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],length-len);sp+=["C",point.start.x,point.start.y,point.m.x,point.m.y,point.x,point.y];if(onlystart){return sp;}
subpaths.start=sp;sp=["M",point.x,point.y+"C",point.n.x,point.n.y,point.end.x,point.end.y,p[5],p[6]][join]();len+=l;x=+p[5];y=+p[6];continue;}
if(!istotal&&!subpath){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],length-len);return{x:point.x,y:point.y,alpha:point.alpha};}}
len+=l;x=+p[5];y=+p[6];}
sp+=p;}
subpaths.end=sp;point=istotal?len:subpath?subpaths:R.findDotsAtSegment(x,y,p[1],p[2],p[3],p[4],p[5],p[6],1);point.alpha&&(point={x:point.x,y:point.y,alpha:point.alpha});return point;};};var getTotalLength=getLengthFactory(1),getPointAtLength=getLengthFactory(),getSubpathsAtLength=getLengthFactory(0,1);elproto.getTotalLength=function(){if(this.type!="path"){return;}
if(this.node.getTotalLength){return this.node.getTotalLength();}
return getTotalLength(this.attrs.path);};elproto.getPointAtLength=function(length){if(this.type!="path"){return;}
return getPointAtLength(this.attrs.path,length);};elproto.getSubpath=function(from,to){if(this.type!="path"){return;}
if(abs(this.getTotalLength()-to)<"1e-6"){return getSubpathsAtLength(this.attrs.path,from).end;}
var a=getSubpathsAtLength(this.attrs.path,to,1);return from?getSubpathsAtLength(a,from).end:a;};R.easing_formulas={linear:function(n){return n;},"<":function(n){return pow(n,3);},">":function(n){return pow(n-1,3)+1;},"<>":function(n){n=n*2;if(n<1){return pow(n,3)/2;}
n-=2;return(pow(n,3)+2)/2;},backIn:function(n){var s=1.70158;return n*n*((s+1)*n-s);},backOut:function(n){n=n-1;var s=1.70158;return n*n*((s+1)*n+s)+1;},elastic:function(n){if(n==0||n==1){return n;}
var p=.3,s=p/4;return pow(2,-10*n)*math.sin((n-s)*(2*PI)/p)+1;},bounce:function(n){var s=7.5625,p=2.75,l;if(n<(1/p)){l=s*n*n;}else{if(n<(2/p)){n-=(1.5/p);l=s*n*n+.75;}else{if(n<(2.5/p)){n-=(2.25/p);l=s*n*n+.9375;}else{n-=(2.625/p);l=s*n*n+.984375;}}}
return l;}};var animationElements=[],animation=function(){var Now=+new Date;for(var l=0;l<animationElements[length];l++){var e=animationElements[l];if(e.stop||e.el.removed){continue;}
var time=Now-e.start,ms=e.ms,easing=e.easing,from=e.from,diff=e.diff,to=e.to,t=e.t,that=e.el,set={},now;if(time<ms){var pos=easing(time/ms);for(var attr in from)if(from[has](attr)){switch(availableAnimAttrs[attr]){case"along":now=pos*ms*diff[attr];to.back&&(now=to.len-now);var point=getPointAtLength(to[attr],now);that.translate(diff.sx-diff.x||0,diff.sy-diff.y||0);diff.x=point.x;diff.y=point.y;that.translate(point.x-diff.sx,point.y-diff.sy);to.rot&&that.rotate(diff.r+point.alpha,point.x,point.y);break;case nu:now=+from[attr]+pos*ms*diff[attr];break;case"colour":now="rgb("+[upto255(round(from[attr].r+pos*ms*diff[attr].r)),upto255(round(from[attr].g+pos*ms*diff[attr].g)),upto255(round(from[attr].b+pos*ms*diff[attr].b))][join](",")+")";break;case"path":now=[];for(var i=0,ii=from[attr][length];i<ii;i++){now[i]=[from[attr][i][0]];for(var j=1,jj=from[attr][i][length];j<jj;j++){now[i][j]=+from[attr][i][j]+pos*ms*diff[attr][i][j];}
now[i]=now[i][join](S);}
now=now[join](S);break;case"csv":switch(attr){case"translation":var x=pos*ms*diff[attr][0]-t.x,y=pos*ms*diff[attr][1]-t.y;t.x+=x;t.y+=y;now=x+S+y;break;case"rotation":now=+from[attr][0]+pos*ms*diff[attr][0];from[attr][1]&&(now+=","+from[attr][1]+","+from[attr][2]);break;case"scale":now=[+from[attr][0]+pos*ms*diff[attr][0],+from[attr][1]+pos*ms*diff[attr][1],(2 in to[attr]?to[attr][2]:E),(3 in to[attr]?to[attr][3]:E)][join](S);break;case"clip-rect":now=[];i=4;while(i--){now[i]=+from[attr][i]+pos*ms*diff[attr][i];}
break;}
break;default:var from2=[].concat(from[attr]);now=[];i=that.paper.customAttributes[attr].length;while(i--){now[i]=+from2[i]+pos*ms*diff[attr][i];}
break;}
set[attr]=now;}
that.attr(set);that._run&&that._run.call(that);}else{if(to.along){point=getPointAtLength(to.along,to.len*!to.back);that.translate(diff.sx-(diff.x||0)+point.x-diff.sx,diff.sy-(diff.y||0)+point.y-diff.sy);to.rot&&that.rotate(diff.r+point.alpha,point.x,point.y);}
(t.x||t.y)&&that.translate(-t.x,-t.y);to.scale&&(to.scale+=E);that.attr(to);animationElements.splice(l--,1);}}
R.svg&&that&&that.paper&&that.paper.safari();animationElements[length]&&setTimeout(animation);},keyframesRun=function(attr,element,time,prev,prevcallback){var dif=time-prev;element.timeouts.push(setTimeout(function(){R.is(prevcallback,"function")&&prevcallback.call(element);element.animate(attr,dif,attr.easing);},prev));},upto255=function(color){return mmax(mmin(color,255),0);},translate=function(x,y){if(x==null){return{x:this._.tx,y:this._.ty,toString:x_y};}
this._.tx+=+x;this._.ty+=+y;switch(this.type){case"circle":case"ellipse":this.attr({cx:+x+this.attrs.cx,cy:+y+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+x+this.attrs.x,y:+y+this.attrs.y});break;case"path":var path=pathToRelative(this.attrs.path);path[0][1]+=+x;path[0][2]+=+y;this.attr({path:path});break;}
return this;};elproto.animateWith=function(element,params,ms,easing,callback){for(var i=0,ii=animationElements.length;i<ii;i++){if(animationElements[i].el.id==element.id){params.start=animationElements[i].start;}}
return this.animate(params,ms,easing,callback);};elproto.animateAlong=along();elproto.animateAlongBack=along(1);function along(isBack){return function(path,ms,rotate,callback){var params={back:isBack};R.is(rotate,"function")?(callback=rotate):(params.rot=rotate);path&&path.constructor==Element&&(path=path.attrs.path);path&&(params.along=path);return this.animate(params,ms,callback);};}
function CubicBezierAtTime(t,p1x,p1y,p2x,p2y,duration){var cx=3*p1x,bx=3*(p2x-p1x)-cx,ax=1-cx-bx,cy=3*p1y,by=3*(p2y-p1y)-cy,ay=1-cy-by;function sampleCurveX(t){return((ax*t+bx)*t+cx)*t;}
function solve(x,epsilon){var t=solveCurveX(x,epsilon);return((ay*t+by)*t+cy)*t;}
function solveCurveX(x,epsilon){var t0,t1,t2,x2,d2,i;for(t2=x,i=0;i<8;i++){x2=sampleCurveX(t2)-x;if(abs(x2)<epsilon){return t2;}
d2=(3*ax*t2+2*bx)*t2+cx;if(abs(d2)<1e-6){break;}
t2=t2-x2/d2;}
t0=0;t1=1;t2=x;if(t2<t0){return t0;}
if(t2>t1){return t1;}
while(t0<t1){x2=sampleCurveX(t2);if(abs(x2-x)<epsilon){return t2;}
if(x>x2){t0=t2;}else{t1=t2;}
t2=(t1-t0)/2+t0;}
return t2;}
return solve(t,1/(200*duration));}
elproto.onAnimation=function(f){this._run=f||0;return this;};elproto.animate=function(params,ms,easing,callback){var element=this;element.timeouts=element.timeouts||[];if(R.is(easing,"function")||!easing){callback=easing||null;}
if(element.removed){callback&&callback.call(element);return element;}
var from={},to={},animateable=false,diff={};for(var attr in params)if(params[has](attr)){if(availableAnimAttrs[has](attr)||element.paper.customAttributes[has](attr)){animateable=true;from[attr]=element.attr(attr);(from[attr]==null)&&(from[attr]=availableAttrs[attr]);to[attr]=params[attr];switch(availableAnimAttrs[attr]){case"along":var len=getTotalLength(params[attr]);var point=getPointAtLength(params[attr],len*!!params.back);var bb=element.getBBox();diff[attr]=len/ms;diff.tx=bb.x;diff.ty=bb.y;diff.sx=point.x;diff.sy=point.y;to.rot=params.rot;to.back=params.back;to.len=len;params.rot&&(diff.r=toFloat(element.rotate())||0);break;case nu:diff[attr]=(to[attr]-from[attr])/ms;break;case"colour":from[attr]=R.getRGB(from[attr]);var toColour=R.getRGB(to[attr]);diff[attr]={r:(toColour.r-from[attr].r)/ms,g:(toColour.g-from[attr].g)/ms,b:(toColour.b-from[attr].b)/ms};break;case"path":var pathes=path2curve(from[attr],to[attr]);from[attr]=pathes[0];var toPath=pathes[1];diff[attr]=[];for(var i=0,ii=from[attr][length];i<ii;i++){diff[attr][i]=[0];for(var j=1,jj=from[attr][i][length];j<jj;j++){diff[attr][i][j]=(toPath[i][j]-from[attr][i][j])/ms;}}
break;case"csv":var values=Str(params[attr])[split](separator),from2=Str(from[attr])[split](separator);switch(attr){case"translation":from[attr]=[0,0];diff[attr]=[values[0]/ms,values[1]/ms];break;case"rotation":from[attr]=(from2[1]==values[1]&&from2[2]==values[2])?from2:[0,values[1],values[2]];diff[attr]=[(values[0]-from[attr][0])/ms,0,0];break;case"scale":params[attr]=values;from[attr]=Str(from[attr])[split](separator);diff[attr]=[(values[0]-from[attr][0])/ms,(values[1]-from[attr][1])/ms,0,0];break;case"clip-rect":from[attr]=Str(from[attr])[split](separator);diff[attr]=[];i=4;while(i--){diff[attr][i]=(values[i]-from[attr][i])/ms;}
break;}
to[attr]=values;break;default:values=[].concat(params[attr]);from2=[].concat(from[attr]);diff[attr]=[];i=element.paper.customAttributes[attr][length];while(i--){diff[attr][i]=((values[i]||0)-(from2[i]||0))/ms;}
break;}}}
if(!animateable){var attrs=[],lastcall;for(var key in params)if(params[has](key)&&animKeyFrames.test(key)){attr={value:params[key]};key=="from"&&(key=0);key=="to"&&(key=100);attr.key=toInt(key,10);attrs.push(attr);}
attrs.sort(sortByKey);if(attrs[0].key){attrs.unshift({key:0,value:element.attrs});}
for(i=0,ii=attrs[length];i<ii;i++){keyframesRun(attrs[i].value,element,ms/100*attrs[i].key,ms/100*(attrs[i-1]&&attrs[i-1].key||0),attrs[i-1]&&attrs[i-1].value.callback);}
lastcall=attrs[attrs[length]-1].value.callback;if(lastcall){element.timeouts.push(setTimeout(function(){lastcall.call(element);},ms));}}else{var easyeasy=R.easing_formulas[easing];if(!easyeasy){easyeasy=Str(easing).match(bezierrg);if(easyeasy&&easyeasy[length]==5){var curve=easyeasy;easyeasy=function(t){return CubicBezierAtTime(t,+curve[1],+curve[2],+curve[3],+curve[4],ms);};}else{easyeasy=function(t){return t;};}}
animationElements.push({start:params.start||+new Date,ms:ms,easing:easyeasy,from:from,diff:diff,to:to,el:element,t:{x:0,y:0}});R.is(callback,"function")&&(element._ac=setTimeout(function(){callback.call(element);},ms));animationElements[length]==1&&setTimeout(animation);}
return this;};elproto.stop=function(){for(var i=0;i<animationElements.length;i++){animationElements[i].el.id==this.id&&animationElements.splice(i--,1);}
for(i=0,ii=this.timeouts&&this.timeouts.length;i<ii;i++){clearTimeout(this.timeouts[i]);}
this.timeouts=[];clearTimeout(this._ac);delete this._ac;return this;};elproto.translate=function(x,y){return this.attr({translation:x+" "+y});};elproto[toString]=function(){return"Rapha\xebl\u2019s object";};R.ae=animationElements;var Set=function(items){this.items=[];this[length]=0;this.type="set";if(items){for(var i=0,ii=items[length];i<ii;i++){if(items[i]&&(items[i].constructor==Element||items[i].constructor==Set)){this[this.items[length]]=this.items[this.items[length]]=items[i];this[length]++;}}}};Set[proto][push]=function(){var item,len;for(var i=0,ii=arguments[length];i<ii;i++){item=arguments[i];if(item&&(item.constructor==Element||item.constructor==Set)){len=this.items[length];this[len]=this.items[len]=item;this[length]++;}}
return this;};Set[proto].pop=function(){delete this[this[length]--];return this.items.pop();};for(var method in elproto)if(elproto[has](method)){Set[proto][method]=(function(methodname){return function(){for(var i=0,ii=this.items[length];i<ii;i++){this.items[i][methodname][apply](this.items[i],arguments);}
return this;};})(method);}
Set[proto].attr=function(name,value){if(name&&R.is(name,array)&&R.is(name[0],"object")){for(var j=0,jj=name[length];j<jj;j++){this.items[j].attr(name[j]);}}else{for(var i=0,ii=this.items[length];i<ii;i++){this.items[i].attr(name,value);}}
return this;};Set[proto].animate=function(params,ms,easing,callback){(R.is(easing,"function")||!easing)&&(callback=easing||null);var len=this.items[length],i=len,item,set=this,collector;callback&&(collector=function(){!--len&&callback.call(set);});easing=R.is(easing,string)?easing:collector;item=this.items[--i].animate(params,ms,easing,collector);while(i--){this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(item,params,ms,easing,collector);}
return this;};Set[proto].insertAfter=function(el){var i=this.items[length];while(i--){this.items[i].insertAfter(el);}
return this;};Set[proto].getBBox=function(){var x=[],y=[],w=[],h=[];for(var i=this.items[length];i--;){var box=this.items[i].getBBox();x[push](box.x);y[push](box.y);w[push](box.x+box.width);h[push](box.y+box.height);}
x=mmin[apply](0,x);y=mmin[apply](0,y);return{x:x,y:y,width:mmax[apply](0,w)-x,height:mmax[apply](0,h)-y};};Set[proto].clone=function(s){s=new Set;for(var i=0,ii=this.items[length];i<ii;i++){s[push](this.items[i].clone());}
return s;};R.registerFont=function(font){if(!font.face){return font;}
this.fonts=this.fonts||{};var fontcopy={w:font.w,face:{},glyphs:{}},family=font.face["font-family"];for(var prop in font.face)if(font.face[has](prop)){fontcopy.face[prop]=font.face[prop];}
if(this.fonts[family]){this.fonts[family][push](fontcopy);}else{this.fonts[family]=[fontcopy];}
if(!font.svg){fontcopy.face["units-per-em"]=toInt(font.face["units-per-em"],10);for(var glyph in font.glyphs)if(font.glyphs[has](glyph)){var path=font.glyphs[glyph];fontcopy.glyphs[glyph]={w:path.w,k:{},d:path.d&&"M"+path.d[rp](/[mlcxtrv]/g,function(command){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[command]||"M";})+"z"};if(path.k){for(var k in path.k)if(path[has](k)){fontcopy.glyphs[glyph].k[k]=path.k[k];}}}}
return font;};paperproto.getFont=function(family,weight,style,stretch){stretch=stretch||"normal";style=style||"normal";weight=+weight||{normal:400,bold:700,lighter:300,bolder:800}[weight]||400;if(!R.fonts){return;}
var font=R.fonts[family];if(!font){var name=new RegExp("(^|\\s)"+family[rp](/[^\w\d\s+!~.:_-]/g,E)+"(\\s|$)","i");for(var fontName in R.fonts)if(R.fonts[has](fontName)){if(name.test(fontName)){font=R.fonts[fontName];break;}}}
var thefont;if(font){for(var i=0,ii=font[length];i<ii;i++){thefont=font[i];if(thefont.face["font-weight"]==weight&&(thefont.face["font-style"]==style||!thefont.face["font-style"])&&thefont.face["font-stretch"]==stretch){break;}}}
return thefont;};paperproto.print=function(x,y,string,font,size,origin,letter_spacing){origin=origin||"middle";letter_spacing=mmax(mmin(letter_spacing||0,1),-1);var out=this.set(),letters=Str(string)[split](E),shift=0,path=E,scale;R.is(font,string)&&(font=this.getFont(font));if(font){scale=(size||16)/font.face["units-per-em"];var bb=font.face.bbox.split(separator),top=+bb[0],height=+bb[1]+(origin=="baseline"?bb[3]-bb[1]+(+font.face.descent):(bb[3]-bb[1])/2);for(var i=0,ii=letters[length];i<ii;i++){var prev=i&&font.glyphs[letters[i-1]]||{},curr=font.glyphs[letters[i]];shift+=i?(prev.w||font.w)+(prev.k&&prev.k[letters[i]]||0)+(font.w*letter_spacing):0;curr&&curr.d&&out[push](this.path(curr.d).attr({fill:"#000",stroke:"none",translation:[shift,0]}));}
out.scale(scale,scale,top,height).translate(x-top,y-height);}
return out;};R.format=function(token,params){var args=R.is(params,array)?[0][concat](params):arguments;token&&R.is(token,string)&&args[length]-1&&(token=token[rp](formatrg,function(str,i){return args[++i]==null?E:args[i];}));return token||E;};R.ninja=function(){oldRaphael.was?(win.Raphael=oldRaphael.is):delete Raphael;return R;};R.el=elproto;R.st=Set[proto];oldRaphael.was?(win.Raphael=R):(Raphael=R);})();

Raphael.fn.serialize={json:function(){var paper=this;var svgdata=[];for(var node=paper.bottom;node!=null;node=node.next){if(node&&node.type){switch(node.type){case"image":var object={type:node.type,width:node.attrs['width'],height:node.attrs['height'],x:node.attrs['x'],y:node.attrs['y'],src:node.attrs['src'],transform:node.transformations?node.transformations.join(' '):''}
break;case"circle":var object={type:node.type,r:node.attrs['r'],cx:node.attrs['cx'],cy:node.attrs['cy'],stroke:node.attrs['stroke']===0?'none':node.attrs['stroke'],'stroke-width':node.attrs['stroke-width'],fill:node.attrs['fill']}
break;case"ellipse":var object={type:node.type,rx:node.attrs['rx'],ry:node.attrs['ry'],cx:node.attrs['cx'],cy:node.attrs['cy'],stroke:node.attrs['stroke']===0?'none':node.attrs['stroke'],'stroke-width':node.attrs['stroke-width'],fill:node.attrs['fill']}
break;case"rect":var object={type:node.type,x:node.attrs['x'],y:node.attrs['y'],width:node.attrs['width'],height:node.attrs['height'],stroke:node.attrs['stroke']===0?'none':node.attrs['stroke'],'stroke-width':node.attrs['stroke-width'],fill:node.attrs['fill']}
break;case"text":var object={type:node.type,font:node.attrs['font'],'font-family':node.attrs['font-family'],'font-size':node.attrs['font-size'],stroke:node.attrs['stroke']===0?'none':node.attrs['stroke'],fill:node.attrs['fill']===0?'none':node.attrs['fill'],'stroke-width':node.attrs['stroke-width'],x:node.attrs['x'],y:node.attrs['y'],text:node.attrs['text'],'text-anchor':node.attrs['text-anchor']||'middle',transform:node.transformations?node.transformations.join(' '):''}
if(Ext.isIE&&(object.transform==='')&&node['_'].rt&&(node['_'].rt.deg!==0)){object.transform='rotate(';object.transform+=node['_'].rt.deg;object.transform+=' ';object.transform+=node['_'].rt.cx;object.transform+=' ';object.transform+=node['_'].rt.cy;object.transform+=')';}
break;case"path":var path="";var index1,index2,group,value,patharr;patharr=node.attrs['path'];if(typeof patharr=='string'){patharr=Raphael.parsePathString(patharr);}
for(index1 in patharr){group=patharr[index1];for(var index2 in group){value=group[index2]
if(typeof value=='function'){continue;}
if(index2<1){path+=value;}else{if(index2==(group.length-1)){path+=value;}else{path+=value+',';}}}}
var object={type:node.type,fill:node.attrs['fill'],opacity:node.attrs['opacity'],translation:node.attrs['translation'],scale:node.attrs['scale'],path:path,stroke:node.attrs['stroke']===0?'none':node.attrs['stroke'],'stroke-width':node.attrs['stroke-width'],transform:node.transformations?node.transformations.join(' '):''}}
if(object){svgdata.push(object);}}}
return svgdata;}}

FigtreeWeb.Widget.Raphael.Chart=Ext.extend(Ext.BoxComponent,{autoEl:null,width:200,height:200,values:null,labels:null,colours:null,hues:null,animate:true,clickParams:null,titleHeight:9,title:null,canvas:null,canvasWidth:0,canvasHeight:0,margins:null,labelHeight:10,isStatic:false,cursor:'pointer',initComponent:function(){this.autoEl={};this.hues=[.6,.2,.05,.1333,.75,0];FigtreeWeb.Widget.Raphael.Chart.superclass.initComponent.apply(this,arguments);this.colours=(this.colours||'#FAE16B,#82B16A,#779DBF,#907A52,#EB8953,#8A8D82,#D6707B,#F3C01C,#3D8128,#205F9A,#63522B,#DC5313,#5D645A,#BC1C39').split(',');this.margins=this.margins||5;if(this.isStatic){this.cursor='auto';}},click:function(params,key,label){if(!this.isStatic){this.fireEvent('click',params,key,label);}},autoColours:function(hues){var c=[];for(var i=0;i<15;i++){if(i<hues.length){c.push('hsb('+hues[i]+', .75, .75)');}else{c.push('hsb('+hues[i-hues.length]+', 1, .5)');}}
return c;},sumArray:function(a){var sum=0;for(var i=0;i<a.length;i++){sum+=a[i];}
return sum;},round:function(num,places){return Math.round(num*Math.pow(10,places))/Math.pow(10,places);},percent:function(num,total){return this.round((num/total)*100,2)+'%';},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('type','svg');var cdata=document.createElement('CDATA');var printJSON={width:this.canvasWidth,height:this.canvasHeight,items:this.canvas.serialize.json()};cdata.innerHTML=Ext.util.JSON.encode(printJSON);el.appendChild(cdata);parent.appendChild(el);return el;},drawTitle:function(canvas,x,y){var title=canvas.text(x,y,this.title);title.attr({'font-family':'Arial','font-size':this.titleHeight+"px"});if(Raphael.type!=='VML'){title.attr({'font-weight':'bold'});}}});Ext.reg('fw-raphael-chart',FigtreeWeb.Widget.Raphael.Chart);

FigtreeWeb.Widget.Raphael.BarChart=Ext.extend(FigtreeWeb.Widget.Raphael.Chart,{maxLabelLength:20,labelRotateAngle:30,displayValues:true,scale:true,afterRender:function(){FigtreeWeb.Widget.Raphael.BarChart.superclass.afterRender.apply(this,arguments);var width=this.getEl().getWidth(true);var height=this.getEl().getHeight(true);var barColour=this.barLineColour||this.colours[Math.floor(Math.random()*this.colours.length)];this.barWidth=this.barWidth||((width-(this.margins*2)-(10*(this.values.length-1)))/this.values.length);var R=new Raphael(this.getEl().id,width,height);this.labelElements=[];var drawAreaInfo=this.drawLabels(R,width,height);var drawAreaHeight=height-(this.margins*2)-this.labelHeight-drawAreaInfo.labelHeight;drawAreaHeight-=(this.displayValues)?10:0;var daStartY=height-this.margins-drawAreaInfo.labelHeight;var daStartX=this.margins+drawAreaInfo.shift;var maxValue=Math.max.apply(Math,this.values);if(maxValue===0){maxValue=1;}
if(this.title){drawAreaHeight-=this.titleHeight;this.drawTitle(R,(width/2),(this.margins+(this.titleHeight/2)));}
var ratio=drawAreaHeight/maxValue;var barGap=drawAreaInfo.barGap;var total=this.sumArray(this.values)
var val,label,pct,x,y,x2,y2,w,h,bar,fillColour;this.bars=[];for(var i=0;i<this.values.length;i++){val=this.values[i];label=this.labels[i];h=val*ratio;w=this.barWidth;x=daStartX+(i*(barGap+this.barWidth));y=daStartY-h;pct=this.percent(val,total);bar=R.rect(x,y,w,h);fillColour=((this.sameColourBarLine)?barColour:this.colours[i%this.colours.length]);bar.attr({fill:fillColour,stroke:'none',cursor:this.cursor,title:label+' ('+val+')'});if(!this.isStatic){bar.mouseover(function(){this.attr({scale:'1.2 1.0'});});bar.mouseout(function(){this.attr({scale:'1.0 1.0'});});}
this.bars.push(bar);bar.click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));if(this.displayValues&&!/^&nbsp;.$/.test(label)){label=R.text(x+(this.barWidth/2),y-(this.labelHeight/2),val);label.click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));label.attr({'font-family':'Arial','font-size':this.labelHeight+"px",cursor:this.cursor});this.labelElements.push(label);}}
if(this.scale){this.drawScale(R,daStartY,ratio,width);}
this.canvas=R;this.canvasWidth=width;this.canvasHeight=height;},drawScale:function(r,startY,ratio,width){var maxValue=Math.max.apply(Math,this.values);var scale=1;var numLines;while((numLines=Math.round(maxValue/scale))>20){scale*=10;}
var every=1;if(numLines>5){every=2}
if(numLines>10){every=5}
var y,path,i=0,lineValue=0,startX=String(maxValue).length*10;while(i<numLines){y=startY-(lineValue*ratio);if(((numLines-(i+1))%every)==0){r.text(2,y+((Ext.isIE7||Ext.isIE8)?3:0),lineValue).attr({"text-anchor":"start"});}
path='M'+startX+' '+y+'L'+width+' '+y;r.path(path).attr({stroke:'#C0C0C0'}).toBack();i++
lineValue=scale*i;}},drawLabels:function(R,width,height){var daWidth=width-(this.margins*2);var xStart=this.margins;var yStart=height-this.margins;var barGap=(daWidth-(this.values.length*this.barWidth))/((this.values.length-1)||1);var maxLabelHeight=0;var shift=0;var x,y,text;var labels=[];for(var i=0;i<this.labels.length;i++){text=this.labels[i];if(text.length>this.maxLabelLength){text=text.substring(0,(this.maxLabelLength-3))+"...";}
x=xStart+(i*(barGap+this.barWidth))+(this.barWidth/2);y=yStart-(this.labelHeight/2);labels.push(R.text(x,y,text));labels[i].click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));labels[i].attr({'font-family':'Arial','font-size':this.labelHeight+"px",cursor:this.cursor});if(/^&nbsp;.$/.test(text)){labels[i].hide();}}
var rotate=false;var box,box2;for(var i=0;i<labels.length;i++){box=labels[i].getBBox();if(!labels[i+1]){rotate=((box.x+box.width)>daWidth);}else{box2=labels[i+1].getBBox();if(((box.x+box.width)>(box2.x))||((box.x-box.width)<0)){rotate=true;break;}}}
if(rotate){var rotateAngle=this.labelRotateAngle;var labelHeight,labelWidth;for(var i=0;i<labels.length;i++){box=labels[i].getBBox();x=(box.width/2)*-1;labels[i].translate(x,0);box=labels[i].getBBox();labels[i].rotate((rotateAngle*-1),box.x+box.width,box.y);labelHeight=Math.sin(Raphael.rad(rotateAngle))*box.width;if(labelHeight>maxLabelHeight){maxLabelHeight=labelHeight;}}
for(var i=0;i<labels.length;i++){labels[i].translate(0,(maxLabelHeight*-1));}
for(var i=0;i<labels.length;i++){box=labels[i].getBBox();if((0-box.x)>shift){shift=(0-box.x);}}
if(shift>0){xStart+=shift;daWidth-=shift;barGap=(daWidth-(this.values.length*this.barWidth))/((this.values.length-1)||1);for(var i=0;i<labels.length;i++){box=labels[i].getBBox();x=xStart+(i*(barGap+this.barWidth))+(this.barWidth/2);x-=box.width;labels[i].translate(x-box.x,0);}}}
this.labelElements=labels;maxLabelHeight+=this.labelHeight+2;return{barGap:barGap,labelHeight:maxLabelHeight,shift:shift}},destroy:function(){if(this.bars){for(var i=0;i<this.bars.length;i++){this.bars[i].unclick();this.bars[i].unmouseover();this.bars[i].unmouseout();delete this.bars[i];}
for(var i=0;i<this.labelElements.length;i++){this.labelElements[i].unclick();}
delete this.bars;}
FigtreeWeb.Widget.Raphael.BarChart.superclass.destroy.call(this);}});Ext.reg('fw-raphael-barchart',FigtreeWeb.Widget.Raphael.BarChart);

FigtreeWeb.Widget.Raphael.LineChart=Ext.extend(FigtreeWeb.Widget.Raphael.BarChart,{afterRender:function(){FigtreeWeb.Widget.Raphael.LineChart.superclass.afterRender.apply(this,arguments);var width=this.getEl().getWidth(true);var height=this.getEl().getHeight(true);var pointColour=this.barLineColour||this.colours[Math.floor(Math.random()*this.colours.length)];this.barWidth=this.barWidth||((width-(this.margins*2)-(10*(this.values.length-1)))/this.values.length);var R=new Raphael(this.getEl().id,width,height);var drawAreaInfo=this.drawLabels(R,width,height);var drawAreaHeight=height-(this.margins*2)-this.labelHeight-drawAreaInfo.labelHeight;drawAreaHeight-=(this.displayValues)?10:0;var daStartY=height-this.margins-drawAreaInfo.labelHeight;var daStartX=this.margins+drawAreaInfo.shift;var maxValue=Math.max.apply(Math,this.values);if(maxValue===0){maxValue=1;}
if(this.title){drawAreaHeight-=this.titleHeight;this.drawTitle(R,(width/2),(this.margins+(this.titleHeight/2)));}
var ratio=drawAreaHeight/maxValue;var barGap=drawAreaInfo.barGap;var total=this.sumArray(this.values);var val,label,pct,x,y,w,h,path,point,pointColour;this.points=[];for(var i=0;i<this.values.length;i++){val=this.values[i];label=this.labels[i];h=val*ratio;w=this.barWidth;x=daStartX+(i*(barGap+this.barWidth))+(w/2);y=daStartY-h;pct=this.percent(val,total);if(i===0){path='M'+x+' '+y;}
path+='L'+x+' '+y;pointColour=((this.sameColourBarLine)?pointColour:this.colours[i%this.colours.length]);point=R.circle(x,y,5).attr({fill:pointColour,title:label+' ('+val+')',cursor:this.cursor,stroke:pointColour});point.click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));if(!this.isStatic){point.mouseover(function(){this.attr({scale:'1.5 1.5'});});point.mouseout(function(){this.attr({scale:'1.0 1.0'});});}
this.points.push(point);if(this.displayValues){R.text(x,y-(this.labelHeight/2)-5,val).toFront();}}
this.path=R.path(path).attr({stroke:'#C0C0C0'});this.path.toBack();if(this.scale){this.drawScale(R,daStartY,ratio,width);}
this.canvas=R;this.canvasWidth=width;this.canvasHeight=height;},destroy:function(){if(this.points){for(var i=0;i<this.points.length;i++){this.points[i].unclick();this.points[i].unmouseover();this.points[i].unmouseout();delete this.points[i];}
delete this.points;}
if(this.path){delete this.path;}
FigtreeWeb.Widget.Raphael.BarChart.superclass.destroy.call(this);}});Ext.reg('fw-raphael-linechart',FigtreeWeb.Widget.Raphael.LineChart);

FigtreeWeb.Widget.Raphael.PieChart=Ext.extend(FigtreeWeb.Widget.Raphael.Chart,{cx:0,cy:0,radius:0,emptyText:null,legend:false,legendPos:'east',maxLabelLength:40,initComponent:function(){FigtreeWeb.Widget.Raphael.PieChart.superclass.initComponent.apply(this,arguments);this.emptyText=FigtreeWeb.app.translate('empty_pie');},afterRender:function(){FigtreeWeb.Widget.Raphael.PieChart.superclass.afterRender.apply(this,arguments);var width=this.getEl().getWidth(true);var height=this.getEl().getHeight(true);var R=new Raphael(this.getEl().id,width,height);if(!this.title){this.titleHeight=0;}
width-=(this.margins*2);height-=(this.margins*2)-(this.titleHeight/2);var cx=this.cx||(this.margins+(width/2));var cy=this.cy||(this.margins+(this.titleHeight/2)+(height/2));var r=this.radius||((((width>=height)?height:width)/2));var values=this.values;var labels=this.labels;var keys=this.keys;var total=this.sumArray(values);var angle=0;var rad=(Math.PI/180);var labelAttrs={fill:'#000','text-anchor':'middle'};if(this.legend&&(total!==0)){var alterations=this.drawLegend(R,width,height);if(!this.cx){cx=alterations.cx;}
if(!this.cy){cy=alterations.cy;}
if(!this.radius){r=alterations.r;}}else{var labelDelta=r*0.25;if(!this.radius){r-=labelDelta;}}
this.cx=cx;this.cy=cy;this.segments=[];if(this.title){this.drawTitle(R,(this.getEl().getWidth(true)/2),(this.margins+(this.titleHeight/2)));}
if(total===0){R.circle(cx,cy,r).attr({fill:'#E0E0E0',stroke:'#E0E0E0'});var emptyText=R.text(cx,cy,this.emptyText);emptyText.attr({font:this.titleHeight+"px Tahoma",fill:'#808080'});}else{var singleSlice=true;for(var i=0;i<values.length;i++){if(values[i]!==0&&(values[i]!==total)){singleSlice=false;break;}}
for(var i=0;i<values.length;i++){var value=values[i];var label=labels[i];var title=label;if(label.length>this.maxLabelLength){label=label.substring(0,(this.maxLabelLength-3))+"...";}
var angleInc=((singleSlice)?359.99:360)*(value/total);var endAngle=angle+angleInc;var x1=cx+r*Math.cos(-angle*rad);var x2=cx+r*Math.cos(-endAngle*rad);var y1=cy+r*Math.sin(-angle*rad);var y2=cy+r*Math.sin(-endAngle*rad);var pct=this.percent(value,total);var segmentAttrs={fill:this.colours[i%this.colours.length],stroke:'none','stroke-width':0.5,cursor:this.cursor,title:title+' ('+pct+')'};var segment=R.path(['M',cx,cy,'L',x1,y1,'A',r,r,0,+(endAngle-angle>180),0,x2,y2,'z']).attr(segmentAttrs);segment.click(this.click.createDelegate(this,[this.clickParams,keys[i],label]));this.segments.push(segment);if(this.legend){var inFn=(function(i){this.segments[i].attr({scale:[1.05,1.05,this.cx,this.cy]});this.legend[i][0].attr({scale:[1.3,1.3]});this.legend[i][1].attr({"font-weight":(Raphael.type!=='VML')?'bold':'normal',"font-size":"12px"});}).createDelegate(this,[i,cx,cy]);var outFn=(function(i,cx,cy){this.segments[i].attr({scale:[1.0,1.0,this.cx,this.cy]});this.legend[i][0].attr({scale:[1.0,1.0]});this.legend[i][1].attr({"font-weight":"normal","font-size":"10px"});}).createDelegate(this,[i]);if(!this.isStatic){segment.mouseover(inFn);segment.mouseout(outFn);this.legend[i].mouseover(inFn);this.legend[i].mouseout(outFn);}}else{if(!this.isStatic){segment.mouseover(function(){this.attr({scale:[1.05,1.05,cx,cy]});});segment.mouseout(function(){this.attr({scale:[1.0,1.0,cx,cy]});});}
var labelAngle=angle+(angleInc/2);var lx=(cx+(r+labelDelta)*Math.cos(-labelAngle*rad));var ly=(cy+(r+labelDelta)*Math.sin(-labelAngle*rad));var l=R.text(lx,ly,label).attr(Ext.apply(labelAttrs,{cursor:this.cursor,title:title+' ('+pct+')'}));l.click(this.click.createDelegate(this,[this.clickParams,keys[i],label]));}
angle+=angleInc;}}
this.canvas=R;this.canvasWidth=this.width;this.canvasHeight=this.height;},drawLegend:function(R,width,height){var value,label,title,pct,txt,cir,lb,lx=0,ly=0,lh=ly+10,total=this.sumArray(this.values);this.legend=R.set();for(var i=0;i<this.values.length;i++){value=this.values[i];label=(this.labels[i]=='')?'.':this.labels[i];title=label;pct=this.percent(value,total);if(label.length>this.maxLabelLength){label=label.substring(0,(this.maxLabelLength-3))+"...";}
this.legend.push(R.set());this.legend[i].push(cir=R.circle(lx+5,lh,5).attr({fill:this.colours[i%this.colours.length],stroke:'none','stroke-width':0.5,cursor:this.cursor,title:title+' ('+pct+')'}));this.legend[i].push(txt=R.text(lx+20,lh+((Ext.isIE7||Ext.isIE8)?3:0),label).attr({fill:'#000',cursor:this.cursor,title:title+' ('+pct+')',"text-anchor":"start"}));this.legend[i].click(this.click.createDelegate(this,[this.clickParams,this.keys[i],label]));lh+=txt.getBBox().height*1.2;}
lb=this.legend.getBBox();var startX,availableWidth,startY,availableHeight,cx,cy,r;if(this.legendPos=='west'){this.legend.translate(this.margins,(this.getEl().getHeight(true)/2)-(lb.height/2));lb.width+=this.margins;startX=this.margins+lb.width;availableWidth=width-lb.width;startY=this.margins+(this.titleHeight/2);availableHeight=height;cx=(startX+(availableWidth/2));cy=(startY+(availableHeight/2));r=(((availableWidth>=availableHeight)?availableHeight:availableWidth)/2);r-=r*0.15;if(((cx-r)-startX)>15){this.legend.translate((((cx-r)-startX)-15),0);}}else if(this.legendPos=='east'){this.legend.translate(this.getEl().getWidth(true)-this.margins-lb.width,(this.getEl().getHeight(true)/2)-(lb.height/2));lb.width+=this.margins;startX=this.margins;availableWidth=width-lb.width;startY=this.margins+(this.titleHeight/2);availableHeight=height;cx=(startX+(availableWidth/2));cy=(startY+(availableHeight/2));r=(((availableWidth>=availableHeight)?availableHeight:availableWidth)/2);r-=r*0.15;lb=this.legend.getBBox();if((lb.x-(cx+r))>15){this.legend.translate(((lb.x-(cx+r))-15)*-1,0);}}else if(this.legendPos=='south'){this.legend.translate((this.getEl().getWidth(true)/2)-(lb.width/2),this.getEl().getHeight(true)-(this.margins*2)-lb.height);lb.height+=(this.margins*2);startX=this.margins;availableWidth=width;startY=this.margins+(this.titleHeight/2);availableHeight=height-lb.height;cx=(startX+(availableWidth/2));cy=(startY+(availableHeight/2));r=(((availableWidth>=availableHeight)?availableHeight:availableWidth)/2);r-=r*0.15;lb=this.legend.getBBox();if((lb.y-(cy+r))>15){this.legend.translate(0,((lb.y-(cy+r))-15)*-1);}}else if(this.legendPos=='north'){this.legend.translate((this.getEl().getWidth(true)/2)-(lb.width/2),this.margins+(this.titleHeight/2)+this.margins);lb.height+=this.margins;startX=this.margins;availableWidth=width;startY=(this.margins*2)+(this.titleHeight/2)+lb.height;availableHeight=height-lb.height;cx=(startX+(availableWidth/2));cy=(startY+(availableHeight/2));r=(((availableWidth>=availableHeight)?availableHeight:availableWidth)/2);r-=r*0.15;if(((cy-r)-startY)>15){this.legend.translate(0,(((cy-r)-startY)-15));}}
return{cx:cx,cy:cy,r:r}},destroy:function(){if(this.segments){for(var i=0;i<this.segments.length;i++){this.segments[i].unclick();this.segments[i].unmouseover();this.segments[i].unmouseout();if(this.legend){this.legend[i].unclick();this.legend[i].unmouseover();this.legend[i].unmouseout();}
delete this.segments[i];}
delete this.segments;}
FigtreeWeb.Widget.Raphael.PieChart.superclass.destroy.call(this);}});Ext.reg('fw-raphael-piechart',FigtreeWeb.Widget.Raphael.PieChart);

FigtreeWeb.Widget.Raphael.Metre=Ext.extend(FigtreeWeb.Widget.Raphael.Chart,{backgroundColour:'#E5E5E5',pointerColour:'#707070',initComponent:function(){FigtreeWeb.Widget.Raphael.Metre.superclass.initComponent.apply(this,arguments);this.emptyText=FigtreeWeb.app.translate('empty_pie');this.scale=[0,10,20,30,40,50,60,70,80,90,100];this.labels=['0','','20','','40','','60','','80','','100'];this.keys=['a','b','c','d','e','f','g','a','b','c','d','e'];this.value=Math.floor(Math.random()*101);this.colours='#4B9F5B,#4B9F5B,#4B9F5B,#4B9F5B,#FCC514,#FCC514,#FCC514,#FCC514,#FCC514,#EE5138,#EE5138'.split(',');this.targetValue=Math.floor(Math.random()*101);},afterRender:function(){FigtreeWeb.Widget.Raphael.Metre.superclass.afterRender.apply(this,arguments);this.availableWidth=this.getEl().getWidth(true);this.availableHeight=this.getEl().getHeight(true);this.canvas=new Raphael(this.getEl().id,this.availableWidth,this.availableHeight);if(!this.title){this.titleHeight=0;}else{this.drawTitle(this.canvas,(this.availableWidth/2),(this.margins+(this.titleHeight/2)));}
this.availableWidth-=(this.margins*2);this.availableHeight-=(this.margins*2)+this.titleHeight;this.maxRadius=this.availableWidth/2;this.bumpRadius=this.maxRadius*0.15;if((this.maxRadius+this.bumpRadius)>this.availableHeight){this.maxRadius=this.availableHeight*0.85;this.bumpRadius=this.availableHeight*0.15;}
this.drawBackground();this.drawSegments();this.drawMarkers();this.drawLabels();this.drawPointer();if(this.targetValue){this.drawTargetPointer();}},drawBackground:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;var cx=(this.margins+(this.availableWidth/2));var cy=this.availableHeight+this.margins+this.titleHeight;var path=['M',cx-r,cy-(bumpRadius-(bumpRadius*0.4)),'L',cx+r,cy-(bumpRadius-(bumpRadius*0.4)),'L',cx+r,cy-bumpRadius,'A',r,r,'1','0','0',cx-r,cy-bumpRadius,'Z'];this.background=this.canvas.path(path);this.background.attr({stroke:'none',fill:this.backgroundColour});cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;var circle=this.canvas.circle(cx,cy,bumpRadius);circle.attr({stroke:'none',fill:this.backgroundColour});},drawSegments:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;var r2=r;r*=0.9;var scale=this.scale;var max=Math.max.apply(Math,scale);var value=0;var angleInc,endAngle,x1,x2,y1,y2,x3,x3,y4,y4;var angle=0;var rad=(Math.PI/180);var cx=(this.margins+(this.availableWidth/2));var cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;var segmentAttrs={'stroke':'none'};this.segments=[];for(var i=1;i<scale.length;i++){value=scale[i];value=(scale[i]-scale[i-1]);angleInc=180*(value/max);endAngle=angle+angleInc;x1=cx+(r*Math.cos((180-angle)*rad));x2=cx+(r*Math.cos((180-endAngle)*rad));y1=cy+(r*Math.sin(-(180-angle)*rad));y2=cy+(r*Math.sin(-(180-endAngle)*rad));x3=cx+((r-(r2*0.1))*Math.cos((180-angle)*rad));x4=cx+((r-(r2*0.1))*Math.cos((180-endAngle)*rad));y3=cy+((r-(r2*0.1))*Math.sin(-(180-angle)*rad));y4=cy+((r-(r2*0.1))*Math.sin(-(180-endAngle)*rad));var segment=this.canvas.path(['M',x1,y1,'A',r,r,'0','0','1',x2,y2,'L',x4,y4,'A',r,r,'0','0','0',x3,y3,'Z']);segmentAttrs.fill=this.colours[i%this.colours.length];segment.attr(segmentAttrs);this.segments.push(segment);angle+=angleInc;}},drawMarkers:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;var r2=(r*0.8)-2;r=(r*0.9)+2;var scale=this.scale;var max=Math.max.apply(Math,scale);var value;var x1,x2,y1,y2;var angle=0;var rad=(Math.PI/180);var cx=(this.margins+(this.availableWidth/2));var cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;var marker;for(var i=0;i<scale.length;i++){value=scale[i];if(i>0){value=(scale[i]-scale[i-1]);}
angle+=180*(value/max);x1=cx+(r*Math.cos((180-angle)*rad));x2=cx+(r2*Math.cos((180-angle)*rad));y1=cy+(r*Math.sin(-(180-angle)*rad));y2=cy+(r2*Math.sin(-(180-angle)*rad));marker=this.canvas.path(['M',x1,y1,'L',x2,y2]);marker.attr({'stroke-width':'4','stroke':this.backgroundColour});}},drawLabels:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;r*=0.8;r-=8;var scale=this.scale;var max=Math.max.apply(Math,scale);var labels=this.labels;var value,label;var x,y;var angle=0;var rad=(Math.PI/180);var cx=(this.margins+(this.availableWidth/2));var cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;for(var i=0;i<scale.length;i++){value=scale[i];if(i>0){value=(scale[i]-scale[i-1]);}
label=labels[i];angle+=180*(value/max);x=cx+(r*Math.cos((180-angle)*rad));y=cy+(r*Math.sin(-(180-angle)*rad));label=this.canvas.text(x,y,label);label.rotate(-(90-angle));label.attr({'font-family':'helvetica','font-weight':(Raphael.type!=='VML')?'bold':'normal','font-size':'12px'});}},drawPointer:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;r*=0.85;var scale=this.scale;var max=Math.max.apply(Math,scale);var cr=bumpRadius-5;var cx=(this.margins+(this.availableWidth/2));var cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;var angle,x,y,x1,y1,x2,y2;var rad=(Math.PI/180);angle=180-(180*(this.value/max));x=cx+r*Math.cos(angle*rad);y=cy+r*Math.sin(-angle*rad);angle+=90;x1=cx+(cr*0.3)*Math.cos(angle*rad);y1=cy+(cr*0.3)*Math.sin(-angle*rad);angle-=180;x2=cx+(cr*0.3)*Math.cos(angle*rad);y2=cy+(cr*0.3)*Math.sin(-angle*rad);this.pointer=this.canvas.path(['M',x1,y1,'L',x,y,x2,y2,'Z']);this.pointer.attr({stroke:'none',fill:this.pointerColour});var circle=this.canvas.circle(cx,cy,cr);circle.attr({stroke:'#000000',fill:'#F0F0F0'});var fill='#F0F0F0';for(var i=0;i<this.scale.length;i++){if((this.value>=this.scale[i])&&(!this.scale[i+1]||(this.value<this.scale[i+1]))){fill=this.colours[i%this.colours.length];break;}}
cr-=2;circle=this.canvas.circle(cx,cy,cr);circle.attr({stroke:'#000000',fill:fill});},drawTargetPointer:function(){var r=this.maxRadius;var bumpRadius=this.bumpRadius;var r2=r*0.06;r*=0.92;var scale=this.scale;var max=Math.max.apply(Math,scale);var cx=(this.margins+(this.availableWidth/2));var cy=(this.availableHeight+this.margins+this.titleHeight)-bumpRadius;var angle,x,y,x1,y1,x2,y2;var rad=(Math.PI/180);var value=this.targetValue
angle=180-(180*(value/max));x=cx+r*Math.cos(angle*rad);y=cy+r*Math.sin(-angle*rad);angle-=45;x1=x+r2*Math.cos(angle*rad);y1=y+r2*Math.sin(-angle*rad);angle+=90;x2=x+r2*Math.cos(angle*rad);y2=y+r2*Math.sin(-angle*rad);var pointer=this.canvas.path(['M',x1,y1,'L',x,y,x2,y2,'Z']);pointer.attr({stroke:'none',fill:'#000000'});}});Ext.reg('fw-raphael-metre',FigtreeWeb.Widget.Raphael.Metre);

FigtreeWeb.Widget.Raphael.RiskMatrix=Ext.extend(Ext.Container,{layout:'fit',isFormField:true,readOnly:false,width:'auto',height:'auto',autoEl:null,canvas:null,cells:null,marker:null,initComponent:function(){this.autoEl={};this.cells={};FigtreeWeb.Widget.Raphael.RiskMatrix.superclass.initComponent.apply(this,arguments);},onRender:function(){FigtreeWeb.Widget.Raphael.RiskMatrix.superclass.onRender.apply(this,arguments);this.canvas=new Raphael(this.el.id,this.width,this.height);var data=this.data,colours=this.colours,numRows=data.length,numCells=data[0].length,cellWidth=(this.width/numCells)-2,cellHeight=(this.height/numRows)-2,row=null,item=null,cell=null,x=0,y=0,cellAttr={stroke:'#000'},texts=[];if(!this.readOnly){cellAttr.cursor='pointer';}
for(var i=0;i<data.length;i++){row=data[i];x=0;for(var j=0;j<row.length;j++){item=row[j];if(i+j==0){x+=cellWidth;continue;}
if(item.text){texts.push(this.canvas.text((x+(cellWidth/2)),(y+(cellHeight/2)),item.text));}
cell=this.canvas.rect(x,y,cellWidth,cellHeight,5).attr(cellAttr);if(item.colour){cell.attr({fill:colours[item.colour]});}
if(item.value){if(!this.readOnly){cell.click(this.setValue.createDelegate(this,[item.value]));}
this.cells[item.value]=cell;}
x+=cellWidth;}
y+=cellHeight;}
FigtreeWeb.Widget.Raphael.Matrix.setFontSize(cellWidth-2,cellHeight-2,texts);},afterRender:function(){FigtreeWeb.Widget.Raphael.RiskMatrix.superclass.afterRender.apply(this,arguments);if(this.value){this.setValue(this.value);}},selectCell:function(cell,value){if(this.marker){this.marker.remove();}
this.marker=this.cross((cell.attrs.x+(cell.attrs.width/2)),(cell.attrs.y+(cell.attrs.height/2)),(cell.attrs.height/2.5));},cross:function(cx,cy,r){r=r/2.5;return this.canvas.path("M".concat(cx-r,",",cy,"l",[-r,-r,r,-r,r,r,r,-r,r,r,-r,r,r,r,-r,r,-r,-r,-r,r,-r,-r,"z"])).attr({fill:'#FFF'});},setValue:function(value){var cell=this.cells[value];if(cell){this.selectCell(cell,value);if(value!==this.value){this.value=value;this.fireEvent('change');}}},getValue:function(){return this.value;},destroy:function(){if(!this.readOnly){for(cell in this.cells){this.cells[cell].unclick();this.cells[cell].unmouseover();this.cells[cell].unmouseout();}}
FigtreeWeb.Widget.Raphael.RiskMatrix.superclass.destroy.apply(this,arguments);},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('type','svg');var cdata=document.createElement('CDATA');var printJSON={width:this.width+20,height:this.height+20,items:this.canvas.serialize.json()};cdata.innerHTML=Ext.util.JSON.encode(printJSON);el.appendChild(cdata);parent.appendChild(el);return el;}});Ext.reg('fw-raphael-riskmatrix',FigtreeWeb.Widget.Raphael.RiskMatrix);

FigtreeWeb.Widget.Raphael.Shape=Ext.extend(Ext.BoxComponent,{autoEl:null,shape:null,height:null,width:null,fill:null,hoverFill:null,stroke:null,strokeWidth:null,doHover:true,hoverStroke:null,opacity:null,hoverOpacity:null,rotation:null,text:null,textAlign:null,textSize:null,textFont:null,textColour:null,textWeight:null,canvas:null,initComponent:function(){this.autoEl={};FigtreeWeb.Widget.Raphael.Shape.superclass.initComponent.apply(this,arguments);this.addEvents({'click':true});if(this.text){this.text=this.text.replace(/\<br\>/i,'\n');}
if(this.textSize&&!/px\s*$/i.test(this.textSize)){this.textSize=this.textSize.trim()+'px';}},onRender:function(ct,pos){FigtreeWeb.Widget.Raphael.Shape.superclass.onRender.call(this,ct,pos);},getDefaultAttrs:function(){return{fill:this.fill,stroke:this.stroke,opacity:this.opacity,rotation:this.rotation,'stroke-width':this.strokeWidth};},getHoverAttrs:function(){return{fill:this.hoverFill,stroke:this.hoverStroke,opacity:this.hoverOpacity};},click:function(e){this.fireEvent('click',Ext.EventObject.setEvent(e));},mouseover:function(shape){if(this.doHover){this.shape.attr(this.getHoverAttrs());}},mouseout:function(shape){if(this.doHover){this.shape.attr(this.getDefaultAttrs());}},destroy:function(){if(this.rendered){if(this.shape){this.shape.unclick();this.shape.unmouseover();this.shape.unmouseout();}
if(this.text){this.text.unclick();this.text.unmouseover();this.text.unmouseout();}}
FigtreeWeb.Widget.Raphael.Shape.superclass.destroy.call(this);},createPDFPrintXML:function(parent){if(this.printable===false){return null;}
var el=document.createElement('pdfcolumn');el.setAttribute('type','svg')
var cdata=document.createElement('CDATA');var printJSON={width:this.width,height:this.height,items:this.canvas.serialize.json()};var shapesWithin=this.ownerCt.findBy(function(c){var thisSize=(this.rendered)?this.getSize():{width:this.width,height:this.height};var thisPos=(this.rendered)?this.getPosition():[this.x,this.y];var cSize=(c.rendered)?c.getSize():{width:c.width,height:c.height};var cPos=(c.rendered)?c.getPosition():[c.x,c.y];return((c!==this)&&(c.isXType('fw-raphael-shape')||c.isXType('fw-string'))&&thisPos[1]<=cPos[1]&&(thisPos[1]+thisSize.height)>=(cPos[1]+cSize.height)&&thisPos[0]<=cPos[0]&&(thisPos[0]+thisSize.width)>=(cPos[0]+cSize.width));},this);var shape,shapeJSON,thisSize,thisPos,shapeSize,shapePos,ff,fs,fw;for(var i=0;i<shapesWithin.length;i++){shape=shapesWithin[i];shape.printable=false;thisSize=(this.rendered)?this.getSize():{width:this.width,height:this.height};thisPos=(this.rendered)?this.getPosition():[this.x,this.y];shapeSize=(shape.rendered)?shape.getSize():{width:shape.width,height:shape.height};shapePos=(shape.rendered)?shape.getPosition():[shape.x,shape.y];ff=(shape.rendered)?shape.getEl().getStyle('font-family'):'';fs=(shape.rendered)?shape.getEl().getStyle('font-size'):'';fw=(shape.rendered)?shape.getEl().getStyle('font-weight'):'';if(shape.isXType('fw-string')){shapeJSON={type:'text',x:shapePos[0]-thisPos[0],y:shapePos[1]-thisPos[1]+(shapeSize.height/2),text:shape.initialConfig.text,'font-family':ff,'font-size':fs,'font-weight':fw};}else{shape.shape.translate(shapePos[0]-thisPos[0],shapePos[1]-thisPos[1]);shapeJSON=shape.canvas.serialize.json()[0];shape.shape.translate(-1*(shapePos[0]-thisPos[0]),-1*(shapePos[1]-thisPos[1]));}
printJSON.items.push(shapeJSON);}
cdata.innerHTML=Ext.util.JSON.encode(printJSON);el.appendChild(cdata);parent.appendChild(el);return el;},afterRender:function(){FigtreeWeb.Widget.Raphael.Shape.superclass.afterRender.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight();this.canvas=new Raphael(el.id,w,h);this.drawShape();if(this.shape){this.shape.click(this.click.createDelegate(this));this.shape.mouseover(this.mouseover.createDelegate(this));this.shape.mouseout(this.mouseout.createDelegate(this));if(this.hasListener('click')){this.shape.attr({cursor:'pointer'});}}
if(this.text){this.drawText();}},redraw:function(){if(!this.rendered){return;}
if(this.shape){this.shape.unclick();this.shape.unmouseover();this.shape.unmouseout();this.shape.remove();}
if(this.text){this.text.unclick();this.text.unmouseover();this.text.unmouseout();this.text.remove();this.text=this.initialConfig.text;}
var w=this.getEl().getWidth();var h=this.getEl().getHeight();this.canvas.setSize(w,h);this.drawShape();if(this.shape){this.shape.click(this.click.createDelegate(this));this.shape.mouseover(this.mouseover.createDelegate(this));this.shape.mouseout(this.mouseout.createDelegate(this));if(this.hasListener('click')){this.shape.attr({cursor:'pointer'});}}
if(this.text){this.drawText();}},drawText:function(text){var el=this.getEl(),x=el.getWidth()/2,y=el.getHeight()/2,textAnchor='middle';if(this.text){if(this.textAlign){if(this.textAlign=='left'){textAnchor='start';x=2;}else if(this.textAlign=='right'){textAnchor='end';x=this.getEl().getWidth()-2;}}
this.text=this.canvas.text(x,y,this.text).attr({'font-family':this.textFont,'font-size':this.textSize,'fill':this.textColour,'font-weight':this.textWeight,'text-anchor':textAnchor});this.text.click(this.click.createDelegate(this));this.text.mouseover(this.mouseover.createDelegate(this));this.text.mouseout(this.mouseout.createDelegate(this));if(this.hasListener('click')){this.text.attr({cursor:'pointer'});}}},drawShape:Ext.emptyFn,setText:function(text,attrs){if(this.rendered&&this.text){this.text.unclick();this.text.unmouseover();this.text.unmouseout();this.text.remove();}
this.text=text;if(attrs){this.textFont=attrs['font-family'];this.textSize=attrs['font-size'];this.textColour=attrs['fill'];this.textWeight=attrs['font-weight'];}
if(this.rendered){this.drawText();}}});Ext.reg('fw-raphael-shape',FigtreeWeb.Widget.Raphael.Shape);

FigtreeWeb.Widget.Raphael.Triangle=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Triangle.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Triangle.superclass.drawShape.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight(),sw=this.strokeWidth,wtswr=1+((sw/w)*10),htswr=1+((sw/h)*10),top=sw*wtswr,bottom=h-(sw*wtswr),left=sw*htswr,right=w-(sw*htswr),cx=w/2,path="M".concat([cx,top],"L",[left,bottom,right,bottom,"z"]);this.shape=this.canvas.path(path).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-triangle',FigtreeWeb.Widget.Raphael.Triangle);

FigtreeWeb.Widget.Raphael.Star=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Star.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Star.superclass.drawShape.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight(),sw=this.strokeWidth,cx=w/2,cy=h/2,r=((w>h)?cy:cx)-sw*2,r2=r*.382,rays=this.numRays||5,path=["M",cx,cy+r2,"L"],R;for(var i=1;i<rays*2;i++){R=i%2?r:r2;path=path.concat([(cx+R*Math.sin(i*Math.PI/rays)),(cy+R*Math.cos(i*Math.PI/rays))]);}
path.push("z");this.shape=this.canvas.path(path).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-star',FigtreeWeb.Widget.Raphael.Star);

FigtreeWeb.Widget.Raphael.Rectangle=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{cornerRadius:null,initComponent:function(){FigtreeWeb.Widget.Raphael.Rectangle.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Rectangle.superclass.drawShape.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight(),sw=this.strokeWidth;this.shape=this.canvas.rect(sw,sw,w-(sw*2),h-(sw*2),this.cornerRadius).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-rectangle',FigtreeWeb.Widget.Raphael.Rectangle);

FigtreeWeb.Widget.Raphael.Plus=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Plus.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Plus.superclass.drawShape.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight(),sw=this.strokeWidth,cx=w/2,cy=h/2,r=(((w>h)?cy:cx)/2)-sw/4,path="M".concat(cx-r/2,",",cy-r/2,"l",[0,-r,r,0,0,r,r,0,0,r,-r,0,0,r,-r,0,0,-r,-r,0,0,-r,"z"]);this.shape=this.canvas.path(path).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-plus',FigtreeWeb.Widget.Raphael.Plus);

FigtreeWeb.Widget.Raphael.Cross=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Cross.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Cross.superclass.drawShape.apply(this,arguments);var el=this.getEl(),w=el.getWidth(),h=el.getHeight(),sw=this.strokeWidth,cx=w/2,cy=h/2,r=(((w>h)?cy:cx)/2.5)-sw/4,path="M".concat(cx-r,",",cy,"l",[-r,-r,r,-r,r,r,r,-r,r,r,-r,r,r,r,-r,r,-r,-r,-r,r,-r,-r,"z"]);this.shape=this.canvas.path(path).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-cross',FigtreeWeb.Widget.Raphael.Cross);

FigtreeWeb.Widget.Raphael.Circle=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Circle.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Circle.superclass.drawShape.apply(this,arguments);var el=this.getEl(),sw=this.strokeWidth,w=el.getWidth(true)/2,h=el.getHeight(true)/2,rx=w-sw,ry=h-sw;this.shape=this.canvas.ellipse(w,h,rx,ry).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-circle',FigtreeWeb.Widget.Raphael.Circle);

FigtreeWeb.Widget.Raphael.Arrow=Ext.extend(FigtreeWeb.Widget.Raphael.Shape,{initComponent:function(){FigtreeWeb.Widget.Raphael.Arrow.superclass.initComponent.apply(this,arguments);},drawShape:function(){FigtreeWeb.Widget.Raphael.Arrow.superclass.drawShape.apply(this,arguments);var el=this.getEl(),sw=this.strokeWidth,w=el.getWidth(),h=el.getHeight();var centreX=w/2,centreY=h/2;var absAngle=function(angle){return(angle%=360)>=0?angle:(angle+360);};if((absAngle(this.rotation)>45&&absAngle(this.rotation)<135)||(absAngle(this.rotation)>225&&absAngle(this.rotation)<315)){var temp=h;h=w;w=temp;}
var path="M".concat([centreX-(w/2)+(sw*1.5),centreY-(h/2)+(h*.3)],"l",[w-(w*.6),0,0,-((h*.3)-(sw*1.5)),w-(w*.4)-(sw*3),(h/2)-(sw*1.5),-(w-(w*.4)-(sw*3)),(h/2)-(sw*1.5),0,-((h*.3)-(sw*1.5)),-(w-(w*.6)),0],"z");this.shape=this.canvas.path(path).attr(this.getDefaultAttrs());}});Ext.reg('fw-raphael-arrow',FigtreeWeb.Widget.Raphael.Arrow);

FigtreeWeb.Widget.Raphael.Matrix=Ext.extend(Ext.Container,{layout:'fit',isFormField:true,readOnly:false,width:'auto',height:'auto',autoEl:null,canvas:null,cells:null,texts:null,marker:null,titleHeight:9,initComponent:function(){this.autoEl={};this.cells={};this.texts={};FigtreeWeb.Widget.Raphael.Matrix.superclass.initComponent.apply(this,arguments);},afterRender:function(){FigtreeWeb.Widget.Raphael.Matrix.superclass.afterRender.apply(this,arguments);this.canvas=new Raphael(this.el.id,this.width,this.height);var data=this.data,colours=this.colours,numRows=data.length,numCells=data[0].length,row=null,item=null,cell=null,text=null,cellWidth=(this.width/numCells)-2,cellHeight,availHeight=this.height,x=0,y=0,cellAttr={stroke:'#000'};if(this.title){availHeight-=(this.titleHeight+10);y+=this.titleHeight+10;var title=this.canvas.text((this.width/2),5+(this.titleHeight/2),this.title);title.attr({'font-family':'Arial','font-size':this.titleHeight+"px"});if(Raphael.type!=='VML'){title.attr({'font-weight':'bold'});}}
if(this.summary){numRows++;}
cellHeight=(availHeight/numRows)-2;var texts=[];for(var i=0;i<data.length;i++){row=data[i];x=0;for(var j=0;j<row.length;j++){item=row[j];if(i+j==0){x+=cellWidth;continue;}
cell=this.canvas.rect(x,y,cellWidth,cellHeight,5);if(item.label){cell.attr({title:item.label});}
if(item.colour){cell.attr({fill:colours[item.colour]});}
if(item.text){text=this.canvas.text((x+(cellWidth/2)),(y+(cellHeight/2)),item.text);if(item.textColour){text.attr({fill:colours[item.textColour]});}
if(item.label){text.attr({title:item.label});}
texts.push(text);}
if(item.key){cell.attr({cursor:'pointer'});cell.click(this.onCellClick.createDelegate(this,[this.clickParams,item.key,item.label]));this.cells[item.key]=cell;if(item.text){text.attr({cursor:'pointer'});text.click(this.onCellClick.createDelegate(this,[this.clickParams,item.key,item.label]));this.texts[item.key]=text;}}
cell.attr(cellAttr);x+=cellWidth;}
y+=cellHeight;}
if(this.summary){var sumLen=this.summary.length,sumCelWidth=this.width/sumLen,sum=null,x=0;y+=5;for(var i=0;i<sumLen;i++){sum=this.summary[i];this.canvas.rect(x,y,sumCelWidth,cellHeight,5).attr({stroke:'#fff'});this.canvas.text((x+(sumCelWidth/2)),(y+(cellHeight/2)),sum.label+' = '+sum.count).attr({fill:'#000'})
x+=sumCelWidth;}}
FigtreeWeb.Widget.Raphael.Matrix.setFontSize(cellWidth-2,cellHeight-2,texts);},onCellClick:function(params,key,label){this.fireEvent('click',params,key,label);},destroy:function(){if(!this.readOnly){for(var cell in this.cells){this.cells[cell].unclick();}
for(var text in this.texts){this.texts[text].unclick();}}
FigtreeWeb.Widget.Raphael.Matrix.superclass.destroy.apply(this,arguments);},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('type','svg');var cdata=document.createElement('CDATA');var printJSON={width:this.width+20,height:this.height+20,items:this.canvas.serialize.json()};cdata.innerHTML=Ext.util.JSON.encode(printJSON);el.appendChild(cdata);parent.appendChild(el);return el;}});FigtreeWeb.Widget.Raphael.Matrix.setFontSize=function(maxWidth,maxHeight,texts,fontFamily){var longestText='',fontSize=0,tm=null;if(texts.length==0){return;}
var el=Ext.getBody().createChild({style:{'font-family':fontFamily||'Arial'},tag:'text'});tm=Ext.util.TextMetrics.createInstance(el);for(var i=0;i<texts.length;i++){if(tm.getWidth(texts[i].attrs.text)>tm.getWidth(longestText)){longestText=texts[i].attrs.text;}}
while(fontSize<100){el.setStyle({'font-size':fontSize+'px'});tm.bind(el);if((tm.getWidth(longestText)>=maxWidth)){fontSize-=1;break;}
fontSize+=1;}
for(var i=0;i<texts.length;i++){texts[i].attr({'font-size':fontSize+'px'});}
el.remove();return fontSize;};Ext.reg('fw-raphael-matrix',FigtreeWeb.Widget.Raphael.Matrix);

FigtreeWeb.Widget.Raphael.VerticalBarChart=Ext.extend(FigtreeWeb.Widget.Raphael.Chart,{labelHeight:10,barWidth:30,labelPadding:2,itemPadding:2,titlePadding:5,sameColourBarLine:false,barLineColour:false,canvas:null,scrollBarWidth:20,barElements:null,labelElements:null,canvasWidth:null,canvasHeight:null,initComponent:function(){FigtreeWeb.Widget.Raphael.VerticalBarChart.superclass.initComponent.apply(this,arguments);this.barLineColour=this.barLineColour||this.colours[Math.floor(Math.random()*this.colours.length)];this.barWidth=(this.barWidth||30);},afterRender:function(){FigtreeWeb.Widget.Raphael.VerticalBarChart.superclass.afterRender.apply(this,arguments);this.drawChart();},drawChart:function(){this.canvasWidth=this.getEl().getWidth(true);this.canvasHeight=this.getEl().getHeight(true);var titleHeight=0;var itemStartY=this.margins;if(this.title&&(this.title.trim().length>0)){titleHeight=this.titleHeight+this.titlePadding;itemStartY+=titleHeight;}
var drawHeight=(this.values.length*(this.labelHeight+this.labelPadding+this.barWidth+(this.itemPadding*2))+(this.margins*2)+titleHeight);this.ownerCt.body.setStyle({'overflow':'hidden'});if(drawHeight>this.canvasHeight){this.ownerCt.body.setStyle({'overflow-y':'scroll'});this.canvasHeight=drawHeight;this.canvasWidth-=this.scrollBarWidth;}
this.canvas=new Raphael(this.getEl().id,this.canvasWidth,this.canvasHeight);if(this.title){this.drawTitle(this.canvas,(this.canvasWidth/2),(this.margins+(this.titleHeight/2)));}
this.drawItems(itemStartY);},drawItems:function(itemStartY){var value;var label;var bar;var x=this.margins;var y=itemStartY;var width=this.canvasWidth-(this.margins*2);var barWidth;var fillColour;var maxValue=Math.max.apply(Math,this.values);if(maxValue===0){maxValue=1;}
var ratio=width/maxValue;this.labelElements=[];this.barElements=[];for(var i=0;i<this.values.length;i++){value=this.values[i];y+=this.itemPadding;label=this.labels[i]+' ('+value+')';label=this.canvas.text(x,y+(this.labelHeight/2),label).attr({font:this.labelHeight+"px Tahoma",fill:'#000',cursor:this.cursor,"text-anchor":"start"});label.click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));this.labelElements.push(label);y+=this.labelHeight+this.labelPadding;this.canvas.path('M'+x+' '+(y+(this.barWidth/2))+'L'+(x+width)+' '+(y+(this.barWidth/2))).attr({stroke:'#C0C0C0','stroke-width':1});this.canvas.path('M'+(x+width)+' '+y+'L'+(x+width)+' '+(y+this.barWidth)).attr({stroke:'#C0C0C0','stroke-width':1});barWidth=value*ratio;bar=this.canvas.rect(x,y,barWidth,this.barWidth);bar.attr({fill:((this.sameColourBarLine)?this.barLineColour:this.colours[i%this.colours.length]),stroke:'none',cursor:this.cursor,title:this.labels[i]+' ('+value+')'});bar.click(this.click.createDelegate(this,[this.clickParams,this.keys[i],this.labels[i]]));this.barElements.push(bar);y+=this.barWidth+this.itemPadding;}},destroy:function(){if(this.barElements){for(var i=0;i<this.barElements.length;i++){this.barElements[i].unclick();delete this.barElements[i];}
for(var i=0;i<this.labelElements.length;i++){this.labelElements[i].unclick();}
delete this.barElements;delete this.labelElements;}
FigtreeWeb.Widget.Raphael.VerticalBarChart.superclass.destroy.call(this);}});Ext.reg('fw-raphael-verticalbarchart',FigtreeWeb.Widget.Raphael.VerticalBarChart);

FigtreeWeb.Widget.HighCharts.Chart=Ext.extend(Ext.BoxComponent,{autoEl:null,width:200,height:200,hcConfig:null,chart:null,clickParams:null,isStatic:false,getTintedColour:function(hex,tint){if(tint==1){return hex;}
var red=parseInt(hex.substring(1,3),16);var green=parseInt(hex.substring(3,5),16);var blue=parseInt(hex.substring(5,7),16);red=red+(0xff-red)*(1-tint);green=green+(0xff-green)*(1-tint);blue=blue+(0xff-blue)*(1-tint);var paddedHex=function(dec){var hex=Math.floor(dec).toString(16);while(hex.length<2){hex='0'+hex;}
return hex;}
return'#'+paddedHex(red)+paddedHex(green)+paddedHex(blue);},initComponent:function(){var me=this;me.autoEl={};var hcConfig=me.hcConfig;hcConfig.credits={enabled:false};hcConfig.colors='#6485c1,#e8b800,#bc4328,#0080b1,#0f1c50,#999999,#C1A063,#002FE8,#80B100,#28A1BC,#50430F,#eb8953'.split(',');hcConfig.legend={borderRadius:5,borderWidth:1,itemDistance:8,itemStyle:{color:'#274b6d',fontWeight:'normal'},margin:10};hcConfig.plotOptions=hcConfig.plotOptions||{};hcConfig.plotOptions.series=hcConfig.plotOptions.series||{};hcConfig.plotOptions.series.cursor=hcConfig.plotOptions.series.cursor||'pointer';hcConfig.plotOptions.series.events=hcConfig.plotOptions.series.events||{};hcConfig.plotOptions.column=hcConfig.plotOptions.column||{};hcConfig.plotOptions.column.minPointLength=5;hcConfig.plotOptions.bar=hcConfig.plotOptions.bar||{};hcConfig.plotOptions.bar.minPointLength=5;hcConfig.tooltip=hcConfig.tooltip||{};hcConfig.tooltip.formatter=hcConfig.tooltip.formatter||function(){var escapeAngledBrackets=function(str){return String(str).replace(/</g,'&lt;').replace(/>/g,'&gt;');};var headerFormat='<span style="font-size: 10px">'
+escapeAngledBrackets(this.point.name||this.point.category||this.series.name)
+'</span><br/>';var pointFormat='<span style="color:'
+escapeAngledBrackets(this.series.color)
+'">\u25CF</span> '
+escapeAngledBrackets(this.series.name)
+': <b>'
+Ext.util.Format.commify(escapeAngledBrackets(this.point.y),true)
+'</b><br/>';return headerFormat+pointFormat;};var axes=[hcConfig.xAxis].concat(hcConfig.yAxis);for(var i=0;i<axes.length;i++){var axis=axes[i];if(!axis||!axis.title||!axis.title.style){return;}
axis.title.style.fontWeight=axis.title.style.fontWeight||'bold';}
hcConfig.exporting=hcConfig.exporting||{};hcConfig.exporting.buttons=hcConfig.exporting.buttons||{};var btnPrintChart={text:'Print',onclick:function(){me.print();}};var btnToggleDataLabels={text:'Toggle Data Labels',onclick:function(){this.options.plotOptions.series=this.options.plotOptions.series||{};this.options.plotOptions.series.dataLabels=this.options.plotOptions.series.dataLabels||{};if(this.options.plotOptions.series.dataLabels.enabled===undefined){this.options.plotOptions.series.dataLabels.enabled=this.options.series[0]&&this.options.series[0].type==='pie'&&(!this.options.series[0].dataLabels||this.options.series[0].dataLabels.enabled!==false);}
this.options.plotOptions.series.dataLabels.enabled=!this.options.plotOptions.series.dataLabels.enabled;for(var i=0;i<this.series.length;i++){this.series[i].update({dataLabels:{enabled:this.options.plotOptions.series.dataLabels.enabled}});}}};hcConfig.tooltip=hcConfig.tooltip||{};if(hcConfig.tooltip.enabled===false){this.on('chartrender',function(chart){chart.disabledTooltip=chart.tooltip;delete chart.tooltip;});}
hcConfig.tooltip.enabled=true;this.on('chartrender',function(chart){chart.destroy=chart.destroy.createInterceptor(function(){if(this.disabledTooltip){this.tooltip=this.disabledTooltip;delete this.disabledTooltip;}});});var btnToggleTooltips={text:'Toggle Tooltips',onclick:function(){if(this.disabledTooltip){this.tooltip=this.disabledTooltip;delete this.disabledTooltip;}else{this.disabledTooltip=this.tooltip;delete this.tooltip;}}};var btnEnlarge={text:'Enlarge',onclick:function(){me.ownerCt.doEnlarge();}};hcConfig.exporting.buttons.contextButton=hcConfig.exporting.buttons.contextButton||{};hcConfig.exporting.buttons.contextButton.menuItems=[btnPrintChart,{separator:true},btnToggleDataLabels,btnToggleTooltips];if(!Ext.isIEOld){hcConfig.exporting.buttons.contextButton.menuItems.push(btnEnlarge);}
if(this.isEnlarged){hcConfig.exporting.buttons.contextButton.menuItems=[btnPrintChart,{separator:true},btnToggleDataLabels,btnToggleTooltips];}
if(this.isStatic){hcConfig.plotOptions.series.cursor=undefined;}else{hcConfig.plotOptions.series.events.click=function(event){me.click(this.options.clickParams,this.options.figAppKeys[event.point.x],(event.point.category||event.point.name));};}
FigtreeWeb.Widget.HighCharts.Chart.superclass.initComponent.apply(me,arguments);this.addEvents({'chartrender':true});for(var p=this.ownerCt;p!=null;p=p.ownerCt){if(p.ownerCt&&p.ownerCt.isXType('tabpanel')){p.on('activate',this.dosomething,this);}}},print:function(){if(this.isEnlarged){this.ownerCt.originalChart.findParentByType('fw-screen').print(this.ownerCt);}else{this.findParentByType('fw-screen').print(this.findParentByType('fw-multiserieschartpanel'));}},click:function(params,key,label){if(!this.isStatic){this.fireEvent('click',params,key,label);}},createPDFPrintXML:function(parent){var el=document.createElement('pdfcolumn');el.setAttribute('type','actual-svg');var cdata=document.createElement('CDATA');cdata.innerHTML=this.chart.getSVG().base64Encode(false);el.appendChild(cdata);parent.appendChild(el);return el;},afterRender:function(){FigtreeWeb.Widget.HighCharts.Chart.superclass.afterRender.apply(this,arguments);this.hcConfig.chart.renderTo=this.getEl().dom;Highcharts.setOptions({lang:{thousandsSep:FigtreeWeb.app.getThousandsSeparator(),decimalPoint:FigtreeWeb.app.getDecimalSeparator()}});this.chart=new Highcharts.Chart(this.hcConfig);this.fireEvent('chartrender',this.chart);},destroy:function(){if(this.chart){this.chart.destroy();}
FigtreeWeb.Widget.HighCharts.Chart.superclass.destroy.apply(this,arguments);}});Ext.reg('fw-highcharts-chart',FigtreeWeb.Widget.HighCharts.Chart);

FigtreeWeb.Widget.AdHoc.Grid=Ext.extend(Ext.grid.EditorGridPanel,{clicksToEdit:'auto',name:'',allowDups:false,mainModule:null,searchFieldsOnly:false,fieldsStore:null,selectedStore:null,enableHdMenu:false,cm:null,initComponent:function(){this.fieldsStore=new Ext.data.JsonStore({url:'GetAdhocFields',fields:['name','label','printLabel','size','type']});this.initialiseFieldsStores();this.fieldsCombo=new Ext.form.ComboBox({displayField:'label',valueField:'name',mode:'remote',forceSelection:true,triggerAction:'all',store:this.fieldsStore,width:300,emptyText:FigtreeWeb.app.translate('select_field','Select field ...'),disabled:true,minChars:0});this.fieldsCombo.on('select',this.addField,this);this.fieldsStore.on('load',function(){this.mode='local';this.lastQuery='';this.doQuery(this.getRawValue());},this.fieldsCombo);this.tablesStore=new Ext.data.JsonStore({url:'GetAdhocTables',fields:['name','label']});this.tablesCombo=new Ext.form.ComboBox({displayField:'label',valueField:'name',mode:'remote',forceSelection:true,triggerAction:'all',store:this.tablesStore,width:150,listeners:{'select':{fn:function(combo){this.setTable(combo.getValue());this.fieldsCombo.setDisabled(false);},scope:this}},emptyText:FigtreeWeb.app.translate('select_table','Select table ...')});this.upButton=new Ext.Button({handler:this.moveFieldUp,icon:FigtreeWeb.app.getIconPlain('arrow_up_blue.png',16),cls:'x-btn-icon fw-adhocgrid-button-up',tooltip:FigtreeWeb.app.translate('move_selected_field_up','Move selected Field up'),scope:this,disabled:true});this.downButton=new Ext.Button({handler:this.moveFieldDown,icon:FigtreeWeb.app.getIconPlain('arrow_down_blue.png',16),cls:'x-btn-icon fw-adhocgrid-button-down',tooltip:FigtreeWeb.app.translate('move_selected_field_down','Move selected Field down'),scope:this,disabled:true});this.addFieldButton=new Ext.Button({icon:FigtreeWeb.app.getIconPlain('add.png','16'),cls:'x-btn-icon',tooltip:'Add Field',handler:this.addField,scope:this});this.removeFieldButton=new Ext.Button({handler:this.removeField,icon:FigtreeWeb.app.getIconPlain('delete.png',16),cls:'x-btn-icon fw-adhocgrid-button-delete',tooltip:FigtreeWeb.app.translate('remove_field','Remove Field'),scope:this,disabled:true});this.tbar=[this.tablesCombo,' ',this.fieldsCombo,'->',this.upButton,this.downButton,this.removeFieldButton];this.initialiseColumnModel();this.store=this.selectedStore;this.sm=new Ext.grid.RowSelectionModel({singleSelect:true});this.sm.on('rowdeselect',this.fieldUnselected,this);this.sm.on('rowselect',this.fieldSelected,this);FigtreeWeb.Widget.AdHoc.Grid.superclass.initComponent.apply(this,arguments);},comboBoxRenderer:function(combo){var displayField=combo.displayField;var valueField=combo.valueField;var ds=combo.store;return(function(value,metatdata,record){var record=ds.getAt(ds.find(valueField,value));if(record){return record.get(displayField);}
return value;});},getValue:function(){var record,field;var returnArray=[];for(var i=0;i<this.selectedStore.getCount();i++){record=this.selectedStore.getAt(i);returnArray.push({});for(var j=0;j<record.fields.items.length;j++){field=record.fields.items[j].name;returnArray[i][field]=record.get(field);}}
return returnArray;},setTable:function(table){this.fieldsStore.baseParams.table=table;this.fieldsStore.baseParams.module=this.tablesStore.baseParams.module;var screen=this.findParentByType('fw-screen');this.fieldsStore.baseParams.params=screen.getBaseParams().params;this.fieldsStore.baseParams.client=screen.getBaseParams().client;this.fieldsStore.baseParams.searchFieldsOnly=this.searchFieldsOnly;this.fieldsCombo.allQuery=table;this.fieldsCombo.mode='remote';this.fieldsCombo.lastQuery='';this.tablesCombo.setValue(table);},setModule:function(module){var screen=this.findParentByType('fw-screen');this.mainModule=module;this.tablesCombo.clearValue();this.fieldsCombo.clearValue();this.selectedStore.removeAll();this.tablesCombo.allQuery=module;this.tablesStore.baseParams.module=module;this.tablesStore.baseParams.client=screen.getBaseParams().client;},addField:function(combo,record,index){if(!record){var record=this.fieldsCombo.findRecord(this.fieldsCombo.valueField,this.fieldsCombo.getValue());}
if(record){var json={};for(var i=0;i<record.fields.items.length;i++){json[record.fields.items[i].name]=record.get(record.fields.items[i].name);}
json=this.setFieldDefaults(json);var findByFn=function(record,id){if(json.name!=record.get('name')){return false;}
return true;}
var isDup=this.selectedStore.findBy(findByFn)!=-1;if(!this.allowDups&&isDup){var msg=json.label+' ('+json.name+').'+'<br>You cannot include the same field twice.';FigtreeWeb.app.msgBox('Duplicate field detected',msg,'warning.png');}else{if(combo!==undefined){index=this.selectedStore.getCount();var selected=this.getSelectionModel().getSelected();if(selected){index=this.selectedStore.indexOf(selected)+1;}}else if(index===null){index=this.selectedStore.getCount();}
this.selectedStore.insert(index,this.selectedStore.reader.readRecords([json]).records);this.getSelectionModel().selectRow(index);this.getView().focusRow(index);}}},setFieldDefaults:function(json){return json;},removeField:function(){var selected=this.getSelectionModel().getSelected();if(selected){var store=this.selectedStore;var index=store.indexOf(selected);this.selectedStore.remove(selected);if(index<store.getCount()){this.focusRow(index);}}},fieldUnselected:function(sm,rowIndex,record){this.upButton.setDisabled(true);this.downButton.setDisabled(true);this.removeFieldButton.setDisabled(true);},fieldSelected:function(sm,rowIndex,record){this.removeFieldButton.setDisabled(false);this.upButton.setDisabled((rowIndex==0));this.downButton.setDisabled((rowIndex==(this.selectedStore.getCount()-1)));},moveFieldDown:function(){var selected=this.getSelectionModel().getSelected();if(selected){var store=this.selectedStore;var index=store.indexOf(selected);store.remove(selected);store.insert(index+1,selected);this.focusRow(index+1);}},moveFieldUp:function(){var selected=this.getSelectionModel().getSelected();if(selected){var store=this.selectedStore;var index=store.indexOf(selected);store.remove(selected);store.insert(index-1,selected);this.focusRow(index-1);}},focusRow:function(index){this.getSelectionModel().selectRow(index);this.getView().focusRow(index);},setReadOnly:function(readOnly){if(readOnly){var mask=this.getEl().mask();mask.setStyle('opacity','0.3');}else{this.getEl().unmask();}},destroy:function(){FigtreeWeb.Widget.AdHoc.Grid.superclass.destroy.apply(this,arguments);}});Ext.reg('fw-adhocgrid',FigtreeWeb.Widget.AdHoc.Grid);FigtreeWeb.Widget.AdHoc.Grid.CheckColumn=function(config){Ext.apply(this,config);if(!this.id){this.id=Ext.id();}
this.renderer=this.renderer.createDelegate(this);};FigtreeWeb.Widget.AdHoc.Grid.CheckColumn.prototype={init:function(grid){this.grid=grid;this.grid.on('render',function(){var view=this.grid.getView();view.mainBody.on('mousedown',this.onMouseDown,this);},this);},onMouseDown:function(e,t){if(t.className&&t.className.indexOf('x-grid3-cc-'+this.id)!=-1){e.stopEvent();var index=this.grid.getView().findRowIndex(t);var record=this.grid.store.getAt(index);record.set(this.dataIndex,!record.data[this.dataIndex]);}},renderer:function(v,p,record){p.css+=' x-grid3-check-col-td';return'<div class="x-grid3-check-col'+(v?'-on':'')+' x-grid3-cc-'+this.id+'">&#160;</div>';}};

FigtreeWeb.Widget.AdHoc.SortOrderGrid=Ext.extend(FigtreeWeb.Widget.AdHoc.Grid,{initComponent:function(){this.title=FigtreeWeb.app.translate('sort_order_fields','Sort Order Fields');FigtreeWeb.Widget.AdHoc.SortOrderGrid.superclass.initComponent.apply(this,arguments);this.fieldsCombo.setWidth(230);this.allCheckBox=new Ext.form.Checkbox({checked:true,listeners:{'check':{scope:this,fn:this.toggleAllFields}}});this.outputFieldsCombo=new Ext.form.ComboBox({width:382,displayField:'label',valueField:'name',hidden:true,mode:'local',forceSelection:true,triggerAction:'all',store:new Ext.data.JsonStore({fields:['name','label']}),listeners:{'beforequery':{fn:function(){var outFldsGrid=this.ownerCt.findByType('fw-adhoc-grid-output-fields')[0],outFldsStore=this.outputFieldsCombo.getStore(),recs=[];outFldsStore.removeAll();if(outFldsGrid){outFldsGrid.selectedStore.each(function(r){recs.push(r.copy());})
outFldsStore.add(recs);}},scope:this}}});this.outputFieldsCombo.on('select',this.addField,this);this.topToolbar.unshift(this.allCheckBox,' ',' ',{xtype:'label',text:FigtreeWeb.app.translate('all_fields','All Fields')},'-',this.outputFieldsCombo);},initialiseFieldsStores:function(){this.selectedStore=new Ext.data.JsonStore({fields:['name','label','sortOrder','pageBreak','totals'],data:[]});},initialiseColumnModel:function(){var sortOrderCombo=new Ext.form.ComboBox({displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'ASC',description:FigtreeWeb.app.translate('normal','Normal')},{value:'DSC',description:FigtreeWeb.app.translate('reverse','Reverse')}]})});var pageBreakCol=new FigtreeWeb.Widget.AdHoc.Grid.CheckColumn({width:100,dataIndex:'pageBreak',header:FigtreeWeb.app.translate('page_break','Page break?')});var totalsCol=new FigtreeWeb.Widget.AdHoc.Grid.CheckColumn({width:60,dataIndex:'totals',header:FigtreeWeb.app.translate('totals','Totals?')});this.plugins=this.plugins||[];this.plugins.push(pageBreakCol);this.plugins.push(totalsCol);this.cm=new Ext.grid.ColumnModel({store:this.selectedStore,columns:[{dataIndex:'label',header:FigtreeWeb.app.translate('name','Name'),width:250},{dataIndex:'sortOrder',header:FigtreeWeb.app.translate('sort_order','Sort order'),width:110,editor:sortOrderCombo,renderer:this.comboBoxRenderer(sortOrderCombo)},pageBreakCol,totalsCol]});},setFieldDefaults:function(json){if(!json['sortOrder']){json['sortOrder']='ASC';}
return FigtreeWeb.Widget.AdHoc.SortOrderGrid.superclass.setFieldDefaults.call(this,json);},toggleAllFields:function(){var all=this.allCheckBox.getValue();this.outputFieldsCombo.setVisible(!all);this.tablesCombo.setVisible(all);this.fieldsCombo.setVisible(all);}});Ext.reg('fw-adhoc-grid-sort-order',FigtreeWeb.Widget.AdHoc.SortOrderGrid);

FigtreeWeb.Widget.AdHoc.OutputFieldsGrid=Ext.extend(FigtreeWeb.Widget.AdHoc.Grid,{initComponent:function(){this.title=FigtreeWeb.app.translate('output_fields','Output Fields');FigtreeWeb.Widget.AdHoc.OutputFieldsGrid.superclass.initComponent.apply(this,arguments);},initialiseFieldsStores:function(){this.selectedStore=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','codeDisplayType'],data:[]});},initialiseColumnModel:function(){var codeCombo=new Ext.form.ComboBox({displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'CODE',description:FigtreeWeb.app.translate('code','Code')},{value:'DESC',description:FigtreeWeb.app.translate('description','Description')},{value:'BOTH',description:FigtreeWeb.app.translate('both','Both')}]})});this.cm=new Ext.grid.ColumnModel({store:this.selectedStore,isCellEditable:function(col,row){if(this.config[col].dataIndex=='codeDisplayType'&&!(this.store.getAt(row).get('type')=='code'||this.store.getAt(row).get('type')=='pseudo_org')){return false;}
return Ext.grid.ColumnModel.prototype.isCellEditable.apply(this,arguments);},columns:[{dataIndex:'label',header:FigtreeWeb.app.translate('name','Name'),width:160},{dataIndex:'printLabel',header:FigtreeWeb.app.translate('print_label','Print Label'),width:200,editor:new Ext.form.TextField({allowBlank:false})},{dataIndex:'size',header:FigtreeWeb.app.translate('size','Size'),width:50,editor:new Ext.form.NumberField({allowBlank:false,allowNegative:false,maxValue:200})},{dataIndex:'codeDisplayType',header:FigtreeWeb.app.translate('code_description','Code / Description'),width:110,editor:codeCombo,renderer:this.comboBoxRenderer(codeCombo)}]});},setFieldDefaults:function(json){if(json['type']=='code'||json['type']=='pseudo_org'){json['codeDisplayType']='DESC';}
return FigtreeWeb.Widget.AdHoc.OutputFieldsGrid.superclass.setFieldDefaults.call(this,json);}});Ext.reg('fw-adhoc-grid-output-fields',FigtreeWeb.Widget.AdHoc.OutputFieldsGrid);

FigtreeWeb.Widget.AdHoc.CriteriaGrid=Ext.extend(FigtreeWeb.Widget.AdHoc.Grid,{allowDups:true,rowShades:{'(':'#C5ECEC',')':'#C5ECEC','AND':'#FAFA93','OR':'#9FDE9E','NOT':'#DE8096'},initComponent:function(){this.title=FigtreeWeb.app.translate('criteria','Criteria');this.chkEnableOps=new Ext.form.Checkbox();this.name=(this.wid||'');this.isFormField=true;this.btnNot=new Ext.Button({text:'<b>'+FigtreeWeb.app.translate('not','NOT')+'</b>',handler:this.insertOp.createDelegate(this,['NOT'])});this.btnAnd=new Ext.Button({text:'<b>'+FigtreeWeb.app.translate('and','AND')+'</b>',handler:this.insertOp.createDelegate(this,['AND'])});this.btnOr=new Ext.Button({text:'<b>'+FigtreeWeb.app.translate('or','OR')+'</b>',handler:this.insertOp.createDelegate(this,['OR'])});this.btnOpenGroup=new Ext.Button({text:'<b> ( </b>',handler:this.insertOp.createDelegate(this,['('])});this.btnCloseGroup=new Ext.Button({text:'<b> ) </b>',handler:this.insertOp.createDelegate(this,[')'])});this.btnSummariseCriteria=new Ext.Button({icon:FigtreeWeb.app.getIconPlain('text_align_justified.png',16),cls:'x-btn-icon fw-adhocgrid-button-critsum',tooltip:FigtreeWeb.app.translate('view_criteria_summary','View Criteria Summary'),handler:this.summariseCriteria,scope:this});this.bbar=[this.chkEnableOps,'',FigtreeWeb.app.translate('logical_operators_and_grouping','Logical operators and grouping')+' ','',this.btnAnd,this.btnNot,this.btnOr,this.btnOpenGroup,this.btnCloseGroup,'->',this.btnSummariseCriteria];FigtreeWeb.Widget.AdHoc.CriteriaGrid.superclass.initComponent.apply(this,arguments);this.chkEnableOps.on('check',function(c,checked){this.btnNot.setDisabled(!checked);this.btnAnd.setDisabled(!checked);this.btnOr.setDisabled(!checked);this.btnOpenGroup.setDisabled(!checked);this.btnCloseGroup.setDisabled(!checked);},this);},setOrgFieldInfo:function(info){this.orgFieldInfo=info;},insertOp:function(op){var store=this.getStore(),index=store.getCount(),rec={operator:op,name:'',label:'',condition:'',value:'',type:'operator'};var selected=this.getSelectionModel().getSelected();if(selected){index=this.selectedStore.indexOf(selected)+1;}
store.insert(index,store.reader.readRecords([rec]).records);this.getSelectionModel().selectRow(index);this.getView().focusRow(index);},summariseCriteria:function(){var store=this.getStore(),buf=[],inGroup=false,cb=0,ob=0,bracs=null;store.each(function(rec){var type=rec.get('type'),op=rec.get('operator'),lbl=rec.get('label'),cond=rec.get('condition'),val=rec.get('value'),s='',arr=[],i=0;if(type=='operator'){if(op=='('){inGroup=true;ob++;}else if(op==')'){inGroup=false;cb++;}
s=' '+op+' ';}else{s=lbl+' '+cond+' ';switch(type){case'number':case'logical':case'boolean':s+=val;break;case'date':if(typeof val==='object'){s+='"'+(val.desc||'')+'"';}else{s+=val;}
break;case'code':if(Ext.isArray(val)){for(i=0;i<val.length;i++){if(typeof val[i]==='object'&&val[i].desc){arr.push(val[i].desc);}}
s+='"'+arr.join(',')+'"';}else if(typeof val==='object'&&val.desc){s+='"'+val.desc+'"';}
break;case'organisation':if(Ext.isArray(val)){for(i=0;i<val.length;i++){if(typeof val[i]==='object'&&val[i].desc){arr.push(val[i].desc);}}
s+='"'+arr.join(',')+'"';}
break;default:s+='"'+val+'"';}
s+=' ';}
buf.push(s+((inGroup)?'':'<br>'));});if(ob!=cb){bracs='Missing ';}
if(ob<cb){bracs+=(cb-ob)+' open bracket(s)';}else if(ob>cb){bracs+=(ob-cb)+' close bracket(s)';}
if(bracs){buf.push('<br><p>'+'* '+bracs);}
Ext.Msg.show({title:'Criteria Summary',msg:buf.join('')});},initialiseFieldsStores:function(){this.selectedStore=new Ext.data.JsonStore({fields:['operator','name','label','condition','value','type'],data:[]});this.selectedStore.on('update',this.checkChange,this);},initialiseColumnModel:function(){var conditionCombo=new Ext.form.ComboBox({displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'MATCHES',description:FigtreeWeb.app.translate('matches_characters_with','matches characters with')},{value:'EQ',description:FigtreeWeb.app.translate('equal_to','equal to')},{value:'GT',description:FigtreeWeb.app.translate('greater_than','greater than')},{value:'GE',description:FigtreeWeb.app.translate('greater_than_or_equal_to','greater than or equal to')},{value:'LT',description:FigtreeWeb.app.translate('less_than','less than')},{value:'LE',description:FigtreeWeb.app.translate('less_than_or_equal_to','less than or equal to')},{value:'NE',description:FigtreeWeb.app.translate('not_equal_to','not equal to')},{value:'OO',description:FigtreeWeb.app.translate('is_one_of','is one of')},{value:'DF',description:FigtreeWeb.app.translate('date_range_from','date range from')},{value:'DT',description:FigtreeWeb.app.translate('date_range_to','date range to')}]})});conditionCombo.lastQuery=conditionCombo.allQuery;var operatorRenderer=(function(value,metatdata,record,grid){var rs=this.rowShades[record.get('operator')];if(rs&&(record.get('operator')==value)){metatdata.attr="style='font-weight:bold;background-color:"+rs+";'";}
return value;}).createDelegate(this);var valueRenderer=function(value,metatdata,record,grid){var displayVal=value;if((record.get('type')=='organisation')&&(value instanceof Object)){displayVal='';for(var i=0;i<value.length;i++){displayVal+=(value[i].desc||'')+((i<(value.length-1))?' ':'');}}else if((record.get('type')=='code')){if(Ext.isArray(value)){displayVal='';for(var i=0;i<value.length;i++){displayVal+=(value[i].desc||'')+((i<(value.length-1))?', ':'');}}else if(value instanceof Object){displayVal=value.desc;}}else if((record.get('type')=='date')){if(value instanceof Object){displayVal=value.desc;}}
return displayVal;};this.cm=new Ext.grid.ColumnModel({store:this.selectedStore,columns:[{dataIndex:'operator',header:FigtreeWeb.app.translate('op_group','Op/Group'),width:70,align:'right',renderer:operatorRenderer},{dataIndex:'label',header:FigtreeWeb.app.translate('name','Name'),width:300},{dataIndex:'condition',header:FigtreeWeb.app.translate('condition','Condition'),width:160,editor:conditionCombo,renderer:this.comboBoxRenderer(conditionCombo)},{dataIndex:'value',header:FigtreeWeb.app.translate('value','Value'),width:500,editor:new Ext.form.TextField({allowBlank:false}),renderer:valueRenderer}],editors:{'date':new Ext.grid.GridEditor(new FigtreeWeb.Widget.DateField({selectOnFocus:true,allowBlank:false})),'number':new Ext.grid.GridEditor(new Ext.form.NumberField({selectOnFocus:true,allowBlank:false})),'organisation':null},isCellEditable:function(col,row){if(this.store.getAt(row).get('type')=='operator'){return false;}
return Ext.grid.ColumnModel.prototype.isCellEditable.apply(this,arguments);}});this.initLogicalEditor();},onRender:function(){FigtreeWeb.Widget.AdHoc.CriteriaGrid.superclass.onRender.apply(this,arguments);this.chkEnableOps.fireEvent('check');this.getColumnModel().getCellEditor=function(colIndex,rowIndex){var type=this.store.getAt(rowIndex).data['type'],cond=this.store.getAt(rowIndex).data['condition'],isValueCol=this.columns[colIndex].dataIndex=='value',isCondCol=this.columns[colIndex].dataIndex=='condition',ed,field;if(isValueCol&&/date|number|organisation|code|boolean|logical/.test(type)){var cond=this.store.getAt(rowIndex).data['condition'];if(type=='code'&&cond=='OO'){type='code-ms';}
if(type=='date'&&(cond==='DF'||cond==='DT')){type='code';}
ed=this.editors[type];ed.field.column=colIndex;ed.field.row=rowIndex;return ed;}
if(isCondCol){ed=Ext.grid.ColumnModel.prototype.getCellEditor.call(this,colIndex,rowIndex);field=ed.field;field.store.clearFilter();if(type!=='date'){field.store.filterBy(function(rec){var val=rec.get('value');return(val!=='DF'&&val!=='DT');});}
return ed;}
return Ext.grid.ColumnModel.prototype.getCellEditor.call(this,colIndex,rowIndex);}
var screen=this.findParentByType('fw-screen');if(screen){var foundReportGrid=screen.findByType('fw-adhoc-grid-output-fields');this.searchFieldsOnly=(foundReportGrid&&foundReportGrid.length==0);}
if(Ext.isIE8){var el=this.getEl();this.getView().getEditorParent=function(){return el;};}},destroy:function(){for(var ed in this.getColumnModel().editors){Ext.destroy(ed);}
FigtreeWeb.Widget.AdHoc.CriteriaGrid.superclass.destroy.call(this);},initOrgEditor:function(os){var baseParams=Ext.apply({},this.findParentByType('fw-screen').getBaseParams());var config=Ext.apply({baseParams:baseParams},os.initialConfig);delete config.width;delete config.height;delete config.x;delete config.y;var orgField=new FigtreeWeb.Widget.OrganisationSelector(config);orgField.addEvents({'valueset':true});orgField.onTriggerClick=function(){FigtreeWeb.Widget.OrganisationSelector.prototype.onTriggerClick.apply(this,arguments);this.popupVisible=true;};orgField.setValue=function(value){if(this.popupVisible){(function(val){this.popupVisible=false;this.fireEvent('valueset',this,val);}).defer(1,this,[value]);}
if(!(value instanceof Object)){value=[];for(var i=0;i<this.levels.length;i++){value.push({code:undefined,desc:''});}}
FigtreeWeb.Widget.OrganisationSelector.prototype.setValue.call(this,value);};orgField.getValue=function(){return Ext.util.JSON.decode(Ext.util.JSON.encode(this.levels));};orgField=new Ext.grid.GridEditor(orgField);orgField.on('beforecomplete',function(ed){if(ed.field.popupVisible){return false;}
ed.startValue='';this.selectedStore.getAt(ed.row).set('value','');},this);orgField.field.on('valueset',orgField.completeEdit,orgField);this.getColumnModel().editors['organisation']=orgField;},initCodeLookups:function(cl){var params=Ext.apply({},cl.params);var config={params:params,mode:'adhoc'};var oneOfSelector=new FigtreeWeb.Widget.OneOfSelector(config);oneOfSelector.getValue=function(){return Ext.util.JSON.decode(Ext.util.JSON.encode(this.value));};oneOfSelector=new Ext.grid.GridEditor(oneOfSelector);oneOfSelector.on('beforecomplete',function(ed){if(ed.field.popupVisible){return false;}
ed.startValue='';this.selectedStore.getAt(ed.row).set('value','');},this);oneOfSelector.on('beforestartedit',function(ed){ed.field.module=(this.fieldsStore.baseParams.module||this.mainModule);ed.field.table=this.fieldsStore.baseParams.table;ed.field.field=ed.record.get('name');this.findParentByType('fw-formpanel').items.add(ed.field);},this);oneOfSelector.field.on('valueset',oneOfSelector.completeEdit,oneOfSelector,{delay:1});this.getColumnModel().editors['code-ms']=oneOfSelector;this.getColumnModel().editors['code-ms'].field.ownerCt=this.findParentByType('fw-formpanel');this.on('beforedestroy',function(){this.findParentByType('fw-formpanel').items.remove(this.getColumnModel().editors['code-ms'].field);},this);config=Ext.apply({},cl.initialConfig);delete config.width;delete config.height;delete config.x;delete config.y;config.simpleLookup=true;config.popGridHeight=300;var lookup=new FigtreeWeb.Widget.Lookup(config);lookup.addEvents({'valueset':true});lookup.getValue=function(){return{desc:this.description,value:this.value};};lookup.setValue=function(value){if(this.grid&&this.grid.isVisible()){this.fireEvent('valueset',this,value);}
if(Ext.isArray(value)&&(value.length>0)){value=value[0];}
if((value instanceof Object)&&(value.desc!=undefined)&&(value.value!=undefined)){FigtreeWeb.Widget.Lookup.prototype.setValue.call(this,value.value,value.desc);return;}
FigtreeWeb.Widget.Lookup.prototype.setValue.apply(this,arguments);}
lookup.onTriggerClick=function(value){this.params=Ext.apply({},this.initialConfig.params);this.params.params+=';adhoc_info;';this.params.params+='module;'+this.module+';';this.params.params+='table;'+this.table+';';this.params.params+='field;'+this.field;if(this.condition==='DF'||this.condition==='DT'){this.params.params+=';date_condition;'+this.condition;}
FigtreeWeb.Widget.Lookup.prototype.onTriggerClick.apply(this,arguments);}
lookup=new Ext.grid.GridEditor(lookup);lookup.on('beforecomplete',function(ed){if(ed.field.grid&&ed.field.grid.isVisible()){return false;}
ed.startValue='';this.selectedStore.getAt(ed.row).set('value','');},this);lookup.on('beforestartedit',function(ed){ed.field.module=(this.fieldsStore.baseParams.module||this.mainModule);ed.field.table=this.fieldsStore.baseParams.table;ed.field.field=ed.record.get('name');ed.field.condition=ed.record.get('condition');this.findParentByType('fw-formpanel').items.add(ed.field);},this);lookup.triggerMouseDown=false;lookup.onRender=lookup.onRender.createSequence(function(){var f=lookup.field;f.trigger.on('mousedown',function(){this.triggerMouseDown=true;Ext.getBody().on('mouseup',function(){this.triggerMouseDown=false;},this,{single:true});},lookup);f.un('blur',lookup.onBlur,lookup);f.on('blur',function(){if(!this.triggerMouseDown){this.onBlur();}},lookup);f=null;lookup=null;});lookup.field.on('valueset',lookup.completeEdit,lookup,{delay:1});this.getColumnModel().editors['code']=lookup;this.getColumnModel().editors['code'].field.ownerCt=this.findParentByType('fw-formpanel');this.on('beforedestroy',function(){this.findParentByType('fw-formpanel').items.remove(this.getColumnModel().editors['code'].field);},this);},checkChange:function(store,record,operation){if((record.get('type')=='code')&&(operation==Ext.data.Record.EDIT)){if(record.isModified('condition')){var newValue;var value=record.get('value');if(record.get('condition')=='OO'&&!Ext.isArray(value)){newValue=[];if(value.value&&value.desc){newValue.push(value);}else if(((typeof value=="number")||(typeof value=="string"))&&(value!='')){newValue.push({value:value,desc:value});}
record.set('value',newValue);}else if(record.modified&&record.modified['condition']=='OO'&&record.get('condition')!='OO'){newValue='';record.set('value',newValue);}}
if(record.dirty){record.commit();}}},setFieldDefaults:function(json){if(!json['condition']){json['condition']='EQ';}
var t=json['type'];if(typeof t==='string'){if(t=='code'){json['condition']='OO';}else if(t=='character'){json['condition']='MATCHES';}}
return FigtreeWeb.Widget.AdHoc.CriteriaGrid.superclass.setFieldDefaults.call(this,json);},initLogicalEditor:function(){var logicalEditor=new Ext.grid.GridEditor(new FigtreeWeb.Widget.Checkbox({selectOnFocus:true}),{listeners:{'beforestartedit':{fn:function(ed,el,v){if(typeof v=='string'){v=/^(true)|(yes)$/i.test(v);}}},'startedit':{fn:function(){Ext.getDoc().on('mousedown',this.hideIf,this);}},'complete':{fn:function(){Ext.getDoc().un('mousedown',this.hideIf,this);}},'canceledit':{fn:function(){Ext.getDoc().un('mousedown',this.hideIf,this);}}}});logicalEditor.hideIf=function(e){if(!e.within(this.field.innerWrap)){this.completeEdit();}};this.cm.editors['logical']=logicalEditor;this.cm.editors['boolean']=logicalEditor;}});Ext.reg('fw-adhoc-grid-criteria',FigtreeWeb.Widget.AdHoc.CriteriaGrid);

FigtreeWeb.Widget.AdHoc.FieldList=Ext.extend(Ext.tree.TreePanel,{tablesUrl:'GetAdhocTables',fieldsUrl:'GetAdhocFields',rootVisible:false,autoScroll:true,enableDrag:true,ddGroup:'fw-adhocdesigner',module:null,lkpFilter:null,readOnly:false,initComponent:function(){this.title=FigtreeWeb.app.translate('fields','Fields');this.root=new Ext.tree.TreeNode({text:''});this.lkpFilter=new FigtreeWeb.Widget.Lookup({cls:'carica-lookup-view',width:235,listeners:{'triggerclick':{fn:this.doFilter,scope:this}}});this.tbar=[{xtype:'label',text:FigtreeWeb.app.translate('filter','Filter'),style:{'padding-left':'10px','padding-right':'15px'}},this.lkpFilter];this.recordType=Ext.data.Record.create(['name','label','printLabel','size','type','decimalPrecision']);FigtreeWeb.Widget.AdHoc.FieldList.superclass.initComponent.apply(this,arguments);},onRender:function(){FigtreeWeb.Widget.AdHoc.FieldList.superclass.onRender.apply(this,arguments);this.getTreeEl().on("keydown",this.onKeyDown,this);},setModule:function(module){this.module=module;if(!this.readOnly){this.loadTables();}},loadTables:function(){var conn=new FigtreeWeb.Connection({url:this.tablesUrl}),screen=this.findParentByType('fw-screen'),bp=screen.getBaseParams();conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.body.mask(FigtreeWeb.app.translate('loading'),'x-mask-loading');},this);conn.connection.on('requestcomplete',this.tablesLoaded,this);conn.request({module:this.module,client:bp.client});},tablesLoaded:function(conn,response){try{response=Ext.decode(response.responseText);}catch(e){}
this.removeAllNodes();Ext.isArray(response)&&Ext.each(response,function(item){var node=new Ext.tree.TreeNode({leaf:false,expandable:true,text:item.label,table:item.name});node.on('expand',this.loadTable,this);this.root.appendChild(node);},this);if(this.root.childNodes.length>0){this.root.childNodes[0].expand();}
this.body.unmask();},loadTable:function(node){var screen,bp,params,conn;if(!node.firstChild){screen=this.findParentByType('fw-screen');bp=screen.getBaseParams();params={client:bp.client,module:this.module,params:bp.params,table:node.attributes.table};conn=new FigtreeWeb.Connection({url:this.fieldsUrl});conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){node.ui.beforeLoad(node);});conn.connection.on('requestcomplete',this.tableLoaded.createDelegate(this,[node],true),this);conn.request(params);}},tableLoaded:function(conn,response,options,parent){var me=this;try{response=Ext.decode(response.responseText);}catch(e){}
parent.collapse();addNodes=function(){Ext.each(response.splice(0,100),function(item){var node=new Ext.tree.TreeNode({leaf:true,text:item.label,field:new me.recordType(item)});parent.appendChild(node);},this);if(response.length===0){me.fireEvent('tableloaded',me,parent.attributes.table);if(parent.childNodes.length>0){parent.expand();}else{FigtreeWeb.app.msgBox('',FigtreeWeb.app.translate('no_records'),'warning.png');}
parent.ui.afterLoad(parent);}else{addNodes.defer(1);}};addNodes.defer(1);},connExceptionHandler:function(conn,errorData){this.body.unmask();FigtreeWeb.app.throwError(errorData);},removeChildren:function(node){while(node.firstChild){this.removeChildren(node.firstChild);if(node.firstChild.ui.rendered){node.firstChild.ui.remove();}
node.removeChild(node.firstChild).destroy();}},removeAllNodes:function(){var me=this,toRemove=new Ext.tree.TreeNode({text:'',hidden:true}),count=0,doRemove;while(this.root.firstChild){toRemove.appendChild(this.root.removeChild(this.root.firstChild));}
doRemove=function(){var node;if(toRemove.parentNode!==me.root){me.root.appendChild(toRemove)}
if(!toRemove.lastChild){me.root.removeChild(toRemove);toRemove=null;return;}
node=toRemove;while(node.lastChild){node=node.lastChild;}
if(node.rendered){node.ui.remove();}
node.parentNode.removeChild(node).destroy();count++;if(count>=100){count=0;doRemove.defer(1);}else{doRemove();}}
doRemove.defer(100);},setReadOnly:function(readOnly){if(readOnly){var mask=this.getEl().mask();mask.setStyle('opacity','0.3');}else{this.getEl().unmask();if(this.module&&!this.root.firstChild){this.loadTables();}}
this.readOnly=readOnly;},doFilter:function(){var filterBy=this.lkpFilter.getRawValue(),rex=new RegExp(filterBy,'i');this.root.cascade(function(n){var ui=n.getUI(),attr=n.attributes,rec=attr.field;if(filterBy===''||!rec||rex.test(rec.get('name'))||rex.test(rec.get('label'))||rex.test(rec.get('printLabel'))){ui.show();if(n.parentNode){n.parentNode.expand.defer(1,n.parentNode);}}else{ui.hide();}},this);},updateSelected:function(store){this.root.cascade(function(n){var ui=n.getUI(),rec=n.attributes.field;if(rec){ui[store.findBy(function(record){return record.get('name')===rec.get('name');})!==-1?'addClass':'removeClass']('fw-ah-field-selected');}},this);},onKeyDown:function(e){var k=e.getKey(),sm=this.getSelectionModel(),node=sm.getSelectedNode()||this.root.firstChild,l;if(k<63||k>90){return;}
l=String.fromCharCode(k)
while((node=node.nextSibling)){if(node.text.toUpperCase().charAt(0)===l){sm.select(node);return;}}
node=(sm.getSelectedNode()||this.root.firstChild).parentNode.firstChild;while((node=node.nextSibling)){if(node.text.toUpperCase().charAt(0)===l){sm.select(node);break;}}}});Ext.reg('fw-adhocfieldlist',FigtreeWeb.Widget.AdHoc.FieldList);

FigtreeWeb.Widget.AdHoc.ReportDesigner=Ext.extend(Ext.Panel,{layout:'border',cls:'fw-adhocreportdesigner',fieldList:null,viewOutputFields:null,viewSortOrder:null,viewCriteria:null,cboReportOn:null,txtReportName:null,lblTotalWidth:null,chkWrap:null,chkShowCounts:null,btnEdit:null,btnCopy:null,btnSave:null,btnSelectRoles:null,btnViewRoles:null,servletUrl:'AdhocReporting',availableRoles:null,selectedRoles:null,reportId:'',client:'',mode:'add',canEdit:true,canCopy:true,runParams:undefined,runPopupWidth:450,runPopupHeight:200,helpText:null,reportOn:null,initComponent:function(){if(this.helpText===null){this.helpText=['Dr. English TODO','Do some texts and things'];}
this.fieldList=new FigtreeWeb.Widget.AdHoc.FieldList({cls:'fw-adhocreportdesigner-fl',region:'west',split:true,width:300,border:false,style:{'border-right-width':'1px'},listeners:{'dblclick':{fn:function(node){node.attributes.field&&this.viewOutputFields.addField(node.attributes.field,null);},scope:this}}});this.lblTotalWidth=new Ext.form.Label();this.chkWrap=new Ext.form.Checkbox();this.chkShowCounts=new Ext.form.Checkbox();this.viewOutputFields=new FigtreeWeb.Widget.AdHoc.OutputFieldsView();this.viewSortOrder=new FigtreeWeb.Widget.AdHoc.SortOrderView();this.viewCriteria=new FigtreeWeb.Widget.AdHoc.CriteriaView();this.viewOutputFields.getStore().on({'add':{fn:this.updateSelected,scope:this},'remove':{fn:this.updateSelected,scope:this},'update':{fn:this.updateSelected,scope:this},'load':{fn:this.updateSelected,scope:this}});this.fieldList.on('tableloaded',this.updateSelected,this);this.cboReportOn=new Ext.form.ComboBox({allowBlank:false,fieldLabel:FigtreeWeb.app.translate('report_on','Report On'),mode:'local',forceSelection:true,triggerAction:'all',store:new Ext.data.SimpleStore({fields:["value","description"],data:this.reportOn||[]}),displayField:"description",valueField:"value",listeners:{'select':{fn:function(field){this.uiUpdate();this.fieldList.setModule(field.getValue());this.viewOutputFields.setValue([]);this.viewSortOrder.setValue([]);this.viewCriteria.setValue([]);this.selectedRoles='';},scope:this}}});this.txtReportName=new Ext.form.TextField({allowBlank:false,fieldLabel:FigtreeWeb.app.translate('report_name','Report Name')});this.btnEdit=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('edit','Edit'),cls:'carica-button-primary',listeners:{'click':{fn:this.editReport,scope:this}}});this.btnCopy=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('copy','Copy'),cls:'carica-button-secondary',listeners:{'click':{fn:this.copyReport,scope:this}}});this.btnCancelEdit=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('cancel','Cancel'),cls:'carica-button-secondary',listeners:{'click':{fn:this.cancelEdit,scope:this}}});this.btnSave=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('save','Save'),cls:'carica-button-primary',listeners:{'click':{fn:this.saveReport,scope:this}}});this.btnRun=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('run','Run Report'),cls:'carica-button-secondary',listeners:{'click':{fn:this.runReport,scope:this}}});this.btnClose=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('close','Close'),cls:'carica-button-secondary',listeners:{'click':{fn:function(){this.findParentByType('fw-screen').destroy();},scope:this}}});this.btnSelectRoles=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('select_roles','Select Roles'),cls:'carica-button-secondary',listeners:{'click':{fn:this.selectRoles,scope:this}}});this.btnViewRoles=new FigtreeWeb.Widget.Button({text:FigtreeWeb.app.translate('view_roles','View Roles'),cls:'carica-button-secondary',listeners:{'click':{fn:this.viewRoles,scope:this}}});this.items=[this.fieldList,{region:'north',layout:'column',height:42,border:false,style:{'border-bottom-width':'1px'},bodyCfg:{cls:'carica-form-gradient'},defaults:{columnWidth:.5,border:false,xtype:'form',defaults:{anchor:'0px none'},bodyStyle:'background: none; padding: 10px;'},items:[{items:[this.cboReportOn]},{items:[this.txtReportName]}]},{region:'center',layout:'fit',border:false,items:[{layout:'fw-row',border:false,defaults:{border:false},items:[{title:FigtreeWeb.app.translate('output_fields','Output Fields'),height:160,bbar:[{xtype:'label',text:FigtreeWeb.app.translate('size','Size')+':',style:{'padding-right':'3px','padding-right':'3px'}},this.lblTotalWidth,'->',this.chkWrap,{xtype:'label',text:FigtreeWeb.app.translate('wrap_text','Wrap Text'),style:{'padding-left':'10px','padding-right':'15px'}},this.chkShowCounts,{xtype:'label',text:FigtreeWeb.app.translate('show_counts','Show Counts'),style:{'padding-left':'10px','padding-right':'3px'}}],items:[this.viewOutputFields]},{rowHeight:1,layout:'border',items:[{title:FigtreeWeb.app.translate('sort_order','Sort Order'),region:'west',layout:'fit',width:300,cls:'fw-ah-sortorder-panel',items:[this.viewSortOrder]},{title:FigtreeWeb.app.translate('criteria','Criteria'),region:'center',layout:'fit',cls:'fw-ah-criteria-panel',tbar:[{text:'<b>'+FigtreeWeb.app.translate('and','AND')+'</b>',handler:this.viewCriteria.insertOp.createDelegate(this.viewCriteria,['AND',null]),operator:'AND'},{text:'<b>'+FigtreeWeb.app.translate('or','OR')+'</b>',handler:this.viewCriteria.insertOp.createDelegate(this.viewCriteria,['OR',null]),operator:'OR'},{text:'<b>'+FigtreeWeb.app.translate('not','NOT')+'</b>',handler:this.viewCriteria.insertOp.createDelegate(this.viewCriteria,['NOT',null]),operator:'NOT'},{text:'<b>(</b>',handler:this.viewCriteria.insertOp.createDelegate(this.viewCriteria,['(',null]),operator:'('},{text:'<b>)</b>',handler:this.viewCriteria.insertOp.createDelegate(this.viewCriteria,[')',null]),operator:')'}],items:[this.viewCriteria]}]}]}]}];this.bbar=[this.btnRun,this.btnSelectRoles,this.btnViewRoles,'->',this.btnSave,this.btnEdit,this.btnCopy,this.btnCancelEdit,this.btnClose];FigtreeWeb.Widget.AdHoc.ReportDesigner.superclass.initComponent.apply(this,arguments);this.on('afterlayout',this.onAfterLayout,this,{single:true,delay:1});},onAfterLayout:function(){var screen=this.findParentByType('fw-screen'),txtRoleKeys=screen.getField('system-all_roles_keys'),txtRoles=screen.getField('system-all_roles');if(txtRoleKeys){txtRoles=txtRoles||txtRoleKeys;this.initRoles(txtRoleKeys.getValue(),txtRoles.getValue());}
this.selectedRoles='';this.doLayout();this.uiUpdate();this.cboReportOn.validate();this.txtReportName.validate();if(this.reportId&&this.reportId!==''&&this.client&&this.client!==''){this.loadReport(this.client,this.reportId);}},initRoles:function(roleKeys,roles){var availableRoles=[];roleKeys=roleKeys.split(',');roles=roles.split(',');Ext.each(roleKeys,function(role,index){availableRoles.push({key:role,name:roles[index]});});this.availableRoles=availableRoles;},getConnection:function(msg){var c=new FigtreeWeb.Connection({url:this.servletUrl});msg=msg||FigtreeWeb.app.translate('loading');c.on('beforerequest',this.body.mask.createDelegate(this.body,[msg,'x-mask-loading']));c.on('exception',this.connExceptionHandler,this);c.on('netexception',this.connExceptionHandler,this);return c;},connExceptionHandler:function(conn,errorData){this.body.unmask();FigtreeWeb.app.throwError(errorData);},loadReport:function(client,id){var c=this.getConnection();c.on('complete',function(){this.reportId=id;this.client=client;},this);c.on('complete',this.reportLoaded,this);c.request({mode:'view',id:id,client:client});},reportLoaded:function(c,data){var report=data.report;this.cboReportOn.setValue(report.table);this.txtReportName.setValue(report.title);this.chkWrap.setValue(report.options.wrapText);this.chkShowCounts.setValue(report.options.showCount);this.viewOutputFields.setValue([]);this.viewCriteria.setValue([]);this.viewSortOrder.setValue([]);this.viewOutputFields.setValue(report.outputFields);this.viewCriteria.setValue(report.criteria);this.viewSortOrder.setValue(report.sortFields);this.selectedRoles=report.roleInfo||'';if(report.canEdit!==undefined){this.canEdit=report.canEdit;}
if(report.canCopy!==undefined){this.canCopy=report.canCopy;}
this.runParams=report.runParams;this.mode='view';this.uiUpdate();this.fieldList.setModule(this.cboReportOn.getValue());this.body.unmask();},saveReport:function(){if(this.validate()){var c=this.getConnection(FigtreeWeb.app.translate('saving'));c.on('complete',this.reportSaved,this);c.request({mode:this.mode.toUpperCase(),id:this.reportId,client:this.client,adhoc:this.serialiseReport()});}},reportSaved:function(c,report){var grids=this.findParentByType('fw-screen').getParent().findBy(function(c){return c.isXType('fw-grid')&&/^table_adhoc/.test(c.wid);});this.canEdit=true;this.canCopy=true;this.loadReport(this.client,report.id);if(grids.length>0){grids[0].refresh();}},editReport:function(){this.mode='update';this.uiUpdate();},copyReport:function(){this.mode='add';this.reportId='';this.txtReportName.setValue('Copy of: '+this.txtReportName.getValue());this.uiUpdate();},runReport:function(){var screen=this.findParentByType('fw-screen').getParent(),grid,store,rowIndex;if(this.runParams){FigtreeWeb.app.fireAction({name:'NAVIGATE',type:'POPUP',params:Ext.decode(Ext.encode(this.runParams)),width:this.runPopupWidth,height:this.runPopupHeight},false,screen);}else if(this.reportId&&this.reportId!==''){grid=screen.findBy(function(c){return c.isXType('fw-grid')&&/^table_adhoc/.test(c.wid);});if(grid.length>0){grid=grid[0];store=grid.getStore();rowIndex=store.find('recordKey',this.reportId);if(rowIndex!==-1){grid.rowDblClick(grid,rowIndex);}}}},cancelEdit:function(){if(this.reportId&&this.reportId!==''&&this.client&&this.client!==''){this.loadReport(this.client,this.reportId);}},serialiseReport:function(){return Ext.util.JSON.encode({table:this.cboReportOn.getValue(),title:this.txtReportName.getValue(),options:{wrapText:this.chkWrap.getValue(),showCount:this.chkShowCounts.getValue()},outputFields:this.viewOutputFields.getValue(),sortFields:this.viewSortOrder.getValue(),criteria:this.viewCriteria.getValue(),roleInfo:this.selectedRoles});},uiUpdate:function(){var readOnly=(this.cboReportOn.getValue()===''||this.mode==='view');this.txtReportName.setDisabled(readOnly);this.fieldList.setReadOnly(readOnly);this.viewOutputFields.setReadOnly(readOnly);this.viewSortOrder.setReadOnly(readOnly);this.viewCriteria.setReadOnly(readOnly);this.viewCriteria.ownerCt.topToolbar.items.each(function(item){item.setDisabled&&item.setDisabled(readOnly);});this.chkWrap.setDisabled(readOnly);this.chkShowCounts.setDisabled(readOnly);this.cboReportOn.setDisabled(this.mode!=='add');this.btnEdit.setVisible(this.mode==='view'&&this.canEdit);this.btnCopy.setVisible(this.mode==='view'&&this.canCopy);this.btnCancelEdit.setVisible(this.mode==='update');this.btnSave.setVisible(!readOnly);this.btnRun.setVisible(this.mode==='view'&&(this.runParams||(this.reportId&&this.reportId!=='')));this.btnSelectRoles.setVisible(this.availableRoles&&this.availableRoles.length>0&&!readOnly);this.btnViewRoles.setVisible(this.selectedRoles&&this.selectedRoles.length>0&&readOnly);},validate:function(){if(!this.cboReportOn.isValid()||!this.txtReportName.isValid()||this.viewOutputFields.getValue().length===0){FigtreeWeb.app.throwError({headerText:'&nbsp;',errors:[{message:FigtreeWeb.app.translate('mandatory_fields_error_message')}]});return false;}
return true;},initHelpText:function(){var config;if(this.helpText.length>0){config={cls:'fw-adhocreportdesigner-helptext'};if(Ext.isArray(this.helpText)){config.children=[{tag:'ul',children:[]}];Ext.each(this.helpText,function(item){config.children[0].children.push({tag:'li',html:item});})}else{config.html=this.helpText;}
this.viewOutputFields.ownerCt.body.createChild(config);}},selectRoles:function(){var me=this,win,itemSelector,fromData=[],toData=[],selectedRoles=me.selectedRoles.split(',');Ext.each(me.availableRoles,function(role){function isSelected(roleKey){for(var i=0;i<selectedRoles.length;i++){if(selectedRoles[i]===roleKey){return true;}}
return false;}
var data=[role.key,role.name];if(isSelected(role.key)){toData.push(data);}else{fromData.push(data);}});itemSelector=new FigtreeWeb.Widget.ItemSelector({drawUpIcon:false,drawDownIcon:false,drawTopIcon:false,drawBotIcon:false,dataFields:['key','name'],displayField:'name',valueField:'key',fromData:fromData,toData:toData,iconRight:'js/ext-ux/Multiselect/right2.gif',iconLeft:'js/ext-ux/Multiselect/left2.gif',msWidth:383,msHeight:543});win=new Ext.Window({title:'Roles',width:800,height:600,layout:'fit',modal:true,resizable:false,cls:'fw-screen',items:[itemSelector],bbar:['->',new FigtreeWeb.Widget.Button({text:'Ok',cls:'carica-button-primary',listeners:{'click':{fn:function(){me.selectedRoles=itemSelector.getValue();win.close();}}}}),new FigtreeWeb.Widget.Button({text:'Cancel',cls:'carica-button-secondary',listeners:{'click':{fn:function(){win.close();}}}})],listeners:{'close':{fn:function(){me=win=itemSelector=fromData=toData=selectedRoles=null;}}}});win.show();},viewRoles:function(){var me=this,win,selectedRoles=me.selectedRoles.replace(/,/g,'\n');win=new Ext.Window({title:'Roles',width:640,height:480,layout:'fit',modal:true,resizable:false,cls:'fw-screen',items:[{xtype:'textarea',value:selectedRoles,readOnly:true}],bbar:['->',new FigtreeWeb.Widget.Button({text:'Close',cls:'carica-button-secondary',listeners:{'click':{fn:function(){win.close();}}}})],listeners:{'close':{fn:function(){win=null;}}}});win.show();},updateSelected:function(){var totalWidth=0,store=this.viewOutputFields.getStore();this.fieldList.updateSelected(store);store.each(function(rec){totalWidth+=Number(rec.get('size'));});this.lblTotalWidth.setText(totalWidth);}});Ext.reg('fw-adhocreportdesigner',FigtreeWeb.Widget.AdHoc.ReportDesigner);FigtreeWeb.Widget.AdHoc.ReportDesigner.SortOrderGrid=Ext.extend(FigtreeWeb.Widget.AdHoc.SortOrderGrid,{enableDrag:true,ddGroup:'fw-adhocdesigner',initComponent:function(){FigtreeWeb.Widget.AdHoc.ReportDesigner.SortOrderGrid.superclass.initComponent.apply(this,arguments);this.upButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.moveFieldUp,scope:this}},text:'Move Up',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('move_selected_field_up','Move selected Field up'),disabled:true});this.downButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.moveFieldDown,scope:this}},text:'Move Down',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('move_selected_field_down','Move selected Field down'),disabled:true});this.removeFieldButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.removeField,scope:this}},text:'Remove',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('remove_field','Remove Field'),disabled:true});this.topToolbar=['->',this.upButton,this.downButton,this.removeFieldButton];},initialiseFieldsStores:function(){this.selectedStore=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','sortOrder','pageBreak','totals'],data:[]});},onRender:function(){FigtreeWeb.Widget.AdHoc.ReportDesigner.SortOrderGrid.superclass.onRender.apply(this,arguments);this.dropZone=new FigtreeWeb.Widget.AdHoc.GridDropZone(this,{ddGroup:'fw-adhocdesigner'});},okToDrop:function(fields,ddGrid){return true;},destroy:function(){if(this.dropZone){this.dropZone.unreg();}
FigtreeWeb.Widget.AdHoc.ReportDesigner.SortOrderGrid.superclass.destroy.apply(this,arguments);}});FigtreeWeb.Widget.AdHoc.ReportDesigner.CriteriaGrid=Ext.extend(FigtreeWeb.Widget.AdHoc.CriteriaGrid,{enableDrag:true,ddGroup:'fw-adhocdesigner',initComponent:function(){FigtreeWeb.Widget.AdHoc.ReportDesigner.CriteriaGrid.superclass.initComponent.apply(this,arguments);this.upButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.moveFieldUp,scope:this}},text:'Move Up',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('move_selected_field_up','Move selected Field up'),disabled:true});this.downButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.moveFieldDown,scope:this}},text:'Move Down',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('move_selected_field_down','Move selected Field down'),disabled:true});this.removeFieldButton=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.removeField,scope:this}},text:'Remove',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('remove_field','Remove Field'),disabled:true});this.btnSummariseCriteria=new FigtreeWeb.Widget.Button({listeners:{'click':{fn:this.summariseCriteria,scope:this}},text:'Criteria Summary',cls:'carica-button-secondary',tooltip:FigtreeWeb.app.translate('view_criteria_summary','View Criteria Summary')});this.topToolbar=['->',this.upButton,this.downButton,this.removeFieldButton,'-',this.btnSummariseCriteria];this.bottomToolbar=[this.chkEnableOps,'',FigtreeWeb.app.translate('logical_operators_and_grouping','Logical operators and grouping')+' ','',this.btnAnd,this.btnNot,this.btnOr,this.btnOpenGroup,this.btnCloseGroup];},initialiseFieldsStores:function(){this.selectedStore=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','operator','condition','value'],data:[]});this.selectedStore.on('update',this.checkChange,this);},onRender:function(){FigtreeWeb.Widget.AdHoc.ReportDesigner.CriteriaGrid.superclass.onRender.apply(this,arguments);this.dropZone=new FigtreeWeb.Widget.AdHoc.GridDropZone(this,{ddGroup:'fw-adhocdesigner'});var screen=this.findParentByType('fw-screen');this.initCodeLookups(screen.getField('adhoc-lookup'));this.initOrgEditor(screen.getField('adhoc-org_info'));},okToDrop:function(fields,ddGrid){var ok=true;if(Ext.isArray(fields)&&fields.length>0){Ext.each(fields,function(field){if(!(field.get('type'))){ok=false;}});}
return ok;},destroy:function(){if(this.dropZone){this.dropZone.unreg();}
FigtreeWeb.Widget.AdHoc.ReportDesigner.CriteriaGrid.superclass.destroy.apply(this,arguments);}});

FigtreeWeb.Widget.AdHoc.GridDropZone=function(grid,config){this.grid=grid;FigtreeWeb.Widget.AdHoc.GridDropZone.superclass.constructor.call(this,grid.view.scroller.dom,config);};Ext.extend(FigtreeWeb.Widget.AdHoc.GridDropZone,Ext.dd.DropZone,{onContainerOver:function(dd,e,data){var dropOk=true,fields;if(data.node){fields=[data.node.attributes.field];}else if(data.record){fields=[data.record];}else{fields=data.selections;}
if(dd.grid!==this.grid){Ext.each(fields,function(r){if(!r||r.get('operator')){dropOk=false;}},this);}
dropOk=dropOk&&this.grid.okToDrop(fields,dd.grid);return dropOk?this.dropAllowed:this.dropNotAllowed;},onContainerDrop:function(dd,e,data){var fields,rowEl,rowIndex=null,dropOk=true;rowEl=Ext.fly(e.getTarget()).findParent('.x-grid3-row');if(rowEl){rowIndex=this.grid.view.findRowIndex(rowEl);}
if(data.node){fields=[data.node.attributes.field];}else if(data.record){fields=[data.record];}else{fields=data.selections;}
if(dd.grid!==this.grid){Ext.each(fields,function(r){if(!r||r.get('operator')){dropOk=false;}},this);}
dropOk=dropOk&&this.grid.okToDrop(fields,dd.grid);if(!dropOk){return false;}
Ext.each(fields,function(r){this.grid.getStore().remove(r);this.grid.addField(undefined,r,rowIndex);},this);return true;},containerScroll:true});

FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGrid=Ext.extend(Ext.grid.GridPanel,{fieldList:null,sizeEl:null,metrics:null,initComponent:function(){this.store=new Ext.data.JsonStore({fields:[],data:[]});this.columns=[];FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGrid.superclass.initComponent.apply(this,arguments);},onRender:function(ct,position){FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGrid.superclass.onRender.apply(this,arguments);var view=this.view;view.dragZone=new FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridDragZone(this,{ddGroup:this.ddGroup||'GridDD'});this.dropZone=new FigtreeWeb.Widget.AdHoc.GridDropZone(this,{ddGroup:'fw-adhocdesigner'});},addField:function(doesntMatter,record){var cm=this.getColumnModel(),config=cm.config,i;for(i=0;i<config.length;i++){if(config[i].record.get('name')===record.get('name')){var msg=record.get('label')+' ('+record.get('name')+').'+'<br>You cannot include the same field twice.';FigtreeWeb.app.msgBox('Duplicate field detected',msg,'warning.png');return;}}
if(!this.sizeEl){this.sizeEl=Ext.getBody().createChild({cls:'fw-adhocreportdesigner-ofg-textmetrics'});this.metrics=Ext.util.TextMetrics.createInstance(this.sizeEl);}
config.push({width:this.metrics.getWidth(String.leftPad('',record.get('size'),'A')),header:record.get('printLabel'),tooltip:record.get('label'),dataIndex:record.get('name').replace(/\./g,'-'),resizable:false,record:record,menuDisabled:true});this.reconfigure(this.genStore(config),new Ext.grid.ColumnModel(config));},updateView:function(){var cm=this.getColumnModel(),config=cm.config;Ext.each(config,function(item){var record=item.record;item.width=this.metrics.getWidth(String.leftPad('',record.get('size'),'A'));item.header=record.get('printLabel')},this);this.reconfigure(this.genStore(config),new Ext.grid.ColumnModel(config));},genStore:function(config){var fields=[],data=[{}],rec,field;Ext.each(config,function(i){rec=i.record;field={name:i.dataIndex};switch(rec.get('type')){case'number':field.type='float';data[0][i.dataIndex]='0.00';break;case'logical':field.type='string';data[0][i.dataIndex]='Yes';break;case'date':field.type='string';data[0][i.dataIndex]='01/01/2000';break;default:field.type='string';data[0][i.dataIndex]='String data';}
fields.push(field);});return new Ext.data.JsonStore({fields:fields,data:data});},getView:function(){if(!this.view){this.view=new FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridView(this.viewConfig);}
return this.view;},settingsPopup:function(colIndex){function ok(){Ext.each(w.items.items[0].items.items,function(item){record.set(item.name,item.getValue());});this.updateView();w.close();}
var w,cm=this.getColumnModel(),record=cm.config[colIndex].record;w=new Ext.Window({cls:'fw-screen',title:record.get('label'),height:135,width:300,layout:'fit',modal:true,bodyStyle:'padding: 10px;',bodyCfg:{cls:'carica-form-gradient'},bbar:['->',{xtype:'fw-button',text:'Save',listeners:{'click':{fn:ok,scope:this}},cls:'carica-button-primary'},{xtype:'fw-button',text:'Remove',listeners:{'click':{fn:function(){cm.config.splice(colIndex,1);this.updateView();w.close();},scope:this}},cls:'carica-button-secondary'},{xtype:'fw-button',text:'Cancel',listeners:{'click':{fn:function(){w.close();}}},cls:'carica-button-secondary'}],items:[{xtype:'form',border:false,bodyStyle:'background: none',labelWidth:70,defaults:{anchor:'0px none'},items:[{xtype:'textfield',fieldLabel:FigtreeWeb.app.translate('print_label','Print Label'),name:'printLabel',value:record.get('printLabel')},{xtype:'textfield',fieldLabel:FigtreeWeb.app.translate('size','Size'),name:'size',value:record.get('size')}]}]});if(record.get('type')==='code'){w.height+=20;w.items.items[0].labelWidth=120;w.items.items[0].add({xtype:'combo',fieldLabel:FigtreeWeb.app.translate('code_description','Code / Description'),name:'codeDisplayType',displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'CODE',description:FigtreeWeb.app.translate('code','Code')},{value:'DESC',description:FigtreeWeb.app.translate('description','Description')},{value:'BOTH',description:FigtreeWeb.app.translate('both','Both')}]}),value:record.get('codeDisplayType')});}
w.show(undefined,function(){w.find('name','printLabel')[0].focus(true);});},getValue:function(){var cm=this.getColumnModel(),config=cm.config,record,field;var returnArray=[];for(var i=0;i<config.length;i++){record=config[i].record;returnArray.push({});for(var j=0;j<record.fields.items.length;j++){field=record.fields.items[j].name;returnArray[i][field]=record.get(field);}}
return returnArray;},setValue:function(fields){var recordType=Ext.data.Record.create(['name','label','printLabel','size','type']);this.reconfigure(new Ext.data.JsonStore({fields:[],data:[]}),new Ext.grid.ColumnModel([]));for(var i=0;i<fields.length;i++){var r=new recordType(fields[i]);this.addField(undefined,r);}},okToDrop:function(fields,ddGrid){var ok=true;if(Ext.isArray(fields)&&fields.length>0){Ext.each(fields,function(field){if(!(field.get('type'))||!(field.get('printLabel'))||!(field.get('size'))){ok=false;}});}
return ok&&ddGrid!==this;},setReadOnly:function(readOnly){if(readOnly){var mask=this.getEl().mask();mask.setStyle('opacity','0.3');}else{this.getEl().unmask();}},destroy:function(){if(this.sizeEl){this.sizeEl.remove();}
if(this.dropZone){this.dropZone.unreg();}
FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGrid.superclass.destroy.apply(this,arguments);}});Ext.reg('fw-adhoc-grid-output-fields-preview',FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGrid);FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridDragZone=Ext.extend(Ext.grid.GridDragZone,{getDragData:function(e){var t=Ext.lib.Event.getTarget(e),cellIndex=this.view.findCellIndex(t),cm=this.grid.getColumnModel(),col=cm.config[cellIndex],rec,data;if(!col){return false;}
rec=col.record,data=FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridDragZone.superclass.getDragData.apply(this,arguments);data.selections=[rec];return data;},onInitDrag:function(e){var data=this.dragData;this.ddel.innerHTML=data.selections[0].get('label');this.proxy.update(this.ddel);}});FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridView=Ext.extend(Ext.grid.GridView,{handleHdDown:function(e,t){var target=Ext.fly(t),m;if(target.hasClass('fw-ofg-colsettings')){m=target.parent(undefined,true).className.match(this.colRe);if(m&&m[1]){e.stopEvent();var index=Number(m[1]);this.grid.settingsPopup(index);}}},updateHeaders:function(){FigtreeWeb.Widget.AdHoc.OutputFieldsPreviewGridView.superclass.updateHeaders.apply(this,arguments);var cm=this.cm,len=cm.getColumnCount(),hd=Ext.fly(this.innerHd).child('.x-grid3-hd-row').parent(),tr=hd.createChild({tag:'tr'}),i;for(i=0;i<len;i++){tr.createChild({tag:'td',height:'20px',align:'center',cls:'x-grid3-td-'+i,cn:[{tag:'img',cls:'fw-ofg-colsettings',src:'images/v2/icon-settings.png'}]});}}});

FigtreeWeb.Widget.AdHoc.DataView=Ext.extend(Ext.DataView,{ddGroup:'fw-adhocdesigner',itemSelector:'.fw-ah-fld',overClass:'fw-ah-fld-over',requiredFields:'',allowDups:false,initComponent:function(){FigtreeWeb.Widget.AdHoc.DataView.superclass.initComponent.apply(this,arguments);this.on('click',this.onNodeClick,this);},onRender:function(){FigtreeWeb.Widget.AdHoc.DataView.superclass.onRender.apply(this,arguments);this.dragZone=new FigtreeWeb.Widget.AdHoc.DataView.DragZone(this,{ddGroup:this.ddGroup});this.dropZone=new FigtreeWeb.Widget.AdHoc.DataView.DropZone(this,{ddGroup:this.ddGroup});},getValue:function(){var returnArray=[],store=this.getStore();store.each(function(record){var item={};Ext.each(record.fields.items,function(field){item[field.name]=record.get(field.name);})
returnArray.push(item);});return returnArray;},setValue:function(fields){this.getStore().loadData(fields);},setReadOnly:function(readOnly){if(readOnly){var mask=this.getEl().mask();mask.setStyle('opacity','0.3');}else{this.getEl().unmask();}},onNodeClick:Ext.emptyFn,okToDrag:function(e){return true;},setFieldDefaults:function(json){return json;},okToDrop:function(dd,e,data){var fields,rowEl,index=null,dropOk=true;nodeEl=e.getTarget('.fw-ah-fld');if(nodeEl){index=this.indexOf(nodeEl);}
if(data.node){fields=[data.node.attributes.field];}else if(data.record){fields=[data.record];}else{fields=data.selections;}
if(dd.dataView!==this){Ext.each(fields,function(r){if(!r||r.get('operator')){dropOk=false;}else if(this.requiredFields.length>0){Ext.each(this.requiredFields.split(','),function(field){if(!r.get(field)){dropOk=false;}});}},this);}
if(!dropOk){return false;}
data.fields=fields;data.dropIndex=index;return true;},addField:function(record,index){var json={};for(var i=0;i<record.fields.items.length;i++){json[record.fields.items[i].name]=record.get(record.fields.items[i].name);}
json=this.setFieldDefaults(json);var findByFn=function(record,id){if(json.name!=record.get('name')){return false;}
return true;}
var isDup=this.getStore().findBy(findByFn)!=-1;if(!this.allowDups&&isDup){var msg=json.label+' ('+json.name+').'+'<br>You cannot include the same field twice.';FigtreeWeb.app.msgBox('Duplicate field detected',msg,'warning.png');}else{if(index===null){index=this.getStore().getCount();}else{index++;}
this.getStore().insert(index,this.getStore().reader.readRecords([json]).records);}},destroy:function(){if(this.dragZone){this.dragZone.unreg();if(this.dragZone.ddel){Ext.fly(this.dragZone.ddel).remove();}}
if(this.dropZone){this.dropZone.unreg();}
FigtreeWeb.Widget.AdHoc.DataView.superclass.destroy.apply(this,arguments);}});FigtreeWeb.Widget.AdHoc.DataView.DragZone=function(dataView,config){FigtreeWeb.Widget.AdHoc.DataView.DragZone.superclass.constructor.call(this,dataView.getEl().dom,config);this.scroll=false;this.dataView=dataView;this.ddel=document.createElement('div');this.ddel.className='x-grid-dd-wrap';};Ext.extend(FigtreeWeb.Widget.AdHoc.DataView.DragZone,Ext.dd.DragZone,{getDragData:function(e){var t;if(this.dataView.okToDrag(e)&&(t=e.getTarget('.fw-ah-fld'))!==null){return{dataView:this.dataView,record:this.dataView.getRecord(t),index:this.dataView.indexOf(t),ddel:this.ddel,src:t};}
return false;},onInitDrag:function(e){var data=this.dragData,op=data.record.get('operator');this.ddel.innerHTML=data.record.get('label');if(op){this.ddel.innerHTML=op;}
Ext.fly(data.src).addClass('fw-ah-dragsrc');this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,data){return false;},onEndDrag:function(data,e){if(this.dragData&&this.dragData.src){Ext.fly(this.dragData.src).removeClass('fw-ah-dragsrc');}},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}});FigtreeWeb.Widget.AdHoc.DataView.DropZone=function(dataView,config){this.dataView=dataView;FigtreeWeb.Widget.AdHoc.DataView.DropZone.superclass.constructor.call(this,dataView.getEl().dom,config);};Ext.extend(FigtreeWeb.Widget.AdHoc.DataView.DropZone,Ext.dd.DropZone,{overClass:'fw-ah-dz-over',onContainerOver:function(dd,e,data){var ok=this.dataView.okToDrop(dd,e,data);if(ok){this.el.addClass(this.overClass);return this.dropAllowed;}
this.el.removeClass(this.overClass);return this.dropNotAllowed;},onContainerDrop:function(dd,e,data){this.el.removeClass(this.overClass);if(!this.dataView.okToDrop(dd,e,data)){return false;}
Ext.each(data.fields,function(r){if(this.dataView.getStore().indexOf(r)>-1){this.dataView.getStore().remove(r);if(data.dropIndex!==null){data.dropIndex--;}}
this.dataView.addField(r,data.dropIndex);},this);return true;},notifyOut:function(){FigtreeWeb.Widget.AdHoc.DataView.DropZone.superclass.notifyOut.apply(this,arguments);this.el.removeClass(this.overClass);},containerScroll:true});

FigtreeWeb.Widget.AdHoc.OutputFieldsView=Ext.extend(FigtreeWeb.Widget.AdHoc.DataView,{cls:'fw-ah-outfields',requiredFields:'name,printLabel,type,size',initComponent:function(){var ieViersion=Ext.getIeVersion(),extraFieldClass=ieViersion>-1&&ieViersion<9?' fw-ah-ie7-fld':'';this.store=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','decimalPrecision','codeDisplayType'],data:[]});this.tpl=new Ext.XTemplate('<div class="fw-ah-outfields-inner">','<tpl for=".">','<div class="fw-ah-fld '+extraFieldClass+'">','<div class="fw-ah-fld-header">{printLabel}</div>','<div class="fw-ah-fld-typewidth">({[this.getType(values)]})&nbsp;{size}</div>','<div class="fw-ah-fld-links">','<span class="carica-form-link fw-ah-fld-linkedit">'+FigtreeWeb.app.translate('edit','Edit')+'</span>&nbsp;','|&nbsp;','<span class="carica-form-link fw-ah-fld-linkdelete">'+FigtreeWeb.app.translate('delete','Delete')+'</span>','</div>','</div>','</tpl>','</div>','<div class="x-clear"></div>',{getType:(function(values){var type=values.type;if(values.type==='code'||values.type==='pseudo_org'){if(values.codeDisplayType==='CODE'&&values.type==='pseudo_org'){type+=' - '+FigtreeWeb.app.translate('code','code').toLowerCase();}else if(values.codeDisplayType==='BOTH'){type+=' - '+FigtreeWeb.app.translate('both','both').toLowerCase();}else if(values.codeDisplayType==='DESC'){type+=' - '+FigtreeWeb.app.translate('description','description').toLowerCase();}}
return type;}).createDelegate(this)});FigtreeWeb.Widget.AdHoc.OutputFieldsView.superclass.initComponent.apply(this,arguments);},onNodeClick:function(view,index,node,e){if(e.getTarget('.fw-ah-fld-linkedit')){this.settingsPopup(this.getRecord(node));}else if(e.getTarget('.fw-ah-fld-linkdelete')){this.getStore().remove(this.getRecord(node));}},okToDrag:function(e){return(e.getTarget('.fw-ah-fld-links')===null);},onAdd:function(ds,records,index){var node;FigtreeWeb.Widget.AdHoc.OutputFieldsView.superclass.onAdd.apply(this,arguments);if(records.length>0){node=Ext.fly(this.getNode(this.getStore().indexOf(records[0])));node.scrollIntoView(node.parent('.fw-ah-outfields'));}},settingsPopup:function(record){function ok(){Ext.each(w.items.items[0].items.items,function(item){record.set(item.name,item.getValue());});w.close();}
function specKey(field,e){var key=e.getKey();if(key===e.ENTER){ok();}}
var w=new Ext.Window({cls:'fw-screen',title:record.get('label'),height:135,width:300,layout:'fit',modal:true,bodyStyle:'padding: 10px;',bodyCfg:{cls:'carica-form-gradient'},bbar:['->',{xtype:'fw-button',text:FigtreeWeb.app.translate('save'),listeners:{'click':{fn:ok,scope:this}},cls:'carica-button-primary'},{xtype:'fw-button',text:FigtreeWeb.app.translate('cancel'),listeners:{'click':{fn:function(){w.close();}}},cls:'carica-button-secondary'}],items:[{xtype:'form',border:false,bodyStyle:'background: none',labelWidth:70,defaults:{anchor:'0px none'},items:[{xtype:'textfield',fieldLabel:FigtreeWeb.app.translate('print_label','Print Label'),name:'printLabel',value:record.get('printLabel'),listeners:{'specialkey':{fn:specKey}}},{xtype:'textfield',fieldLabel:FigtreeWeb.app.translate('size','Size'),name:'size',value:record.get('size'),listeners:{'specialkey':{fn:specKey}}}]}]});if(record.get('type')==='code'||record.get('type')==='pseudo_org'){w.height+=20;w.items.items[0].labelWidth=120;w.items.items[0].add({xtype:'combo',fieldLabel:FigtreeWeb.app.translate('code_description','Code / Description'),name:'codeDisplayType',displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'CODE',description:FigtreeWeb.app.translate('code','Code')},{value:'DESC',description:FigtreeWeb.app.translate('description','Description')},{value:'BOTH',description:FigtreeWeb.app.translate('both','Both')}]}),value:record.get('codeDisplayType')});}
w.show(undefined,function(){w.find('name','printLabel')[0].focus(true);});},setFieldDefaults:function(json){if(!json['codeDisplayType']){json['codeDisplayType']='DESC';}
return FigtreeWeb.Widget.AdHoc.SortOrderGrid.superclass.setFieldDefaults.call(this,json);},destroy:function(){FigtreeWeb.Widget.AdHoc.OutputFieldsView.superclass.destroy.apply(this,arguments);}});

FigtreeWeb.Widget.AdHoc.SortOrderView=Ext.extend(FigtreeWeb.Widget.AdHoc.DataView,{cls:'fw-ah-sortorder',requiredFields:'name,label',initComponent:function(){this.store=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','decimalPrecision','sortOrder',{name:'pageBreak',type:'bool',defaultValue:false},{name:'totals',type:'bool',defaultValue:false}],data:[]});this.tpl=new Ext.XTemplate('<tpl for=".">','<div class="fw-ah-fld">','<div class="fw-ah-so-label">','{label}','</div>','<div class="fw-ah-so-order">','Order:&nbsp;','<span class="carica-form-link fw-ah-fld-linkordertoggle">','{[values.sortOrder === "ASC" ? "'+FigtreeWeb.app.translate('normal','Normal')+'" : "'+FigtreeWeb.app.translate('reverse','Reverse')+'"]}','</span>','</div>','<div class="fw-ah-so-pagebrk">',FigtreeWeb.app.translate('page_break','Page break?')+':&nbsp;','<span class="carica-form-link fw-ah-fld-linkpagebrktoggle">','{[values.pageBreak ? "'+FigtreeWeb.app.translate('yes')+'" : "'+FigtreeWeb.app.translate('no')+'"]}','</span>','</div>','<div class="fw-ah-so-totals">',FigtreeWeb.app.translate('totals','Totals?')+':&nbsp;','<span class="carica-form-link fw-ah-fld-linktotaltoggle">','{[values.totals ? "'+FigtreeWeb.app.translate('yes')+'" : "'+FigtreeWeb.app.translate('no')+'"]}','</span>','</div>','<img class="fw-ah-fld-imgdelete" src="images/v2/appbar.close.png" title="delete"/>','</div>','</tpl>');FigtreeWeb.Widget.AdHoc.SortOrderView.superclass.initComponent.apply(this,arguments);},onNodeClick:function(view,index,node,e){if(e.getTarget('.fw-ah-fld-linkordertoggle')){this.getRecord(node).set('sortOrder',this.getRecord(node).get('sortOrder')==='ASC'?'DSC':'ASC');}else if(e.getTarget('.fw-ah-fld-linkpagebrktoggle')){this.getRecord(node).set('pageBreak',!this.getRecord(node).get('pageBreak'));}else if(e.getTarget('.fw-ah-fld-linktotaltoggle')){this.getRecord(node).set('totals',!this.getRecord(node).get('totals'));}else if(e.getTarget('.fw-ah-fld-imgdelete')){this.getStore().remove(this.getRecord(node));}},setFieldDefaults:function(json){if(!json['sortOrder']){json['sortOrder']='ASC';}
return FigtreeWeb.Widget.AdHoc.SortOrderGrid.superclass.setFieldDefaults.call(this,json);}});

FigtreeWeb.Widget.AdHoc.CriteriaView=Ext.extend(FigtreeWeb.Widget.AdHoc.DataView,{cls:'fw-ah-criteria',conditions:null,allowDups:true,itemSelector:'.fw-ah-fld',requiredFields:'name,label,type',initComponent:function(){this.store=new Ext.data.JsonStore({fields:['name','label','printLabel','size','type','operator','condition','value',{name:'decimalPrecision',defaultValue:-1}],data:[]});this.tpl=new Ext.XTemplate('<tpl for=".">','<div class="fw-ah-fld{[this.getOpCls(values.operator)]}" style="margin-left:{[this.getIndent(values.operator, xindex)]}px;">','<tpl if="operator">','<span>{operator}</span>','<img class="fw-ah-fld-imgdelete" src="images/v2/appbar.close.png" title="delete"/>','</tpl>','<tpl if="!operator">','<span class="fw-ah-crt-label">{label}</span>&nbsp;','<span class="carica-form-link fw-ah-fld-linkcondition">{[this.getConditionDesc(values.condition)]}</span>&nbsp;','<span class="carica-form-link fw-ah-fld-linkvalue">{[this.renderValue(values.value, values.type, values.condition)]}</span>','<img class="fw-ah-fld-imgdelete" src="images/v2/appbar.close.png" title="delete"/>','</tpl>','</div>','</tpl>',{indent:5,getIndent:function(op,index){var indent;if(index===1){this.indent=0;}
indent=this.indent;if(op==='('){this.indent+=30;}else if(op===')'){this.indent-=30;if(this.indent<0){this.indent=0;}
indent=this.indent;}
return indent;},getConditionDesc:this.getConditionDesc.createDelegate(this),getOpCls:function(op){if(op){if(op==='('){op='brack-open';}
if(op===')'){op='brack-close';}
return' fw-ah-op fw-ah-op-'+op.toLowerCase();}
return'';},renderValue:function(value,type,condition){var displayVal=value,placeHolder='['+FigtreeWeb.app.translate('specify','Specify')+']';if(displayVal===''){displayVal=placeHolder;}
if((type=='organisation')&&(value instanceof Object)){displayVal='';for(var i=0;i<value.length;i++){displayVal+=(value[i].desc||'')+((i<(value.length-1))?' ':'');}}else if((type=='code')){if(Ext.isArray(value)){displayVal='';for(var i=0;i<value.length;i++){displayVal+=(value[i].desc||'')+((i<(value.length-1))?', ':'');}}else if(value instanceof Object){displayVal=value.desc;}}else if((type=='date')){if(value instanceof Object){displayVal=value.desc;}}else if(type=='boolean'||type=='logical'){displayVal=/^(yes|true)$/i.test(String(value))?FigtreeWeb.app.translate('yes'):FigtreeWeb.app.translate('no');}else if(type==='number'){displayVal=String(value).replace(/\./,FigtreeWeb.app.getDecimalSeparator());}
if(displayVal!==placeHolder){displayVal='\''+displayVal+'\'';}
return displayVal;}});this.conditions=[{value:'MATCHES',description:FigtreeWeb.app.translate('matches_characters_with','matches characters with')},{value:'EQ',description:FigtreeWeb.app.translate('equal_to','equal to')},{value:'GT',description:FigtreeWeb.app.translate('greater_than','greater than')},{value:'GE',description:FigtreeWeb.app.translate('greater_than_or_equal_to','greater than or equal to')},{value:'LT',description:FigtreeWeb.app.translate('less_than','less than')},{value:'LE',description:FigtreeWeb.app.translate('less_than_or_equal_to','less than or equal to')},{value:'NE',description:FigtreeWeb.app.translate('not_equal_to','not equal to')},{value:'OO',description:FigtreeWeb.app.translate('is_one_of','is one of')},{value:'DF',description:FigtreeWeb.app.translate('date_range_from','date range from')},{value:'DT',description:FigtreeWeb.app.translate('date_range_to','date range to')}];FigtreeWeb.Widget.AdHoc.CriteriaView.superclass.initComponent.apply(this,arguments);},onRender:function(){FigtreeWeb.Widget.AdHoc.CriteriaView.superclass.onRender.apply(this,arguments);this.opDragZone=new FigtreeWeb.Widget.AdHoc.CriteriaView.OpDragZone(this,{});},getConditionDesc:function(val){for(var i=0;i<this.conditions.length;i++){if(val===this.conditions[i].value){return this.conditions[i].description;}}
return val;},setFieldDefaults:function(json){if(!json['condition']){json['condition']='EQ';}
var t=json['type'];if(typeof t==='string'){if(t=='code'){json['condition']='OO';}else if(t=='character'){json['condition']='MATCHES';}}
return FigtreeWeb.Widget.AdHoc.CriteriaGrid.superclass.setFieldDefaults.call(this,json);},onNodeClick:function(view,index,node,e){var target;if(target=e.getTarget('.fw-ah-fld-linkcondition')){this.displayCondition(this.getRecord(node),target);}else if(target=e.getTarget('.fw-ah-fld-linkvalue')){this.displayValueEditor(this.getRecord(node),target);}else if(e.getTarget('.fw-ah-fld-imgdelete')){this.getStore().remove(this.getRecord(node));}},displayCondition:function(record,target){var parent=Ext.fly(target).parent(),div=parent.createChild({style:{width:'200px',height:'22px'}},target),clickMask;cboCondition=new Ext.form.ComboBox({displayField:'description',valueField:'value',mode:'local',forceSelection:true,triggerAction:'all',editable:false,store:new Ext.data.JsonStore({fields:['value','description'],data:this.conditions.slice(0,this.conditions.length-(record.get('type')==='date'?0:2))}),width:200,renderTo:Ext.getBody(),value:record.get('condition')});clickMask=Ext.getBody().createChild({cls:'ext-el-mask',style:{'z-index':'10998'}});clickMask.setOpacity(0.00);clickMask.on('click',function(){cboCondition.destroy();this.refresh();},this);cboCondition.on('destroy',function(){clickMask.remove();parent=div=clickMask=cboCondition=null;});cboCondition.getPositionEl().setStyle({'top':div.getTop()+'px','left':div.getLeft()+'px','position':'absolute','z-index':'10999'});cboCondition.on('select',function(){var currentCond=record.get('condition'),cond=cboCondition.getValue(),value=record.get('value');if(cond!=='OO'&&currentCond==='OO'&&Ext.isArray(value)){record.data['value']=value[0];}else if(cond==='OO'&&currentCond!=='OO'&&value.desc){record.data['value']=[value];}
record.set('condition',cond);cboCondition.destroy();this.refresh();},this);Ext.fly(target).remove();cboCondition.onTriggerClick();},displayValueEditor:function(record,target){var parent=Ext.fly(target).parent(),div=parent.createChild({style:{width:'300px',height:'22px'}},target),repDesigner=this.findParentByType('fw-adhocreportdesigner'),clickMask;valueEditor=this.getValueEditor(record);if(valueEditor===null){this.refresh();return;}
valueEditor.width=300;valueEditor.setValue(record.get('value'));clickMask=Ext.getBody().createChild({cls:'ext-el-mask',style:{'z-index':'10998'}});clickMask.setOpacity(0.00);clickMask.on('click',function(){valueEditor.fireEvent('valueset',valueEditor,valueEditor.getValue());},this);valueEditor.on('destroy',function(){clickMask.remove();parent=div=clickMask=valueEditor=null;this.refresh();},this);valueEditor.render(Ext.getBody());valueEditor.getPositionEl().setStyle({'top':div.getTop()+'px','left':div.getLeft()+'px','position':'absolute','z-index':'10999'});Ext.fly(target).remove();valueEditor.focus(true);},getValueEditor:function(record){var formPanel=this.findParentByType('fw-formpanel'),cl=formPanel.find('name','adhoc-lookup')[0],org=formPanel.find('name','adhoc-org_info')[0],repDesigner=this.findParentByType('fw-adhocreportdesigner'),type=record.get('type'),cond=record.get('condition'),editor;if((type==='code'&&cond!=='OO')||(type==='date'&&/^(DF|DT)$/.test(cond))){editor=new FigtreeWeb.Widget.Lookup(Ext.applyIf({simpleLookup:true,popGridHeight:300,onTriggerClick:function(value){if(!this.initialConfig.params){this.initialConfig.params=this.params;}
this.params=Ext.apply({},this.initialConfig.params);this.params.params+=';adhoc_info;';this.params.params+='module;'+this.module+';';this.params.params+='table;'+this.table+';';this.params.params+='field;'+this.field;if(this.condition==='DF'||this.condition==='DT'){this.params.params+=';date_condition;'+this.condition;}
FigtreeWeb.Widget.Lookup.prototype.onTriggerClick.apply(this,arguments);},getValue:function(){return{desc:this.description,value:this.value};},setValue:function(value){if((value instanceof Object)&&(value.desc!=undefined)&&(value.value!=undefined)){FigtreeWeb.Widget.Lookup.prototype.setValue.call(this,value.value,value.desc);return;}
FigtreeWeb.Widget.Lookup.prototype.setValue.apply(this,arguments);if(this.grid&&this.grid.isVisible()){this.fireEvent('valueset',this,this.getValue());}},ownerCt:formPanel},cl.initialConfig));editor.condition=record.get('condition');editor.module=repDesigner.fieldList.module;editor.table=record.get('name').split('.')[0];editor.field=record.get('name');editor.on('render',editor.onTriggerClick,editor,{delay:10});}else if(type==='code'&&cond==='OO'){editor=new FigtreeWeb.Widget.OneOfSelector({params:Ext.apply({},cl.initialConfig.params),ownerCt:formPanel,mode:'adhocv2'});editor.getValue=function(){return Ext.util.JSON.decode(Ext.util.JSON.encode(this.value));};editor.module=repDesigner.fieldList.module;editor.table=record.get('name').split('.')[0];editor.field=record.get('name');editor.on('render',editor.onTriggerClick,editor,{delay:10});}else if(type==='number'){editor=new FigtreeWeb.Widget.NumberField({selectOnFocus:true,checkForEnter:Ext.emptyFn,decimalPrecision:record.get('decimalPrecision')});editor.on('specialkey',function(field,e){var key=e.getKey();if(key===e.ENTER||key===e.TAB){field.fireEvent('valueset',field,field.getValue());}},this);}else if(type==='date'){editor=new FigtreeWeb.Widget.DateField({selectOnFocus:true,checkForEnter:Ext.emptyFn});editor.on('specialkey',function(field,e){var key=e.getKey();if(key===e.ENTER||key===e.TAB){field.fireEvent('valueset',field,field.getValue());}},this);}else if(type==='organisation'){editor=new FigtreeWeb.Widget.OrganisationSelector(Ext.applyIf({baseParams:Ext.apply({},formPanel.baseParams),onTriggerClick:function(){var me=this;FigtreeWeb.Widget.OrganisationSelector.prototype.onTriggerClick.apply(this,arguments);this.popupVisible=true;var popup=Ext.WindowMgr.getActive();popup.setZIndex(11000);popup.buttons[1].handler=function(){popup.cancel();me.destroy();me=null;};},setValue:function(value){if(this.popupVisible){(function(val){this.popupVisible=false;this.fireEvent('valueset',this,val);}).defer(1,this,[value]);}
if(!(value instanceof Object)){value=[];for(var i=0;i<this.levels.length;i++){value.push({code:undefined,desc:''});}}
FigtreeWeb.Widget.OrganisationSelector.prototype.setValue.call(this,value);},getValue:function(){return Ext.util.JSON.decode(Ext.util.JSON.encode(this.levels));}},org.initialConfig));editor.on('render',editor.onTriggerClick,editor,{delay:10});}else if(type==='boolean'||type==='logical'){record.set('value',/^(yes|true)$/i.test(String(record.get('value')))?'false':'true');return null;}else{editor=new Ext.form.TextField({selectOnFocus:true});editor.on('specialkey',function(field,e){var key=e.getKey();if(key===e.ENTER||key===e.TAB){field.fireEvent('valueset',field,field.getValue());}},this);}
editor.on('valueset',function(field,value){record.data['value']=value;field.destroy();},this);editor.on('specialkey',function(field,e){var key=e.getKey();if(key===e.ESC){field.destroy();this.refresh();}},this);return editor;},checkOperators:function(){var store=this.store,i,op,opp1;store.suspendEvents();store.resumeEvents();},insertOp:function(op,index){var store=this.getStore(),rec={operator:op,name:'',label:'',condition:'',value:'',type:'operator'};store.insert(index,store.reader.readRecords([rec]).records);},onAdd:function(){this.checkOperators();this.refresh();},onUpdate:function(){this.checkOperators();this.refresh();},onRemove:function(){this.checkOperators();this.refresh();},destroy:function(){if(this.opDragZone){this.opDragZone.unreg();if(this.opDragZone.ddel){Ext.fly(this.opDragZone.ddel).remove();}}
FigtreeWeb.Widget.AdHoc.CriteriaView.superclass.destroy.apply(this,arguments);}});FigtreeWeb.Widget.AdHoc.CriteriaView.OpDragZone=function(dataView,config){var toolbar=dataView.ownerCt.topToolbar;this.dataView=dataView;FigtreeWeb.Widget.AdHoc.DataView.DragZone.superclass.constructor.call(this,toolbar.getEl().dom,config);this.scroll=false;this.ddel=document.createElement('div');this.ddel.className='x-grid-dd-wrap';};Ext.extend(FigtreeWeb.Widget.AdHoc.CriteriaView.OpDragZone,Ext.dd.DragZone,{ddGroup:'fw-adhocdesigner',getDragData:function(e){var t;if((t=e.getTarget('.x-btn'))!==null){return{op:Ext.getCmp(t.id).operator,record:this.dataView.getStore().reader.readRecords([{type:'operator',operator:Ext.getCmp(t.id).operator}]).records[0],ddel:this.ddel};}
return false;},onInitDrag:function(e){var data=this.dragData,op=data.op;this.ddel.innerHTML=op;this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,data){return false;},onEndDrag:function(data,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}});

function js_beautify(js_source_text,options)
{var input,output,token_text,last_type,last_text,last_word,current_mode,modes,indent_string;var whitespace,wordchar,punct,parser_pos,line_starters,in_case;var prefix,token_type,do_block_just_closed,var_line,var_line_tainted,if_line_flag;var indent_level;var options=options||{};var opt_indent_size=options['indent_size']||4;var opt_indent_char=options['indent_char']||' ';var opt_preserve_newlines=typeof options['preserve_newlines']==='undefined'?true:options['preserve_newlines'];var opt_indent_level=options['indent_level']||0;function trim_output()
{while(output.length&&(output[output.length-1]===' '||output[output.length-1]===indent_string)){output.pop();}}
function print_newline(ignore_repeated)
{ignore_repeated=typeof ignore_repeated==='undefined'?true:ignore_repeated;if_line_flag=false;trim_output();if(!output.length){return;}
if(output[output.length-1]!=="\n"||!ignore_repeated){output.push("\n");}
for(var i=0;i<indent_level;i++){output.push(indent_string);}}
function print_space()
{var last_output=output.length?output[output.length-1]:' ';if(last_output!==' '&&last_output!=='\n'&&last_output!==indent_string){output.push(' ');}}
function print_token()
{output.push(token_text);}
function indent()
{indent_level++;}
function unindent()
{if(indent_level){indent_level--;}}
function remove_indent()
{if(output.length&&output[output.length-1]===indent_string){output.pop();}}
function set_mode(mode)
{modes.push(current_mode);current_mode=mode;}
function restore_mode()
{do_block_just_closed=current_mode==='DO_BLOCK';current_mode=modes.pop();}
function in_array(what,arr)
{for(var i=0;i<arr.length;i++)
{if(arr[i]===what){return true;}}
return false;}
function get_next_token()
{var n_newlines=0;var c='';do{if(parser_pos>=input.length){return['','TK_EOF'];}
c=input.charAt(parser_pos);parser_pos+=1;if(c==="\n"){n_newlines+=1;}}
while(in_array(c,whitespace));var wanted_newline=false;if(opt_preserve_newlines){if(n_newlines>1){for(var i=0;i<2;i++){print_newline(i===0);}}
wanted_newline=(n_newlines===1);}
if(in_array(c,wordchar)){if(parser_pos<input.length){while(in_array(input.charAt(parser_pos),wordchar)){c+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos===input.length){break;}}}
if(parser_pos!==input.length&&c.match(/^[0-9]+[Ee]$/)&&input.charAt(parser_pos)==='-'){parser_pos+=1;var t=get_next_token(parser_pos);c+='-'+t[0];return[c,'TK_WORD'];}
if(c==='in'){return[c,'TK_OPERATOR'];}
if(wanted_newline&&last_type!=='TK_OPERATOR'&&!if_line_flag){print_newline();}
return[c,'TK_WORD'];}
if(c==='('||c==='['){return[c,'TK_START_EXPR'];}
if(c===')'||c===']'){return[c,'TK_END_EXPR'];}
if(c==='{'){return[c,'TK_START_BLOCK'];}
if(c==='}'){return[c,'TK_END_BLOCK'];}
if(c===';'){return[c,'TK_SEMICOLON'];}
if(c==='/'){var comment='';if(input.charAt(parser_pos)==='*'){parser_pos+=1;if(parser_pos<input.length){while(!(input.charAt(parser_pos)==='*'&&input.charAt(parser_pos+1)&&input.charAt(parser_pos+1)==='/')&&parser_pos<input.length){comment+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos>=input.length){break;}}}
parser_pos+=2;return['/*'+comment+'*/','TK_BLOCK_COMMENT'];}
if(input.charAt(parser_pos)==='/'){comment=c;while(input.charAt(parser_pos)!=="\x0d"&&input.charAt(parser_pos)!=="\x0a"){comment+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos>=input.length){break;}}
parser_pos+=1;if(wanted_newline){print_newline();}
return[comment,'TK_COMMENT'];}}
if(c==="'"||c==='"'||(c==='/'&&((last_type==='TK_WORD'&&last_text==='return')||(last_type==='TK_START_EXPR'||last_type==='TK_END_BLOCK'||last_type==='TK_OPERATOR'||last_type==='TK_EOF'||last_type==='TK_SEMICOLON')))){var sep=c;var esc=false;var resulting_string='';if(parser_pos<input.length){while(esc||input.charAt(parser_pos)!==sep){resulting_string+=input.charAt(parser_pos);if(!esc){esc=input.charAt(parser_pos)==='\\';}else{esc=false;}
parser_pos+=1;if(parser_pos>=input.length){break;}}}
parser_pos+=1;resulting_string=sep+resulting_string+sep;if(sep=='/'){while(parser_pos<input.length&&in_array(input.charAt(parser_pos),wordchar)){resulting_string+=input.charAt(parser_pos);parser_pos+=1;}}
return[resulting_string,'TK_STRING'];}
if(in_array(c,punct)){while(parser_pos<input.length&&in_array(c+input.charAt(parser_pos),punct)){c+=input.charAt(parser_pos);parser_pos+=1;if(parser_pos>=input.length){break;}}
return[c,'TK_OPERATOR'];}
return[c,'TK_UNKNOWN'];}
indent_string='';while(opt_indent_size--){indent_string+=opt_indent_char;}
indent_level=opt_indent_level;input=js_source_text;last_word='';last_type='TK_START_EXPR';last_text='';output=[];do_block_just_closed=false;var_line=false;var_line_tainted=false;whitespace="\n\r\t ".split('');wordchar='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$'.split('');punct='+ - * / % & ++ -- = += -= *= /= %= == === != !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! !! , : ? ^ ^= |= ::'.split(' ');line_starters='continue,try,throw,return,var,if,switch,case,default,for,while,break,function'.split(',');current_mode='BLOCK';modes=[current_mode];parser_pos=0;in_case=false;while(true){var t=get_next_token(parser_pos);token_text=t[0];token_type=t[1];if(token_type==='TK_EOF'){break;}
switch(token_type){case'TK_START_EXPR':var_line=false;set_mode('EXPRESSION');if(last_text===';'){print_newline();}else if(last_type==='TK_END_EXPR'||last_type==='TK_START_EXPR'){}else if(last_type!=='TK_WORD'&&last_type!=='TK_OPERATOR'){print_space();}else if(in_array(last_word,line_starters)&&last_word!=='function'){print_space();}
print_token();break;case'TK_END_EXPR':print_token();restore_mode();break;case'TK_START_BLOCK':if(last_word==='do'){set_mode('DO_BLOCK');}else{set_mode('BLOCK');}
if(last_type!=='TK_OPERATOR'&&last_type!=='TK_START_EXPR'){if(last_type==='TK_START_BLOCK'){print_newline();}else{print_space();}}
print_token();indent();break;case'TK_END_BLOCK':if(last_type==='TK_START_BLOCK'){trim_output();unindent();}else{unindent();print_newline();}
print_token();restore_mode();break;case'TK_WORD':if(do_block_just_closed){print_space();print_token();print_space();break;}
if(token_text==='case'||token_text==='default'){if(last_text===':'){remove_indent();}else{unindent();print_newline();indent();}
print_token();in_case=true;break;}
prefix='NONE';if(last_type==='TK_END_BLOCK'){if(!in_array(token_text.toLowerCase(),['else','catch','finally'])){prefix='NEWLINE';}else{prefix='SPACE';print_space();}}else if(last_type==='TK_SEMICOLON'&&(current_mode==='BLOCK'||current_mode==='DO_BLOCK')){prefix='NEWLINE';}else if(last_type==='TK_SEMICOLON'&&current_mode==='EXPRESSION'){prefix='SPACE';}else if(last_type==='TK_STRING'){prefix='NEWLINE';}else if(last_type==='TK_WORD'){prefix='SPACE';}else if(last_type==='TK_START_BLOCK'){prefix='NEWLINE';}else if(last_type==='TK_END_EXPR'){print_space();prefix='NEWLINE';}
if(last_type!=='TK_END_BLOCK'&&in_array(token_text.toLowerCase(),['else','catch','finally'])){print_newline();}else if(in_array(token_text,line_starters)||prefix==='NEWLINE'){if(last_text==='else'){print_space();}else if((last_type==='TK_START_EXPR'||last_text==='=')&&token_text==='function'){}else if(last_type==='TK_WORD'&&(last_text==='return'||last_text==='throw')){print_space();}else if(last_type!=='TK_END_EXPR'){if((last_type!=='TK_START_EXPR'||token_text!=='var')&&last_text!==':'){if(token_text==='if'&&last_type==='TK_WORD'&&last_word==='else'){print_space();}else{print_newline();}}}else{if(in_array(token_text,line_starters)&&last_text!==')'){print_newline();}}}else if(prefix==='SPACE'){print_space();}
print_token();last_word=token_text;if(token_text==='var'){var_line=true;var_line_tainted=false;}
if(token_text==='if'||token_text==='else'){if_line_flag=true;}
break;case'TK_SEMICOLON':print_token();var_line=false;break;case'TK_STRING':if(last_type==='TK_START_BLOCK'||last_type==='TK_END_BLOCK'||last_type=='TK_SEMICOLON'){print_newline();}else if(last_type==='TK_WORD'){print_space();}
print_token();break;case'TK_OPERATOR':var start_delim=true;var end_delim=true;if(var_line&&token_text!==','){var_line_tainted=true;if(token_text===':'){var_line=false;}}
if(token_text===':'&&in_case){print_token();print_newline();break;}
if(token_text==='::'){print_token();break;}
in_case=false;if(token_text===','){if(var_line){if(var_line_tainted){print_token();print_newline();var_line_tainted=false;}else{print_token();print_space();}}else if(last_type==='TK_END_BLOCK'){print_token();print_newline();}else{if(current_mode==='BLOCK'){print_token();print_newline();}else{print_token();print_space();}}
break;}else if(token_text==='--'||token_text==='++'){if(last_text===';'){start_delim=true;end_delim=false;}else{start_delim=false;end_delim=false;}}else if(token_text==='!'&&last_type==='TK_START_EXPR'){start_delim=false;end_delim=false;}else if(last_type==='TK_OPERATOR'){start_delim=false;end_delim=false;}else if(last_type==='TK_END_EXPR'){start_delim=true;end_delim=true;}else if(token_text==='.'){start_delim=false;end_delim=false;}else if(token_text===':'){if(last_text.match(/^\d+$/)){start_delim=true;}else{start_delim=false;}}
if(start_delim){print_space();}
print_token();if(end_delim){print_space();}
break;case'TK_BLOCK_COMMENT':print_newline();print_token();print_newline();break;case'TK_COMMENT':print_space();print_token();print_newline();break;case'TK_UNKNOWN':print_token();break;}
last_type=token_type;last_text=token_text;}
return output.join('');}

FigtreeWeb.Widget.ImageViewer=Ext.extend(Ext.Panel,{imageUrl:'ImageGet',layout:'border',fitHeight:true,fitWidth:true,fitImageOnRezize:false,initComponent:function(){this.images=new Ext.data.JsonStore({fields:[{name:'imageUri'},{name:'encodedUri'},{name:'filename'}],data:[]});this.thumbnailView=new Ext.DataView({tpl:new Ext.XTemplate('<tpl for=".">','<div class="tv-thumb-wrap" style="text-align:center;">','<div class="tv-thumb" style="position: relative; margin:0 auto; width:100px; height:100px;"><img alt="{filename}" src="'+this.imageUrl+'?image={encodedUri}&maxImageWidth=100&maxImageHeight=100&suffix=thumb" title="{filename}"></div>','</div>','</tpl>','<div class="x-clear"></div>'),autoHeight:true,overClass:'tv-x-view-over',selectedClass:'tv-x-view-selected',itemSelector:'div.tv-thumb-wrap',emptyText:'',store:this.images,singleSelect:true});this.thumbnailView.on('click',function(view,index){this.viewImage(this.images.getAt(index).get('imageUri'));},this);this.imageComp=new Ext.BoxComponent({autoEl:{tag:'img',src:Ext.BLANK_IMAGE_URL,style:{border:'1px solid #D0D0D0'}},listeners:{'render':{fn:function(comp){comp.getEl().on('load',this.imagePanel.body.unmask,this.imagePanel.body);},scope:this}}});this.fitToPageBtn=new Ext.Button({text:FigtreeWeb.app.translate('iv_size_to_fit'),pressed:true,handler:function(){this.fitToPageBtn.toggle(true);this.fitWidthBtn.toggle(false);this.fullImageBtn.toggle(false);this.fitHeight=true;this.fitWidth=true;this.imagePanel.body.setStyle({'overflow-x':'hidden','overflow-y':'hidden'});this.viewImage(this.currentUri);},scope:this});this.fitWidthBtn=new Ext.Button({text:FigtreeWeb.app.translate('iv_fit_width'),handler:function(){this.fitToPageBtn.toggle(false);this.fitWidthBtn.toggle(true);this.fullImageBtn.toggle(false);this.fitHeight=false;this.fitWidth=true;this.imagePanel.body.setStyle({'overflow-x':'hidden','overflow-y':'auto'});this.viewImage(this.currentUri);},scope:this});this.fullImageBtn=new Ext.Button({text:FigtreeWeb.app.translate('iv_full_image'),handler:function(){this.fitToPageBtn.toggle(false);this.fitWidthBtn.toggle(false);this.fullImageBtn.toggle(true);this.fitHeight=false;this.fitWidth=false;this.imagePanel.body.setStyle({'overflow-x':'auto','overflow-y':'auto'});this.viewImage(this.currentUri);},scope:this});this.imagePanel=new Ext.Panel({region:'center',items:[this.imageComp],tbar:['','->',this.fitToPageBtn,this.fitWidthBtn,this.fullImageBtn]});if(this.fitImageOnRezize){this.imagePanel.on('resize',function(){this.viewImage(this.currentUri);},this);}
this.thumbnailPanel=new Ext.Panel({header:true,collapsible:true,layout:'fit',region:'west',width:'143',bodyStyle:'overflow-y: scroll;',items:[this.thumbnailView],visible:false});this.items=[this.thumbnailPanel,this.imagePanel];FigtreeWeb.Widget.ImageViewer.superclass.initComponent.apply(this,arguments);},loadImages:function(images){var data=[];var dataItem;this.viewImage(images[0]);for(var i=0;i<images.length;i++){dataItem={imageUri:images[i],encodedUri:encodeURIComponent(images[i]),filename:this.getFileName(images[i])}
data.push(dataItem);}
this.thumbnailPanel.setVisible((images.length>1));this.doLayout();(function(data){this.images.loadData(data);this.thumbnailView.select(0);}).defer(500,this,[data]);},viewImage:function(uri){if(!uri){return;}
this.currentUri=uri;var src=this.imageUrl+"?image="+encodeURIComponent(uri);if(this.fitWidth){src+="&maxImageWidth="+(this.imagePanel.body.getViewSize().width-2);}
if(this.fitHeight){src+="&maxImageHeight="+(this.imagePanel.body.getViewSize().height-2);}
var filename=this.getFileName(uri);src+="&fileDownloadToken="+encodeURIComponent(this.waitForDownload(this.imagePanel.body));this.imagePanel.body.mask(filename,'x-mask-loading');this.imageComp.getEl().dom.src=src;this.imagePanel.getTopToolbar().items.get(0).getEl().innerHTML=filename;},getFileName:function(uri){var filename=uri;var index=filename.lastIndexOf("/");if(index>=0){filename=filename.substr(index+1);}
return filename;},close:function(){this.imageComp.getEl().dom.src='js/figweb/resources/images/s.gif';this.images.removeAll();this.hide();},waitForDownload:function(el){if(this.waitProcId){clearInterval(this.waitProcId);}
var counter=0;var fn=function(el,i){i++;if(i==30000){clearInterval(this.waitProcId);return;}
var path=location.pathname.match(/^(\/.*?)(\/|$)/);path=(path&&path.length>1)?path[1]:'';var cp=new Ext.state.CookieProvider({path:path,secure:true});if(cp.get('fileDownloadToken')==this.fileDownloadToken){clearInterval(this.waitProcId);if(cp.get('fileDownloadErrors')&&cp.get('fileDownloadErrors').length>0){el.unmask();var errorData={headerText:'System',errors:Ext.util.JSON.decode(cp.get('fileDownloadErrors'))};FigtreeWeb.app.throwError(errorData);}}}
this.waitProcId=setInterval(fn.createDelegate(this,[el,counter]),100);this.fileDownloadToken=new Date().getTime();return this.fileDownloadToken;}});Ext.reg('fw-imageviewer',FigtreeWeb.Widget.ImageViewer);

FigtreeWeb.Widget.ImageCarousel=Ext.extend(Ext.Panel,{layout:'fw-floatleft',defaults:{},autoScroll:true,width:400,height:110,baseImageDir:'images/',thumbSuffix:'-thumb',fieldName:null,images:null,initComponent:function(){FigtreeWeb.Widget.ImageCarousel.superclass.initComponent.apply(this,arguments);this.on('render',this.loadImages,this);},loadImages:function(){if(!this.images&&this.fieldName){var screen=this.findParentByType('fw-screen');if(screen&&screen.form){var f=screen.form.getField(this.fieldName);if(f){this.images=f.getValue();}}}
if(typeof this.images=='string'){this.images=this.images.split(/,/);}
for(var i=0;i<this.images.length;i++){var hiRes=this.baseImageDir+this.images[i],thumb=this.thumbName(hiRes),img={xtype:'box',hiRes:hiRes,autoEl:{tag:'img',src:thumb,height:'70px',width:'100px',style:'padding:4px;cursor:pointer'},listeners:{'render':{'fn':this.imageRender}}};this.add(img);}},thumbName:function(orig){var s=this.thumbSuffix;return orig.replace(/^(.+)\.([^.]+)$/,function(m,m1,m2){return m1+s+'.'+m2;});},imageRender:function(){this.getEl().on('click',function(){window.open(this.hiRes,'_blank','height=600,width=600,toolbar=1,menubar=1,scrollbars=1');},this);}});Ext.reg('fw-imagecarousel',FigtreeWeb.Widget.ImageCarousel);

FigtreeWeb.FigDocs=Ext.extend(Ext.util.Observable,{window:null,ready:false,loadRecord:function(client,module,cob,key){if(!this.window){var screenWidth=screen.width-50;var screenHeight=screen.height-100;var x=20;var y=0;var settings='width='+screenWidth+',height='+screenHeight+',resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no,top='+y+',left='+x;var url='FigDocs.jsp';var winName='_blank';this.window=window.open(url,winName,settings);}
if(!this.ready){this.loadRecord.defer(500,this,[client,module,cob,key]);return;}
this.window.opener=window;this.window.loadRecord(client,module,cob,key);},closeWindow:function(){if(this.window){this.window.close();}},reset:function(){delete this.window;this.ready=false;}});FigtreeWeb.FigDocs.instance=new FigtreeWeb.FigDocs();Ext.namespace('FigtreeWeb.FigDocs.Widget');

FigtreeWeb.FigDocs.Widget.DocumentBrowser=Ext.extend(Ext.Panel,{loadUrl:'DocumentsGet',loadDTUrl:'DocumentTypesGet',loadDUrl:'DocumentGet',thumbnailUrl:'DocumentThumbnailGet',title:undefined,dtloadingText:undefined,dsLoadingText:undefined,dLoadingText:undefined,archivingText:undefined,downloadText:undefined,layout:'border',client:null,module:null,cob:null,key:null,useSubCategories:true,defaultView:'thumbnail',thumbnailSize:'80',hideNoteTypeSelector:false,defaultNoteType:null,noteTypeTree:undefined,documentsView:undefined,imageViewer:undefined,imageViewerWindow:undefined,documents:undefined,loadingDocumentTypes:false,documentTypeKey:undefined,thumbSizes:undefined,initComponent:function(){this.thumbSizes={'80':{wrapDim:{width:88,height:110},maxTextLength:13},'100':{wrapDim:{width:108,height:130},maxTextLength:18}};this.noteTypeTree=new Ext.tree.TreePanel({region:'west',width:200,rootVisible:false,autoScroll:true,split:true,root:new Ext.tree.TreeNode({}),hidden:this.hideNoteTypeSelector});this.noteTypeTree.getSelectionModel().on('selectionchange',this.filterDocumentsByType,this);this.documents=new Ext.data.JsonStore({fields:[{name:'documentId'},{name:'description'},{name:'date',type:'date',dateFormat:FigtreeWeb.app.getDateFormat()},{name:'documentType'},{name:'thumbnail'},{name:'mimeType'},{name:'fileName'}],data:[],sortInfo:{field:'date',direction:'ASC'}});var downloadIcon=FigtreeWeb.app.getIconPlain('disk_blue.png',16);var viewIcon=FigtreeWeb.app.getIconPlain('view.png',16);var zipIcon=FigtreeWeb.app.getIconPlain('compress.png',16);var startWithThumbView=(this.defaultView==='thumbnail');this.documentsView=new Ext.DataView({tpl:this.getDocViewTpl((startWithThumbView?'thumbnail':'list')),autoHeight:true,overClass:'tv-x-view-over',selectedClass:'tv-x-view-selected',multiSelect:true,itemSelector:'div.tv-thumb-wrap',emptyText:FigtreeWeb.app.translate('fddb_no_documents'),cls:'tv',store:this.documents});this.documentsView.on('dblclick',this.thumbDblClicked,this);this.documentsView.on('click',this.thumbClicked,this);this.documentsView.on('selectionchange',this.thumbSelectionChange,this);this.documentsView.on('containerclick',this.clearSelections,this);this.dtLoadingText=FigtreeWeb.app.translate('fddb_loading_document_types');this.dsLoadingText=FigtreeWeb.app.translate('fddb_loading_documents');this.dLoadingText=FigtreeWeb.app.translate('fddb_loading_document');this.archivingText=FigtreeWeb.app.translate('fddb_archiving_documents');this.downloadText=FigtreeWeb.app.translate('fddb_downloading_document');this.documentsForText=FigtreeWeb.app.translate('fddb_documents_for');this.viewButton=new Ext.Button({cls:'x-btn-text-icon',text:FigtreeWeb.app.translate('fddb_view_document'),icon:viewIcon,handler:this.viewSelectedDocument,scope:this,disabled:true});this.downloadButton=new Ext.Button({cls:'x-btn-text-icon',text:FigtreeWeb.app.translate('fddb_download_document'),icon:downloadIcon,handler:this.downloadSelectedDocument,scope:this,disabled:true});this.archiveDocumentText=FigtreeWeb.app.translate('fddb_archive_document');this.archiveDocumentsText=FigtreeWeb.app.translate('fddb_archive_documents');this.zipButton=new Ext.Button({cls:'x-btn-text-icon',text:this.archiveDocumentText,icon:zipIcon,handler:this.zipSelectedDocuments,scope:this,disabled:true});this.titleCmp=new Ext.BoxComponent({style:{'font-weight':'bold','padding-left':'5px'},autoEl:{html:'&nbsp;'},update:function(text){this.getEl().update(text);}});this.thumbViewBtn=new Ext.Button({text:FigtreeWeb.app.translate('thumbnail_view'),pressed:startWithThumbView,handler:function(){this.thumbViewBtn.toggle(true);this.listViewBtn.toggle(false);this.documentsView.tpl=this.getDocViewTpl('thumbnail');this.documentsView.refresh();},scope:this});this.listViewBtn=new Ext.Button({text:FigtreeWeb.app.translate('list_view'),pressed:!startWithThumbView,handler:function(){this.thumbViewBtn.toggle(false);this.listViewBtn.toggle(true);this.documentsView.tpl=this.getDocViewTpl('list');this.documentsView.refresh();},scope:this});this.refreshBtn=new Ext.Button({cls:'x-btn-icon',icon:FigtreeWeb.app.getIconPlain('refresh.png','16'),tooltip:FigtreeWeb.app.translate('refresh'),tooltipType:'title',handler:this.refresh,scope:this});var sortLbl=new Ext.BoxComponent({style:{'font-weight':'bold','padding-right':'5px'},autoEl:{html:FigtreeWeb.app.translate('sort_by')+':'}});this.sortCbo=new Ext.form.ComboBox({store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'date',description:FigtreeWeb.app.translate('date')},{value:'fileName',description:FigtreeWeb.app.translate('filename')},{value:'documentType',description:FigtreeWeb.app.translate('fddb_document_type')},{value:'description',description:FigtreeWeb.app.translate('description')}]}),width:100,typeAhead:false,forceSelection:true,triggerAction:'all',valueField:'value',displayField:'description',mode:'local',editable:false,value:'date',hideTrigger:true});this.sortCbo.on('select',function(combo,record,index){this.sortDocuments(record.get('value'));},this);this.sortDirIcon=new FigtreeWeb.Widget.Icon({iconName:'sort_up.png',downImg:'sort_down.png',upImg:'sort_up.png',title:FigtreeWeb.app.translate('change_sort_direction'),listeners:{'click':{fn:function(){this.sortDocuments(this.sortCbo.getValue());},scope:this}},setSortDir:function(sortDir){var img=this.downImg;if(sortDir=="ASC"){img=this.upImg;}
this.iconName=img;if(this.rendered){this.iconPathPlain=this.iconPathBase+this.iconSize+'/plain/'+this.iconName;this.iconPathShadow=this.iconPathBase+this.iconSize+'/shadow/'+this.iconName;this.el.dom.src=this.iconPathPlain;}}});var filterLbl=new Ext.BoxComponent({style:{'font-weight':'bold','padding-right':'5px'},autoEl:{html:FigtreeWeb.app.translate('filter')+':'}});this.filterField=new Ext.form.TextField({width:100,listeners:{'specialkey':{fn:function(field,e){if(e.getKey()==e.ENTER){this.filterDocuments(this.filterField.getValue());}},scope:this}}});this.filterIcon=new FigtreeWeb.Widget.Icon({iconName:'view.png',title:FigtreeWeb.app.translate('filter'),listeners:{'click':{fn:function(){this.filterDocuments(this.filterField.getValue());},scope:this}}});this.tbar=[this.titleCmp,'->',filterLbl,this.filterField,this.filterIcon,' ',sortLbl,this.sortCbo,this.sortDirIcon,'|',this.thumbViewBtn,this.listViewBtn,'|',this.refreshBtn];this.catDescription=new Ext.BoxComponent({style:{'font-weight':'bold','padding-left':'5px'},autoEl:{html:'&nbsp;'},update:function(text){this.getEl().update(text);}});var bbar=[this.catDescription,'->',this.viewButton,this.downloadButton,this.zipButton];this.items=[this.noteTypeTree,{layout:'fit',region:'center',bodyStyle:'overflow-y: auto;',items:[this.documentsView],bbar:bbar,listeners:{'render':{fn:function(c){c.body.on('click',function(el){this.clearSelections(this.documentsView);},this);c.body.on('contextmenu',function(e,el){this.showContextMenu(e);},this);},scope:this}}}];FigtreeWeb.FigDocs.Widget.DocumentBrowser.superclass.initComponent.apply(this,arguments);this.addEvents({'documenttypesloaded':true,'dlwaitcomplete':true,'dlwaiterror':true});if(this.client!==null&&this.module!==null&&this.cob!==null){var afterRenderFn=function(){};if(this.key!==null){afterRenderFn=this.loadRecord.createDelegate(this,[this.client,this.module,this.cob,this.key]);}else{afterRenderFn=this.loadDocumentTypes.createDelegate(this,[this.client,this.module,this.cob]);}
this.on('afterlayout',afterRenderFn,this,{single:true});}},loadDocumentTypes:function(client,module,cob){var conn=new FigtreeWeb.Connection({url:this.loadDTUrl,method:'POST'});conn.on('complete',this.documentTypesLoaded,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.dtLoadingText,'x-mask-loading');},this);conn.request({cob:cob,client:client,module:module,useSubCategories:this.useSubCategories});this.loadingDocumentTypes=true;},documentTypesLoaded:function(conn,response){this.removeDocTypes(this.noteTypeTree.getRootNode());this.loadDocTypesNode(response.types,this.noteTypeTree.getRootNode());this.getEl().unmask();this.loadingDocumentTypes=false;this.client=response.client;this.module=response.module;this.cob=response.cob;this.fireEvent('documenttypesloaded',this);},loadRecord:function(client,module,cob,key){if(this.noteTypeTree.getRootNode().childNodes.length==0||this.client!=client||this.module!=module||this.cob!=cob){this.loadDocumentTypes(client,module,cob);}
if(this.loadingDocumentTypes){var fn=this.loadRecord.createDelegate(this,[client,module,cob,key]);this.on('documenttypesloaded',fn,this,{single:true});return;}
if(this.imageViewerWindow){this.imageViewerWindow.close();}
var conn=new FigtreeWeb.Connection({url:this.loadUrl,method:'POST'});conn.on('complete',this.recordLoaded,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.dsLoadingText,'x-mask-loading');},this);conn.request({cob:cob,client:client,module:module,key:key,thumbSize:this.thumbnailSize});},recordLoaded:function(conn,response){this.documents.removeAll();this.noteTypeTree.getSelectionModel().clearSelections();this.workFolderAbsolute=response.workFolderAbsolute;this.workFolderVirtual=response.workFolderVirtual;this.loadDocumentThumbnails(response.documents);this.documents.loadData(response.documents);if(this.defaultNoteType!==null){this.filterDocuments(this.defaultNoteType);}else{this.noteTypeTree.getRootNode().firstChild.select();}
this.key=response.key;this.titleCmp.update(this.documentsForText+': '+this.key);this.getEl().unmask();},loadDocumentThumbnails:function(docsArray){var doc;var url;for(var i=0;i<docsArray.length;i++){doc=docsArray[i];url=this.thumbnailUrl+'?'+'documentId'+'='+encodeURIComponent(doc.documentId)+'&'+'workFolderVirtual'+'='+encodeURIComponent(this.workFolderVirtual)+'&'+'thumbSize'+'='+encodeURIComponent(this.thumbnailSize);doc.thumbnail=url;}
if(this.thumbViewBtn.pressed){this.documentsView.refresh();}},refresh:function(){this.loadRecord(this.client,this.module,this.cob,this.key);},loadDocument:function(documentId){if(this.imageViewerWindow){this.imageViewerWindow.close();}
this.documentId=documentId;var conn=new FigtreeWeb.Connection({url:this.loadDUrl,method:'POST'});conn.on('complete',this.documentLoaded,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.dLoadingText,'x-mask-loading');},this);conn.request({documentId:documentId,workFolderVirtual:this.workFolderVirtual});},documentLoaded:function(conn,response){if(response.type=='image'){var images=[];for(var i=0;i<response.pages;i++){images.push(response.virtualImagePath+'-'+i+response.imageType);}
this.imageViewer=new FigtreeWeb.Widget.ImageViewer({border:false});this.imageViewerWindow=new Ext.Window({height:document.body.clientHeight*0.70,width:document.body.clientWidth*0.70,layout:'fit',title:FigtreeWeb.app.translate('fddb_image_viewer'),items:[this.imageViewer]});this.imageViewerWindow.show();this.imageViewer.loadImages(images);}else{var window=new Ext.Window({height:document.body.clientHeight*0.70,width:document.body.clientWidth*0.70,layout:'fit',title:response.fileName,items:[new Ext.BoxComponent({autoEl:{tag:'iframe',name:'fd_viewiframe',src:response.path}})]});window.show();}
this.getEl().unmask();},connExceptionHandler:function(conn,errorData){this.getEl().unmask();FigtreeWeb.app.throwError(errorData);},loadDocTypesNode:function(noteTypes,parent){for(var i=0;i<noteTypes.length;i++){var node=new Ext.tree.TreeNode({text:noteTypes[i].description,key:noteTypes[i].key,icon:FigtreeWeb.app.getIconPlain(((noteTypes[i].items)?'folder_document.png':'documents.png'),'16')});if(noteTypes[i].items){this.loadDocTypesNode(noteTypes[i].items,node);}
parent.appendChild(node);}},removeDocTypes:function(node){while(node.firstChild){this.removeDocTypes(node.firstChild);node.removeChild(node.firstChild);}},filterDocumentsByType:function(selModel,node){this.documentTypeKey=undefined;var text='';if(node){this.documentTypeKey=node.attributes.key;text=node.attributes.text;}
this.filterDocuments(this.filterField.getValue());this.catDescription.update(text);},viewDocument:function(documentId){this.loadDocument(documentId);},viewDocumentInPopup:function(documentId){var params={documentId:documentId,fileDownloadToken:this.waitForDownload(this.dLoadingText),notAttachment:'true'};var record=this.documents.getAt(this.documents.find('documentId',documentId));var filename=record.get('fileName');var window=new Ext.Window({height:document.body.clientHeight*0.70,width:document.body.clientWidth*0.70,layout:'fit',title:filename,items:[new Ext.BoxComponent({autoEl:{tag:'iframe',name:'fd_viewiframe'}})]});window.show();window.hide();this.navigateViaFormPost('DocumentDownload','fd_viewiframe',params);this.on('dlwaitcomplete',window.show,window,{single:true});this.on('dlwaiterror',function(){this.show();this.close();},window,{single:true});},docIdFromIndex:function(index){var record=this.documents.getAt(index);var documentId=record.get('documentId');return documentId;},downloadDocument:function(documentId,zip){if(!this.iframe){this.iframe=Ext.get(document.body).createChild({tag:'iframe',name:'fd_downloadiframe',height:0,width:0,src:Ext.SSL_SECURE_URL});this.iframe.hide();}
var params={documentId:documentId};if(zip===true){Ext.apply(params,{doZip:'true',workFolderVirtual:this.workFolderVirtual,fileDownloadToken:this.waitForDownload(this.archivingText)});}else{Ext.apply(params,{fileDownloadToken:this.waitForDownload(this.downloadText)});}
this.navigateViaFormPost('DocumentDownload','fd_downloadiframe',params);},downloadDocuments:function(documentIds){if(!this.iframe){this.iframe=Ext.get(document.body).createChild({tag:'iframe',name:'fd_downloadiframe',height:0,width:0,src:Ext.SSL_SECURE_URL});this.iframe.hide();}
var params={documentIds:Ext.util.JSON.encode(documentIds),workFolderVirtual:this.workFolderVirtual,fileDownloadToken:this.waitForDownload(this.archivingText)};this.navigateViaFormPost('DocumentsDownload','fd_downloadiframe',params);},waitForDownload:function(waitMsg){var fn=function(){var path=location.pathname.match(/^(\/.*?)(\/|$)/);path=(path&&path.length>1)?path[1]:'';var cp=new Ext.state.CookieProvider({path:path,secure:true});if(cp.get('fileDownloadToken')==this.fileDownloadToken){clearInterval(this.waitProcId);this.getEl().unmask();if(cp.get('fileDownloadErrors')&&cp.get('fileDownloadErrors').length>0){var errorData={headerText:'System',errors:Ext.util.JSON.decode(cp.get('fileDownloadErrors'))};FigtreeWeb.app.throwError(errorData);this.fireEvent('dlwaiterror');}else{this.fireEvent('dlwaitcomplete');}}};this.waitProcId=setInterval(fn.createDelegate(this),200);this.fileDownloadToken=new Date().getTime();this.getEl().mask(waitMsg,'x-mask-loading');return this.fileDownloadToken;},isViewable:function(mimeType){return(/^image\/.*/i.test(mimeType)||/^application\/msword$/i.test(mimeType)||/^application\/vnd\.ms-excel$/i.test(mimeType));},hasBrowserPlugin:function(mimeType){return/^application\/pdf$/i.test(mimeType);},thumbDblClicked:function(view,index,node,e){var record=this.documents.getAt(index);var mimeType=record.get('mimeType');if(this.isViewable(mimeType)){this.viewDocument(this.docIdFromIndex(index));}else if(this.hasBrowserPlugin(mimeType)){this.viewDocumentInPopup(this.docIdFromIndex(index));}else{this.downloadDocument(this.docIdFromIndex(index));}
e.preventDefault();},thumbClicked:function(view,index,node,e){var target=e.getTarget();if(target.tagName=='IMG'){if(target.name=='dl_icon'){this.downloadDocument(this.docIdFromIndex(index));}else if(target.name=='zip_icon'){this.downloadDocument(this.docIdFromIndex(index),true);}else if(target.name=='view_popup_icon'){this.viewDocumentInPopup(this.docIdFromIndex(index));}else if(target.name=='view_load_icon'){this.viewDocument(this.docIdFromIndex(index));}}
e.stopPropagation();},thumbSelectionChange:function(view,selections){var disableViewButton=true;var disableDownloadButton=true;var disableZipButton=true;var zipButtonText=this.archiveDocumentText;if(selections.length==1){var record=this.documentsView.getSelectedRecords()[0];var mimeType=record.get('mimeType');disableViewButton=!this.isViewable(mimeType)&&!this.hasBrowserPlugin(mimeType);disableDownloadButton=false;disableZipButton=false;}else if(selections.length>1){disableZipButton=false;zipButtonText=this.archiveDocumentsText;}
this.viewButton.setDisabled(disableViewButton);this.downloadButton.setDisabled(disableDownloadButton);this.zipButton.setDisabled(disableZipButton);this.zipButton.setText(zipButtonText);},viewSelectedDocument:function(){var records=this.documentsView.getSelectedRecords();if(records.length==1){var record=records[0];var mimeType=record.get('mimeType');var documentId=records[0].get('documentId');if(this.hasBrowserPlugin(mimeType)){this.viewDocumentInPopup(documentId);}else{this.viewDocument(documentId);}}},downloadSelectedDocument:function(){var records=this.documentsView.getSelectedRecords();if(records.length==1){var documentId=records[0].get('documentId');this.downloadDocument(documentId);}},zipSelectedDocuments:function(){var records=this.documentsView.getSelectedRecords();var documentIds=[];for(var i=0;i<records.length;i++){documentIds.push(records[i].get('documentId'));}
if(documentIds.length==1){var documentId=documentIds[0];this.downloadDocument(documentId,true);}else{this.downloadDocuments(documentIds);}},navigateViaFormPost:function(url,target,params){var form=Ext.get(document.body).createChild({tag:'form',height:0,width:0,method:'POST',action:url,target:target});var hidden;for(var i in params){hidden=form.createChild({tag:'input',type:'hidden',name:i});hidden.dom.value=params[i];}
form.dom.submit();form.remove();},findDocTypeDescription:function(docType,node){if(node.attributes.key===docType){return node.attributes.text;}else if(node.childNodes){var docDesc='';for(var i=0;i<node.childNodes.length;i++){docDesc=this.findDocTypeDescription(docType,node.childNodes[i]);if(docDesc!==''){return docDesc;}}}
return'';},clearSelections:function(view,e){view.clearSelections();if(e&&e.stopPropagation){e.stopPropagation();}},sortDocuments:function(sortBy){this.documents.sort(sortBy);var sortState=this.documents.getSortState();this.sortDirIcon.setSortDir(sortState.direction);},filterDocuments:function(filterBy){this.documents.clearFilter((this.documentTypeKey!=undefined));var filterByFn=function(record,id){var rx=new RegExp('^'+this.documentTypeKey,'i');if(this.documentTypeKey&&!rx.test(record.get('documentType'))){return false;}
if(filterBy!==''){rx=new RegExp(filterBy,'im');if(rx.test(record.get('description'))){return true;}
if(rx.test(record.get('fileName'))){return true;}
var date=Ext.util.Format.date(record.get('date'),FigtreeWeb.app.getDateFormat());if(rx.test(date)){return true;}
return false;}
return true;};this.documents.filterBy(filterByFn,this);},getDocViewTpl:function(tplType){var downloadIcon=FigtreeWeb.app.getIconPlain('disk_blue.png',16);var viewIcon=FigtreeWeb.app.getIconPlain('view.png',16);var zipIcon=FigtreeWeb.app.getIconPlain('compress.png',16);if(tplType==='thumbnail'){var titleTpl=FigtreeWeb.app.translate('date')+': {[Ext.util.Format.date(values.date, FigtreeWeb.app.getDateFormat())]} \n';titleTpl+=FigtreeWeb.app.translate('filename')+': {fileName} \n';titleTpl+=FigtreeWeb.app.translate('fddb_document_type')+': ({documentType}) {[this.docDescGet(values.documentType)]} \n';titleTpl+=FigtreeWeb.app.translate('description')+': {description}';return new Ext.XTemplate('<tpl for=".">','<div class="tv-thumb-wrap x-unselectable" id="{documentId}" style="cursor:default; text-align:center; width:'+this.thumbSizes[this.thumbnailSize].wrapDim.width+'px; height:'+this.thumbSizes[this.thumbnailSize].wrapDim.height+'px;" title="'+titleTpl+'">','<div class="tv-thumb" style="position: relative; margin:0 auto; width:'+this.thumbnailSize+'px; height:'+this.thumbnailSize+'px;">','<img style="margin-top: -8px; margin-left: -8px; top: 50%; left: 50%; position: absolute;" src="js/'+FigtreeWeb.app.extlib+'/resources/images/default/grid/loading.gif">','<img style="width: '+this.thumbnailSize+'px; height: '+this.thumbnailSize+'px;" src="'+FigtreeWeb.app.getIconPlain('document_plain.png',128)+'">','<img class="x-hidden" src="{[this.getThumbnailImage(values.thumbnail)]}" onload="FigtreeWeb.FigDocs.Widget.DocumentBrowser.thumbLoaded(this);">','<tpl if="this.isLoadable(mimeType) == true">','<img name="view_load_icon" src="'+viewIcon+'" title="'+FigtreeWeb.app.translate('fddb_view_document')+'" style="cursor: pointer; position:absolute; top:100%; left:100%; margin-top:-18px; margin-left:-54px">','</tpl>','<tpl if="this.hasBrowserPlugin(mimeType) == true">','<img name="view_popup_icon" src="'+viewIcon+'" title="'+FigtreeWeb.app.translate('fddb_view_document')+'" style="cursor: pointer; position:absolute; top:100%; left:100%; margin-top:-18px; margin-left:-54px">','</tpl>','<img name="dl_icon" src="'+downloadIcon+'" title="'+FigtreeWeb.app.translate('fddb_download_document')+'" style="cursor: pointer; position:absolute; top:100%; left:100%; margin-top:-18px; margin-left:-36px">','<img name="zip_icon" src="'+zipIcon+'" title="'+FigtreeWeb.app.translate('fddb_archive_document')+'" style="cursor: pointer; position:absolute; top:100%; left:100%; margin-top:-18px; margin-left:-18px">','</div>','<div">{[this.truncate(values.fileName, '+this.thumbSizes[this.thumbnailSize].maxTextLength+')]}<br>{[Ext.util.Format.date(values.date, FigtreeWeb.app.getDateFormat())]}</div></div>','</tpl>','<div class="x-clear"></div>',{isLoadable:this.isViewable,hasBrowserPlugin:this.hasBrowserPlugin,truncate:function(str,maxLength){if(str.length<=maxLength){return str;}
return str.substring(0,maxLength-3)+'...';},getThumbnailImage:function(thumbnail){if(thumbnail===''){return Ext.BLANK_IMAGE_URL;}
return thumbnail;},docDescGet:this.findDocTypeDescription.createDelegate(this,[this.noteTypeTree.getRootNode()],true)});}else if(tplType==='list'){return new Ext.XTemplate('<tpl for=".">','<div class="tv-thumb-wrap x-unselectable" id="{documentId}" style="cursor:default; float: none; margin-right:4px;">','<div style="text-align: left">','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('date')+':&nbsp;</div><div> {[Ext.util.Format.date(values.date, FigtreeWeb.app.getDateFormat())]}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('filename')+':&nbsp;</div><div>{fileName}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('fddb_document_type')+':&nbsp;</div><div>({documentType}) {[this.docDescGet(values.documentType)]}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('description')+':&nbsp;</div><div>{description}</div>','</div>','<tpl if="this.isLoadable(mimeType) == true">','<img name="view_load_icon" src="'+viewIcon+'" title="'+FigtreeWeb.app.translate('fddb_view_document')+'" style="cursor: pointer; float: left">','</tpl>','<tpl if="this.hasBrowserPlugin(mimeType) == true">','<img name="view_popup_icon" src="'+viewIcon+'" title="'+FigtreeWeb.app.translate('fddb_view_document')+'" style="cursor: pointer; float: left">','</tpl>','<img name="dl_icon" src="'+downloadIcon+'" title="'+FigtreeWeb.app.translate('fddb_download_document')+'" style="cursor: pointer; float: left">','<img name="zip_icon" src="'+zipIcon+'" title="'+FigtreeWeb.app.translate('fddb_archive_document')+'" style="cursor: pointer; float: left">','</div>','</tpl>','<div class="x-clear"></div>',{isLoadable:this.isViewable,hasBrowserPlugin:this.hasBrowserPlugin,docDescGet:this.findDocTypeDescription.createDelegate(this,[this.noteTypeTree.getRootNode()],true)});}},showContextMenu:function(e){if(this.thumbViewBtn.pressed){var contextMenu=Ext.menu.MenuMgr.get({items:[new Ext.menu.CheckItem({checked:(this.thumbnailSize===80),text:'80px x 80px',handler:this.thumbnailSizeChange,scope:this,attributes:{thumbnailSize:80}}),new Ext.menu.CheckItem({checked:(this.thumbnailSize===100),text:'100px x 100px',handler:this.thumbnailSizeChange,scope:this,attributes:{thumbnailSize:100}})],listeners:{'hide':{fn:function(menu){menu.destroy();}}}});contextMenu.showAt(e.getXY());}
e.stopEvent();},thumbnailSizeChange:function(item){this.thumbnailSize=item.attributes.thumbnailSize;this.documentsView.tpl=this.getDocViewTpl('thumbnail');this.refresh();},destroy:function(){this.documents.loadData([]);if(this.rendered){this.documentsView.refresh();}
if(this.imageViewerWindow){this.imageViewerWindow.destroy();delete this.imageViewer;}
this.titleCmp.destroy();delete this.titleCmp;delete this.refreshBtn;delete this.thumbViewBtn;delete this.listViewBtn;this.catDescription.destroy();delete this.catDescription;delete this.viewButton;delete this.downloadButton;delete this.zipButton;delete this.noteTypeTree;delete this.documents;delete this.thumbTpl;delete this.listTpl;delete this.documentsView;FigtreeWeb.FigDocs.Widget.DocumentBrowser.superclass.destroy.call(this);}});Ext.reg('fw-fd-documentbrowser',FigtreeWeb.FigDocs.Widget.DocumentBrowser);FigtreeWeb.FigDocs.Widget.DocumentBrowser.thumbLoaded=function(el){el=Ext.get(el);el.removeClass.defer(2,el,['x-hidden']);el=el.prev();if(el){el.remove.defer(1,el);el=el.prev();el.remove();}};

FigtreeWeb.FigDocs.Widget.DocumentBrowserLite=Ext.extend(Ext.Panel,{layout:'border',loadDTUrl:'DocumentTypesGet',loadUrl:'DocumentsGet',moveLetterUrl:'LetterMove',hideNoteTypeSelector:false,useSubCategories:true,hideNoteTypeSelector:false,defaultNoteType:null,client:null,cob:null,module:null,key:null,noteTypeTree:null,documents:null,documentsView:null,dtLoadingText:undefined,dsLoadingText:undefined,downloadText:undefined,documentTypeKey:undefined,txtFilter:null,cboSort:null,btnRefresh:null,cls:'fw-fd-documentbrowserlite',initComponent:function(){this.dtLoadingText=FigtreeWeb.app.translate('fddb_loading_document_types');this.dsLoadingText=FigtreeWeb.app.translate('fddb_loading_documents');this.downloadText=FigtreeWeb.app.translate('fddb_downloading_document');this.noteTypeTree=new Ext.tree.TreePanel({region:'west',border:false,width:200,rootVisible:false,autoScroll:true,split:true,root:new Ext.tree.TreeNode({}),hidden:this.hideNoteTypeSelector});this.noteTypeTree.getSelectionModel().on('selectionchange',this.filterDocumentsByType,this);this.documents=new Ext.data.JsonStore({fields:[{name:'noteId'},{name:'description'},{name:'date',type:'date',dateFormat:FigtreeWeb.app.getDateFormat()},{name:'documentType'},{name:'imageId'},{name:'fileName',mapping:'imageId',convert:function(v){var parts=v.split(/\\|\//);if(parts.length>0){return parts.pop();}
return v;}},{name:'needsLetterMove'}],data:[],sortInfo:{field:'date',direction:'ASC'}});var docTpl=new Ext.XTemplate('<tpl for=".">','<div class="tv-thumb-wrap x-unselectable" id="{documentId}" style="cursor:default; float: none; margin-right:4px;">','<div style="text-align: left">','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('date')+':&nbsp;</div><div> {[Ext.util.Format.date(values.date, FigtreeWeb.app.getDateFormat())]}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('filename')+':&nbsp;</div><div>{fileName}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('fddb_document_type')+':&nbsp;</div><div>({documentType}) {[this.docDescGet(values.documentType)]}</div>','<div style="font-weight: bold; float: left;">'+FigtreeWeb.app.translate('description')+':&nbsp;</div><div>{description}</div>','<div class="fd-dv-downloadlink carica-form-link">Download</div>','</div>','</div>','</tpl>','<div class="x-clear"></div>',{docDescGet:this.findDocTypeDescription.createDelegate(this,[this.noteTypeTree.getRootNode()],true)});this.documentsView=new Ext.DataView({tpl:docTpl,autoHeight:true,overClass:'tv-x-view-over',selectedClass:'tv-x-view-selected',multiSelect:true,itemSelector:'div.tv-thumb-wrap',emptyText:FigtreeWeb.app.translate('fddb_no_documents'),cls:'tv',store:this.documents});this.documentsView.on('click',this.itemClicked,this);this.items=[this.noteTypeTree,{region:'center',bodyStyle:'overflow-y: auto;',border:false,items:[this.documentsView]}];var lblSort=new Ext.BoxComponent({style:{'font-weight':'bold','padding-right':'5px','font-size':'12px'},autoEl:{html:FigtreeWeb.app.translate('sort_by')+':'}});this.cboSort=new Ext.form.ComboBox({store:new Ext.data.JsonStore({fields:['value','description'],data:[{value:'date',description:FigtreeWeb.app.translate('date')},{value:'fileName',description:FigtreeWeb.app.translate('filename')},{value:'documentType',description:FigtreeWeb.app.translate('fddb_document_type')},{value:'description',description:FigtreeWeb.app.translate('description')}]}),width:100,typeAhead:false,forceSelection:true,triggerAction:'all',valueField:'value',displayField:'description',mode:'local',editable:false,value:'date',hideTrigger:true});this.cboSort.on('select',function(combo,record,index){this.sortDocuments(record.get('value'));},this);var lblFilter=new Ext.BoxComponent({style:{'font-weight':'bold','padding-right':'5px','padding-left':'2px','font-size':'12px'},autoEl:{html:FigtreeWeb.app.translate('filter')+':'}});this.txtFilter=new Ext.form.TextField({width:100,listeners:{'specialkey':{fn:function(field,e){if(e.getKey()==e.ENTER){this.filterDocuments(field.getValue());}},scope:this}}});this.btnRefresh=new FigtreeWeb.Widget.Button({cls:'carica-button-secondary',text:FigtreeWeb.app.translate('refresh')});this.btnRefresh.on('click',this.refresh,this);this.tbar=[lblFilter,this.txtFilter,' ',lblSort,this.cboSort,'-',this.btnRefresh];FigtreeWeb.FigDocs.Widget.DocumentBrowserLite.superclass.initComponent.apply(this,arguments);if(this.client!==null&&this.module!==null&&this.cob!==null){var afterRenderFn;if(this.key!==null){afterRenderFn=this.loadRecord.createDelegate(this,[this.client,this.module,this.cob,this.key]);}else{afterRenderFn=this.loadDocumentTypes.createDelegate(this,[this.client,this.module,this.cob]);}
this.on('afterlayout',afterRenderFn,this,{single:true});}},loadRecord:function(client,module,cob,key){if(this.noteTypeTree.getRootNode().childNodes.length==0||this.client!=client||this.module!=module||this.cob!=cob){this.loadDocumentTypes(client,module,cob);var fn=this.loadRecord.createDelegate(this,[client,module,cob,key]);this.on('documenttypesloaded',fn,this,{single:true});return;}
var conn=new FigtreeWeb.Connection({url:this.loadUrl,method:'POST'});conn.on('complete',this.recordLoaded,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.dsLoadingText,'x-mask-loading');},this);conn.request({cob:cob,client:client,module:module,key:key,lite:true});},refresh:function(){this.loadRecord(this.client,this.module,this.cob,this.key);},loadDocumentTypes:function(client,module,cob){var conn=new FigtreeWeb.Connection({url:this.loadDTUrl,method:'POST'});conn.on('complete',this.documentTypesLoaded,this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.dtLoadingText,'x-mask-loading');},this);conn.request({cob:cob,client:client,module:module,useSubCategories:this.useSubCategories});},documentTypesLoaded:function(conn,response){this.removeDocTypes(this.noteTypeTree.getRootNode());this.loadDocTypesNode(response.types,this.noteTypeTree.getRootNode());this.getEl().unmask();this.client=response.client;this.module=response.module;this.cob=response.cob;this.fireEvent('documenttypesloaded',this);},removeDocTypes:function(node){while(node.firstChild){this.removeDocTypes(node.firstChild);node.removeChild(node.firstChild);}},loadDocTypesNode:function(noteTypes,parent){noteTypes.sort(function(a,b){if(b.key==undefined){return 1;}
if(a.key==undefined){return-1;}
if(a.description>b.description){return 1;}
if(a.description<b.description){return-1;}
return 0;});for(var i=0;i<noteTypes.length;i++){var node=new Ext.tree.TreeNode({text:noteTypes[i].description,key:noteTypes[i].key,icon:FigtreeWeb.app.getIconPlain(((noteTypes[i].items)?'folder_document.png':'documents.png'),'16')});if(noteTypes[i].items){this.loadDocTypesNode(noteTypes[i].items,node);}
parent.appendChild(node);}},recordLoaded:function(conn,response){this.documents.removeAll();this.noteTypeTree.getSelectionModel().clearSelections();this.documents.loadData(response.documents);if(this.defaultNoteType!==null){this.filterDocuments(this.defaultNoteType);}else{this.noteTypeTree.getRootNode().firstChild.select();}
if(this.documents.getCount()>0){this.documentsView.select(0);}
this.key=response.key;this.getEl().unmask();},connExceptionHandler:function(conn,errorData){this.getEl().unmask();FigtreeWeb.app.throwError(errorData);},filterDocumentsByType:function(selModel,node){this.documentTypeKey=undefined;var text='';if(node){this.documentTypeKey=node.attributes.key;text=node.attributes.text;}
this.filterDocuments('');},filterDocuments:function(filterBy){this.documents.clearFilter(this.documentTypeKey!=undefined);var filterByFn=function(record,id){var rx=new RegExp('^'+this.documentTypeKey,'i');if(this.documentTypeKey&&!rx.test(record.get('documentType'))){return false;}
if(filterBy!==''){rx=new RegExp(filterBy,'im');if(rx.test(record.get('description'))){return true;}
if(rx.test(record.get('fileName'))){return true;}
var date=Ext.util.Format.date(record.get('date'),FigtreeWeb.app.getDateFormat());if(rx.test(date)){return true;}
return false;}
return true;};this.documents.filterBy(filterByFn,this);},sortDocuments:function(sortBy){this.documents.sort(sortBy);var sortState=this.documents.getSortState();},findDocTypeDescription:function(docType,node){if(node.attributes.key===docType){return node.attributes.text;}else if(node.childNodes){var docDesc='';for(var i=0;i<node.childNodes.length;i++){docDesc=this.findDocTypeDescription(docType,node.childNodes[i]);if(docDesc!==''){return docDesc;}}}
return'';},downloadDocument:function(document){if(!document){return;}
var params={module:this.module,cob:this.cob,client:this.client,key:document.get('noteId'),params:'table=note'},caller={getXType:function(){return'fw-screen';},getBaseParams:function(){return params;}};if(document.get('needsLetterMove')){var conn=new FigtreeWeb.Connection({url:this.moveLetterUrl,method:'POST'});conn.on('complete',function(conn,response){this.getEl().unmask();FigtreeWeb.app.downloader.download(response.imageId,caller);},this);conn.on('exception',this.connExceptionHandler,this);conn.on('netexception',this.connExceptionHandler,this);conn.on('beforerequest',function(){this.getEl().mask(this.downloadText,'x-mask-loading');},this);conn.request({imageId:document.get('imageId')});}else{FigtreeWeb.app.downloader.download(document.get('imageId'),caller);}},itemClicked:function(view,index,node,e){var target=Ext.fly(e.getTarget());if(target.hasClass('fd-dv-downloadlink')){this.downloadDocument(this.documents.getAt(index));}},itemDblClicked:function(view,index,node,e){this.downloadDocument(this.documents.getAt(index));}});Ext.reg('fw-fd-documentbrowserlite',FigtreeWeb.FigDocs.Widget.DocumentBrowserLite);

FigtreeWeb.Widget.AutoGenForm=Ext.extend(Ext.Panel,{labelWidth:140,labelAlign:'right',layoutConfig:{columns:3},altXTypes:null,fieldConfigOverrides:null,layout:'table',cls:'fw-autogenform',initComponent:function(){this.altXTypes=Ext.applyIf(this.altXTypes||{},{'textfield':'fw-textbox','textareafield':'fw-textarea','datepickerfield':'fw-datefield','radiosetfield':'fw-radioset','checkboxfield':'fw-checkbox','lookupfield':'fw-lookup','timepickerfield':'fw-textbox','selectfield':'fw-select','hiddenfield':'hidden','spacer':'fw-spacer','imagepickerfield':'fw-fileupload','timepickerfield':'fw-textbox','numberfield':'fw-numberfield','organisationfield':'fw-orgselector'});this.fieldConfigOverrides=Ext.applyIf(this.fieldConfigOverrides||{},{'selectfield':function(config){config.displayField='text';config.valueField='value';config.store=new Ext.data.JsonStore({fields:['text','value'],data:config.options});config.data=config.options;delete config.options;return config;},'label':function(config){config.cls=(config.cls||'')+' x-form-item';return config;},'datepickerfield':{width:97}});if(this.tbar&&Ext.isArray(this.tbar)){this.tbar=new FigtreeWeb.Widget.Toolbar({items:this.tbar,ownerCt:this});}
if(this.bbar&&Ext.isArray(this.bbar)){this.bbar=new FigtreeWeb.Widget.Toolbar({items:this.bbar,ownerCt:this});}
FigtreeWeb.Widget.AutoGenForm.superclass.initComponent.apply(this,arguments);},applyDefaults:function(config){var i,co,xtype=config.xtype;config.fieldLabel=config.label;if(config.label===undefined){config.hideLabel=true;}
config.xtype=this.altXTypes[xtype]||xtype;config.labelCls=(config.labelCls||'')+' carica-form-label-right';config=FigtreeWeb.Widget.AutoGenForm.superclass.applyDefaults.call(this,config);co=this.fieldConfigOverrides[xtype];if(typeof co==='function'){config=co.call(this,config);}else if(typeof co==='object'){Ext.apply(config,co);}
co=this.fieldConfigOverrides[config.name];if(typeof co==='function'){config=co.call(this,config);}else if(typeof co==='object'){Ext.apply(config,co);}
if(config.colspan==='0'){config.colspan='1';}
config.listeners=config.listeners||{};config.listeners['hide']={fn:function(c){var fn=function(){var el=c.getEl().findParent('.x-table-layout-cell',undefined,true);if(el){el.addClass('x-hide-'+c.hideMode);}};if(c.rendered){fn();}else{c.on('render',fn);}}};config.listeners['show']={fn:function(c){var fn=function(){var el=c.getEl().findParent('.x-table-layout-cell',undefined,true);if(el){el.removeClass('x-hide-'+c.hideMode);}};if(c.rendered){fn();}else{c.on('render',fn);}}};return config={xtype:'container',layout:'fw-form',autoEl:{},labelPad:(config.labelAlign||this.labelAlign)==='right'?10:5,labelAlign:config.labelAlign||this.labelAlign,labelWidth:config.labelWidth||this.labelWidth,colspan:config.colspan,items:config};},afterRender:function(){FigtreeWeb.Widget.AutoGenForm.superclass.afterRender.apply(this,arguments);this.body.addClass('carica-form-gradient');if(this.layoutConfig&&this.layoutConfig.fixed===false){this.on('afterlayout',function(){this.body.child('table').setStyle({'table-layout':'auto'});},this,{single:true});}}});Ext.reg('fw-autogenform',FigtreeWeb.Widget.AutoGenForm);

FigtreeWeb.Widget.QuestionnairePanel=Ext.extend(Ext.Panel,{layout:'card',activeItem:0,defaultType:'fw-autogenform',defaults:null,nextButton:null,prevButton:null,menuButton:null,menu:null,sectionLabel:null,mode:'single',displayMode:'single',fieldConfigOverrides:null,initComponent:function(){var xtyp,ovrds;this.menu={items:[]};for(var i=0;i<this.items.length;i++){this.menu.items.push({text:this.items[i].title,checkHandler:this.setActiveItem.createDelegate(this,[i]),checked:(i===0),scope:this,group:this.id+'-sections'});this.items[i].hideMode='offsets';if(this.fieldConfigOverrides){this.items[i].fieldConfigOverrides=this.items[i].fieldConfigOverrides||{};for(xtp in this.fieldConfigOverrides){ovrds=this.fieldConfigOverrides[xtp];if(this.items[i].fieldConfigOverrides[xtp]){ovrds=Ext.applyIf(ovrds,this.items[i].fieldConfigOverrides[xtp]);}
this.items[i].fieldConfigOverrides[xtp]=ovrds;}}}
this.menu=Ext.menu.MenuMgr.get(this.menu);this.nextButton=new Ext.Button({text:'Next Section',handler:this.forward,scope:this,cls:'carica-button-secondary'});this.prevButton=new Ext.Button({text:'Previous Section',handler:this.back,scope:this,disabled:true,cls:'carica-button-secondary'});this.sectionLabel=new Ext.form.Label({text:'1 of '+this.items.length});this.menuButton=new Ext.Button({text:'Sections',menu:this.menu,cls:'carica-button-secondary'});this.modeButton=new Ext.Button({text:'Display Multiple Sections',handler:this.switchMode,scope:this,cls:'carica-button-secondary'});this.changeSelButton=new Ext.Button({text:'Change Displayed Sections',handler:this.changeSelections,scope:this,hidden:true,cls:'carica-button-secondary'});this.tbar=[this.menuButton,this.modeButton,this.changeSelButton,'->',this.prevButton,this.nextButton,{xtype:'box',autoEl:{},style:{width:'40px'}},this.sectionLabel];this.defaults={border:false};FigtreeWeb.Widget.QuestionnairePanel.superclass.initComponent.apply(this,arguments);this.cascade(function(c){if(c.isXType('label')){c.html=Ext.util.Format.htmlEncode(c.text).replace(/\n/g,'<br />').replace(/\[b\]/g,'<b>').replace(/\[\/b\]/g,'</b>').replace(/\[u\]/g,'<u>').replace(/\[\/u\]/g,'</u>').replace(/\[i\]/g,'<i>').replace(/\[\/i\]/g,'</i>');delete c.text;}
if(c.isXType('field')&&c.fieldLabel){c.fieldLabel=Ext.util.Format.htmlEncode(c.fieldLabel).replace(/\n/g,'<br />').replace(/\[b\]/g,'<b>').replace(/\[\/b\]/g,'</b>').replace(/\[u\]/g,'<u>').replace(/\[\/u\]/g,'</u>').replace(/\[i\]/g,'<i>').replace(/\[\/i\]/g,'</i>');}});if(this.displayMode==='multiple'){this.on('afterlayout',function(){this.switchMode(true);},this,{single:true,delay:100});}},back:function(){if(this.activeItem===0){return;}
this.setActiveItem(this.activeItem-1);this.menu.items.items[this.activeItem].setChecked(true);},forward:function(){if(this.activeItem===(this.items.getCount()-1)){return;}
this.setActiveItem(this.activeItem+1);this.menu.items.items[this.activeItem].setChecked(true);},setActiveItem:function(index){this.layout.setActiveItem(index);this.activeItem=index;this.nextButton.setDisabled(this.activeItem===(this.items.getCount()-1));this.prevButton.setDisabled(this.activeItem===0);this.updateSectionLabel();this.getComponent(index).doLayout();},updateSectionLabel:function(){this.sectionLabel.setText((this.activeItem+1)+' of '
+this.items.getCount());},switchMode:function(showAll){if(this.mode==='single'){this.mode='multiple';this.nextButton.hide();this.prevButton.hide();this.sectionLabel.hide();this.menuButton.hide();this.changeSelButton.show();this.modeButton.setText('Display Single Sections');var layout=new Ext.Container.LAYOUTS['auto'](this.layoutConfig);this.items.each(function(c){c.body.setHeight('auto');c.getEl().setHeight('auto');c.show();});this.body.setStyle({'overflow-y':'auto'});this.setLayout(layout);this.doLayout();if(showAll!==true){this.showSelectionWindow();}}else{this.mode='single';this.nextButton.show();this.prevButton.show();this.sectionLabel.show();this.menuButton.show();this.changeSelButton.hide();this.modeButton.setText('Display Multiple Sections');var layout=new Ext.Container.LAYOUTS['card'](this.layoutConfig);this.items.each(function(c){c.lastSize=null;c.hide();});this.body.setStyle({'overflow-y':'hidden'});this.setLayout(layout);this.doLayout();this.setActiveItem(0);this.menu.items.items[0].setChecked(true);}},showSelectionWindow:function(selections){var data=[],i=0,tpl,win,tmpSelections=[];for(i=0;i<this.items.items.length;i++){data.push({index:i,title:this.items.items[i].title});tmpSelections.push(i);}
selections=selections||tmpSelections;tpl=new Ext.XTemplate('<tpl for=".">','<div title="{title}" class="fw-dv-item {[xindex]}"><div>{title}</div></div>','</tpl>');win=new Ext.Window({title:'Select Sections',layout:'fit',height:500,width:300,modal:true,items:[{layout:'fit',border:false,items:[{xtype:'dataview',store:new Ext.data.JsonStore({fields:['index','title'],data:data}),multiSelect:true,simpleSelect:true,itemSelector:'div.fw-dv-item',selectedClass:'fw-dv-item-selected-dark',tpl:tpl,listeners:{'render':{fn:function(){this.getEl().setOverflow('auto');}}}}]}],bbar:['->',{text:'Ok',handler:function(){var dv=win.findByType('dataview')[0],recs=dv.getSelectedRecords(),i;if(recs.length===0){Ext.Msg.alert('Warning','At least one section must be selected.');return;}
this.items.each(function(c){c.hide();});for(i=0;i<recs.length;i++){this.items.items[recs[i].get('index')].show();}
win.close();win=tpl=data=tmpSelections=null;},scope:this,cls:'carica-button-primary',style:'margin-right:7px;'},{text:'Select All',handler:function(){var dv=win.findByType('dataview')[0];dv.selectRange(0,dv.getStore().getCount()-1);},cls:'carica-button-secondary',style:'margin-right:7px;'},{text:'Clear Selections',handler:function(){var dv=win.findByType('dataview')[0];dv.clearSelections();},cls:'carica-button-secondary'}]});win.on('show',function(){var dv=this.findByType('dataview')[0];dv.select(selections);},win);win.show();},changeSelections:function(){var selections=[],i;for(i=0;i<this.items.items.length;i++){if(this.items.items[i].isVisible()){selections.push(i);}}
this.showSelectionWindow(selections);},createPDFPrintXML:function(){if(this.mode==='single'){var items=this.items;this.items=items.filterBy(function(o){return true;});for(var i=0;i<this.items.items.length;i++){this.items.items[i].hidden=false;this.items.items[i].printable=(this.items.items[i].printable!==false);}
FigtreeWeb.Widget.QuestionnairePanel.superclass.createPDFPrintXML.apply(this,arguments);this.items=items;}else{FigtreeWeb.Widget.QuestionnairePanel.superclass.createPDFPrintXML.apply(this,arguments);}},afterRender:function(){var screen,defaultSection,showDefaultSectionOnly,activeItem,i;FigtreeWeb.Widget.QuestionnairePanel.superclass.afterRender.apply(this,arguments);screen=this.findParentByType('fw-screen');defaultSection=screen.currentParams.defaultSection;showDefaultSectionOnly=screen.currentParams.showDefaultSectionOnly;if(defaultSection){regExp=new RegExp('^'+defaultSection);this.items.each(function(c,i){if(regExp.test(c.title)){activeItem=i;return false;}},this);if(activeItem){if(showDefaultSectionOnly){this.on('afterlayout',function(){if(this.displayMode!=='multiple'){this.switchMode(true);}
for(i=0;i<this.items.items.length;i++){if(i!==activeItem){this.items.items[i].hide();}}},this,{single:true,delay:100});}else{this.on('afterlayout',function(){this.setActiveItem(activeItem);},this,{single:true});}}}}});Ext.reg('fw-panel-questionnaire',FigtreeWeb.Widget.QuestionnairePanel);

FigtreeWeb.Widget.MultiFileUpload=Ext.extend(Ext.Panel,{layout:'border',uploadState:null,cls:'fw-mfu',uploadQueue:null,totalSize:0,totalProgress:0,height:250,width:450,minWidth:450,uploading:false,isFormField:true,grid:null,progressBar:null,oldValue:null,name:null,permittedExtensions:'',dzHelpText:'Drop file here or press Select File',url:'FileUpload',maxFiles:-1,initComponent:function(){this.on('afterlayout',this.onAfterLayout,this,{single:true});this.grid=new Ext.grid.GridPanel({ds:new Ext.data.JsonStore({id:'id',fields:[{name:'file'},{name:'filename'},{name:'size',type:'int'},{name:'success',defaultValue:0},{name:'progress',type:'int',defaultValue:0},{name:'xhr'}]}),columns:[{header:'File',width:200,dataIndex:'filename'},{id:'colStatus',header:'Status',renderer:this.statusRenderer},{header:'Actions',width:100,renderer:this.linksRenderer}],autoExpandColumn:'colStatus',region:'center',border:false,listeners:{'cellclick':{fn:this.onGridCellClick,scope:this,delay:10}},bbar:[new FigtreeWeb.Widget.FileButton({style:'padding-right: 7px;',text:'Select File',multiple:false,listeners:{'fileschosen':{fn:function(fb,files){this.processFiles(files);},scope:this}}}),{xtype:'fw-button',cls:'carica-button-secondary',text:'Remove All',listeners:{'click':{fn:this.clear,scope:this}}}]});this.progressBar=new Ext.BoxComponent({cls:'fw-mfu-progbar',autoEl:{children:[{cls:'fw-mfu-progbar-bar'},{cls:'fw-mfu-progbar-text'}]},height:20,region:'north',bar:null,listeners:{'render':{fn:function(c){c.bar=c.getEl().child('.fw-mfu-progbar-bar');c.text=c.getEl().child('.fw-mfu-progbar-text');},scope:this}}});this.items=[this.progressBar,{region:'center',layout:'fit',border:false,items:[this.grid]}];if(this.permittedExtensions&&this.permittedExtensions.length>0){this.permittedExtensions=new RegExp('^.*?\\.('+this.permittedExtensions.replace(/^/,'(').replace(/$/,')').replace(/,\s*/g,')|(')+')$','i');}else{this.permittedExtensions=null;}
this.uploadQueue=[];FigtreeWeb.Widget.MultiFileUpload.superclass.initComponent.apply(this,arguments);this.setValue(this.value||'');if(this.width<this.minWidth){this.width=this.minWidth;}
this.addEvents('change');},onAfterLayout:function(){var dzEl=this.grid.getEl();if(dzEl){dzEl.on('drop',this.onDrop,this);dzEl.on('dragover',this.onDragOver,this);var el=this.dzHelpEl=dzEl.createChild({cls:'fw-mfu-dz-helptext',html:this.dzHelpText});var tm=Ext.util.TextMetrics.createInstance(el);el.setWidth(tm.getWidth(this.dzHelpText));el.center(this.grid.body);}},onDragOver:function(e){e=e.browserEvent;e.stopPropagation();e.preventDefault();},onDrop:function(e){e=e.browserEvent;e.stopPropagation();e.preventDefault();this.processFiles(e.dataTransfer.files);},processFiles:function(filelist){if(!filelist||!filelist.length){return;}
if(this.uploading){this.flash('Please wait, files uploading ...');return;}
this.totalSize=0;this.totalProgress=0;var store=this.grid.getStore(),records=[],record,numberOfFiles=filelist.length;if(this.maxFiles!==-1){if(numberOfFiles>this.maxFiles){numberOfFiles=this.maxFiles;}
while((store.getCount()+numberOfFiles)>this.maxFiles){store.removeAt(0);}}
for(var i=0;i<numberOfFiles;i++){this.totalSize+=filelist[i].size;record={id:Ext.id(),filename:filelist[i].name,size:filelist[i].size,file:filelist[i]};records.push(record);this.uploadQueue.push(record.id);}
store.add(store.reader.readRecords(records).records);if(records.length>0&&this.dzHelpEl){this.dzHelpEl.remove();delete this.dzHelpEl;}
this.updateOverallProgress(0);this.oldValue=this.getValue();this.checkUploadQueue();},uploadNext:function(){if(this.uploadQueue.length){var nextFile=this.uploadQueue.shift();this.uploadFile(nextFile);this.uploading=true;}else{this.uploading=false;this.progressBar.text.update('Complete');var value=this.getValue();if(this.oldValue!=value){this.fireEvent('change',this,value,this.oldValue);}
this.oldValue=value;}},onComplete:function(responseText,record){record.beginEdit();record.set('progress',size);var response=Ext.util.JSON.decode(responseText);record.set('success',(response.success===true));if(!response.success){record.set('error',response.error);}else{record.set('filename',response.filename);record.set('file',null);}
record.set('xhr',null);record.endEdit();record.commit();var size=record.get('size');this.totalProgress+=size;this.updateOverallProgress(this.totalProgress);this.uploadNext();},onError:function(status,statusText,record){record.beginEdit();record.set('success',false);record.set('error','('+status+') '+statusText);record.set('xhr',null);record.endEdit();record.commit();var size=record.get('size');this.totalProgress+=size;this.updateOverallProgress(this.totalProgress);this.uploadNext();},onProgress:function(e,record){record.set('progress',e.loaded);this.updateOverallProgress(this.totalProgress+e.loaded);},uploadFile:function(id){var record=this.grid.getStore().getById(id),file=record.get('file'),self=this,xhr=new XMLHttpRequest();xhr.open('POST',self.url);xhr.onload=function(){if(this.status>=200&&this.status<300){self.onComplete(this.responseText,record);}else{self.onError(this.status,this.statusText,record);}
self=null;record=null;};xhr.onerror=function(){self.onError(this.status,this.statusText,record);self=null;record=null;};xhr.onabort=function(){self.onError(this.status,this.statusText,record);self=null;record=null;};xhr.upload.onprogress=function(event){self.onProgress(event,record);};xhr.upload.onloadstart=Ext.emptyFn;var formData=new FormData();formData.append('thefile',file);formData.append('uniqueId',FigtreeWeb.app.getStateProvider().get('uniqueId',''));var ownerScreen=self.findParentByType('fw-screen'),ownerBaseParams=ownerScreen?ownerScreen.getBaseParams():{};for(var p in ownerBaseParams){formData.append(p,ownerBaseParams[p]);}
record.set('xhr',xhr);xhr.send(formData);},updateOverallProgress:function(progress){progress=Math.round((progress/this.totalSize)*100);this.progressBar.bar.setStyle({width:progress+'%'});if(progress>100){progress=100;}
if(progress===0||isNaN(progress)){this.progressBar.text.update('');}else{this.progressBar.text.update('Overall Progress '+progress+'%');}},statusRenderer:function(value,metadata,record){metadata.css='fw-mfu-grid-statuscell';var id=Ext.id(),progress=Math.round((record.get('progress')/record.get('size'))*100),statusText;if(progress>100){progress=100;}
statusText='Progress '+progress+'%';if(record.get('success')===true){metadata.css+=' fw-mfu-grid-sc-success';statusText='File Uploaded';}else if(record.get('success')===false){metadata.css+=' fw-mfu-grid-sc-fail';metadata.attr='title="'+record.get('error')+'"';statusText='Upload Failed';if(progress<10){progress=10;}}else if(progress===100){statusText='Finalising ...';}
var markup=Ext.DomHelper.markup({tag:'div',id:record.id,cls:'fw-mfu-grid-statusbar',style:{'width':progress+'%'}});markup+=Ext.DomHelper.markup({tag:'div',cls:'fw-mfu-grid-statustext',html:statusText});return markup;},linksRenderer:function(value,metadata,record){var links='';metadata.css='fw-mfu-links';if(record.get('success')!==0){links+=Ext.DomHelper.markup({tag:'span',id:record.id,cls:'fw-grid-link fw-mfu-link-remove',html:'remove'});}
if(record.get('success')===false){links+=Ext.DomHelper.markup({tag:'span',id:record.id,cls:'fw-grid-link fw-mfu-link-retry',html:'retry'});}
if(record.get('success')===0){links+=Ext.DomHelper.markup({tag:'span',id:record.id,cls:'fw-grid-link fw-mfu-link-cancel',html:'cancel'});}
return links;},getValue:function(){var store=this.grid.getStore(),record,files=[];for(var i=0;i<store.getCount();i++){record=store.getAt(i);if(record.get('success')===true){files.push(record.get('filename'));}}
return files.join('|');},clear:function(){if(!this.uploading){var oldValue=this.getValue();this.grid.getStore().removeAll();this.updateOverallProgress(0);var value=this.getValue();if(oldValue!=value){this.fireEvent('change',this,value,oldValue);}}else{this.flash('Please wait, files uploading ...');}},onGridCellClick:function(grid,ri,ci,e){if(e.getTarget('.fw-mfu-link-remove',1)){grid.getStore().removeAt(ri);}
if(e.getTarget('.fw-mfu-link-retry',1)){if(this.uploadQueue.length==0){var record=grid.getStore().getAt(ri);this.totalSize=record.get('file').size;record.beginEdit();record.set('progress',0);record.set('success',0);record.endEdit();record.commit();this.totalProgress=0;this.uploadQueue.push(record.id);this.checkUploadQueue();}}
if(e.getTarget('.fw-mfu-link-cancel',1)){var record=grid.getStore().getAt(ri);record.get('xhr').abort();}},flash:function(message){if(FigtreeWeb.app){FigtreeWeb.app.flash(undefined,message,2);}},checkUploadQueue:function(){var self=this,checked=0,uq=this.uploadQueue,toCheck=uq.length,r,f,fn,reader;var fileChecked=function(id,ok,reason){if(!ok){for(var i=0;i<uq.length;i++){if(uq[i]===id){uq.splice(i,1);r=self.grid.getStore().getById(id);r.beginEdit();r.set('success',false);r.set('error',reason);r.endEdit();r.commit();self.totalSize-=r.get('size');break;}}}
checked++;if(checked===toCheck){self.uploadNext();self=checked=uq=toCheck=r=f=fn=reader=null;}};var checkExt=function(filename){return(self.permittedExtensions)?self.permittedExtensions.test(filename):true;};for(var j=0;j<toCheck;j++){r=self.grid.getStore().getById(uq[j]);f=r.get('file');fn=r.get('filename');if(!checkExt(fn)){fileChecked.defer(1,self,[uq[j],false,'Extension not permitted']);continue;}
if(f.type){fileChecked.defer(1,self,[uq[j],true]);}else{try{reader=new FileReader();reader.onerror=(function(e,id){fileChecked(id,false,'Cannot upload folders');r=f=fn=null;}).createDelegate(reader,[uq[j]],true);reader.onload=(function(e,id){fileChecked(id,true);r=f=fn=null;}).createDelegate(reader,[uq[j]],true);reader.readAsDataURL(f);}catch(e){fileChecked.defer(1,self,[uq[j],false,'Cannot upload folders']);r=f=fn=null;}}}},setValue:function(value){var store=this.grid.getStore(),records=[];if(this.getValue().length>0){this.clear();}
if(value.length>0){value=value.split('|');for(var i=0;i<value.length;i++){records.push({filename:value[i],success:true});}
store.add(store.reader.readRecords(records).records);}},onRender:function(){var b,screen=this.findParentByType('fw-screen');if(this.name&&screen&&!(FigtreeWeb.Application.multiUploadFieldRe.test(this.name)&&(screen.getBaseParams().mode||'').toLowerCase()==='add')){this.maxFiles=1;}
if(this.maxFiles!==1){this.dzHelpText=this.dzHelpText.replace(/ile/g,'iles');b=this.grid.bottomToolbar[0];b.multiple=true;b=b.button;b.text=b.text.replace(/ile/g,'iles');}
FigtreeWeb.Widget.MultiFileUpload.superclass.onRender.apply(this,arguments);}});Ext.reg('fw-multifileupload',FigtreeWeb.Widget.MultiFileUpload);FigtreeWeb.Widget.FileButton=Ext.extend(Ext.BoxComponent,{autoEl:'div',text:'',cls:'carica-button-secondary fw-file-button',multiple:true,initComponent:function(){FigtreeWeb.Widget.FileButton.superclass.initComponent.apply(this,arguments);var config=Ext.apply({},this.initialConfig);delete config.autoEl;delete config.listeners;delete config.style;this.button=new Ext.Button(config);},onRender:function(){FigtreeWeb.Widget.FileButton.superclass.onRender.apply(this,arguments);this.button.render(this.getEl());this.input=this.getEl().createChild({tag:'input',type:'file'});this.input.dom.multiple=this.multiple;this.input.on('change',this.fileOnChange,this);this.input.on('mouseover',this.button.onMouseOver,this.button);this.input.on('mousedown',this.button.onMouseDown,this.button);this.button.monitorMouseOver=(function(e,el,options,inp){if(e.target!=inp.dom&&!e.within(inp)){if(this.monitoringMouseOver){Ext.getDoc().un('mouseover',this.monitorMouseOver,this);this.monitoringMouseOver=false;}
this.onMouseOut(e);}}).createDelegate(this.button,[this.input],true);},onResize:function(adjWidth,adjHeight,rawWidth,rawHeight){if(this.button.rendered){this.button.getEl().setSize(adjWidth,adjHeight);}},fileOnChange:function(e){this.fireEvent('fileschosen',this,this.input.dom.files);var form=this.input.wrap({tag:'form'});form.dom.reset();form.replaceWith(this.input);},destroy:function(){this.input.removeAllListeners();this.input.remove();FigtreeWeb.Widget.FileButton.superclass.destroy.apply(this,arguments);}});

Ext.namespace('CS.DaimlerCN.RMS');Ext.onReady(function(){var css=['.cs-daimlercn-rms-bidct-type .x-panel-body {','background-color: #C0C0C0;','text-align: center;','padding: 4px;','font-family: tahoma, verdana;','font-size: 14px;','border-left: 1px solid #5C6267 !important;','border-top: 1px solid #5C6267 !important;','border-right: 1px solid #5C6267 !important;','}','.cs-daimlercn-rms-bidct-type-ct {','width: 80px','}','.cs-daimlercn-rms-bidct-code .x-panel-body {','padding: 4px;','font-family: tahoma, verdana;','color: blue;','text-decoration: underline;','font-size: 11px;','text-align: center;','cursor: pointer;','}','.cs-daimlercn-rms-bidct-grid .x-panel-body {','border: 1px solid #5C6267 !important;','}','.cs-daimlercn-rms-bidct-channel .x-panel-body {','padding: 4px;','font-family: tahoma, verdana;','font-weight: bold;','font-size: 14px;','text-align: left;','color: #CA7938;','background-color: #FDE8D7','}','.cs-daimlercn-rms-bidct-channel-ct {','border-right: 1px solid #5C6267 !important;','border-top: 1px solid #5C6267 !important;','width: 80px','}','.cs-daimlercn-rms-bidct-startdt .x-panel-body {','padding: 4px;','font-family: tahoma, verdana;','font-size: 11px;','text-align: middle;','}','.cs-daimlercn-rms-bidct-startdt-ct {','/*border-bottom: 1px solid #5C6267 !important;','border-right: 1px solid #5C6267 !important;*/','}'].join('');Ext.util.CSS.createStyleSheet(css,'cs-daimlercn-rms-bidcts');},undefined,{delay:100});CS.DaimlerCN.RMS.BidCTS=Ext.extend(Ext.Panel,{width:300,height:650,autoScroll:true,border:true,bcConfigs:undefined,auctioneerLookupParams:undefined,winSpecifyAuctioneer:undefined,initComponent:function(){var w=this.width-22,cfg=null;this.items=[];for(var i=0;i<this.bcConfigs.length;i++){cfg=this.bcConfigs[i];this.items.push(new CS.DaimlerCN.RMS.BidCT({width:w,bcConfig:cfg,parent:this}));}
CS.DaimlerCN.RMS.BidCTS.superclass.initComponent.apply(this,arguments);},afterRender:function(){CS.DaimlerCN.RMS.BidCTS.superclass.afterRender.apply(this,arguments);this.body.ddScrollConfig={vthresh:50,hthresh:-1,frequency:Ext.isIE?500:250,increment:150};Ext.dd.ScrollManager.register(this.body);},destroy:function(){Ext.dd.ScrollManager.unregister(this.body);CS.DaimlerCN.RMS.BidCTS.superclass.destroy.apply(this,arguments);},selectAuctioneer:function(){if(!this.winSpecifyAuctioneer){var lookupCfg={xtype:'fw-lookup',id:'cs-daimlercn-rms-bidct-auctioneer',width:300,params:this.auctioneerLookupParams};this.winSpecifyAuctioneer=new Ext.Window({title:'Please Assign Auctioneer',modal:true,closable:false,minimizable:false,width:315,height:'auto',items:[lookupCfg],buttons:[{text:'OK',handler:function(){var auctioneer=Ext.getCmp('cs-daimlercn-rms-bidct-auctioneer').getValue();if(auctioneer!=''){this.fireEvent('auctioneerselected',Ext.getCmp('cs-daimlercn-rms-bidct-auctioneer').getValue());this.hideAuctioneerWindow();}else{Ext.Msg.show({title:'No Auctioneer Selected!',icon:Ext.Msg.ERROR,msg:'Please select an Auctioneer.',buttons:Ext.Msg.OK});}},scope:this},{text:'Cancel',handler:this.hideAuctioneerWindow,scope:this}]});}
this.winSpecifyAuctioneer.show();},hideAuctioneerWindow:function(){if(this.winSpecifyAuctioneer){this.winSpecifyAuctioneer.hide();}},filter:function(channel,confirmed){for(var i=0;i<this.items.length;i++){var c=this.items.get(i),cMatch=(channel=='')||(c.getBiddingChannel()==channel);c.setVisible(cMatch&&confirmed==c.bcConfig.confirmed);}},clearFilter:function(){for(var i=0;i<this.items.length;i++){var c=this.items.get(i);c.setVisible(true);}},getSelected:function(){var sel=[],bidCt,i;for(i=0;i<this.items.length;i++){bidCt=this.items.get(i);if(bidCt.selected){sel.push(bidCt.bcConfig.code);}}
return sel;},tooLateToPublish:function(bidCt){var df=FigtreeWeb.app.getDateFormat()+' H:i',now=new Date(),bidStart=Date.parseDate(bidCt.bcConfig.startDate+' '+bidCt.bcConfig.startTime,df),diff=(bidStart-now)/1000/60;return diff<5;},publishSelected:function(){var sel=[],bidCt;for(var i=0;i<this.items.length;i++){bidCt=this.items.get(i);if(bidCt.selected){if(bidCt.gridVehicles.getStore().getCount()==0){Ext.Msg.show({title:'Empty Container Found!',icon:Ext.Msg.ERROR,msg:'Cannot publish an empty bidding container: '+bidCt.bcConfig.code,buttons:Ext.Msg.OK});return;}else if(this.tooLateToPublish(bidCt)){Ext.Msg.show({title:'Cannot Publish Container!',icon:Ext.Msg.ERROR,msg:'Container start date/time has past or is less than five minutes from now: '+bidCt.bcConfig.code,buttons:Ext.Msg.OK});return;}else{sel.push(bidCt.bcConfig.code);}}}
if(sel.length==0){Ext.Msg.show({title:'No container(s) selected!',icon:Ext.Msg.ERROR,msg:'Please select container(s) to publish/confirm.',buttons:Ext.Msg.OK});return;}
var publish=function(){var screen=this.findParentByType('fw-screen');screen.callFigApp({token:'specialDaimlerBCConfirm',maskText:'Working ...',args:{'arg.biddingContainers':sel.join(',')},callback:function(){screen.refresh();}});};Ext.Msg.show({title:'Publish/confirm container(s)?',icon:Ext.Msg.QUESTION,msg:'Are you sure you want to publish/confirm selected container(s)?<br>'+
sel.join(', '),buttons:Ext.Msg.OKCANCEL,animEl:this.getEl(),fn:function(button){if(button=='ok'){publish.call(this);}},scope:this});}});Ext.reg('cs-daimlercn-rms-bidcts',CS.DaimlerCN.RMS.BidCTS);CS.DaimlerCN.RMS.BidCT=Ext.extend(Ext.Panel,{screen:null,parent:null,layout:'fw-table',border:false,style:'padding-top: 20px',layoutConfig:{columns:5},defaults:{bodyStyle:'border:none'},bcConfig:null,selected:false,SOURCE_GRID_TYPES:{ROUND_1:'cs-daimlercn-rms-dd-round1',ROUND_2:'cs-daimlercn-rms-dd-round2',MANUAL:'cs-daimlercn-rms-dd-manual'},CHANNELS:{CHANNEL_A:'000',CHANNEL_B:'001',CHANNEL_C:'002',CHANNEL_D:'003'},CONTAINERS:{TYPE_ONE_SHOT:'000',TYPE_OPEN_BID:'001',TYPE_AUCTION:'002'},STATUS:{BIDDING_SUCCESSFUL:'405'},initComponent:function(){var isChannelC=(this.bcConfig.channel==this.CHANNELS.CHANNEL_C);this.isOpenBid=(this.bcConfig.type==this.CONTAINERS.TYPE_OPEN_BID);this.gridVehicles=new Ext.grid.GridPanel({enableHdMenu:false,enableColumnMove:false,enableDragDrop:true,cellCls:'cs-daimlercn-rms-bidct-grid',height:130,width:this.width,colspan:5,store:new Ext.data.JsonStore({fields:['recordKey','rego','model','source','reservePrice','startPrice','soldPrice','status','statusDesc','sourceGrid','sourceRecord'],data:(this.bcConfig.data||[])}),columns:[{header:'Plate',dataIndex:'rego',width:60},{header:'Model',dataIndex:'model',width:70},{header:'Source',dataIndex:'source',width:((isChannelC)?70:170)},{header:'Reserve Price',dataIndex:'reservePrice',width:70,hidden:!isChannelC,renderer:this.moneyRenderer},{header:'Start Price',dataIndex:'startPrice',width:70,hidden:(isChannelC||!this.isOpenBid),renderer:this.moneyRenderer},{header:'Sold Price',dataIndex:'soldPrice',width:70,hidden:!isChannelC,renderer:this.moneyRenderer},{header:'Status',dataIndex:'statusDesc',width:70,hidden:!isChannelC},{header:'Bidding Failed',width:110,renderer:this.bidFailedRenderer.createDelegate(this),hidden:!isChannelC},{header:'Confirm Sold',width:100,renderer:this.confirmRenderer.createDelegate(this),hidden:!isChannelC}],selModel:new Ext.grid.RowSelectionModel({singleSelect:true})});this.chkSelected=new Ext.form.Checkbox({toolTip:'Confirm?',listeners:{'check':{fn:function(c,checked){this.selected=checked;},scope:this}}});var confirmedIcon=Ext.DomHelper.markup({tag:'img',src:FigtreeWeb.app.getIconPlain('check.png',16),title:'Confirmed'});var cfg=this.bcConfig,typeCfg={html:cfg.typeDesc,cellCls:'cs-daimlercn-rms-bidct-type',ctCls:'cs-daimlercn-rms-bidct-type-ct'},codeCfg={html:cfg.code,cellCls:'cs-daimlercn-rms-bidct-code',listeners:{'render':{fn:this.attachBiddingCodeClick,scope:this}}},channelCfg={html:this.getChannelDescIndent(),ctCls:'cs-daimlercn-rms-bidct-channel-ct',cellCls:'cs-daimlercn-rms-bidct-channel'},startDateTime={html:cfg.startDate+' '+cfg.startTime,ctCls:'cs-daimlercn-rms-bidct-startdt-ct',cellCls:'cs-daimlercn-rms-bidct-startdt'};var bc=[typeCfg,channelCfg,codeCfg,startDateTime,((!cfg.confirmed)?this.chkSelected:{html:confirmedIcon}),this.gridVehicles];this.items=bc;CS.DaimlerCN.RMS.BidCT.superclass.initComponent.apply(this,arguments);this.gridVehicles.bodyStyle=undefined;this.gridVehicles.on('render',this.initDD,this);this.gridVehicles.on('render',this[(cfg.confirmed)?'disable':'enable'],this,{delay:1});this.gridVehicles.on('render',this.fixViewForIE,this.gridVehicles);this.gridVehicles.on('cellclick',this.cellClick,this);},attachBiddingCodeClick:function(panel){panel.getEl().on('click',function(){this.parent.fireEvent('cs-daimlercn-rms-bidct-code-click',this.getBiddingCode());},this);},getChannelDescIndent:function(){var indent=0;switch(this.getBiddingChannel()){case this.CHANNELS.CHANNEL_B:indent=6;break;case this.CHANNELS.CHANNEL_C:indent=12;break;case this.CHANNELS.CHANNEL_D:indent=18;break;default:}
return String.leftPad(this.getBiddingChannelDesc(),indent).replace(/\s/g,'&nbsp;');},fixViewForIE:function(){this.view.afterRenderOld=this.view.afterRender;this.view.afterRender=function(){this.afterRenderOld();this.fireEvent('afterrender',this);}
this.view.on('afterrender',function(view){if(Ext.isIE7||Ext.isIE8){(function(){try{this.processRows(0,true);this.updateHeaders();}catch(e){}}).defer(200,view);}},this);},destroy:function(){this.ddUnreg();CS.DaimlerCN.RMS.BidCT.superclass.destroy.apply(this,arguments);},initDD:function(){this.screen=this.findParentByType('fw-screen');var self=this,g=this.gridVehicles,el=g.getView().el.dom.childNodes[0].childNodes[1];this.dropTarget=new Ext.dd.DropTarget(el,{copy:false,notifyDrop:function(ddSource,e,data){var vehicle=self.sourceToDestMapping(data.selections[0]);vehicle.data.sourceGrid=ddSource.grid.wid;self.vehicleDropped(vehicle);return true;}});for(var ddGroup in this.SOURCE_GRID_TYPES){this.dropTarget.addToGroup(this.SOURCE_GRID_TYPES[ddGroup]);}
this.gridVehicles.getView().dragZone.afterInvalidDrop=(function(e,id){var g=this.gridVehicles,sm=g.getSelectionModel(),s=g.getStore();this.removeVehicle(g,s.indexOf(sm.getSelected()),null);}).createDelegate(this);},ddUnreg:function(){for(var ddGroup in this.SOURCE_GRID_TYPES){this.dropTarget.removeFromGroup(this.SOURCE_GRID_TYPES[ddGroup]);this.dropTarget.unreg();}},moneyRenderer:function(v,p,record,rowIndex,colIndex,store){return(v==null||v==''||v==0)?'':Ext.util.Format.usMoney(v).replace(/^\$/,'&#165;');},cellClick:function(grid,ri,ci,e){var vehicle=grid.getStore().getAt(ri),self=this,screen=self.findParentByType('fw-screen'),soldPrice=vehicle.get('soldPrice');if(soldPrice&&soldPrice>=0){return;}
if(ci==8){var confirmVehicle=function(){screen.callFigApp({token:'specialDaimlerBCAuctionVehicleConfirm',maskText:'Working ...',args:{'arg.vehicleNumber':vehicle.get('recordKey'),'arg.soldPrice':vehicle.get('soldPrice')},callback:function(){screen.refresh();}});};this.getSoldPrice(vehicle,confirmVehicle);}else if(ci==7){Ext.Msg.show({title:vehicle.get('rego'),icon:Ext.Msg.QUESTION,msg:'Confirm bidding failed?',buttons:Ext.Msg.OKCANCEL,animEl:this.gridVehicles.getView().el.dom.childNodes[0].childNodes[1],fn:function(button){if(button=='ok'){screen.callFigApp({token:'specialDaimlerBCAuctionVehicleBiddingFailed',maskText:'Please wait ...',args:{'arg.vehicleNumber':vehicle.get('recordKey')},callback:function(){self.getStore().remove(vehicle);}});}}});}},confirmRenderer:function(v,p,record,rowIndex,colIndex,store){if(record.get('status')==this.STATUS.BIDDING_SUCCESSFUL){return'';}
p.attr+=' style="padding-top: 1px; padding-bottom: 1px;" ';v=Ext.DomHelper.markup({tag:'button',style:{'width':(this.gridVehicles.colModel.getColumnWidth(colIndex)-8)+'px','padding':'0px !important','cursor':'pointer'},id:Ext.id(),html:'Confirm Sold'});return v;},bidFailedRenderer:function(v,p,record,rowIndex,colIndex,store){if(record.get('status')==this.STATUS.BIDDING_SUCCESSFUL){return'';}
p.attr+=' style="padding-top: 1px; padding-bottom: 1px;" ';v=Ext.DomHelper.markup({tag:'button',style:{'width':(this.gridVehicles.colModel.getColumnWidth(colIndex)-8)+'px','padding':'0px !important','cursor':'pointer'},id:Ext.id(),html:'Bidding Failed'});return v;},getStore:function(){return this.gridVehicles.store;},getBiddingChannel:function(){return this.bcConfig.channel;},getBiddingChannelDesc:function(){return this.bcConfig.channelDesc;},getBiddingType:function(){return this.bcConfig.type;},getBiddingCode:function(){return this.bcConfig.code;},sourceToDestMapping:function(sourceRec){return new Ext.data.Record({'recordKey':sourceRec.get('recordKey'),'rego':sourceRec.get('col1'),'model':sourceRec.get('col4'),'source':sourceRec.get('col3'),'channel':sourceRec.get('col6'),'channelCode':sourceRec.get('col6_data').codeValue,'statusDesc':sourceRec.get('col7'),'status':sourceRec.get('col7_data').codeValue,'reservePrice':sourceRec.get('col8'),'startPrice':null,'sourceGrid':null,'sourceRec':sourceRec});},vehicleDropped:function(vehicle){var sourceGrid=this.screen.find('wid',vehicle.get('sourceGrid'))[0],sourceGridType=sourceGrid.ddGroup.toLowerCase();switch(sourceGridType){case this.SOURCE_GRID_TYPES.ROUND_1:this.roundOneDrop(vehicle);break;case this.SOURCE_GRID_TYPES.ROUND_2:this.roundTwoDrop(vehicle);break
case this.SOURCE_GRID_TYPES.MANUAL:this.manualDrop(vehicle);break
default:alert('Invalid source grid type/ddGroup '+
sourceGridType);}},roundOneDrop:function(vehicle){var pricingChannel=vehicle.get('channelCode'),biddingChannel=this.getBiddingChannel();switch(biddingChannel){case this.CHANNELS.CHANNEL_A:if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}
break;case this.CHANNELS.CHANNEL_D:if(pricingChannel==biddingChannel){if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}}else{this.confirmReprice(vehicle);}
break;default:this.invalidDrop(vehicle);}},roundTwoDrop:function(vehicle){var pricingChannel=vehicle.get('channelCode'),biddingChannel=this.getBiddingChannel();switch(biddingChannel){case this.CHANNELS.CHANNEL_B:if(pricingChannel==biddingChannel){if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}}else{this.confirmReprice(vehicle);}
break;case this.CHANNELS.CHANNEL_D:if(pricingChannel==biddingChannel){if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}}else{this.confirmReprice(vehicle);}
break;default:this.invalidDrop(vehicle);}},manualDrop:function(vehicle){var pricingChannel=vehicle.get('channelCode'),biddingChannel=this.getBiddingChannel();switch(biddingChannel){case this.CHANNELS.CHANNEL_C:this.sendToAuction(vehicle);break;case this.CHANNELS.CHANNEL_B:if(pricingChannel==biddingChannel){if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}}else{this.confirmReprice(vehicle);}
break;case this.CHANNELS.CHANNEL_D:if(pricingChannel==biddingChannel){if(this.isOpenBid){this.getStartPrice(vehicle,this.addVehicle);}else{this.addVehicle(vehicle);}}else{this.confirmReprice(vehicle);}
break;default:this.invalidDrop(vehicle);}},sendToAuction:function(vehicle){var self=this;Ext.Msg.show({title:vehicle.get('rego'),icon:Ext.Msg.QUESTION,msg:'Are you sure you want to send this vehicle to Auction?  Vehicle will be marked for re-pricing.<br>'+'Once a vehicle is sent to an Auction container it cannot be removed!',buttons:Ext.Msg.OKCANCEL,animEl:this.gridVehicles.getView().el.dom.childNodes[0].childNodes[1],fn:function(button){if(button=='ok'){self.parent.selectAuctioneer();self.parent.on('auctioneerselected',function(auctioneer){vehicle.auctioneer=auctioneer;self.screen.callFigApp({token:'specialDaimlerBCRepriceVehicle',maskText:'Please wait while vehicle is marked for re-pricing ...',args:{'arg.vehicleNumber':vehicle.get('recordKey'),'arg.channel':self.getBiddingChannel()},callback:function(){vehicle.set('status','301');vehicle.set('statusDesc','Pricing To Be Approved');vehicle.commit();self.addVehicle(vehicle);}});},this);}},scope:this});},addVehicle:function(vehicle){var destGrid=this.gridVehicles,sourceGrid=this.screen.find('wid',vehicle.get('sourceGrid'))[0];var args={'arg.vehicleNumber':vehicle.get('recordKey'),'arg.biddingContainer':this.getBiddingCode(),'arg.startPrice':vehicle.get('startPrice'),'arg.sourceGrid':vehicle.get('sourceGrid')};if(vehicle.auctioneer){args['arg.auctioneer']=vehicle.auctioneer;}
this.screen.callFigApp({token:'specialDaimlerBCVehicleAdd',maskText:'Working ...',args:args,callback:function(){sourceGrid.store.remove(vehicle.get('sourceRec'));destGrid.store.add(vehicle);sourceGrid.refresh();}});},confirmReprice:function(vehicle){var self=this,sourceGrid=this.screen.find('wid',vehicle.get('sourceGrid'))[0];Ext.Msg.show({title:vehicle.get('rego'),icon:Ext.Msg.QUESTION,msg:'Are you sure you want to change the pricing channel of the vehicle?',buttons:Ext.Msg.OKCANCEL,animEl:this.gridVehicles.getView().el.dom.childNodes[0].childNodes[1],fn:function(button){if(button=='ok'){var screen=self.findParentByType('fw-screen');screen.callFigApp({token:'specialDaimlerBCRepriceVehicle',maskText:'Please wait while vehicle is sent for re-pricing ...',args:{'arg.vehicleNumber':vehicle.get('recordKey'),'arg.channel':self.getBiddingChannel()},callback:function(){sourceGrid.refresh();}});}}});},invalidDrop:function(vehicle){Ext.Msg.show({title:'Invalid Allocation',icon:Ext.Msg.ERROR,msg:'You have allocated the vehicle to an inappropriate bidding channel, please allocate it again!',buttons:Ext.Msg.OK});},getStartPrice:function(vehicle,callback){var startPrice=null,self=this;Ext.Msg.prompt(vehicle.get('rego'),'Please input the bidding start price:',function(btn,input){if(btn=='ok'){if(!/^\d+$/.test(input)){Ext.Msg.show({title:'Invalid start price:'+input,icon:Ext.Msg.ERROR,msg:'Start price must be a whole number eg. 50000, 25999, 150000',fn:self.getStartPrice.createDelegate(self,[vehicle,callback]),scope:self,buttons:Ext.Msg.OK});}else{vehicle.data.startPrice=Number(input);callback=callback.createDelegate(self,[vehicle]);callback();}}},this,false,vehicle.get('reservePrice')+'');},getSoldPrice:function(vehicle,callback){var soldPrice=null,self=this;Ext.Msg.prompt(vehicle.get('rego'),'Please input the sold price:',function(btn,input){if(btn=='ok'){if(!/^\d+$/.test(input)){Ext.Msg.show({title:'Invalid sold price:'+input,icon:Ext.Msg.ERROR,msg:'Sold price must be a whole number eg. 50000, 25999, 150000',fn:self.getSoldPrice.createDelegate(self,[vehicle,callback]),scope:self,buttons:Ext.Msg.OK});}else{vehicle.data.soldPrice=Number(input);callback();}}});},removeVehicle:function(g,rowIndex,e){var vehicle=g.store.getAt(rowIndex);if(this.bcConfig.channel==this.CHANNELS.CHANNEL_C){Ext.Msg.show({title:'Cannot remove Vehicle',icon:Ext.Msg.ERROR,msg:'Cannot remove vehicle once it is sent to Auction!',buttons:Ext.Msg.OK});return;}
Ext.Msg.show({title:vehicle.get('rego'),icon:Ext.Msg.QUESTION,msg:'Are you sure you want to remove the vehicle from this container?',buttons:Ext.Msg.OKCANCEL,animEl:g.getView().el.dom.childNodes[0].childNodes[1],scope:this,fn:function(button){if(button=='ok'){g.store.remove(vehicle);var self=this;var doCallFA=function(){var screen=self.findParentByType('fw-screen'),sourceGrid=vehicle.get('sourceGrid');if(typeof sourceGrid=='string'){sourceGrid=screen.find('wid',sourceGrid)[0];}
screen.callFigApp({token:'specialDaimlerBCVehicleRemove',args:{'arg.vehicleNumber':vehicle.get('recordKey'),'arg.biddingContainer':self.bcConfig.code},failCallback:function(){g.store.add(vehicle);},callback:function(){sourceGrid.refresh();}});};doCallFA();}}});},disable:function(){this.ddUnreg();this.gridVehicles.getView().el.mask();this.chkSelected.hide();}});

var CryptoJS=CryptoJS||function(i,j){var f={},b=f.lib={},m=b.Base=function(){function a(){}return{extend:function(e){a.prototype=this;var c=new a;e&&c.mixIn(e);c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.$super.extend(this)}}}(),l=b.WordArray=m.extend({init:function(a,e){a=this.words=a||[];this.sigBytes=e!=j?e:4*a.length},toString:function(a){return(a||d).stringify(this)},concat:function(a){var e=this.words,c=a.words,o=this.sigBytes,a=a.sigBytes;this.clamp();if(o%4)for(var b=0;b<a;b++)e[o+b>>>2]|=(c[b>>>2]>>>24-8*(b%4)&255)<<24-8*((o+b)%4);else if(65535<c.length)for(b=0;b<a;b+=4)e[o+b>>>2]=c[b>>>2];else e.push.apply(e,c);this.sigBytes+=a;return this},clamp:function(){var a=this.words,e=this.sigBytes;a[e>>>2]&=4294967295<<32-8*(e%4);a.length=i.ceil(e/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var e=[],c=0;c<a;c+=4)e.push(4294967296*i.random()|0);return l.create(e,a)}}),n=f.enc={},d=n.Hex={stringify:function(a){for(var e=a.words,a=a.sigBytes,c=[],b=0;b<a;b++){var d=e[b>>>2]>>>24-8*(b%4)&255;c.push((d>>>4).toString(16));c.push((d&15).toString(16))}return c.join("")},parse:function(a){for(var e=a.length,c=[],b=0;b<e;b+=2)c[b>>>3]|=parseInt(a.substr(b,2),16)<<24-4*(b%8);return l.create(c,e/2)}},h=n.Latin1={stringify:function(a){for(var e=a.words,a=a.sigBytes,b=[],d=0;d<a;d++)b.push(String.fromCharCode(e[d>>>2]>>>24-8*(d%4)&255));return b.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d++)c[d>>>2]|=(a.charCodeAt(d)&255)<<24-8*(d%4);return l.create(c,b)}},k=n.Utf8={stringify:function(a){try{return decodeURIComponent(escape(h.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return h.parse(unescape(encodeURIComponent(a)))}},g=b.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=l.create();this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=k.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,c=b.words,d=b.sigBytes,f=this.blockSize,g=d/(4*f),g=a?i.ceil(g):i.max((g|0)-this._minBufferSize,0),a=g*f,d=i.min(4*a,d);if(a){for(var h=0;h<a;h+=f)this._doProcessBlock(c,h);h=c.splice(0,a);b.sigBytes-=d}return l.create(h,d)},clone:function(){var a=m.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});b.Hasher=g.extend({init:function(){this.reset()},reset:function(){g.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);this._doFinalize();return this._hash},clone:function(){var a=g.clone.call(this);a._hash=this._hash.clone();return a},blockSize:16,_createHelper:function(a){return function(b,c){return a.create(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return p.HMAC.create(a,c).finalize(b)}}});var p=f.algo={};return f}(Math);(function(){var i=CryptoJS,j=i.lib,f=j.WordArray,j=j.Hasher,b=[],m=i.algo.SHA1=j.extend({_doReset:function(){this._hash=f.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(f,i){for(var d=this._hash.words,h=d[0],k=d[1],g=d[2],j=d[3],a=d[4],e=0;80>e;e++){if(16>e)b[e]=f[i+e]|0;else{var c=b[e-3]^b[e-8]^b[e-14]^b[e-16];b[e]=c<<1|c>>>31}c=(h<<5|h>>>27)+a+b[e];c=20>e?c+((k&g|~k&j)+1518500249):40>e?c+((k^g^j)+1859775393):60>e?c+((k&g|k&j|g&j)-1894007588):c+((k^g^j)-
899497514);a=j;j=g;g=k<<30|k>>>2;k=h;h=c}d[0]=d[0]+h|0;d[1]=d[1]+k|0;d[2]=d[2]+g|0;d[3]=d[3]+j|0;d[4]=d[4]+a|0},_doFinalize:function(){var b=this._data,f=b.words,d=8*this._nDataBytes,h=8*b.sigBytes;f[h>>>5]|=128<<24-h%32;f[(h+64>>>9<<4)+15]=d;b.sigBytes=4*f.length;this._process()}});i.SHA1=j._createHelper(m);i.HmacSHA1=j._createHmacHelper(m)})();(function(){var i=CryptoJS,j=i.enc.Utf8;i.algo.HMAC=i.lib.Base.extend({init:function(f,b){f=this._hasher=f.create();"string"==typeof b&&(b=j.parse(b));var i=f.blockSize,l=4*i;b.sigBytes>l&&(b=f.finalize(b));for(var n=this._oKey=b.clone(),d=this._iKey=b.clone(),h=n.words,k=d.words,g=0;g<i;g++)h[g]^=1549556828,k[g]^=909522486;n.sigBytes=d.sigBytes=l;this.reset()},reset:function(){var f=this._hasher;f.reset();f.update(this._iKey)},update:function(f){this._hasher.update(f);return this},finalize:function(f){var b=this._hasher,f=b.finalize(f);b.reset();return b.finalize(this._oKey.clone().concat(f))}})})();

(function(){var h=CryptoJS,j=h.lib.WordArray;h.enc.Base64={stringify:function(b){var e=b.words,f=b.sigBytes,c=this._map;b.clamp();b=[];for(var a=0;a<f;a+=3)for(var d=(e[a>>>2]>>>24-8*(a%4)&255)<<16|(e[a+1>>>2]>>>24-8*((a+1)%4)&255)<<8|e[a+2>>>2]>>>24-8*((a+2)%4)&255,g=0;4>g&&a+0.75*g<f;g++)b.push(c.charAt(d>>>6*(3-g)&63));if(e=c.charAt(64))for(;b.length%4;)b.push(e);return b.join("")},parse:function(b){var e=b.length,f=this._map,c=f.charAt(64);c&&(c=b.indexOf(c),-1!=c&&(e=c));for(var c=[],a=0,d=0;d<e;d++)if(d%4){var g=f.indexOf(b.charAt(d-1))<<2*(d%4),h=f.indexOf(b.charAt(d))>>>6-2*(d%4);c[a>>>2]|=(g|h)<<24-8*(a%4);a++}return j.create(c,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();

FigtreeWeb.Widget.ShowHideToggle=function(config){FigtreeWeb.Widget.ShowHideToggle.superclass.constructor.call(this,config);this.addEvents({'click':true});};Ext.extend(FigtreeWeb.Widget.ShowHideToggle,Ext.BoxComponent,{iconBase:'images/v2/',iconShow:'appbar.section.expand.png',iconHide:'appbar.section.collapse.png',onRender:function(ct,position){this.iconShow=this.iconBase+this.iconShow;this.iconHide=this.iconBase+this.iconHide;var config={tag:'div',cls:'fw-showhidetoggle',children:[{tag:'img',src:this.iconShow,alt:'show'},{tag:'span',html:this.textHidden}]};this.el=ct.createChild(config);this.el.on('click',this.onClick,this);var comp=this.getTarget();if(!comp){return;}
comp.setVisible(this.startVisible);this.updateStatus();},onClick:function(e){this.toggleState();},toggleState:function(){var comp=this.getTarget();if(!comp){return;}
comp.setVisible(!comp.isVisible());this.updateStatus();},updateStatus:function(){var comp=this.getTarget();if(!comp){return;}
this.el.child('img').set({src:comp.isVisible()?this.iconHide:this.iconShow,alt:comp.isVisible()?'hide':'show'});this.el.child('span').dom.innerHTML=comp.isVisible()?this.textVisible:this.textHidden;},getTarget:function(){var screen=FigtreeWeb.app.getScreenManager().getActiveScreen();var searchResults=screen.find('wid',this.target);if(searchResults&&searchResults.length>0){var comp=searchResults[0];return comp;}
return null;}});Ext.reg('fw-showhidetoggle',FigtreeWeb.Widget.ShowHideToggle);

FigtreeWeb.data.FigAppProxy=function(url){FigtreeWeb.data.FigAppProxy.superclass.constructor.call(this);this.conn=new FigtreeWeb.Connection({url:url,method:'POST'});this.conn.on('complete',this.getComplete,this);this.conn.on('exception',this.connExceptionHandler,this);this.conn.on('netexception',this.connExceptionHandler,this);};Ext.extend(FigtreeWeb.data.FigAppProxy,Ext.data.DataProxy,{callbackInfo:null,load:function(params,reader,callback,scope,arg){this.callbackInfo={callback:callback,scope:scope||this,arg:arg,reader:reader};if(this.fireEvent("beforeload",this,params)!==false){this.conn.request(params);}else{callback.call(scope||this,null,arg,false);}},getComplete:function(conn,response){var cbi=this.callbackInfo;delete this.callbackInfo;var result;try{result=cbi.reader.readRecords(response);}catch(e){this.fireEvent("loadexception",this,response,e);if(cbi){cbi.callback.call(cbi.scope,null,cbi.arg,false);}
return;}
this.fireEvent("load",this,response);if(cbi){cbi.callback.call(cbi.scope,result,cbi.arg,true);}},connExceptionHandler:function(conn,errorData){FigtreeWeb.app.throwError(errorData);this.fireEvent("loadexception",this,errorData);var cbi=this.callbackInfo;delete this.callbackInfo;if(cbi){cbi.callback.call(cbi.scope,null,cbi.arg,false);}}});

FigtreeWeb.Widget.LookupCombo=Ext.extend(Ext.form.ComboBox,{params:null,getUrl:'ScreenGet',loadingText:'Loading...',typeAhead:false,triggerAction:'all',forceSelection:true,initComponent:function(){this.displayField='desc';this.valueField='code';this.store=new Ext.data.Store({reader:new Ext.data.JsonReader({root:'gridData.data'},[{name:'code',mapping:'col1_data.linkData.actionKey'},{name:'desc',mapping:'col1_data.linkData.actionDescription'}]),proxy:new FigtreeWeb.data.FigAppProxy(this.getUrl)});FigtreeWeb.Widget.LookupCombo.superclass.initComponent.apply(this,arguments);this.on('select',this.selectFired,this);this.tpl='<tpl for="."><div class="x-combo-list-item fw-combo-list-item" title="{'+this.displayField+'}">{'+this.displayField+'}</div></tpl>';},getParams:function(q){var p=Ext.apply({},this.params),screen,getFields,fields,field,i;p.gridDataOnly=true;p.params+=';query;'+q;if(this.getFields){screen=this.findParentByType('fw-screen');getFields=this.getFields.split(',');fields=[];field;i;for(i=0;i<getFields.length;i++){field=screen.getField(getFields[i]);if(field){fields.push({name:field.name,value:field.getValue()});}}
p.fields=Ext.util.JSON.encode(fields);}
return p;},setValue:function(value,description){FigtreeWeb.Widget.LookupCombo.superclass.setValue.call(this,value);if(description){this.setRawValue(description);}},initValue:function(){FigtreeWeb.Widget.LookupCombo.superclass.initValue.call(this);if(this.description){this.setRawValue(this.description);}},selectFired:function(){var v=this.getValue();if(String(v)!==String(this.startValue)){this.fireEvent('change',this,v,this.startValue);this.startValue=v;}}});Ext.reg('fw-lookupcombo',FigtreeWeb.Widget.LookupCombo);

FigtreeWeb.Widget.AddressLookup=Ext.extend(Ext.BoxComponent,{autoEl:{tag:'div',cls:'x-combo-list'},hideMode:'visibility',hidden:true,loadingText:'Loading ...',emptyText:'No records',ignoreValidTarget:true,renderTo:Ext.getBody(),width:600,height:400,resizable:true,handleHeight:8,listAlign:'tl-bl?',fieldMap:{},searchCountryCode:'uk',resultType:'summary',baseUrl:window.location.protocol+'//ws.postcoder.com/pcw/{apiKey}/address/{ccode}/',initComponent:function(){this.loadingText=FigtreeWeb.app.translate('loading');this.emptyText=FigtreeWeb.app.translate('no_records');this.baseUrl=this.baseUrl.replace('{apiKey}',FigtreeWeb.Widget.AddressLookup.apiKey);this.width=this.dropdownWidth;this.height=this.dropdownHeight;this.store=new Ext.data.JsonStore({proxy:new Ext.data.HttpProxy({method:'GET',disableCaching:false}),baseParams:{lines:2,format:'json'},fields:['summaryline','addressline1','addressline2','posttown','county','postcode'],listeners:{load:{fn:function(store,records,options){switch(this.resultType){case'summary':for(var i=0;i<records.length;i++){records[i].set('display',records[i].get('summaryline'));}
break;case'suburb':for(var i=0;i<records.length;i++){records[i].set('display',String.format('{0}, {1} {2}',records[i].get('posttown'),records[i].get('county'),records[i].get('postcode')));}
var seen={};for(var i=store.getCount()-1;i>=0;i--){var r=store.getAt(i);var county=r.get('county'),postcode=r.get('postcode'),posttown=r.get('posttown');if(seen[county]&&seen[county][postcode]&&seen[county][postcode][posttown]){store.remove(r);}else{if(!seen[county]){seen[county]={};}
if(!seen[county][postcode]){seen[county][postcode]={};}
if(!seen[county][postcode][posttown]){seen[county][postcode][posttown]=true;}}}
break;}},scope:this}}});this.maxHeight=this.maxHeight||this.height;FigtreeWeb.Widget.AddressLookup.superclass.initComponent.apply(this,arguments);},afterRender:function(){FigtreeWeb.Widget.AddressLookup.superclass.afterRender.apply(this,arguments);this.getEl().applyStyles({zIndex:15000});this.innerList=this.getEl().createChild({cls:'x-combo-list-inner'});this.innerList.on('mouseover',this.onViewOver,this);this.innerList.on('mouseover',this.onViewMove,this);this.innerList.setWidth(this.width);this.innerList.setHeight(this.height);this.view=new Ext.DataView({applyTo:this.innerList,tpl:'<tpl for="."><div class="x-combo-list-item" ext:qtip="{display}">{display}</div></tpl>',store:this.store,singleSelect:true,selectedClass:'x-combo-selected',itemSelector:'.x-combo-list-item',listeners:{click:{fn:this.onViewClick,scope:this}}});this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('load',this.onLoad,this);this.store.on('loadexception',this.onError,this);if(this.resizable){this.resizer=new Ext.Resizable(this.el,{pinned:true,handles:'se'});this.resizer.on('resize',function(r,w,h){this.maxHeight=h-this.handleHeight-this.el.getFrameWidth('tb');this.listWidth=w;this.innerList.setWidth(w-this.el.getFrameWidth('lr'));this.restrictHeight();},this);this.innerList.setStyle('margin-bottom',this.handleHeight+'px');}
this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){this.inKeyMode=true;this.selectPrev();},"down":function(e){if(!this.isExpanded()){this.expand();}else{this.inKeyMode=true;this.selectNext();}},"enter":function(e){this.onViewClick();},"esc":function(e){this.collapse();},"tab":function(e){this.onViewClick();return true;},scope:this,doRelay:function(foo,bar,hname){if(this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}
return true;},forceKeyDown:true});},onDestroy:function(){Ext.destroy(this.resizer,this.view,this.innerList,this.el);FigtreeWeb.Widget.AddressLookup.superclass.onDestroy.call(this);},init:function(config){Ext.apply(this,config);},doLookup:function(){if(Ext.isIE6||Ext.isIE7||Ext.isIE8||Ext.isIE9){alert('Address lookups are not supported on Intenet Explorer 9 and older.');return;}
var searchText=this.searchField.getValue();this.store.proxy.conn.url=this.baseUrl.replace('{ccode}',this.searchCountryCode)+encodeURIComponent(searchText);var params={};this.expand();this.store.load({params:params,callback:function(){},scope:this});},onBeforeLoad:function(){this.innerList.update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+'</div>':'');this.restrictHeight();this.selectedIndex=-1;},onLoad:function(){if(this.store.getCount()>0){this.expand();this.restrictHeight();}else{this.onEmptyResults();}},onError:function(proxy,conn,err){FigtreeWeb.app.throwError({headerText:'Address Lookup Error',errors:[{message:err.status+' '+err.statusText+'<br>'+err.responseText}]});this.collapse();},onEmptyResults:function(){if(this.emptyText){this.innerList.update('<div>'+this.emptyText+'</div>');}else{this.collapse();}},isExpanded:function(){return this.isVisible();},onViewMove:function(e,t){this.inKeyMode=false;},onViewOver:function(e,t){if(this.inKeyMode){return;}
var item=this.view.findItemFromChild(t);if(item){var index=this.view.indexOf(item);this.select(index,false);}},onViewClick:function(){var index=this.view.getSelectedIndexes()[0];this.select(index);this.save();},restrictHeight:function(){this.innerList.dom.style.height='';var inner=this.innerList.dom;var pad=this.el.getFrameWidth('tb')+(this.resizable?this.handleHeight:0);var h=Math.max(inner.clientHeight,inner.offsetHeight,inner.scrollHeight);var ha=0;var hb=Ext.lib.Dom.getViewHeight()-ha-this.getSize().height;var space=Math.max(ha,hb,this.minHeight||0)-pad-5;h=Math.min(h,space,this.maxHeight);this.innerList.setHeight(h);this.el.setHeight(h+pad);this.el.alignTo(this.searchField.getEl(),this.listAlign);},collapse:function(){this.hide();Ext.getDoc().un('mousewheel',this.collapseIf,this);Ext.getDoc().un('mousedown',this.collapseIf,this);},collapseIf:function(e){if(!e.within(this.el)){this.collapse();}},expand:function(){this.getEl().alignTo(this.searchField.getEl(),this.listAlign);this.restrictHeight();this.show();this.innerList.focus.defer(100,this.innerList);Ext.getDoc().on('mousewheel',this.collapseIf,this);Ext.getDoc().on('mousedown',this.collapseIf,this);},select:function(index,scrollIntoView){this.selectedIndex=index;this.selectedRecord=this.store.getAt(index);this.view.select(index);if(scrollIntoView!==false){var el=this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el,false);}}},selectNext:function(){var ct=this.store.getCount();if(ct>0){if(this.selectedIndex==-1){this.select(0);}else if(this.selectedIndex<ct-1){this.select(this.selectedIndex+1);}}},selectPrev:function(){var ct=this.store.getCount();if(ct>0){if(this.selectedIndex==-1){this.select(0);}else if(this.selectedIndex!=0){this.select(this.selectedIndex-1);}}},save:function(){if(this.selectedRecord){for(var field in this.fieldMap){this.fieldMap[field].setValue(this.selectedRecord.get(field));}}
this.hide();}});Ext.reg('fw-addresslookup',FigtreeWeb.Widget.AddressLookup);
