
(function(){var _1=1.5,_bOldSupport=typeof(vjo)=="object";if(_bOldSupport&&vjo._v==_1){return;}
var _2={};var _3=(typeof window!="undefined")?window:this,wv=_3.vjo;if(!wv||!wv._v||wv._v<_1){_3.vjo=_2;}
_extend(_2,{loader:null,_v:1.5,_global:this,_bScope:null,_typeMap:{},_bSubClass:false,_callStack:[],isArray:function(_4){if(!_4){return false;}
return(_4.constructor==Array||(typeof _4=="object"&&_4.join&&_4.splice));},getType:function(_5){if(!_5){return;}
var _6=_2._typeMap[_5],idx=_5.lastIndexOf("."),cn=(idx>-1)?_5.substring(idx+1):_5;if(_6){return _6.pkg[cn];}
return;},mixin:function(_7,_8){var _9=this.getType(_7);if(_9){if(_9.vj$&&_9.vj$._type==="mtype"){if(_9._props){throw"cannot mixin static props to an instance";}
this.extend(_8,_9._protos);}}},hitch:function(_a,fn,_c){if("function"!=(typeof fn)){var _d=fn;fn=_a;_a=_d;}
return function(){return fn.apply((_c&&this!=window)?this:_a,arguments);};},curry:function(fn){var _f=Array.prototype.slice;var _10=_f.apply(arguments);_10.shift();return function(){return fn.apply(this,_10.concat(_f.apply(arguments)));};},bind:function(ctx,fn){var _13=Array.prototype.slice;var _14=_13.apply(arguments);_14.shift();_14.shift();return function(){return fn.apply(ctx,_14.concat(_13.apply(arguments)));};},create:function(_15,_16){var _17=document.createElement(_15);_17.innerHTML=_16;return _17;},make:function(_18,clz){var a=arguments,len=a.length,tp=(typeof clz=="function"&&clz.vj$)?clz:this.getType(clz),_vjo={};if(len<2||!tp){throw"context and valid type are required";}
_forEach(_18.vj$,function(val,key){if(typeof val=="function"&&val.vj$&&val.vj$._type){this[key]=val;}},_vjo);var _1d=Array.prototype.slice.call(a,2,len);return{_protos:null,protos:function(obj){this._protos=obj;return this;},endType:function(){var t=_2.ctype(),clztype=tp.vj$._type,rv;if(clztype==="itype"){t.satisfies(tp);}else{if(clztype==="ctype"||clztype==="atype"){var _20=TypeMeta.get(tp.vj$._meta._metaId);if(_20&&!_20._completed){_20.complete();}
t.inherits(_2.getType(tp.vj$._class));}else{throw"incompatible anonomyous type";}}
t.protos(this._protos);t.complete();t=t.endType();t.__donotconstruct=true;rv=new t;delete t.__donotconstruct;rv.vj$=t.vj$;_2.extend(rv.vj$,_vjo);(function(){if(this.base){this.base.apply(this,arguments);}}).apply(rv,_1d);if(rv.base&&rv._getBase){var fn=function(){};fn.prototype=rv._getBase();rv.base=new fn;rv.base._parent=rv;}
rv.vj$.parent=(tp._outer)?tp._outer:_18;rv.vj$.outer=tp._outer;if(this._protos&&this._protos.constructs){this._protos.constructs.apply(rv);}
return rv;}};},needs:function(clz,_23){if(!clz){return;}
if(!this._bScope){this._bScope={};}
var _24=_createPkg(clz),cls=_24.className,tp=_24.pkg[cls];if(!tp){if(this.loader!=null){var _25=this._bScope;this._bScope=null;this.loader.load(clz);this._bScope=_25;tp=_24.pkg[cls];}}
if(tp){if(typeof _23=="string"&&_23!=""){cls=_23;}
this._bScope[cls]=tp;}},getVersion:function(){return _2._global._scope_name||"";},versionJsText:function(txt){var scp=this.getVersion();if(scp){var str="(function(vjo){"+txt;str+="}).apply("+scp+",["+scp+".vjo]);";return str;}
return txt;},forEach:_forEach,extend:_extend,needsLib:function(){},createArray:function(val,_2a){var arr=[];if(arguments.length>1){for(var ii=0;ii<_2a;ii++){if(arguments.length>2){var tmp=[val];for(var k=2;k<arguments.length;k++){tmp[tmp.length]=arguments[k];}
arr[ii]=_2.createArray.apply(this,tmp);}else{arr[ii]=val;}}}
return arr;},isInstanceOf:function(_2f,_30){if(_2f===null){return false;}
var _31=_isVjoType(_30);if(!_31||(_31&&_30.vj$._type!="itype")){return _2f instanceof _30;}
if(!_2f.vj$){return false;}
if(_isInstanceForInterface(_2f.getClass(),_30)){return true;}
var id=_2f.vj$._meta._metaId,meta;for(;;){meta=TypeMeta.get(id);if(meta){var ihs=meta._inherits;if(ihs.length==1&&_2.getType(ihs[0])){id=ihs[0];if(_isInstanceForInterface(_2.getType(ihs[0]).clazz,_30)){return true;}}else{break;}}else{break;}}
return false;}});_2.NEEDS_IMPL=function(){throw"needs implementation";};_2.Object=function(){this.vj$={_class:"vjo.Object",_type:"ctype",Object:_2.Object,_meta:{}};};_2.Object.prototype={_hashCode:-1,constructs:function(){},getClass:_getClazz,hashCode:function(){if(this._hashCode==-1){this._hashCode=++_2.Object._hashCounter;}
return this._hashCode;},equals:function(o){return(this===o);},toString:function(){return this.getClass().getName()+"@"+this.hashCode().toString(16);}};_2.extend(_2.Object,{vj$:{_class:"vjo.Object",_type:"ctype",Object:_2.Object,_meta:{}},_hashCounter:0,isInstance:function(o){return _2.isInstanceOf(o,this);}});_2.Class=function(clz,typ){this._name=clz,this._type=typ||"ctype",this._satisfied=[];this.vj$={_class:"vjo.Class",_type:"ctype",Class:_2.Class,_meta:{}};};_2.Class.prototype=new _2.Object();_2.extend(_2.Class.prototype,{getName:function(){var n=this._name;if(n){return n;}
return null;},getSimpleName:function(){var n=this.getName();var idx=n.lastIndexOf(".");if(idx!=-1){n=n.substring(idx+1);if(n){idx=n.lastIndexOf("$");if(idx>0){n=n.substring(idx+1);}}}
return n;},getPackageName:function(){var n=this.getName();if(n!=null){var i=n.lastIndexOf(".");if(i>=0){return n.substring(0,i);}}
return"";},isInterface:function(){return(this._type==="itype");},isInstance:function(obj){var tp=_2.getType(this.getName());if(tp){return _2.isInstanceOf(obj,tp);}
return false;},toString:function(){return(this.isInterface()?"interface ":"class ")+this.getName();},getClass:_getClazz});_2.extend(_2.Class,{forName:function(clz){var err="Type not found for '"+clz+"'";try{var o=eval(clz);if(o&&o.clazz){return o.clazz;}}
catch(e){}
throw err;},isInstance:function(o){return _2.isInstanceOf(o,_2.Class);},clazz:new _2.Class("vjo.Class","ctype")});_2.Object.clazz=new _2.Class("vjo.Object","ctype");_2.obj=function(_43,_44){if(typeof(_43)=="undefined"||_43==null||_43===""){throw"Invalid type name";}
if(!_44){return null;}
var _45,err="Invalid type '"+_43+"'.";try{_45=eval(_43);}
catch(e){throw err;}
if(!_45){return err;}
var o=new _45();for(var i in _44){o[i]=_44[i];}
return o;};var _48={map:{},inits:{},needs:{},stack:[],inners:{},loaded:{},addType:function(clz){if(!this.map[clz]){this.map[clz]=[];}},addDep:function(clz,dep){if(!clz){return;}
this.addType(clz);var aD=this.map[clz];aD[aD.length]=dep;if(_2.loader){var stk=this.stack;if(stk.length==0){stk.push(clz);}
if(stk[stk.length-1]===clz){stk.push(dep);}}},addInner:function(clz,fn){if(!this.inners[clz]){this.inners[clz]=[];}
var ins=this.inners[clz];ins.push(fn);},execInners:function(clz){var ins=this.inners[clz];if(ins){var len=ins.length;for(var i=0;i<len;i++){var _55=ins[i];if(_55){_55.complete();}}}
this.inners[clz]=null;},removeDep:function(clz,dep){if(!_2.loader){return;}
var stk=this.stack;if(stk[stk.length-1]===dep){stk.pop();}},addNeeds:function(clz){var n=this.needs[clz];if(n){while(n.length>0){n.pop()();}
this.needs[clz]=null;}},deferNeed:function(clz,fn){var n=this.needs;if(!n[clz]){n[clz]=[];}
n[clz].push(fn);},register:function(clz,fn){this.inits[clz]=fn;return true;},load:function(clz){if(!clz||this.loaded[clz]){return false;}
var _61=this.map[clz],ins=this.inits;if(_2.loader){var stk=this.stack,len=stk.length;if(len>0&&stk[len-1]===clz){stk.pop();}}
if(_61&&!this.hasCirDep(clz)){var stk=[];this._pushDep(clz,stk,{});while(stk.length>0){var dep=stk.pop(),fn=ins[dep];this.addNeeds(dep);if(fn){fn.complete();}
ins[dep]=null;this.execInners(dep);this.loaded[dep]=true;}}
if((!_61||_61.length==0)){this.addNeeds(clz);if(ins[clz]){ins[clz].complete();ins[clz]=null;}
this.execInners(clz);this.loaded[clz]=true;}
return true;},_pushDep:function(clz,_65,_66){var arr=this.map[clz];_65.push(clz);_66[clz]=true;if(!arr||arr.length===0){return;}
var len=arr.length,i=0;for(;i<len;i++){var key=arr[i];if(!_66[key]){this._pushDep(key,_65,_66);}}
return;},_hasCirDep:function(clz,_6b,_6c){var arr=this.map[_6b];if(!arr||arr.length===0){return false;}
var len=arr.length,i=0;for(;i<len;i++){var key=arr[i];if(_2.loader){if(key===clz){return true;}}else{if(!_2.getType(key)){return true;}}
if(!_6c[key]){_6c[key]=true;if(this._hasCirDep(clz,key,_6c)){return true;}}}
return false;},hasCirDep:function(clz){var aD=this.map[clz],bInline=(!_2.loader);if(aD){var len=aD.length;if(bInline){return this._hasCirDep(clz,clz,{});}else{var stk=this.stack,len2=stk.length;for(var i=0;i<len;i++){var dep=aD[i];for(var j=0;j<len2;j++){if(stk[j]===dep){return true;}}}
if(len2>0){return this._hasCirDep(clz,clz,{});}}}
return false;}};var _77={needs:function(clz,_79){if(!clz||this.vj$._meta._isInner){return this;}
var _7a=[],useAlias=false;if(typeof clz=="string"){_7a=[clz];useAlias=(_79)?true:false;}else{if(_2.isArray(clz)){_7a=clz;}else{return this;}}
_forEach(_7a,function(val,key,obj){var cl=val,pObj=_2._typeMap[val],idx=cl.lastIndexOf("."),cn=(idx>-1)?cl.substring(idx+1):cl,tp=(pObj)?pObj.pkg[cn]:null;_48.addDep(this.vj$._class,cl);if(!tp&&_2.loader){var _7f=_2._bScope;_2._bScope=null;_2.loader.load(cl);_2._bScope=_7f;pObj=_2._typeMap[cl];tp=(pObj)?pObj.pkg[cn]:null;}
_48.removeDep(this.vj$._class,cl);if(_79!==""){if(tp&&!(_2.isInstanceOf(tp,_MType))){var nm=(useAlias)?_79:cn,err=false;if(this.vj$[nm]&&this.vj$[nm]!==tp){if(_bOldSupport){err=true;}else{throw"Name collision with type '"+nm+"' in need list.";}}
if(!err){this.vj$[nm]=tp;}}else{_48.deferNeed(this.vj$._class,(function(_81,_82,ctx){return function(){var tp=_2.getType(_82);if(tp&&tp.vj$&&!(_2.isInstanceOf(tp,_MType))){if(ctx.vj$[_81]&&ctx.vj$[_81]!==tp){throw"Name collision with "+nm+"in need list.";}
ctx.vj$[_81]=_2.getType(_82);}};})((useAlias)?_79:cn,cl,this));}}},this);return this;},props:function(obj,_86){_forEach(obj,function(val,key,obj){if(_isValidProp(key)){var o=this[key]=val;if(_addInner(this,o,"s_inners",key)){if(this.vj$[key]){throw"'"+key+"' in type '"+this.vj$._class+"' conflicts with needed type name";}
var _v={};_2.extend(_v,this.vj$);delete _v._meta;_2.extend(_v,o.vj$);_v[key]=o;o.vj$=_v;if(!this.vj$._meta._isInner){_48.addInner(this.vj$._class,TypeMeta.get(o.vj$._meta._metaId));var rt=this.vj$._class;_updateInners(rt,rt+"."+key,o,true);}}else{if(typeof o=="function"&&!o._name&&!o.vj$){o._name=key;}}}},this);return this;},protos:function(obj,_8e){if(!obj){return;}
_forEach(obj,function(val,key,obj){if(key!="base"&&key!="b"){var _92=this.prototype[key],isType=_isVjoType(val);if(_92&&typeof _92=="function"&&key.indexOf("constructs")!=0&&(key.indexOf("_ovld")===-1||key.indexOf("_ovld")!=(key.length-5))&&!_isVjoType(_92)&&typeof val=="function"&&!isType){this.prototype[key]=(function(_93,_94){return function(){var _95=this.base,t={},error=false,rv,out=this.vj$.outer,fix=true;if(fix){this.base=(_94.prototype._getBase)?_94.prototype._getBase():null;if(this.base){this.base._parent=this;}
t.vj$=this.vj$;if(!out){_fixScope(_94,this);}}
try{rv=_93.apply(this,arguments);}
catch(e){error=e;}
if(fix){if(!out){_fixScope(t,this);}
this.base=_95;}
if(error){throw error;}
return rv;};})(val,this);}else{if(isType&&!this.vj$._meta._isInner){_48.addInner(this.vj$._class,TypeMeta.get(val.vj$._meta._metaId));var rt=this.vj$._class;_updateInners(rt,rt+"."+key,val,false);}
this.prototype[key]=val;}
if(!_addInner(this,val,"_inners",key)){if(typeof val=="function"&&!val._name&&!isType){val._name=key;}}else{if(this.vj$[key]){throw"'"+key+"' in type '"+this.vj$._class+"' conflicts with needed type name";}}}
if(obj.toString!=Object.prototype.toString){this.prototype.toString=obj.toString;}},this);return this;},isInstance:function(obj){return _2.isInstanceOf(obj,this);},endType:function(){_updateInnerEtypes(this.vj$);_48.load(this.vj$._class);if(_2.validateType){_2.validateType(this);}
return this;}};var _98={satisfies:function(_99,_9a){var _9b=[];if(_2.isArray(_99)){_9b=_99;}else{_9b=[_99];}
_forEach(_9b,function(val,key,obj){var cl=_getTypeName(val),_99;if(_isVjoType(cl)){_99=cl;var clz=_99.vj$._class||"",idx=clz.lastIndexOf("."),cn=(idx>-1)?clz.substring(idx+1):clz;if(cn){this.vj$[cn]=_99;}}
var _a1=(_99)?_99:_2.getType(cl);if(_a1){if(!_9a){this.clazz._satisfied.push(_a1);}
for(var i in _a1){var val=_a1[i];if(_isValidProp(i)&&!this[i]){this[i]=val;}}}},this);return this;},inherits:function(_a3,isB){_a3=_getTypeName(_a3);if(!isB&&!_isValidInh(_a3)){throw"Cannot inherit from '"+_a3+"'";}
var _a5=("vjo.Object"===_a3);if(!isB&&_a5){return this;}
var _a6;if(_isVjoType(_a3)){_a6=_a3;var clz=_a6.vj$._class||"",idx=clz.lastIndexOf("."),cn=(idx>-1)?clz.substring(idx+1):clz;if(cn){this.vj$[cn]=_a6;}}else{if(_a5){_a6=_2.Object;}else{_a6=(this.vj$[_a3])?this.vj$[_a3]:_2.getType(_a3);}}
if(_isVjoType(_a6)){var _a8=TypeMeta.get(_a6.vj$._meta._metaId);if(_a8&&!_a8._completed){_a8.complete();}
_createInherits(this,_a6);}
return this;}};_2.extend({sysout:{print:function(){if(typeof console!="undefined"){console.info.apply(this,arguments);}},println:function(){if(typeof console!="undefined"){console.info.apply(this,arguments);}},printStackTrace:function(){}},syserr:{print:function(){if(typeof console!="undefined"){console.warn.apply(this,arguments);}},println:function(){if(typeof console!="undefined"){console.warn.apply(this,arguments);}},printStackTrace:function(){}},jsunit:{assertEquals:function(){},assertTrue:function(){},assertFalse:function(){},assertNotNull:function(){}}});function TypeMeta(_a9,_aa,cfg){this._needs=[];this._props=null;this._protos=null;this._satisfies=[];this._mixins=[];this._inherits=[];this._inits=null;this._completed=(_aa==="type")?true:false;this._isInner=(_a9)?false:true;this._name=_a9;this._kind=_aa;this._options={autoConstruct:true};this.init(cfg);this.setup();}
TypeMeta.prototype={init:function(cfg){this._cfg={satisfiesFn:_98.satisfies,inheritsFn:_98.inherits,protosFn:_77.protos,postDefFn:function(){},typeDef:null,baseType:"vjo.Object"};if(cfg){_2.extend(this._cfg,cfg);}},setup:function(){var t=this._type=this._cfg.typeDef||_createType(this._name,"itype"===this._kind);t.vj$._type=this._kind||"ctype";var id=this._name;if(this._isInner){id=TypeMeta.id();t.vj$._meta._isInner=true;}else{var _af=_createPkg(id);if(!_af.pkg[_af.className]){_af.pkg[_af.className]=this._type;}
t.vj$[_af.className]=t;_48.register(id,this);}
this._isDup=(!this._isInner&&TypeMeta.get(id)!=null);if(!this._isDup){TypeMeta.put(this,id);}
t._inherits=null;_createClazz(t);t.vj$._meta._metaId=id;},needs:function(_b0,_b1){_77.needs.apply(this._type,arguments);return this;},singleton:function(){return this;},options:function(_b2){if(_b2){for(var k in _b2){this._options[k]=_b2[k];}}
return this;},makeFinal:function(){return this;},satisfies:function(_b4){var _b5=[];if(_2.isArray(_b4)){_b5=_b4;}else{_b5=[_b4];}
_forEach(_b5,function(val,key,obj){var _b9=_getTypeName(val);this.needs(_b9);_77.needs.call(this._type,_b9);this._satisfies.push(val);},this);return this;},props:function(_ba){if(this._props){throw"multiple props blocks are not allowed";}
this._props=_ba;_77.props.apply(this._type,arguments);return this;},protos:function(_bb){if(this._protos){throw"multiple protos blocks are not allowed";}
this._protos=_bb;return this;},inherits:function(_bc){var _bd=[];if(_2.isArray(_bc)){_bd=_bc;}else{_bd=[_bc];}
_forEach(_bd,function(val,key,obj){var _c1=_getTypeName(val);this.needs(_c1);this._inherits.push(val);},this);return this;},mixin:function(_c2){var _c3=[];if(_2.isArray(_c2)){_c3=_c2;}else{_c3=[_c2];}
_forEach(_c3,function(val,key,obj){var _c7=_getTypeName(val);this.needs(_c7);this._mixins.push(val);},this);return this;},inits:function(fn){this._inits=fn;return this;},validateAndMerge:function(_c9,_ca){var p=(_ca)?_c9[_ca]:_c9;return function(val,key,obj){if(p[key]){throw"collision when mixing in '"+key+"' into "+this._name;}else{p[key]=val;}};},complete:function(){if(this._completed){return this;}
this._completed=true;_updateInnerEtypes(this._type.vj$);var _cf=this._mixins;var p={_props:{}};for(var i=0;i<_cf.length;i++){var m=_2.getType(_cf[i]);if(!m||!m.vj$||m.vj$._type!="mtype"){throw _cf[i]+"is not a valid mtype.";}
var exp=m._expects;sats=m._satisfiers;if(!this._protos){this._protos={};}
if(!this._props){this._props={};}
_copyNS(m.vj$,this._type.vj$);var nm=m.vj$._class,idx=nm.lastIndexOf(".");var clz=(idx!=-1)?nm.substring(idx+1):nm;if(!this._type.vj$[clz]){this._type.vj$[clz]=this._type;}else{throw clz+" is already defined in the current namespace";}
_forEach(m._protos,this.validateAndMerge(this,"_protos"),this);_forEach(m._props,this.validateAndMerge(p,"_props"),this);for(var j=0;j<sats.length;j++){this._satisfies.push(sats[i]);}}
_77.props.call(this._type,p._props);if(this._satisfies.length>0){this._cfg.satisfiesFn.call(this._type,this._satisfies);}
if(exp){this._cfg.satisfiesFn.call(this._type,[exp],true);}
var _d7=this._inherits.length;if(_d7>0){if(this._kind!="itype"&&_d7>1){throw"type can only inherit from one type";}
for(var i=0;i<_d7;i++){this._cfg.inheritsFn.call(this._type,this._inherits[i]);}}else{if(this._kind!="itype"){this._cfg.inheritsFn.call(this._type,this._cfg.baseType,true);}}
if(_d7==0){var _d8=this._protos||{};_forEach(["hashCode","equals","getClass"],function(val){if(!_d8[val]){this[val]=_2.Object.prototype[val];}},this._type.prototype);}
if(this._protos){this._cfg.protosFn.call(this._type,this._protos);}
if(!this._type.prototype.constructs){this._type.prototype.constructs=function(){};}
this._cfg.postDefFn.call(this);if(this._inits&&!this._isDup){this._inits.call(this._type);}
return this;},canComplete:function(){var b=(this._inits==null);for(var i=0;i<this._inherits.length;i++){var s=this._inherits[i];if(!_isVjoType(s)){b=false;break;}}
for(var i=0;b&&i<this._satisfies.length;i++){var s=this._satisfies[i];if(!_isVjoType(s)){b=false;break;}}
for(var i=0;b&&i<this._mixins.length;i++){var m=this._mixins[i];if(!_isVjoType(m)){b=false;break;}}
return b;},endType:function(){if(!this._isInner){_48.load(this._name);if(_2.validateType){_2.validateType(this._type);}}else{if(this.canComplete()){this.complete();}}
return this._type;}};_2.extend(TypeMeta,{_count:0,_pre:"tmp",_reg:{},id:function(){return this._pre+this._count++;},put:function(_de,id){var nm=(id)?id:this._pre+this._count++;this._reg[nm]=_de;},get:function(id){return this._reg[id];}});_2.ctype=function(clz){clz=_getTypeName(clz);var t=new TypeMeta(clz);return t;};_2.type=function(clz){clz=_getTypeName(clz);var t=new TypeMeta(clz,"type");t.inits=function(fn){if(fn&&!this._isDup){fn.call(this._type);}
return this;};t.props=function(_e7){_77.props.apply(this._type,arguments);return this;};t.protos=function(_e8){_77.protos.apply(this._type,arguments);return this;};t.inherits=function(clz){_98.inherits.apply(this._type,arguments);return this;};t.satisfies=function(clz){_98.satisfies.apply(this._type,arguments);return this;};return t;};_2.itype=function(clz){clz=_getTypeName(clz);var t=new TypeMeta(clz,"itype",{inheritsFn:function(_ed){var _ee=(this.vj$[_ed])?this.vj$[_ed]:(this.vj$.b&&this.vj$.b[_ed])?this.vj$.b[_ed]:_2.getType(_ed);if(_ee){for(var i in _ee){var val=_ee[i];if(_isValidProp(i)&&!this[i]){this[i]=val;}}}
return this;}});t._type.isInstance=function(obj){return _2.isInstanceOf(obj,this);};return t;};_2.atype=_2.ctype;function _addMixinMethods(to,_f3,ns){if(!_f3||typeof _f3!="object"){return;}
var b=true;for(var i in _f3){b=false;if(!reservedMProp[i]){to[i]=_f3[i];}}
return b;}
function _MType(clz){var t=this;t.vj$={_type:"mtype",_class:clz,_meta:{}};t._props=null;t._protos={};t._expects="";t._satisfiers=[];t.needs=function(){return _77.needs.apply(this,arguments);};t.props=function(_f9){var p;if(!this._props){p={};}else{p=this._props;}
if(!_addMixinMethods(p,_f9,this.vj$)){if(!this._props){this._props=p;}}
return this;};t.protos=function(_fb){if(_fb&&_fb["constructs"]){throw"mtype cannot have constructs block";}
_addMixinMethods(this._protos,_fb,this.vj$);return this;};t.expects=function(clz){this._expects=_2.getType(clz);return this;};t.satisfies=function(clz){var _fe=[];if(_2.isArray(clz)){_fe=clz;}else{_fe=[clz];}
_forEach(_fe,function(val,key,obj){var _102=_getTypeName(val);this.needs(_102);this._satisfiers.push(val);},this);return this;};t.endType=function(){if(this.vj$._class){_48.load(this.vj$._class);}
return this;};return t;}
_2.mtype=function(clz){clz=_getTypeName(clz);var base=new _MType(clz);if(!clz||_isInnerClass(clz)){base.vj$._meta._isInner=true;}
if(!clz){return base;}
var pObj=_createPkg(clz);return(pObj.pkg[pObj.className])?base:(pObj.pkg[pObj.className]=base);};_2.etype=function(clz){clz=_getTypeName(clz);_createEnum();var eDef=function(args){this.vj$=eDef.vj$;if(args!=false){if(!this.constructs){throw"'"+this.vj$._class+"' cannot be instantiated";}
var rv=this.constructs.apply(this,args);}};eDef.vj$={_class:clz,_type:"etype",_meta:{}};eDef.isInstance=function(o){return _2.isInstanceOf(o,this);};var t=new TypeMeta(clz,"etype",{typeDef:eDef,baseType:"vjo.Enum",postDefFn:function(){this._type.prototype.toString=_2.Enum.prototype.name;if(this._eVals){this._type.values.call(this._type,this._eVals);}}});_2.extend(t,{inherits:function(){throw"Invalid type definition. etype cannot be inheritted from another type";},values:function(vals){this._eVals=vals;return this;}});var en=t._type;en._enums=[];en.from=_2.Enum.from;en.values=function(vals){if(arguments.length==0){if(typeof this._enums.slice!="undefined"){return this._enums.slice();}else{var a=[];for(var i=0;i<this._enums.length;i++){if(typeof this._enums[i]!="undefined"){a[i]=this._enums[i];}}
return a;}}else{var ord=0;if(typeof vals=="string"&&vals.length>0){while(vals.indexOf(" ")>-1){vals=vals.replace(" ","");}
if(vals.indexOf(",")>0){var a=vals.split(","),t;if(a[0]&&a[0].indexOf(":")>0){throw"Invalid labels for etype values: "+a[0];}
for(var i=0,l=a.length;i<l;i++){var eV=a[i];if(i==0&&t&&t.length>0){eV=t[0];}else{if(a[i].indexOf(":")>-1){eV=a[i].split(":")[0];}}
this._enums[this._enums.length]=new en(false);this._enums[this._enums.length-1]._name=eV;}}else{this._enums[0]=new en(false);this._enums[0]._name=vals;}}else{for(var itm in vals){this._enums[this._enums.length]=new en(vals[itm]);this._enums[this._enums.length-1]._name=itm;}}
for(var i=0,l=this._enums.length;i<l;i++){if(typeof this._enums[i]!="undefined"){var nm=this._enums[i]._name;if(this[nm]){throw"Invalid prop member. Cannot use etype value as prop member.";}
this[nm]=this._enums[i];this[nm]._ord=ord++;}}}
en.prototype.constructs=null;return this;};return t;};_2.otype=function(clz){return{defs:function(defs){return this;},endType:function(){}};};var _117={},reservedProto={},reservedMProp={},reservedClz={},reservedInh={};_forEach("props protos inherits prototype inits satisfies mixin _inherits _satisfiers singleton isInstance vj$".split(" "),function(val,key,obj){this[val]=true;},_117);_forEach("constructs getClass _getBase base vj$".split(" "),function(val,key,obj){this[val]=true;},reservedProto);_forEach("props protos _props _protos vj$ _expects expects _satisfiers satisfies endType".split(" "),function(val,key,obj){this[val]=true;},reservedMProp);_forEach("vjo.Class vjo.Object".split(" "),function(val,key,obj){this[val]=true;},reservedClz);function _constructType(ctx,args){var bC=true;if(!ctx.constructs){ctx.constructs=function(){};bC=false;}
var fn,rv,c=ctx.constructs,dconstruct=false;if(ctx.base&&ctx._getBase){fn=function(){};fn.prototype=ctx._getBase();dconstruct=fn.prototype._constructs||false;}
if(dconstruct&&ctx.base){var cstr=c.toString();if(cstr.indexOf("this.base(")===-1&&cstr.indexOf("this.constructs")===-1){ctx.base();}}
if(bC){rv=c.apply(ctx,args);}
if(fn){ctx.base=new fn;ctx.base._parent=ctx;}
if(rv){return rv;}}
function _createType(clz,isI){isI=isI||false;if(!_isValidClz(clz)){throw"Invalid type name '"+clz+"'";}
var base=function(){var _12c=TypeMeta.get(base.vj$._meta._metaId),bConstruct=!base.__donotconstruct;if(!(this instanceof base)&&bConstruct&&_12c&&_12c._options.autoConstruct){base.__donotconstruct=true;var b=new base();delete base.__donotconstruct;var rv=_constructType(b,arguments);if(rv){return rv;}
return b;}
this.constructor=base;if(_12c&&!_12c._completed){_12c.complete();_forEach(base.prototype,function(val,key,_131){this[key]=val;},this);}
this.vj$=base.vj$;var t=this.vj$._type;if(bConstruct&&(t=="itype"||t=="atype"||t=="mtype")){throw t+" "+this.vj$._class+" cannot be instantiated";}
_processInners(this,base.vj$,base.clazz);if(bConstruct){var val=_constructType(this,arguments);if(val){return val;}}
return null;};base._name="base";base.vj$={_class:clz,_meta:{}};base.isInstance=function(o){return _2.isInstanceOf(o,this);};return base;}
function _createClazz(typ){var old=typ.clazz,nm=typ.vj$._class;if(typ.clazz&&typ.clazz._name){nm=typ.clazz._name;}
typ.clazz=new _2.Class(nm,typ.vj$._type);if(old){typ.clazz._satisfied=old._satisfied;}
if(typ.prototype){typ.prototype.getClass=_getClazz;}else{typ.getClass=_getClazz;}}
function _createInherits(_137,type){var _139=type.prototype;type.__donotconstruct=true;var cls=new type();delete type.__donotconstruct;cls.constructs=null;cls.constructor=_137;var _13b={};if(_139._getBase&&_139._getBase()._constructs){_13b._constructs=true;}
cls.base=function(){var _13c=this.base,_139=type.prototype,gb=_139._getBase,c=_139.constructs;if(_139.base){this.base=_139.base;}
var cstr=(c)?c.toString():"",b=(cstr.indexOf("this.base(")===-1&&cstr.indexOf("this.constructs")===-1);if(gb&&gb()._constructs&&b){this.base();}
if(_139.constructs){var isIn=this.vj$._meta._isInner,error=false;if(!isIn){_fixScope(type,this);}
try{_139.constructs.apply(this,arguments);}
catch(e){error=e;}
if(!isIn){_fixScope(_137,this);}
if(error){throw error;}}
this.base=_13c;};cls._getBase=function(){return _13b;};function createBaseRef(type,func,der){return function(){var scp=(this._parent)?this._parent:this,rv,error=false,cbase=scp.base;scp.base=(type.prototype._getBase)?type.prototype._getBase():null;if(scp.base){scp.base._parent=scp;}
_fixScope(type,scp);try{rv=func.apply(scp,arguments);}
catch(e){error=e;}
_fixScope(der,scp);scp.base=cbase;if(error){throw error;}
return rv;};}
var vO=_2.Object,vOP=vO.prototype,bIsO=(vOP===_139);for(var i in _139){var pt=_139[i];if(i==="toString"){continue;}
if(i==="constructs"&&typeof pt==="function"){if(type!==vO&&pt.length===0){_13b._constructs=true;}}else{if(_139==vOP||_isValidInst(i)){if(typeof pt==="function"&&!(_2.isInstanceOf(pt,RegExp))&&!pt.vj$&&(bIsO||vOP[i]!==pt)){_13b[i]=createBaseRef(type,pt,_137);if(!pt.__isChained){var _146=pt.toString();if(_146.indexOf("this.base."+i+"(")!=-1){cls[i]=(function(fn){var fn=function(){return fn.apply(this,arguments);};fn.__isChained=true;return fn;})(_13b[i]);}else{cls[i]=(function(type,func,der){var fn=function(){var _14c=false,rv;_fixScope(type,this);try{rv=func.apply(this,arguments);}
catch(e){_14c=e;}
_fixScope(der,this);if(_14c){throw _14c;}
return rv;};fn.__isChained=true;return fn;})(type,pt,_137);}}}else{if(pt&&pt.vj$&&pt.vj$._type&&pt.vj$._meta._isInner){if(!_137.vj$._meta._inners){_137.vj$._meta._inners={};}
_137.vj$._meta._inners[i]=pt;}
cls[i]=pt;}}}}
if(_13b.toString!=_2.Object.prototype.toString){_13b.toString=createBaseRef(type,_139.toString,_137);}
_137.prototype=cls;}
function _isVjoType(clz,_14e){if(clz&&clz.vj$&&clz.vj$._type){if(typeof clz==="function"){return true;}else{if(clz.vj$._type==="mtype"&&!_14e){return true;}}}
return false;}
function _isInstanceForInterface(_14f,_150){var clz=_14f,arr=clz._satisfied;for(var i=0;i<arr.length;i++){if(_isInterfaceInstanceOf(_150,arr[i])){return true;}}
return false;}
function _isInterfaceInstanceOf(src,_154){if(src===_154){return true;}
var meta=TypeMeta.get(_154.vj$._meta._metaId),inhs;if(meta&&(inhs=meta._inherits)){for(var i=0;i<inhs.length;i++){var _157=_getTypeName(inhs[i]);if(src===_2.getType(_157)){return true;}}}
return false;}
function _createPkg(clz,_159){if(!clz){return null;}
if(_2._typeMap[clz]){return _2._typeMap[clz];}
var _15a=clz.split("."),len=_15a.length;if(_159){_2._typeMap[clz]={pkg:{className:_15a[len-1]}};}else{var pkg=(_15a[0]=="vjo")?_2._global:this;for(var i=0;i<len-1&&pkg&&_15a[i];i++){pkg=(pkg[_15a[i]])?pkg[_15a[i]]:pkg[_15a[i]]={};}
_2._typeMap[clz]={pkg:pkg,className:(len>0)?_15a[len-1]:""};}
return _2._typeMap[clz];}
function _createEnum(){if(typeof _2.Enum=="function"){return;}
var nm="vjo.Enum";var _15e=_2.ctype(nm).props({from:function(){if(!arguments[0]){throw"Invalid argument value: "+arguments[0];}
var s=arguments[0];if(arguments.length==2){s=arguments[1];if(s){var clz=arguments[0];try{var n=clz.getName();while(n.indexOf("$")>0){n=n.replace("$",".");}
var o=eval(n);if(o[s]){return o[s];}}
catch(a){}}
throw"No enum const "+arguments[0].getName()+"."+s;}else{if(this[s]){return this[s];}}
throw"No enum const "+s;}}).protos({_name:null,_ord:-1,constructs:function(){throw"cannot instantiate 'vjo.Enum'";},name:function(){return this._name;},ordinal:function(){return this._ord;},compareTo:function(o){if(o==null){throw"compare to Etype value cannot be null";}
return(this.ordinal()-o.ordinal());},equals:function(o){return(this===o);}}).endType();reservedClz[nm]=true;reservedInh[nm]=true;}
function _getClazz(){var n=clz=this.vj$._class;var idx=n.lastIndexOf(".");if(idx!=-1){clz=n.substring(idx+1);}
if(this.vj$[clz]){return this.vj$[clz].clazz;}
return null;}
function _updateInners(_167,_168,_169,_16a){if(_169&&_169.vj$){_169.vj$._class=_168;var idx=_168.lastIndexOf("."),snm=_168.substring(idx+1);_169.vj$[snm]=_169;if(_169.clazz&&_167){if(_168.indexOf(_167)==0){var tmp=_168.replace(_167,"");while(tmp.indexOf(".")>-1){tmp=tmp.replace(".","$");}
_169.clazz._name=_167+tmp;}else{_169.clazz._name=_167+"$"+snm;}}
_createPkg(_168,true).pkg[snm]=_169;var ins=(_16a)?_169.vj$._meta.s_inners:_169.vj$._meta._inners;if(ins){_forEach(ins,function(val,key){_forEach(_169.vj$,function(val,key){if(!this[key]&&val&&val.vj$){this[key]=val;}},val.vj$);var m=TypeMeta.get(val.vj$._meta._metaId);if(val.vj$&&m){_48.addInner(_167,m);}
_updateInners(_167,_168+"."+key,val,_16a);});}}}
function _updateInnerEtypes(_173){if(!_173._class){return;}
var _174=_173._meta;if(_174.s_inners){for(var k in _174.s_inners){if(_174.s_inners[k].vj$._type=="etype"){for(var i=0;i<_174.s_inners[k]._enums.length;i++){_174.s_inners[k]._enums[i].vj$=_174.s_inners[k].vj$;_updateInnerEtypes(_174.s_inners[k]._enums[i].vj$);}}
_updateInnerEtypes(_174.s_inners[k].vj$);}}
if(_174._inners){for(var k in _174._inners){if(_174._inners[k].vj$._type=="etype"){if(!_174._inners[k].vj$._class){_174._inners[k].clazz._name=_174._inners[k].vj$._class=_174._class+"."+k;}
for(var i=0;i<_174._inners[k]._enums.length;i++){_174._inners[k]._enums[i].vj$=_174._inners[k].vj$;_updateInnerEtypes(_174._inners[k]._enums[i].vj$);}}
_updateInnerEtypes(_174._inners[k].vj$);}}}
function _addInner(clz,_178,_179,key){if(!clz||!_178||!key){return false;}
if(_178.vj$&&_178.vj$._type&&_178.vj$._meta._isInner){if(!_178.vj$._class&&clz.vj$._class){var cn=_178.vj$._class=clz.vj$._class+"."+key;if(_178.clazz){_178.clazz._name=cn;}
_createPkg(cn,true).pkg[key]=_178;}
if(_179){if(!clz.vj$._meta[_179]){clz.vj$._meta[_179]={};}
clz.vj$._meta[_179][key]=_178;}
return true;}
return false;}
function _hasCollisionWithMixin(type,name,_17e){var mxns=type.vj$._meta.mixins;if(!mxns||mxns.length==0){return false;}
for(var i=0;i<mxns.length;i++){var mxn=mxns[i];if(_17e){if(mxn._props&&mxn._props[name]){return true;}}else{if(mxn._protos[name]){return true;}}}
return false;}
function _isValidInst(pVal){return!(reservedProto[pVal]===true);}
function _isValidClz(pVal){return!(reservedClz[pVal]===true);}
function _isValidInh(pVal){return!(reservedInh[pVal]===true);}
function _extend(){var a=arguments,len=a.length,target,source;if(len==1){target=this;source=a[0];}else{target=a[0];source=a[1];}
for(var name in source){var copy=source[name];if(copy!==undefined){target[name]=copy;}}
if(source.toString!=Object.prototype.toString){target.toString=source.toString;}}
function _forEach(_188,_189,_18a){if(!_188){return;}
var name,i=0,len=_188.length;if(!_2.isArray(_188)){for(name in _188){if(_189.call(_18a,_188[name],name,_188)===false){break;}}}else{for(;i<len;i++){if(_189.call(_18a,_188[i],i,_188)===false){break;}}}
return _188;}
function _processInners(_18c,_18d,_18e){var _18f=(_18d)?_18d._meta._inners:null;if(!_18d||!_18f||_18f.length==0||!_18c){return;}
for(var k in _18f){_18c[k]=(function(t,type,nm){var fn=function(){var cn=t.vj$._class+"."+nm;var m=TypeMeta.get(type.vj$._meta._metaId);if(m){m.complete();}
type.__donotconstruct=true;var tp=new type();delete type.__donotconstruct;var _v={};_2.extend(_v,_18d);delete _v._meta;_2.extend(_v,type.vj$);_v[nm]=type;tp.vj$=_v;tp.vj$.outer=t;_processInners(tp,_v,type.clazz);type.vj$._class=tp.vj$._class=cn;var s=type.prototype;if(type.clazz&&!type.clazz._name){type.clazz._name=tp.vj$._class;}else{_createClazz(type);}
if(s.constructs){s.constructs.apply(tp,arguments);}
return tp;};fn._outer=t;return fn;})(_18c,_18f[k],k);_18c[k].vj$=_18f[k].vj$;}}
function _copyNS(from,to){_forEach(from,function(val,key){if(_isVjoType(val,true)){if(this[key]&&this[key]!==val){throw key+" is already defined in the current namespace";}
this[key]=val;}},to);}
function _isInnerClass(clz){if(!clz){return true;}else{if(clz.indexOf(".")==-1){return false;}}
var tp=clz;while((i=tp.lastIndexOf("."))>0){tp=tp.substring(0,i);if(_2._typeMap[tp]){return true;}}
return false;}
function _isValidProp(pVal){return!(_117[pVal]===true);}
function _fixScope(from,to){to.vj$=from.vj$;}
function _getTypeName(name){if(typeof name!="string"){return name;}
var clz=name;if(name){var idx=name.indexOf(" "),idx2=name.indexOf("<");if(idx>0){if(idx2>0){idx=Math.min(idx,idx2);}}else{idx=idx2;}
if(idx>0){clz=name.substring(0,idx);}}
return clz;}}).apply(this);

vjo.ctype("vjo.dsf.error.Error").protos({constructs:function(_1,_2,_3){this.message=_1;this.url=_2;this.lineNumber=_3;this.userAgent=navigator.userAgent;}}).endType();

vjo.ctype("vjo.dsf.error.ErrorHandlerManager").needs("vjo.dsf.error.Error").props({dsfErrors:[],handlers:[],add:function(_1,_2,_3){this.dsfErrors[this.dsfErrors.length]=new vjo.dsf.error.Error(_1,_2,_3);return true;},convertErrorTo:function(_4){var _5=_4?"<br>":"\n";var _6=_4?"<html><title>":"";var _7=_4?"</title><body>":_5;var _8=_4?"</body></html>":"";var _9=_4?"<h2>":"";var _a=_4?"</h2>"+_5:_5;var _b=_4?"<b>":"";var _c=_4?"</b>":"";var _d=_6+"V4 JS Errors"+_7;_d+=_9+"Total number of errors = "+this.dsfErrors.length+_a;for(var i=0;i<this.dsfErrors.length;i++){_d+=_b+"Message: "+_c+this.dsfErrors[i].message;_d+=_5;_d+=_b+"URL :"+_c+this.dsfErrors[i].url;_d+=_5;_d+=_b+"Line Number :"+_c+this.dsfErrors[i].lineNumber;_d+=_5;_d+=_b+"User Agent :"+_c+this.dsfErrors[i].userAgent;_d+=_5;_d+=_5;}
_d+=_8;return _d;},toHTML:function(){return this.convertErrorTo(true);},toText:function(){return this.convertErrorTo(false);},show:function(){var _f=window.open("","V4JSErrors","height=500,width=500,menubar=no,status=no,scrollbars=yes");if(window.focus){_f.focus();}
_f.document.write(this.toHTML());_f.document.close();},register:function(_10){if(!_10){return this;}
if(typeof _10!="object"){return this;}
this.handlers[this.handlers.length]=_10;return _10;},clear:function(){this.handlers.length=0;},process:function(_11,_12,_13){for(var i=0;i<this.handlers.length;i++){this.handlers[i].handle(_11,_12,_13);}},enableOnError:function(){window.onerror=function(_15,url,_17){vjo.dsf.error.ErrorHandlerManager.process(_15,url,_17);return true;};}}).endType();

vjo.ctype("vjo.dsf.error.DefaultErrorHandler").needs("vjo.dsf.error.ErrorHandlerManager").protos({constructs:function(){},handle:function(_1,_2,_3){vjo.dsf.error.ErrorHandlerManager.add(_1,_2,_3);}}).endType();

vjo.ctype("vjo.dsf.Event").protos({src:null,eventType:null,nativeEvent:null,constructs:function(_1,_2,_3){this.src=_1;this.eventType=_2;this.nativeEvent=_3;}}).endType();

vjo.ctype("vjo.dsf.Element").props({get:function(_1){var d=document,e=null;if(typeof(d.getElementById)!="undefined"){e=d.getElementById(_1);}else{if(!e&&d.all){e=d.all[_1];}}
return e;},toggleHideShow:function(_3,_4){var e=this.get(_3),s,d,u="undefined";if(e){s=e.style;d=s.display;if(typeof(_4)===u){_4=(d===""||d==="block")?false:true;}
e.bIsShown=_4;s.display=(_4)?"block":"none";}},promoteToBody:function(_6){var e=this.get(_6),b=document.body;if(e&&b&&e.parentNode&&(e.parentNode!==b)){e.parentNode.removeChild(e);b.appendChild(e);}},toggleVisibility:function(_8,_9){var e=this.get(_8),v,s,u="undefined";if(e){s=e.style;v=s.visibility;if(typeof(_9)===u){_9=(v==="")?false:true;}
e.bIsVisible=_9;s.visibility=(_9)?"":"hidden";}},enable:function(_b,_c){var e=this.get(_b);if(e){e.disabled=!_c;}},left:function(_e,_f){return this.setLTWH(_e,_f,"Left");},top:function(_10,_11){return this.setLTWH(_10,_11,"Top");},width:function(_12,_13){return this.setLTWH(_12,_13,"Width");},height:function(_14,_15){return this.setLTWH(_14,_15,"Height");},setLTWH:function(_16,_17,_18){var e=this.get(_16);if(e){if((_17!=null)&&!isNaN(parseInt(_17))){e.style[_18.toLowerCase()]=_17;}
return e["offset"+_18];}},createElement:function(_1a){return document.standardCreateElement?document.standardCreateElement(_1a):document.createElement(_1a);},containsElement:function(_1b,_1c){while((_1c!=null)&&(_1c!=_1b)&&(_1c.parentNode!=null)){_1c=_1c.parentNode;}
return(_1c==_1b);},getElementByTagClass:function(_1d,tag,_1f){var _20=_1d.getElementsByTagName(tag);for(var ndx=0;((ndx<_20.length)&&(_20[ndx].className.match(_1f)==null));ndx++){}
return(ndx<_20.length)?_20[ndx]:null;},getElementsByTagClass:function(_22,tag,_24){var _25=new Array();var _26=_22.getElementsByTagName(tag);for(var ndx=0;(ndx<_26.length);ndx++){if(_26[ndx].className.match(_24)){_25.push(_26[ndx]);}}
return _25;},toggleHideShowRow:function(_28,_29){var e=this.get(_28),ua=navigator.userAgent.toLowerCase(),s,d,u="undefined",p=(ua.indexOf("firefox")!=-1)?"table-row":"block";if(e){s=e.style;d=s.display;if(typeof(_29)===u){_29=(d===""||d===p)?false:true;}
e.bIsShown=_29;s.display=(_29)?p:"none";}}}).endType();

vjo.ctype("vjo.dsf.EventDispatcher").needs(["vjo.dsf.Event","vjo.dsf.Element"]).props({eventHandlers:{},nativeEventHandlers:{},unboundElems:[],fCustomLoad:{},process:function(_1,_2){var _3=this.eventHandlers[_1];if(!_3){return true;}
var _4=_3[_2.eventType];if(!_4){return true;}
var _5,len=_4.length;for(var i=0;i<len;i++){var _7=_4[i].handle(_2);if(_7&&_7.objType=="dsf_Message"){if(vjo.dsf.ServiceEngine){vjo.dsf.ServiceEngine.handleRequest(_7);}
if(_7.returnData===false){_5=false;}}else{if(_5!=false&&typeof _7!="undefined"){_5=_7;}}}
return _5;},register:function(id,_9,_a,_b){if(!id||!_9||!_a){return this;}else{if(typeof _a.handle!="function"){if(typeof _a=="function"){var _c=_a,scp=_b||this;var _d={handle:function(){return _c.apply(scp,arguments);}};_a=_d;}else{return this;}}}
var _e=this.eventHandlers[id];if(!_e){_e=this.eventHandlers[id]={};}
if(!_e[_9]){_e[_9]=[];}
var _f=_e[_9].length;_e[_9][_f]=_a;return _a;},unregister:function(id,_11){if(!this.eventHandlers[id]){return;}
this.eventHandlers[id][_11]=[];},registerNative:function(_12,_13,_14){var id=(_12==window)?"body":_12.id;var _16=this.nativeEventHandlers[id];if(!_16){_16=this.nativeEventHandlers[id]={};}
if(!_16[_13]){_16[_13]=[];}
var len=_16[_13].length;_16[_13][len]=_14;},add:function(id,_19,_1a,_1b){if(!id||!_19||!_1a){return this;}
var b=this.isBound(id,_19),rv=this.register(id,_19,_1a,_1b);if(!b){b=this.bind(id,_19);if(b===null){this.unboundElems[this.unboundElems.length]=id;}}
return rv;},addEventListener:function(_1d,_1e,_1f,_20,_21){var scp=_20||vjo.global;if(typeof _1d=="string"){_1d=this.vj$.Element.get(_1d);}
if(!_1d){return false;}
var _23=function(_24){var ev=_24||window.event;var rv=_1f.call(scp,ev);if(rv===false){vjo.dsf.EventDispatcher.stopEvent(ev);}
if(typeof rv!="undefined"){return rv;}};if(window.addEventListener){_1d.addEventListener(_1e,_23,_21||false);this.registerNative(_1d,_1e,_23);return _23;}else{if(window.attachEvent){_1d.attachEvent("on"+_1e,_23);this.registerNative(_1d,_1e,_23);return _23;}}
_1d["on"+_1e]=_23;return false;},bind:function(id,_28){var _29=this.vj$.Element.get(id);if(id=="body"||_29==document.body){_29=document.body;if(_28=="load"||_28=="unload"){var rv=this.addEventListener(window,_28,function(_2b){var oED=vjo.dsf.EventDispatcher;if(typeof oED.fCustomLoad[_28]=="function"){oED.fCustomLoad[_28]();}
oED.run(document.body,_2b||window.event,_28);oED.unregister("body",_28);oED.fCustomLoad={};});if(rv===false){if(_29.vjLoadSet){return this;}else{_29.vjLoadSet=true;var _2d=window["on"+_28]||"";if(_2d){this.fCustomLoad[_28]=_2d;}}}
return this;}}
if(_29){this.addEventListener(_29,_28,this.notifier,_29);return this;}
return null;},notifier:function(_2e,_2f){return vjo.dsf.EventDispatcher.run(this,_2e||window.event,_2f);},reBind:function(){var eH=this.eventHandlers,uE=this.unboundElems,len=uE.length,tmp=[];for(var i=0;i<len;i++){var id=uE[i],hdls=eH[id];if(hdls){for(var _33 in hdls){if(!this.hasBinding(id,_33)){var rv=this.bind(id,_33);if(rv===null){tmp[tmp.length]=id;}}}}}
this.unboundElems=tmp;},isBound:function(id,_36){var _37=this.eventHandlers[id];return(_37&&_37[_36]&&_37[_36].length>0);},hasBinding:function(id,_39){var nEH=this.nativeEventHandlers;if(nEH[id]&&nEH[id][_39]){var aH=nEH[id][_39],len=aH.length,rv=false;for(var i=0;i<len;i++){var str=aH[i].toString();if(str&&str.indexOf("vjo.dsf.EventDispatcher")!=-1){return true;}}}
return false;},removeEventListener:function(_3e,_3f,_40){if(!_3e||!_3f){return;}else{if(typeof _3e=="string"){_3e=this.vj$.Element.get(_3e);}}
if(window.addEventListener&&_40){_3e.removeEventListener(_3f,_40,false);}else{if(window.attachEvent&&_40){_3e.detachEvent("on"+_3f,_40);}else{_3e["on"+_3f]=null;}}},detachNativeHandlers:function(_41,_42){var id=(_41==window)?"body":_41.id;var _44=this.nativeEventHandlers[id];if(_44&&_44[_42]){var h=_44[_42],len=h.length;for(var i=0;i<len;i++){this.removeEventListener(_41,_42,_44[_42][i]);}
_44[_42]=[];}},detachHandler:function(id,_48,_49){var _4a=this.eventHandlers[id];if(!_4a||!_4a[_48]){return;}
var h=[],len=_4a[_48].length;for(var i=0;i<len;i++){if(_49!=_4a[_48][i]){h[h.length]=_4a[_48][i];}}
this.eventHandlers[id][_48]=h;},detachHandlers:function(id,_4e){this.unregister(id,_4e);var _4f=this.vj$.Element.get(id);if(id=="body"){_4f=window;}
if(_4f){this.detachNativeHandlers(_4f,_4e);}},stopEvent:function(e){this.stopPropagation(e);this.preventDefault(e);},stopPropagation:function(e){if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}},preventDefault:function(e){if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}},target:function(_53){return this.resolveTextNode((_53.target)?_53.target:_53.srcElement);},currentTarget:function(_54){return this.resolveTextNode((_54.currentTarget)?_54.currentTarget:_54.srcElement);},relatedTarget:function(_55){if(_55.relatedTarget){return this.resolveTextNode(_55.relatedTarget);}else{if((_55.type==="mouseover")&&_55.fromElement){return this.resolveTextNode(_55.fromElement);}else{if((_55.type==="mouseout")&&_55.toElement){return this.resolveTextNode(_55.toElement);}else{return null;}}}},resolveTextNode:function(_56){return(_56&&(_56.nodeType==3))?_56.parentNode:_56;},cleanUp:function(){var _57=this.nativeEventHandlers;for(var id in _57){for(var ev in _57[id]){if(ev!="unload"){this.detachHandlers(id,ev,true);}}}},getId:function(src,id){var _5c=id;if(_5c===null||!_5c){_5c=src.id;}
return _5c;},getBodyId:function(src,id){var _5f=this.getId(src,id);if(!_5f||src==document.body){_5f="body";}
return _5f;},unload:function(src,_61){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"unload",_61));},change:function(src,_63){return this.process(this.getId(src),new vjo.dsf.Event(src,"change",_63));},submit:function(src,_65){return this.process(this.getId(src),new vjo.dsf.Event(src,"submit",_65));},reset:function(src,_67){return this.process(this.getId(src),new vjo.dsf.Event(src,"reset",_67));},select:function(src,_69){return this.process(this.getId(src),new vjo.dsf.Event(src,"select",_69));},blur:function(src,_6b){return this.process(this.getId(src),new vjo.dsf.Event(src,"blur",_6b));},focus:function(src,_6d){return this.process(this.getId(src),new vjo.dsf.Event(src,"focus",_6d));},keydown:function(src,_6f){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keydown",_6f));},keypress:function(src,_71){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keypress",_71));},keyup:function(src,_73){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keyup",_73));},click:function(src,_75){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"click",_75));},dblclick:function(src,_77){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"dblclick",_77));},mousedown:function(src,_79){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mousedown",_79));},mousemove:function(src,_7b){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mousemove",_7b));},mouseout:function(src,_7d){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseout",_7d));},mouseover:function(src,_7f){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseover",_7f));},mouseup:function(src,_81){return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseup",_81));},load:function(src,_83){return this.run(src,_83,"load");},run:function(src,_85,_86){var et=_86||_85.type;var id=this.getBodyId(src);var _89=new vjo.dsf.Event(src,et,_85);var rv=this.process(id,_89);if(et==="load"&&id==="body"){this.unregister("body","load");}
return rv;}}).inits(function(){vjo.dsf.EventDispatcher.addEventListener(window,"load",function(){vjo.dsf.EventDispatcher.addEventListener(window,"unload",function(){vjo.dsf.EventDispatcher.cleanUp();});});}).endType();

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

vjo.ctype("vjo.dsf.XDomainRequest").needs("vjo.dsf.EventDispatcher").props({callbacks:[],sCallbackName:"callback",sPreId:"xdr_",sPreExtId:"xdr_ext_",iCount:0,bUseIframe:(navigator.userAgent.indexOf("Firefox")>0),onLoad:function(){this.bodyLoaded=true;},getReqDiv:function(){return document.getElementsByTagName(this.bodyLoaded?"body":"head")[0];},send:function(_1){if(!document.createElement||!_1){return;}
var _2="",eid="",rdm="_vrdm="+(new Date()).getTime();if(typeof _1=="string"){_2=_1;eid=this.sPreExtId+this.iCount++;}else{if(_1.objType=="dsf_Message"&&_1.svcConfig){var cb=this.createCallback(_1);eid=this.sPreId+this.callbacks[this.callbacks.length-1];_2=_1.svcConfig.url+"&callback="+cb;}}
var _4=null,doc;doc=document;var _5=this.createElement("script");_5.id=eid;_5.type="text/javascript";var _6=true;if(arguments.length>1){_6=arguments[1];}
if(_6){_2=_2+((_2.indexOf("?")==-1)?"?":"&")+rdm;}
_5.src=_2;this.getReqDiv().appendChild(_5);return eid;},createCallback:function(_7){var _8=this.callbacks.length,name=this.sCallbackName+_8,eid=this.sPreId+name;this.callbacks[_8]=name;this[name]=function(_9){var _a;try{_a=_9;}
catch(e){_a=new vjo.dsf.ServiceResponse();var _b=new vjo.dsf.Error();_b.id="SYS.JSON_PARSE_ERROR";_b.message="SYS.JSON_PARSE_ERROR";_a.errors=[_b];}
this.loaded(eid);_7.response=_a;vjo.dsf.ServiceEngine.handleResponse(_7);};var _c=vjo.getVersion(),rv=((_c)?_c+".":"")+"vjo.dsf.XDomainRequest."+name;return rv;},loaded:function(_d){var e=document.getElementById(_d);if(e!=null){e.parentNode.removeChild(e);}},createElement:function(_f){return(typeof(createElementV4)!="undefined")?createElementV4(_f):document.createElement(_f);}}).inits(function(){vjo.dsf.EventDispatcher.addEventListener(window,"load",this.onLoad,this);}).endType();

vjo.ctype("vjo.dsf.RemoteReqtHdl").needs("vjo.dsf.XDomainRequest").protos({constructs:function(){this.reqTimers={};this.timerCount=0;this.processed={};},handleRequest:function(_1){_1.trace=_1.trace+"-->RemoteHdl_"+_1.svcId;if(_1.svcConfig){this.invoke(_1);}},invoke:function(_2){var _3=vjo.dsf.Service,xmlHttpReq=_3.getXmlHttpReq(),requestUrl=this.appendPort80ForSafari(document.location.href,_2.svcConfig.url),cfg=_2.svcConfig;_2.status=-1;if(cfg.respMarshalling=="JSCALLBACK"){vjo.dsf.XDomainRequest.send(_2);return;}
try{var _4=(cfg.async===false)?false:true;xmlHttpReq.open(cfg.method,requestUrl,_4);}
catch(e){var _5=new vjo.dsf.ServiceResponse();var _6=new vjo.dsf.Error();_6.id="SYS.DARWIN_SERVICE_PROTOCOL_ERROR";_6.message="SYS.PROTOCOL_ERROR: Cannot open URL '"+requestUrl+"'";_5.errors=[_6];_2.response=_5;vjo.dsf.ServiceEngine.handleResponse(_2);return;}
var _7=this.timerCount++;this.setupReadyState(xmlHttpReq,_2,_7);if(cfg.method=="POST"){xmlHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttpReq.setRequestHeader("Content-Length",_2.rawRequest.length);xmlHttpReq.send(_2.rawRequest);}else{xmlHttpReq.send(null);}
if(cfg.timeout){var _8=this;this.reqTimers[_7]=window.setTimeout(function(){_8.timeout(xmlHttpReq,_2,_7);},cfg.timeout);}},setupReadyState:function(_9,_a,_b){var _c=this;_9.onreadystatechange=function(){if(_9.readyState!=4){return;}
if(_c.processed[_b]){return;}
_c.processed[_b]=true;var _d=_c.reqTimers[_b];if(_d){window.clearTimeout(_d);delete _c.reqTimers[_b];}
vjo.dsf.Service.callback(_9,_a);};},timeout:function(_e,_f,idx){if(this.processed[idx]){return;}
this.processed[idx]=true;delete _e.onreadystatechange;_e.abort();delete this.reqTimers[idx];var _11=new vjo.dsf.ServiceResponse();var _12=new vjo.dsf.Error();_12.id="SYS.DARWIN_SERVICE_PROTOCOL_ERROR";_12.message="SYS.PROTOCOL_ERROR: Service timed out.";_11.errors=[_12];_f.response=_11;vjo.dsf.ServiceEngine.handleResponse(_f);},appendPort80ForSafari:function(_13,_14){try{if(navigator.userAgent.toLowerCase().indexOf("safari")>=0){var _15="(([^:]*)://([^:/?]*)(:([0-9]+))?)?([^?#]*)([?]([^#]*))?(#(.*))?",ajaxUrl=_14,safariIssuePort="80";var _16=_13.match(_15);if(_16&&_16.length>=5&&_16[5]&&_16[5]==safariIssuePort){var _17=ajaxUrl.match(_15);if(_17&&_17[2]&&_17[2].length>0){if(_17[5]&&_17[5].length>0){}else{var _18="";if(_17[2]){_18+=_17[2]+"://";}
if(_17[3]){_18+=_17[3]+":"+safariIssuePort;}
if(_17[6]){_18+=_17[6];}
if(_17[8]){_18+="?"+_17[8];}
if(_17[10]){_18+="#"+_17[10];}
_14=_18;}}}}}
catch(e){}
return _14;}}).endType();

vjo.ctype("vjo.dsf.ServiceResponse").protos({constructs:function(){this.objType="dsf_ServiceResponse";this.errors=[];this.data=null;}}).endType();

vjo.ctype("vjo.dsf.InProcReqtHdl").needs("vjo.dsf.ServiceResponse").protos({constructs:function(){this.svcHdls={};},registerSvcHdl:function(_1,_2){this.svcHdls[_1]=_2;},getSvcHdl:function(_3){return this.svcHdls[_3];},handleRequest:function(_4){var _5=this.svcHdls[_4.svcId];if(_5){var _6=new vjo.dsf.ServiceResponse();_6.data=_5.invoke(_4);_4.trace=_4.trace+"-->SvcHdl_"+_4.svcId;if(_6){_4.response=_6;}}
if(typeof _4.status=="undefined"||_4.status==null){_4.status=1;}}}).endType();

vjo.ctype("vjo.dsf.Error").protos({constructs:function(_1,_2){this.id=_1;this.message=_2;}}).endType();

vjo.ctype("vjo.dsf.Enc").inits(function(){if(typeof(vjo.dsf.Enc.unescape)!="undefined"){return;}
vjo.dsf.Enc.unescape=window.unescape;vjo.dsf.Enc.decodeURI=window.decodeURI;vjo.dsf.Enc.decodeURIComponent=window.decodeURIComponent;vjo.dsf.Enc.encodeURIComponent=window.encodeURIComponent;vjo.dsf.Enc.encodeURI=window.encodeURI;}).endType();

vjo.ctype("vjo.dsf.Service").needs(["vjo.dsf.Error","vjo.dsf.ServiceResponse","vjo.dsf.Enc"]).props({callback:function(_1,_2){try{if(_1.readyState!=4){return;}
if(_1.status>=200&&_1.status<300){var _3=_1.responseText;if(_2.svcConfig.respMarshalling=="JSON"){try{_3=eval("("+_3+")");}
catch(e){_3=new vjo.dsf.ServiceResponse();var _4=new vjo.dsf.Error();_4.id="SYS.JSON_PARSE_ERROR";_4.message="SYS.JSON_PARSE_ERROR";_3.errors=[_4];}}else{if(_2.svcConfig.respMarshalling=="XML"){_3=_1.responseXML;}}
_2.response=_3;_2.status=1;}else{var _5=new vjo.dsf.ServiceResponse();var _4=new vjo.dsf.Error();_4.id="SYS.DARWIN_SERVICE_PROTOCOL_ERROR";_4.message="SYS.PROTOCOL_ERROR: status = "+_1.status;_5.errors=[_4];_2.response=_5;}}
catch(e){var _5=new vjo.dsf.ServiceResponse();var _4=new vjo.dsf.Error();_4.id="SYS.DARWIN_SERVICE_PROTOCOL_ERROR";_4.message="SYS.PROTOCOL_ERROR: unknown ";_5.errors=[_4];_2.response=_5;}
vjo.dsf.ServiceEngine.handleResponse(_2);delete _1.onreadystatechange;_1=null;},getXmlHttpReq:function(){var _6=false;try{_6=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){try{_6=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){_6=false;}}
if(!_6&&typeof XMLHttpRequest!="undefined"){_6=new XMLHttpRequest();}
return _6;},getClientInfo:function(){if(this.clientInfo){return this.clientInfo;}
var nv=navigator,agt=nv.userAgent.toLowerCase(),i=0,ver=b="";if(agt.indexOf("firefox")!=-1){b="Firefox";i=agt.lastIndexOf("firefox")+8;}else{if((/webkit|khtml/).test(agt)){b="Safari";i=agt.lastIndexOf("safari")+7;}else{if(typeof(window.opera)!="undefined"){b="Opera";i=agt.lastIndexOf("opera")+6;}else{if(nv.appName=="Netscape"){b="Netscape";i=agt.lastIndexOf("/")+1;}else{if(agt.indexOf("msie")!=-1){b="IE";i=agt.indexOf("msie")+4;}}}}}
if(b){ver=parseInt((b=="Opera")?window.opera.version():agt.substring(i));}
this.clientInfo=b+":"+ver+":";return this.clientInfo;},generateReqParams:function(_8){var _9="svcid="+vjo.dsf.Enc.encodeURIComponent(_8.svcId);if(_8.stok){_9+="&stok="+_8.stok;}
if(_8.pId){_9+="&pId="+_8.pId;}
if(_8.v){_9+="&v="+_8.v;}
_9=_9+"&reqttype="+_8.svcConfig.reqtMarshalling;_9=_9+"&resptype="+_8.svcConfig.respMarshalling;_9=_9+"&clientType="+this.getClientInfo();_9+="&request=";var _a=_8.request,reqtmarsh=_8.svcConfig.reqtMarshalling;if(reqtmarsh=="JSON"){_9+=vjo.dsf.Enc.encodeURIComponent(JSON.stringify(_a));}else{if(reqtmarsh=="JSCALLBACK"){_9+=vjo.dsf.Enc.encodeURIComponent(JSON.stringify(_a));}else{if(reqtmarsh=="XML"){_9+=vjo.dsf.Enc.encodeURIComponent(dsf_xmlize(_a,"Request"));}else{_9+=vjo.dsf.Enc.encodeURIComponent(_a);}}}
return _9;},xmlize:function(_b,_c,_d){_d=_d?_d:"";var s=_d+"<"+_c+">";if(!(_b instanceof Object)||_b instanceof Number||_b instanceof String||_b instanceof Boolean||_b instanceof Date){s+=dsf_escape(""+_b);}else{s+="\n";var _f="";var _10=_b instanceof Array;for(var _11 in _b){if(_10&&_11=="______array"){continue;}
s+=this.xmlize(_b[_11],(_10?"array-item key=\""+_11+"\"":_11),_d+"   ");}
s+=_d;}
return s+=(_c.indexOf(" ")!=-1?"</array-item>\n":"</"+_c+">\n");},escape:function(_12){return _12.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");}}).endType();

vjo.ctype("vjo.dsf.SvcConfig").protos({constructs:function(_1,_2){this.objType="dsf_SvcConfig";this.url=_2;this.method=_1;this.reqtMarshalling="raw";this.respMarshalling="raw";this.async=true;this.timeout=0;}}).endType();

vjo.ctype("vjo.dsf.Message").protos({constructs:function(_1){this.objType="dsf_Message";this.svcId=_1;this.request;this.response;this.rawRequest="";this.clientContext={};this.trspType="InProc";this.status;this.svcConfig;this.returnData=true;this.trace="";this.v="0";}}).endType();

vjo.ctype("vjo.util.Map").protos({constructs:function(_1){this.javaClass=_1||"java.util.HashMap";this.map={};},get:function(_2){return this.map[_2];},put:function(_3,_4){return this.map[_3]=_4;},remove:function(_5){var _6=this.map[_5];delete this.map[_5];return _6;},size:function(){var _7=0;for(var _8 in this.map){_7++;}
return _7;}}).endType();

vjo.ctype("vjo.util.List").protos({constructs:function(_1){this.javaClass=_1||"java.util.ArrayList";this.list=[];},get:function(_2){if(this.size()>_2){return this.list[_2];}
return null;},add:function(_3){return this.list[this.size()]=_3;},remove:function(_4){var _5=this.size(),tmp=this.list,nlist=[],rv=false;for(var i=0;i<_5;i++){if(!rv&&tmp[i]===_4){rv=true;}else{nlist[nlist.length]=tmp[i];}}
this.list=nlist;return rv;},size:function(){return this.list.length;}}).endType();

vjo.needs("vjo.dsf.Json");vjo.ctype("vjo.dsf.ServiceEngine").needs(["vjo.dsf.RemoteReqtHdl","vjo.dsf.InProcReqtHdl","vjo.dsf.Service","vjo.dsf.ServiceResponse","vjo.dsf.SvcConfig","vjo.dsf.Message","vjo.util.Map","vjo.util.List"]).props({STATUS:{ABORT:-1,JUMP:1},svcReqtHdls:{},svcRespHdls:{},glbReqtHdls:[],glbRespHdls:[],trspReqtHdls:{},trspRespHdls:{},svcHdls:{},inProcHdl:new vjo.dsf.InProcReqtHdl(),remoteHdl:new vjo.dsf.RemoteReqtHdl(),handleRequest:function(_1){var rt,nA=(_1.status!=this.STATUS.ABORT);if(nA&&typeof rt=="undefined"){rt=this.processServiceRequestHandlers(_1);}
if(nA&&typeof rt=="undefined"){rt=this.processGlobalRequestHandlers(_1);}
if(nA&&typeof rt=="undefined"){rt=this.processTransportHandlers(_1);}
if(nA&&(_1.trspType!="Remote"||typeof rt!="undefined")){this.handleResponse(_1,rt);}
return _1.returnData;},processServiceRequestHandlers:function(_3){var rt;var _5=this.svcReqtHdls[_3.svcId];if(_5){try{var _6=_5.length;for(var i=0;i<_6;i++){_3.trace=_3.trace+"-->svcReqtHdl_"+i;_5[i].handleRequest(_3);if(_3.status==this.STATUS.JUMP){rt="SVC";this.genResponseError(_3,"SYS.SVC_REQUEST_ERROR","SYS.SVC_REQUEST_ERROR");break;}}}
catch(e){rt="SVC";this.genResponseError(_3,"SYS.SVC_REQUEST_ERROR","SYS.SVC_REQUEST_ERROR");}}
return rt;},processGlobalRequestHandlers:function(_8){var rt;if(_8.status!=this.STATUS.JUMP){try{var _a=this.glbReqtHdls.length;for(var i=0;i<_a;i++){_8.trace=_8.trace+"-->glbReqtHdl_"+i;this.glbReqtHdls[i].handleRequest(_8);if(_8.status==this.STATUS.JUMP){rt="GLB";this.genResponseError(_8,"SYS.GLOBAL_REQUEST_ERROR","SYS.GLOBAL_REQUEST_ERROR");break;}}}
catch(e){rt="GLB";this.genResponseError(_8,"SYS.GLOBAL_REQUEST_ERROR","SYS.GLOBAL_REQUEST_ERROR");}}
return rt;},processTransportHandlers:function(_c){if(_c.status!=this.STATUS.JUMP&&_c.trspType){var _d=this.trspReqtHdls[_c.trspType];if(_d){try{var _e=_d.length;for(var i=0;i<_e;i++){_c.trace=_c.trace+"-->trspReqtHdl_"+i;_d[i].handleRequest(_c);if(_c.status==this.STATUS.JUMP){this.genResponseError(_c,"SYS.TRANS_REQUEST_ERROR","SYS.TRANS_REQUEST_ERROR");break;}}}
catch(e){this.genResponseError(_c,"SYS.TRANS_REQUEST_ERROR","SYS.TRANS_REQUEST_ERROR");}}
if(_c.status!=this.STATUS.JUMP&&_c.status!=this.STATUS.ABORT){if(_c.trspType==="Remote"){this.remoteHdl.handleRequest(_c);}else{this.inProcHdl.handleRequest(_c);}}}
return;},handleResponse:function(_10,_11){if(_10.trspType&&typeof _11=="undefined"){this.processTransResponseHandlers(_10);}
if(_11!="SVC"){this.processGlobalResponseHandlers(_10);}
this.processServiceResponseHandlers(_10);},processTransResponseHandlers:function(msg){var _13=this.trspRespHdls[msg.trspType];try{if(_13){for(var i=_13.length-1;i>=0;i--){msg.trace=msg.trace+"-->trspRespHdl_"+i;_13[i].handleResponse(msg);}}}
catch(e){this.genResponseError(msg,"SYS.TRANS_RESPONSE_ERROR","SYS.TRANS_RESPONSE_ERROR");}},processGlobalResponseHandlers:function(msg){try{for(var i=this.glbRespHdls.length-1;i>=0;i--){msg.trace=msg.trace+"-->glbRespHdl_"+i;this.glbRespHdls[i].handleResponse(msg);}}
catch(e){this.genResponseError(msg,"SYS.GLOB_RESPONSE_ERROR","SYS.GLOB_RESPONSE_ERROR");}},processServiceResponseHandlers:function(msg){var _18;if(msg.clientContext){_18=msg.clientContext.svcApplier;}
try{if(_18){if(typeof _18.onResponse=="function"){_18.onResponse(msg);}else{if(typeof _18=="function"){_18(msg);}}}}
catch(e){this.genResponseError(msg,"SYS.SVC_RESPONSE_ERROR","SYS.SVC_RESPONSE_ERROR");}
var _19=this.svcRespHdls[msg.svcId];if(_19){try{for(var i=_19.length-1;i>=0;i--){msg.trace=msg.trace+"-->svcRespHdl_"+i;_19[i].handleResponse(msg);}}
catch(e){this.genResponseError(msg,"SYS.SVC_RESPONSE_ERROR","SYS.SVC_RESPONSE_ERROR");}}},createHandler:function(_1b,_1c){if(typeof _1b[_1c]!="function"){if(typeof _1b=="function"){var _1d=_1b,obj={},self=this;obj[_1c]=function(){return _1d.apply(self,arguments);};_1b=obj;}}
return _1b;},registerSvcHdl:function(_1e,_1f){if(!_1e||!_1f){return;}
_1f=this.createHandler(_1f,"invoke");this.inProcHdl.registerSvcHdl(_1e,_1f);},getSvcHdl:function(_20){return this.inProcHdl.getSvcHdl(_20);},registerSvcReqtHdl:function(_21,_22){if(!_21||!_22){return;}
if(typeof this.svcReqtHdls[_21]=="undefined"){this.svcReqtHdls[_21]=[];}
var _23=this.svcReqtHdls[_21];_23[_23.length]=this.createHandler(_22,"handleRequest");},registerSvcRespHdl:function(_24,_25){if(!_24||!_25){return;}
if(typeof this.svcRespHdls[_24]=="undefined"){this.svcRespHdls[_24]=[];}
var _26=this.svcRespHdls[_24];_26[_26.length]=this.createHandler(_25,"handleResponse");},registerGlbReqtHdl:function(_27){if(!_27){return;}
this.glbReqtHdls[this.glbReqtHdls.length]=this.createHandler(_27,"handleRequest");},registerGlbRespHdl:function(_28){if(!_28){return;}
this.glbRespHdls[this.glbRespHdls.length]=this.createHandler(_28,"handleResponse");},registerTrspReqtHdl:function(_29,_2a){if(!_29||!_2a){return;}
if(typeof this.trspReqtHdls[_29]=="undefined"){this.trspReqtHdls[_29]=[];}
var _2b=this.trspReqtHdls[_29];_2b[_2b.length]=this.createHandler(_2a,"handleRequest");},registerTrspRespHdl:function(_2c,_2d){if(!_2c||!_2d){return;}
if(typeof this.trspRespHdls[_2c]=="undefined"){this.trspRespHdls[_2c]=[];}
var _2e=this.trspRespHdls[_2c];_2e[_2e.length]=this.createHandler(_2d,"handleResponse");},remoteTrspHdl:function(_2f){var cfg=_2f.svcConfig;if(!cfg||cfg.objType!="dsf_SvcConfig"){return;}else{if(cfg.respMarshalling=="JSCALLBACK"){if(typeof vjo.dsf.assembly!="undefined"&&typeof vjo.dsf.assembly.VjClientAssembler!="undefined"&&!vjo.dsf.assembly.VjClientAssembler.bBodyLoaded){vjo.dsf.assembly.VjClientAssembler.load(_2f);_2f.status=-1;return;}}}
if(_2f.request&&_2f.request.javaClass){delete _2f.request.b;}
var svc=vjo.dsf.Service,requestParams=svc.generateReqParams(_2f),requestUrl=cfg.url;if(_2f.svcConfig.method=="GET"){requestUrl=requestUrl+"?"+requestParams;}else{_2f.rawRequest=requestParams;}
_2f.svcConfig.url=requestUrl;},remoteRespTrspHdl:function(_32){var _33=_32.response;if(_33!=null&&_33.data!=null){this.processData(_33.data);}},processData:function(_34){this.processObj(_34);for(var _35 in _34){var o=_34[_35];if(o!=null&&typeof o=="object"){this.processData(o);}}},processObj:function(obj){var _38=obj.javaClass;if(_38&&_38.length>0){if(/java.util.([^\s])*List/.test(_38)){this.addMethods(obj,vjo.util.List.prototype);}else{if(/java.util.([^\s])*Map/.test(_38)){this.addMethods(obj,vjo.util.Map.prototype);}}}},addMethods:function(obj,_3a){for(var key in _3a){obj[key]=_3a[key];}},genResponseError:function(msg,_3d,_3e){if(typeof msg.response=="undefined"){var _3f=new vjo.dsf.ServiceResponse();msg.response=_3f;}
var _40=new vjo.dsf.Error(_3d,_3e);msg.response.errors[msg.response.errors.length]=_40;},register:function(_41,_42,_43){var _s=vjo.dsf.ServiceEngine;switch(_41){case 0:_s.registerSvcHdl(_42,_43);break;case 1:_s.registerSvcReqtHdl(_42,_43);break;case 2:_s.registerGlbReqtHdl(_42,_43);break;case 3:_s.registerTrspReqtHdl(_42,_43);break;case 4:_s.registerSvcRespHdl(_42,_43);break;case 5:_s.registerGlbRespHdl(_42,_43);break;case 6:_s.registerTrspRespHdl(_42,_43);break;}}}).inits(function(){this.registerTrspReqtHdl("Remote",this.remoteTrspHdl);this.registerTrspRespHdl("Remote",this.remoteRespTrspHdl);}).endType();

vjo.ctype("vjo.dsf.assembly.VjClientAssemblerRequest").protos({constructs:function(_1,_2,_3,_4,_5){this.sUrl=_1;this.fCallback=_2;this.oScope=_3||window;this.sCallbackParam=_4;var b=_5;if(typeof(b)=="undefined"){b=true;}
this.bSendResponseOnLoad=b;}}).endType();

vjo.ctype("vjo.dsf.assembly.VjClientAssembler").needs(["vjo.dsf.EventDispatcher","vjo.dsf.ServiceEngine","vjo.dsf.assembly.VjClientAssemblerRequest"]).singleton().protos({constructs:function(){this.aCallbacks=[];this.aResponses={};this.aModels={};this.sPreCallback="_callback";this.bBodyLoaded=false;this.bLock=false;this.loaded={};},load:function(_1){var m=_1,url=m.sUrl||"",name=this.generateCallback(m),ver=vjo.getVersion(),cb=((ver)?ver+".":"")+"vjo.dsf.assembly.VjClientAssembler."+name;if(m&&m.objType=="dsf_Message"){url=m.svcConfig.url+"?";url+=vjo.dsf.Service.generateReqParams(m)+"&callback="+cb;}else{if(m.sCallbackParam){url=url+"&"+m.sCallbackParam+"="+cb;}}
return vjo.dsf.XDomainRequest.send(url);},generateCallback:function(_3){var m=_3;var _5=this.aCallbacks.length;var _6=this.sPreCallback+_5;this.aCallbacks[_5]=_6;this.aModels[_6]=m;this[_6]=function(){if(this.loaded[_6]===true){return;}
this.loaded[_6]=true;if(this.bBodyLoaded||!m.bSendResponseOnLoad){if(m.objType=="dsf_Message"){m.response=this.getResponse(arguments[0]);vjo.dsf.ServiceEngine.handleResponse(m);}else{m.fCallback.apply(m.oScope,arguments);}}else{if(m.objType=="dsf_Message"){this.aResponses[_6]=this.getResponse(arguments[0]);m.response=this.aResponses[_6];}else{this.aResponses[_6]=arguments;}
if(this.bBodyLoaded){this.assemble();}}};return _6;},assemble:function(){this.bBodyLoaded=true;if(this.bLock){setTimeout("vjo.dsf.assembly.VjClientAssembler.assemble()",1000);return;}
this.bLock=true;try{for(var _7 in this.aResponses){this.loaded[_7]=true;var m=this.aModels[_7];if(this.aResponses[_7]!=null){if(m.objType=="dsf_Message"){vjo.dsf.ServiceEngine.handleResponse(m);}else{m.fCallback.apply(m.oScope,this.aResponses[_7]);}}
this.aResponses[_7]=null;}}
finally{this.bLock=false;}},getResponse:function(_9){var _a;try{_a=_9;}
catch(e){_a=new vjo.dsf.ServiceResponse();var _b=new vjo.dsf.Error();_b.id="SYS.JSON_PARSE_ERROR";_b.message="SYS.JSON_PARSE_ERROR";_a.errors=[_b];}
return _a;}}).inits(function(){vjo.dsf.assembly.VjClientAssembler=new vjo.dsf.assembly.VjClientAssembler();vjo.dsf.EventDispatcher.addEventListener(window,"load",function(){vjo.dsf.assembly.VjClientAssembler.assemble();});}).endType();

vjo.ctype("vjo.Registry").props({controls:[],put:function(_1,_2){this.controls[_1]=_2;if(this.isKeyValid(_1)){this["_"+_1]=this.controls[_1];}
return this.controls[_1];},get:function(_3){return this.controls[_3];},dump:function(){var _4=this.controls;var _5="controls on page:\n";for(var i in _4){_5+="key = "+i;_5+="controlName = "+_4[i].objtype;_5+="\n";}
return _5;},isKeyValid:function(_7){if(typeof _7!="string"){return false;}
return/^([a-zA-Z0-9_$]+)$/.test(_7);}}).endType();

vjo.ctype("vjo.dsf.typeextensions.string.Comparison").endType();String.prototype.has=function(_1){return(this.indexOf(_1)!=-1);};String.prototype.hasArg=function(_2){var a=_2,rv=false;if(typeof(a)=="string"){rv=this.has(a);}else{var aL=a.length;for(var j=0;j<aL&&!rv;j++){rv=this.has(a[j]);}}
return rv;};String.prototype.hasAny=function(){var a=arguments,l=a.length,rv=false;for(var i=0;i<l&&!rv;i++){rv=this.hasArg(a[i]);}
return rv;};String.prototype.hasAll=function(){var a=arguments,l=a.length;for(var i=0;i<l;i++){if(!this.hasArg(a[i])){return false;}}
return true;};String.prototype.is=function(s){return(this==s);};String.prototype.isAny=function(){var a=arguments,l=a.length,rv=false,aL;for(var i=0;i<l&&!rv;i++){if(typeof(a[i])=="string"){rv=(this==a[i]);}else{aL=a[i].length;for(var j=0;j<aL&&!rv;j++){rv=(this==a[i][j]);}}}
return rv;};

vjo.ctype("vjo.dsf.client.Browser").needs("vjo.dsf.typeextensions.string.Comparison").props({init:function(){this.bFirefox=this.bWebTV=this.bOpera=this.bNav=this.bIE=this.bSafari=this.bWin=this.bMac=this.bMacppc=this.bMactel=this.bActiveXSupported=this.bWinXp=this.bXpSp2=this.bAOL=this.bVista=false;this.iVer=this.fVer=-1;this.fMinorVer=0;this.aMimeTypes=null;var nv=navigator,agt=nv.userAgent.toLowerCase(),i=0,ver;with(this){if(agt.has("webtv")){bWebTV=true;i=agt.indexOf("webtv/")+6;}else{if(agt.has("firefox")){bFirefox=true;i=agt.lastIndexOf("firefox")+8;}else{if(agt.has("safari")){bSafari=true;i=agt.lastIndexOf("safari")+7;}else{if(typeof(window.opera)!="undefined"){bOpera=true;i=agt.lastIndexOf("opera")+6;}else{if(nv.appName.is("Netscape")){bNav=true;i=agt.lastIndexOf("/")+1;}else{if(agt.has("msie")){bIE=true;i=agt.indexOf("msie")+4;if(agt.has("aol")||agt.has("america online")){bAOL=true;}}}}}}}
ver=bOpera?window.opera.version():agt.substring(i);iVer=parseInt(ver);fVer=parseFloat(ver);fMinorVer=fVer-iVer;bWin=agt.has("win");bWinXp=(bWin&&agt.has("windows nt 5.1"));bVista=(bWin&&agt.has("windows nt 6.0"));bXpSp2=(bWinXp&&agt.has("sv1"));bMac=agt.has("mac");bMacppc=(bMac&&agt.hasAny("ppc","powerpc"));bMactel=(bMac&&agt.has("intel"));aMimeTypes=nv.mimeTypes;bActiveXSupported=(!(bMac||bMacppc)&&(typeof(ActiveXObject)=="function"));}}}).inits(function(){vjo.dsf.client.Browser.init();}).endType();

// en_US/1/SYS14_vjo_15_1_en_US
// b=