if(typeof (vjo)=="undefined"){
vjo={};
}
vjo.global=this;
vjo.createPkg=function(_1){
var _2=_1.split("."),len=_2.length;
var _3=this.global;
for(var i=0;i<len-1&&_3&&_2[i];i++){
_3=(_3[_2[i]])?_3[_2[i]]:_3[_2[i]]={};
}
return {pkg:_3,className:(len>0)?_2[len-1]:""};
};
vjo.extendMethod=function(_5,_6,_7){
_5.prototype.base[_7]=function(){
var m=(this.parent.superinst)?this.parent.superinst[_7]:_6;
return m.apply(this.parent,arguments);
};
};
vjo.needs=function(){
};
vjo.needsLib=function(){
};
vjo.type=function(_9){
var _a=function(){
if(this.superclz){
var fn=function(){
};
fn.prototype=this.superclz.prototype;
this.superinst=new fn();
}
if(this.base){
this.base.parent=this;
}
if(this.constructs){
this.constructs.apply(this,arguments);
}
};
_a.props=function(_c){
for(var i in _c){
if(i!="props"&&i!="protos"&&i!="inherits"&&i!="prototype"&&i!="inits"&&i!="satisfies"&&i!="satisfiers"){
_a[i]=_c[i];
}
}
return _a;
};
_a.protos=function(_e,_f){
for(var i in _e){
if(i!="superclz"&&i!="superinst"&&i!="base"&&(!_f||i!="constructs")){
if(_f&&typeof _e[i]=="function"){
vjo.extendMethod(_a,_e[i],i);
}
if(!_f&&!_a.prototype[i]&&_a.prototype.base&&_a.prototype.base[i]){
_a.prototype[i]=function(){
_a.prototype.base[i].apply(this,arguments);
};
}else{
_a.prototype[i]=_e[i];
}
}
}
return _a;
};
_a.inherits=function(_11){
var _12=vjo.createPkg(_11);
var _13=_12.pkg[_12.className];
_a.prototype.superclz=_13;
_a.prototype.base=function(){
if(!this.superinst){
var fn=function(){
};
fn.prototype=this.superclz.prototype;
this.superinst=new fn();
}
if(this.superinst.constructs){
this.superinst.constructs.apply(this,arguments);
}
};
_a.protos(_13.prototype,true);
_a.props(_13);
return _a;
};
_a.singleton=function(){
return _a;
};
_a.inits=function(_15){
var _16=vjo.createPkg(_9);
if(typeof _16.pkg[_16.className]=="function"){
_15.call(this);
}
return _a;
};
_a.satisfies=function(_17){
return _a;
};
_a.satisfiers=function(_18){
return _a;
};
_a.makeFinal=function(){
return _a;
};
var _19=vjo.createPkg(_9);
return (_19.pkg[_19.className])?_a:(_19.pkg[_19.className]=_a);
};

vjo.type("vjo.dsf.Event").protos({constructs:function(src,_1b,_1c){
this.src=src;
this.eventType=_1b;
this.nativeEvent=_1c;
}});

vjo.needs("vjo.dsf.Event");
vjo.type("vjo.dsf.EventDispatcher").singleton().protos({constructs:function(){
this.eventHandlers={};
this.nativeEventHandlers={};
this.fCustomLoad={};
this.bLoaded=false;
},process:function(_1d,_1e){
var _1f=this.eventHandlers[_1d];
if(!_1f){
return true;
}
var _20=_1f[_1e.eventType];
if(!_20){
return true;
}
var _21=true;
for(var i=0;i<_20.length;i++){
var _23=_20[i].handle(_1e);
if(_23&&_23.objType=="dsf_Message"){
if(vjo.dsf.ServiceEngine&&vjo.dsf.ServiceEngine.handleRequest(_23)===false){
_21=false;
}
}else{
if(_23===false){
_21=false;
}
}
}
return _21;
},register:function(id,_25,_26){
var _27=this.eventHandlers[id];
if(!_27){
_27=this.eventHandlers[id]={};
}
if(!_27[_25]){
_27[_25]=[];
}
var len=_27[_25].length;
_27[_25][len]=_26;
},isRegistered:function(id,_2a){
var _2b=this.eventHandlers[id];
return (_2b&&_2b[_2a]&&_2b[_2a].length>0)?true:false;
},registerNative:function(_2c,_2d,_2e){
var id=(_2c==window)?"body":_2c.id;
var _30=this.nativeEventHandlers[id];
if(!_30){
_30=this.nativeEventHandlers[id]={};
}
if(!_30[_2d]){
_30[_2d]=[];
}
var len=_30[_2d].length;
_30[_2d][len]=_2e;
},add:function(id,_33,_34){
if(!id||!_33||!_34||(typeof _34.handle!="function")){
return this;
}
var b=this.isRegistered(id,_33);
this.register(id,_33,_34);
if(!b){
this.bind(id,_33);
}
return this;
},addEventListener:function(_36,_37,_38,_39,_3a){
var scp=_39||vjo.global;
var _3c=function(_3d){
var ev=window.event||_3d;
var rv=_38.call(scp,ev);
if(rv===false){
vjo.dsf.EventDispatcher.stopEvent(ev);
}
return rv;
};
if(window.addEventListener){
_36.addEventListener(_37,_3c,_3a||false);
this.registerNative(_36,_37,_3c);
return _3c;
}else{
if(window.attachEvent){
_36.attachEvent("on"+_37,_3c);
this.registerNative(_36,_37,_3c);
return _3c;
}
}
_36["on"+_37]=_38;
return false;
},bind:function(id,_41){
var _42=document.getElementById(id);
if(id=="body"||_42==document.body){
_42=document.body;
if(_41=="load"||_41=="unload"){
var rv=this.addEventListener(window,_41,function(){
var oED=vjo.dsf.EventDispatcher;
if(typeof oED.fCustomLoad[_41]=="function"){
oED.fCustomLoad[_41]();
}
if(!oED.bLoaded){
oED[_41]("body");
}
oED.fCustomLoad={};
});
if(rv===false){
if(_42.vjLoadSet){
return this;
}else{
_42.vjLoadSet=true;
var _45=window["on"+_41]||"";
if(_45){
this.fCustomLoad[_41]=_45;
}
}
}
return this;
}
}
if(_42){
this.addEventListener(_42,_41,function(_46){
return vjo.dsf.EventDispatcher[_41](this,_46||window.event);
},_42);
}
},reBind:function(){
var eH=this.eventHandlers;
var nEH=this.nativeEventHandlers;
for(var id in eH){
for(var _4a in eH[id]){
if(!this.hasBinding(id,_4a)){
this.bind(id,_4a);
}
}
}
},hasBinding:function(id,_4c){
var nEH=this.nativeEventHandlers;
if(nEH[id]&&nEH[id][_4c]){
var aH=nEH[id][_4c],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(_51,_52,_53){
if(!_51||!_52){
return;
}
if(window.addEventListener){
_51.removeEventListener(_52,_53,false);
}else{
if(window.attachEvent){
_51.detachEvent("on"+_52,_53);
}else{
_51["on"+_52]=null;
}
}
},detachNativeHandlers:function(_54,_55){
var _56=this.nativeEventHandlers[_54.id];
if(_56&&_56[_55]){
var h=_56[_55];
for(var i=0;i<h.length;i++){
this.removeEventListener(_54,_55,_56[_55][i]);
}
_56[_55]=[];
}
},detachHandlers:function(id,_5a){
var _5b=id;
if(!this.eventHandlers[_5b]){
return;
}
this.eventHandlers[_5b][_5a]=[];
var _5c=document.getElementById(id);
if(id=="body"){
_5c=window;
}
if(_5c){
this.detachNativeHandlers(_5c,_5a);
}
},stopEvent:function(evt){
this.stopPropagation(evt);
this.preventDefault(evt);
},stopPropagation:function(evt){
if(evt.stopPropagation){
evt.stopPropagation();
}else{
evt.cancelBubble=true;
}
},preventDefault:function(evt){
if(evt.preventDefault){
evt.preventDefault();
}else{
evt.returnValue=false;
}
},cleanUp:function(){
var _60=this.nativeEventHandlers;
for(var id in _60){
for(var ev in _60[id]){
this.detachHandlers(id,ev);
}
}
},getId:function(src,id){
var _65=id;
if(_65===null||!_65){
_65=src.id;
}
return _65;
},getBodyId:function(src,id){
var _68=this.getId(src,id);
if(!_68||src==document.body){
_68="body";
}
return _68;
},load:function(src,_6a){
var id=this.getBodyId(src);
var rv=this.process(id,new vjo.dsf.Event(src,"load",_6a));
this.bLoaded=(id==="body")?true:this.bLoaded;
return rv;
},unload:function(src,_6e){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"unload",_6e));
},change:function(src,_70){
return this.process(this.getId(src),new vjo.dsf.Event(src,"change",_70));
},submit:function(src,_72){
return this.process(this.getId(src),new vjo.dsf.Event(src,"submit",_72));
},reset:function(src,_74){
return this.process(this.getId(src),new vjo.dsf.Event(src,"reset",_74));
},select:function(src,_76){
return this.process(this.getId(src),new vjo.dsf.Event(src,"select",_76));
},blur:function(src,_78){
return this.process(this.getId(src),new vjo.dsf.Event(src,"blur",_78));
},focus:function(src,_7a){
return this.process(this.getId(src),new vjo.dsf.Event(src,"focus",_7a));
},keydown:function(src,_7c){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keydown",_7c));
},keypress:function(src,_7e){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keypress",_7e));
},keyup:function(src,_80){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"keyup",_80));
},click:function(src,_82){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"click",_82));
},dblclick:function(src,_84){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"dblclick",_84));
},mousedown:function(src,_86){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mousedown",_86));
},mousemove:function(src,_88){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mousemove",_88));
},mouseout:function(src,_8a){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseout",_8a));
},mouseover:function(src,_8c){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseover",_8c));
},mouseup:function(src,_8e){
return this.process(this.getBodyId(src),new vjo.dsf.Event(src,"mouseup",_8e));
}}).inits(function(){
vjo.dsf.EventDispatcher=new vjo.dsf.EventDispatcher();
vjo.dsf.EventDispatcher.addEventListener(window,"unload",function(){
vjo.dsf.EventDispatcher.cleanUp();
});
});

vjo.type("vjo.dsf.RemoteReqtHdl").protos({handleRequest:function(_8f){
_8f.trace=_8f.trace+"-->RemoteHdl_"+_8f.svcId;
this.invoke(_8f);
},invoke:function(_90){
var svc=vjo.dsf.Service;
var _92=svc.getXmlHttpReq();
if(typeof XMLHttpRequest!="undefined"){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
catch(e){
}
}
var _93=svc.generateReqParams(_90);
var _94=_90.svcConfig.url;
if(_90.svcConfig.method=="GET"){
_94=_94+"?"+_93;
}
if(_90.svcConfig.reqtMarshalling=="JSCALLBACK"){
if(typeof vjo.dsf.assembly.VjClientAssembler!="undefined"&&!vjo.dsf.assembly.VjClientAssembler.bBodyLoaded){
vjo.dsf.assembly.VjClientAssembler.load(_90);
return;
}
_94+="&callback="+vjo.dsf.XDomainRequest.createCallback(_90);
vjo.dsf.XDomainRequest.send(_94);
return;
}
try{
_92.open(_90.svcConfig.method,_94);
}
catch(e){
alert(e);
return;
}
_92.onreadystatechange=function(){
svc.callback(_92,_90);
};
if(_90.svcConfig.method=="POST"){
_92.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
_92.setRequestHeader("Content-Length",_93.length);
_92.send(_93);
}else{
_92.send(null);
}
}});

vjo.type("vjo.dsf.InProcReqtHdl").protos({constructs:function(){
this.svcHdls={};
},registerSvcHdl:function(_95,_96){
this.svcHdls[_95]=_96;
},handleRequest:function(_97){
var _98=this.svcHdls[_97.svcId];
if(_98){
var _99=_98.invoke(_97);
_97.trace=_97.trace+"-->SvcHdl_"+_97.svcId;
if(_99){
_97.response=_99;
}
}
_97.status=1;
}});

vjo.type("vjo.dsf.Error").protos({constructs:function(){
this.id=null;
this.message=null;
}});

vjo.needs("vjo.dsf.Error");
vjo.type("vjo.dsf.Service").props({callback:function(_9a,_9b){
try{
if(_9a.readyState!=4){
return;
}
if(_9a.status==200){
var _9c=_9a.responseText;
if(_9b.svcConfig.respMarshalling=="JSON"){
try{
if(_9c){
_9c=eval("("+_9c+")");
}else{
var _9d=_9c;
_9c=new vjo.dsf.ServiceResponse();
_9c.data=_9d;
}
}
catch(e){
_9c=new vjo.dsf.ServiceResponse();
var _9e=new vjo.dsf.Error();
_9e.id="SYS.JSON_PARSE_ERROR";
_9e.message="SYS.JSON_PARSE_ERROR";
_9c.errors=[_9e];
}
}else{
if(_9b.svcConfig.respMarshalling=="XML"){
_9c=_9a.responseXML;
}
}
_9b.response=_9c;
_9b.status=1;
}else{
var _9d=new vjo.dsf.ServiceResponse();
var _9e=new vjo.dsf.Error();
_9e.id="SYS.DARWIN_SERVICE_PROTOCOL_ERROR";
_9e.message="SYS.PROTOCOL_ERROR: status = "+_9a.status;
_9d.errors=[_9e];
_9b.response=_9d;
}
vjo.dsf.ServiceEngine.handleResponse(_9b);
}
catch(e){
}
},getXmlHttpReq:function(){
var _9f=false;
try{
_9f=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
_9f=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
_9f=false;
}
}
if(!_9f&&typeof XMLHttpRequest!="undefined"){
_9f=new XMLHttpRequest();
}
return _9f;
},generateReqParams:function(_a0){
var _a1="svcid="+encodeURIComponent(_a0.svcId);
if(_a0.stok){
_a1+="&stok="+_a0.stok;
}
_a1=_a1+"&reqttype="+_a0.svcConfig.reqtMarshalling;
_a1=_a1+"&resptype="+_a0.svcConfig.respMarshalling;
_a1+="&request=";
var _a2=_a0.request,reqtmarsh=_a0.svcConfig.reqtMarshalling;
if(reqtmarsh=="JSON"){
_a1+=encodeURIComponent(JSON.stringify(_a2));
}else{
if(reqtmarsh=="JSCALLBACK"){
_a1+=encodeURIComponent(JSON.stringify(_a2));
}else{
if(reqtmarsh=="XML"){
_a1+=encodeURIComponent(dsf_xmlize(_a2,"Request"));
}else{
_a1+=encodeURIComponent(_a2);
}
}
}
return _a1;
},xmlize:function(_a3,_a4,_a5){
_a5=_a5?_a5:"";
var s=_a5+"<"+_a4+">";
if(!(_a3 instanceof Object)||_a3 instanceof Number||_a3 instanceof String||_a3 instanceof Boolean||_a3 instanceof Date){
s+=dsf_escape(""+_a3);
}else{
s+="\n";
var _a7="";
var _a8=_a3 instanceof Array;
for(var _a9 in _a3){
if(_a8&&_a9=="______array"){
continue;
}
s+=this.xmlize(_a3[_a9],(_a8?"array-item key=\""+_a9+"\"":_a9),_a5+"   ");
}
s+=_a5;
}
return s+=(_a4.indexOf(" ")!=-1?"</array-item>\n":"</"+_a4+">\n");
},escape:function(_aa){
return _aa.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");
}});

vjo.type("vjo.dsf.ServiceResponse").protos({constructs:function(){
this.errors=[];
this.data=null;
}});

vjo.type("vjo.dsf.SvcConfig").protos({constructs:function(_ab,url){
this.url=url;
this.method=_ab;
this.reqtMarshalling="raw";
this.respMarshalling="raw";
}});

vjo.type("vjo.dsf.XDomainRequest").protos({constructs:function(){
this.callbacks=[];
this.sCallbackName="callback";
this.bUseIframe=(navigator.userAgent.indexOf("Firefox")>0);
},send:function(_ad){
if(!document.createElement||!_ad){
return;
}
var frm=null,doc;
if(this.bUseIframe){
var _af="<scr"+"ipt src=\""+_ad+"\" type=\"text/javascript\"></scr"+"ipt>";
frm=document.createElement("iframe");
frm.height=1;
frm.width=1;
frm.style.display="none";
document.body.appendChild(frm);
doc=frm.document||frm.contentDocument;
doc.open();
doc.write("<html><head></head><body>"+_af+"</body></html>");
doc.close();
}else{
doc=document;
var _b0=doc.createElement("script");
_b0.type="text/javascript";
_b0.src=_ad;
var _b1=doc.getElementsByTagName("head")||doc.getElementsByTagName("body");
_b1[0].appendChild(_b0);
}
},createCallback:function(_b2){
var len=this.callbacks.length,name=this.sCallbackName+len;
this.callbacks[len]=name;
this[name]=function(_b4){
var _b5;
try{
_b5=_b4;
}
catch(e){
_b5=new vjo.dsf.ServiceResponse();
var _b6=new vjo.dsf.Error();
_b6.id="SYS.JSON_PARSE_ERROR";
_b6.message="SYS.JSON_PARSE_ERROR";
_b5.errors=[_b6];
}
this.loaded(name);
_b2.response=_b5;
vjo.dsf.ServiceEngine.handleResponse(_b2);
};
var rv="vjo.dsf.XDomainRequest."+name;
if(this.bUseIframe){
rv="parent."+rv;
}
return rv;
},loaded:function(_b8){
var e=document.getElementById(_b8);
if(e){
document.body.removeChild(e);
}
}}).inits(function(){
vjo.dsf.XDomainRequest=new vjo.dsf.XDomainRequest();
});

vjo.type("vjo.dsf.Message").protos({constructs:function(_ba){
this.objType="dsf_Message";
this.svcId=_ba;
this.request;
this.response;
this.clientContext;
this.trspType="InProc";
this.status;
this.svcConfig;
this.returnData=true;
this.trace="";
}});

// @JsDoNotOptimize
// @JsDoNotLintValidate
// @Package vjo.dsf

var JSON = {
    org: 'http://www.JSON.org',
    copyright: '(c)2005 JSON.org',
    license: 'http://www.crockford.com/JSON/license.html',

    stringify: function (arg) {
        var c, i, l, s = '', v;

        switch (typeof arg) {
        case 'object':
            if (arg) {
                if (arg instanceof Array) {
                    for (i = 0; i < arg.length; ++i) {
                        v = this.stringify(arg[i]);
                        if (s) {
                            s += ',';
                        }
                        s += v;
                    }
                    return '[' + s + ']';
                } else if (typeof arg.toString != 'undefined') {
                    for (i in arg) {
                        v = arg[i];
                        if (typeof v != 'undefined' && typeof v != 'function') {
                            v = this.stringify(v);
                            if (s) {
                                s += ',';
                            }
                            s += this.stringify(i) + ':' + v;
                        }
                    }
                    return '{' + s + '}';
                }
            }
            return 'null';
        case 'number':
            return isFinite(arg) ? String(arg) : 'null';
        case 'string':
            l = arg.length;
            s = '"';
            for (i = 0; i < l; i += 1) {
                c = arg.charAt(i);
                if (c >= ' ') {
                    if (c == '\\' || c == '"') {
                        s += '\\';
                    }
                    s += c;
                } else {
                    switch (c) {
                        case '\b':
                            s += '\\b';
                            break;
                        case '\f':
                            s += '\\f';
                            break;
                        case '\n':
                            s += '\\n';
                            break;
                        case '\r':
                            s += '\\r';
                            break;
                        case '\t':
                            s += '\\t';
                            break;
                        default:
                            c = c.charCodeAt();
                            s += '\\u00' + Math.floor(c / 16).toString(16) +
                                (c % 16).toString(16);
                    }
                }
            }
            return s + '"';
        case 'boolean':
            return String(arg);
        default:
            return 'null';
        }
    },
    parse: function (text) {
        var at = 0;
        var ch = ' ';

        function error(m) {
            throw {
                name: 'JSONError',
                message: m,
                at: at - 1,
                text: text
            };
        }

        function next() {
            ch = text.charAt(at);
            at += 1;
            return ch;
        }

        function white() {
            while (ch !== '' && ch <= ' ') {
                next();
            }
        }

        function str() {
            var i, s = '', t, u;

            if (ch == '"') {
outer:          while (next()) {
                    if (ch == '"') {
                        next();
                        return s;
                    } else if (ch == '\\') {
                        switch (next()) {
                        case 'b':
                            s += '\b';
                            break;
                        case 'f':
                            s += '\f';
                            break;
                        case 'n':
                            s += '\n';
                            break;
                        case 'r':
                            s += '\r';
                            break;
                        case 't':
                            s += '\t';
                            break;
                        case 'u':
                            u = 0;
                            for (i = 0; i < 4; i += 1) {
                                t = parseInt(next(), 16);
                                if (!isFinite(t)) {
                                    break outer;
                                }
                                u = u * 16 + t;
                            }
                            s += String.fromCharCode(u);
                            break;
                        default:
                            s += ch;
                        }
                    } else {
                        s += ch;
                    }
                }
            }
            error("Bad string");
        }

        function arr() {
            var a = [];

            if (ch == '[') {
                next();
                white();
                if (ch == ']') {
                    next();
                    return a;
                }
                while (ch) {
                    a.push(val());
                    white();
                    if (ch == ']') {
                        next();
                        return a;
                    } else if (ch != ',') {
                        break;
                    }
                    next();
                    white();
                }
            }
            error("Bad array");
        }

        function obj() {
            var k, o = {};

            if (ch == '{') {
                next();
                white();
                if (ch == '}') {
                    next();
                    return o;
                }
                while (ch) {
                    k = str();
                    white();
                    if (ch != ':') {
                        break;
                    }
                    next();
                    o[k] = val();
                    white();
                    if (ch == '}') {
                        next();
                        return o;
                    } else if (ch != ',') {
                        break;
                    }
                    next();
                    white();
                }
            }
            error("Bad object");
        }

        function num() {
            var n = '', v;
            if (ch == '-') {
                n = '-';
                next();
            }
            while (ch >= '0' && ch <= '9') {
                n += ch;
                next();
            }
            if (ch == '.') {
                n += '.';
                while (next() && ch >= '0' && ch <= '9') {
                    n += ch;
                }
            }
            if (ch == 'e' || ch == 'E') {
                n += 'e';
                next();
                if (ch == '-' || ch == '+') {
                    n += ch;
                    next();
                }
                while (ch >= '0' && ch <= '9') {
                    n += ch;
                    next();
                }
            }
            v = +n;
            if (!isFinite(v)) {
                error("Bad number");
            } else {
                return v;
            }
        }

        function word() {
            switch (ch) {
                case 't':
                    if (next() == 'r' && next() == 'u' && next() == 'e') {
                        next();
                        return true;
                    }
                    break;
                case 'f':
                    if (next() == 'a' && next() == 'l' && next() == 's' &&
                            next() == 'e') {
                        next();
                        return false;
                    }
                    break;
                case 'n':
                    if (next() == 'u' && next() == 'l' && next() == 'l') {
                        next();
                        return null;
                    }
                    break;
            }
            error("Syntax error");
        }

        function val() {
            white();
            switch (ch) {
                case '{':
                    return obj();
                case '[':
                    return arr();
                case '"':
                    return str();
                case '-':
                    return num();
                default:
                    return ch >= '0' && ch <= '9' ? num() : word();
            }
        }

        return val();
    }
};

vjo.needs("vjo.dsf.RemoteReqtHdl");
vjo.needs("vjo.dsf.InProcReqtHdl");
vjo.needs("vjo.dsf.Service");
vjo.needs("vjo.dsf.ServiceResponse");
vjo.needs("vjo.dsf.SvcConfig");
vjo.needs("vjo.dsf.XDomainRequest");
vjo.needs("vjo.dsf.Message");
vjo.needs("vjo.dsf.Json");
vjo.type("vjo.dsf.ServiceEngine").singleton().protos({constructs:function(){
this.svcReqtHdls={};
this.svcRespHdls={};
this.glbReqtHdls=[];
this.glbRespHdls=[];
this.trspReqtHdls={};
this.trspRespHdls={};
this.inProcReqtHdl=new vjo.dsf.InProcReqtHdl();
this.remoteReqtHdl=new vjo.dsf.RemoteReqtHdl();
this.registerTrspReqtHdl("InProc",this.inProcReqtHdl);
this.registerTrspReqtHdl("Remote",this.remoteReqtHdl);
},handleRequest:function(_bb){
var _bc;
_bc=this.processServiceRequestHandlers(_bb);
_bc=this.processGlobalRequestHandlers(_bb);
_bc=this.processTransportHandlers(_bb);
if(_bb.response&&_bb.trspType!="Remote"){
this.handleResponse(_bb,_bc);
}
return _bb.returnData;
},processServiceRequestHandlers:function(_bd){
var _be;
var _bf=this.svcReqtHdls[_bd.svcId];
if(_bf){
for(var i=0;i<_bf.length;i++){
_bd.trace=_bd.trace+"-->svcReqtHdl_"+i;
_bf[i].handleRequest(_bd);
if(_bd.status==1){
_be="SVC";
break;
}
}
}
return _be;
},processGlobalRequestHandlers:function(_c1){
var _c2;
if(_c1.status!=1){
for(var i=0;i<this.glbReqtHdls.length;i++){
_c1.trace=_c1.trace+"-->glbReqtHdl_"+i;
this.glbReqtHdls[i].handleRequest(_c1);
if(_c1.status==1){
_c2="GLB";
break;
}
}
}
return _c2;
},processTransportHandlers:function(_c4){
var _c5;
if(_c4.status!=1&&_c4.trspType){
var _c6=this.trspReqtHdls[_c4.trspType];
if(_c6){
for(var i=0;i<_c6.length;i++){
_c4.trace=_c4.trace+"-->trspReqtHdl_"+i;
_c6[i].handleRequest(_c4);
if(_c4.status==1){
break;
}
}
}
}
return _c5;
},handleResponse:function(_c8,_c9){
if(_c8.trspType&&typeof _c9=="undefined"){
var _ca=this.trspRespHdls[_c8.trspType];
if(_ca){
for(var i=_ca.length-1;i>=0;i--){
_c8.trace=_c8.trace+"-->trspRespHdl_"+i;
_ca[i].handleResponse(_c8);
}
}
}
if(_c9!="SVC"){
for(var i=this.glbRespHdls.length-1;i>=0;i--){
_c8.trace=_c8.trace+"-->glbRespHdl_"+i;
this.glbRespHdls[i].handleResponse(_c8);
}
}
var _ca=this.svcRespHdls[_c8.svcId];
if(_ca){
for(var i=_ca.length-1;i>=0;i--){
_c8.trace=_c8.trace+"-->svcRespHdl_"+i;
_ca[i].handleResponse(_c8);
}
}
},registerSvcHdl:function(_cc,_cd){
this.inProcReqtHdl.registerSvcHdl(_cc,_cd);
},registerSvcReqtHdl:function(_ce,_cf){
if(typeof this.svcReqtHdls[_ce]=="undefined"){
this.svcReqtHdls[_ce]=[];
}
var _d0=this.svcReqtHdls[_ce];
_d0[_d0.length]=_cf;
},registerSvcRespHdl:function(_d1,_d2){
if(typeof this.svcRespHdls[_d1]=="undefined"){
this.svcRespHdls[_d1]=[];
}
var _d3=this.svcRespHdls[_d1];
_d3[_d3.length]=_d2;
},registerGlbReqtHdl:function(_d4){
this.glbReqtHdls[this.glbReqtHdls.length]=_d4;
},registerGlbRespHdl:function(_d5){
this.glbRespHdls[this.glbRespHdls.length]=_d5;
},registerTrspReqtHdl:function(_d6,_d7){
if(typeof this.trspReqtHdls[_d6]=="undefined"){
this.trspReqtHdls[_d6]=[];
}
var _d8=this.trspReqtHdls[_d6];
_d8[_d8.length]=_d7;
},registerTrspRespHdl:function(_d9,_da){
if(typeof this.trspRespHdls[_d9]=="undefined"){
this.trspRespHdls[_d9]=[];
}
var _db=this.trspRespHdls[_d9];
_db[_db.length]=_da;
}}).inits(function(){
vjo.dsf.ServiceEngine=new vjo.dsf.ServiceEngine();
});

String.prototype.has=function(_dc){
return (this.indexOf(_dc)!=-1);
};
String.prototype.hasArg=function(_dd){
var a=_dd,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;
};

String.prototype.hex2Dec=function(){
return parseInt(this,16);
};

Number.prototype.dec2Hex=function(){
return parseInt(this,10).toString(16);
};

vjo.needs("vjo.dsf.typeextensions.string.Comparison");
vjo.needs("vjo.dsf.typeextensions.string.HexToDecimal");
vjo.needs("vjo.dsf.typeextensions.number.DecimalToHex");
vjo.type("vjo.dsf.cookie.VjCookieJar").props({Default_Cookie_Format:{"COOKIELET_DELIMITER":"^","NAME_VALUE_DELIMITER":"/","escapedValue":true},DP_Cookie_Format:{"COOKIELET_DELIMITER":"^","NAME_VALUE_DELIMITER":"/","bUseExp":true,"startDelim":"b"},Session_Cookie_Format:{"COOKIELET_DELIMITER":"^","NAME_VALUE_DELIMITER":"=","escapedValue":true,"startDelim":"^"},DS_Cookie_Format:{"COOKIELET_DELIMITER":"^","NAME_VALUE_DELIMITER":"/"},sPath:"/",aConversionMap:{"reg":["dp1","reg"],"recent_vi":["ebay","lvmn"],"ebaysignin":["ebay","sin"],"p":["dp1","p"],"etfc":["dp1","etfc"],"keepmesignin":["dp1","kms"],"ItemList":["ebay","wl"],"BackToList":["s","BIBO_BACK_TO_LIST"]},aFormatMap:{},sCOMPAT:"10",sCONVER:"01",sSTRICT:"00",sModesCookie:"ebay",sModesCookielet:"cv",readCookie:function(_e9,_ea){
var rv=this.readCookieObj(_e9,_ea).value;
return (rv)?unescape(rv):"";
},createDefaultCookieBean:function(_ec,_ed){
var _ee={};
_ee.name=_ec;
_ee.cookieletname=_ed;
_ee.value="";
_ee.maxage=0;
_ee.rawcookievalue="";
_ee.mode="";
return _ee;
},readCookieObj:function(_ef,_f0){
var _f1=this.createDefaultCookieBean(_ef,_f0);
this.update();
this.checkConversionMap(_f1);
_f1.rawcookievalue=this.aCookies[_f1.name];
if(!_f1.name||!_f1.rawcookievalue){
_f1.value="";
}else{
if(!_f1.cookieletname){
this.readCookieInternal(_f1);
}else{
this.readCookieletInternal(_f1);
}
}
return (typeof (_f1)!="undefined")?_f1:"";
},checkConversionMap:function(_f2){
var _f3=this.aConversionMap[_f2.name];
if(_f3){
_f2.mode=this.getMode(_f2.name);
_f2.name=_f3[0];
_f2.cookieletname=_f3[1];
}
},readCookieInternal:function(_f4){
_f4.value=_f4.rawcookievalue;
return _f4;
},readCookieletInternal:function(_f5){
var _f6=this.getCookielet(_f5.name,_f5.cookieletname,_f5.rawcookievalue);
var _f7=this.getFormat(_f5.name);
if(_f6&&_f7.bUseExp){
var _f8=_f6;
_f6=_f6.substring(0,_f6.length-8);
if(_f8.length>8){
_f5.maxage=_f8.substring(_f8.length-8);
}
}
_f5.value=_f6;
if(_f5.mode==this.sCOMPAT){
_f5.value=_f5.rawcookievalue;
}
return _f5;
},readMultiLineCookie:function(_f9,_fa){
if(!_f9||!_fa){
return "";
}
var val,r="";
var _fc=this.aConversionMap[_f9];
if(_fc){
val=this.readCookieObj(_fc[0],_fc[1]).value||"";
}
if(val){
r=this.getCookielet(_f9,_fa,val)||"";
}
return (typeof (r)!="undefined")?r:"";
},writeCookie:function(_fd,_fe,_ff){
var cmap=this.aConversionMap[_fd];
if(cmap){
this.writeCookielet(cmap[0],cmap[1],_fe,_ff);
return;
}
var _101=this.getFormat(_fd);
if(_fe&&_101.escapedValue){
_fe=escape(_fe);
}
this.writeRawCookie(_fd,_fe,_ff);
},writeRawCookie:function(_102,_103,_104){
if(_102&&(_103!==undefined)){
if((isNaN(_103)&&_103.length<4000)||(_103+"").length<4000){
if(typeof _104=="number"){
_104=this.getExpDate(_104);
}
var _105=_104?new Date(_104):new Date(this.getExpDate(730));
var _106=this.getFormat(_102);
var _107=this.sCookieDomain;
var dd=document.domain;
if(!dd.has(_107)){
var _109=dd.indexOf(".ebay.");
if(_109>0){
this.sCookieDomain=dd.substring(_109);
}
}
if(document.cookie){
document.cookie=_102+"="+(_103||"")+((_104||_106.bUseExp)?"; expires="+_105.toGMTString():"")+"; domain="+this.sCookieDomain+"; path="+this.sPath;
}
}
}
},writeCookieEx:function(_10a,_10b,_10c){
this.writeCookie(_10a,_10b,this.getExpDate(_10c));
},writeCookielet:function(_10d,_10e,_10f,_110,_111){
if(_10d&&_10e){
this.update();
var _112=this.getFormat(_10d);
if(_112.bUseExp&&_10f){
if(typeof _110=="number"){
_110=this.getExpDate(_110);
}
var _113=_110?new Date(_110):new Date(this.getExpDate(730));
var _114=Date.UTC(_113.getUTCFullYear(),_113.getUTCMonth(),_113.getUTCDate());
_114=Math.floor(_114/1000);
_10f+=_114.dec2Hex();
}
var val=this.createCookieValue(_10d,_10e,_10f);
this.writeRawCookie(_10d,val,_111);
}
},writeMultiLineCookie:function(_116,_117,_118,_119,_11a){
this.update();
var val=this.createCookieValue(_116,_117,_118);
if(val){
var cmap=this.aConversionMap[_116];
if(cmap){
this.writeCookielet(cmap[0],cmap[1],val,_119,_11a);
}
}
},getBitFlag:function(_11d,_11e){
_11d=parseInt(_11d,10);
var b=_11d.toString(2),r=_11d?b.charAt(b.length-_11e-1):"";
return (r=="1")?1:0;
},setBitFlag:function(_120,_121,_122){
var b="",p,i,e,l;
_120=parseInt(_120,10);
if(_120){
b=_120.toString(2);
}
l=b.length;
if(l<_121){
e=_121-l;
for(i=0;i<=e;i++){
b="0"+b;
}
}
p=b.length-_121-1;
return parseInt(b.substring(0,p)+_122+b.substring(p+1),2);
},createCookieValue:function(_124,_125,_126){
var cmap=this.aConversionMap[_124],format=this.getFormat(_124),mode=this.getMode(_124),val;
if(cmap&&(mode==this.sSTRICT||mode==this.sCONVER)){
val=this.readCookieObj(cmap[0],cmap[1]).value||"";
}else{
val=this.aCookies[_124]||"";
}
if(format){
var clts=this.getCookieletArray(val,format);
clts[_125]=_126;
var str="";
for(var i in clts){
if(clts[i]){
str+=i+format.NAME_VALUE_DELIMITER+clts[i]+format.COOKIELET_DELIMITER;
}
}
if(str&&format.startDelim){
str=format.startDelim+str;
}
val=str;
if(format.escapedValue){
val=escape(val);
}
}
return val;
},update:function(){
var aC=document.cookie.split("; ");
this.aCookies={};
for(var i=0;i<aC.length;i++){
var sC=aC[i].split("=");
var _12e=this.getFormat(sC[0]),cv=sC[1],sd=_12e.startDelim;
if(sd&&cv&&cv.indexOf(sd)===0){
sC[1]=cv.substring(sd.length,cv.length);
}
this.aCookies[sC[0]]=sC[1];
}
},getCookielet:function(_12f,_130,_131){
var _132=this.getFormat(_12f);
var clts=this.getCookieletArray(_131,_132);
return clts[_130]||"";
},getFormat:function(_134){
return this.aFormatMap[_134]||vjo.dsf.cookie.VjCookieJar.Default_Cookie_Format;
},getCookieletArray:function(_135,_136){
var rv=[],val=_135||"";
if(_136.escapedValue){
val=unescape(val);
}
var a=val.split(_136.COOKIELET_DELIMITER);
for(var i=0;i<a.length;i++){
var idx=a[i].indexOf(_136.NAME_VALUE_DELIMITER);
if(idx>0){
rv[a[i].substring(0,idx)]=a[i].substring(idx+1);
}
}
return rv;
},getExpDate:function(_13b){
var _13c;
if(typeof _13b=="number"&&_13b>=0){
var d=new Date();
d.setTime(d.getTime()+(_13b*24*60*60*1000));
_13c=d.toGMTString();
}
return _13c;
},getMode:function(_13e){
var h=this.readCookieObj(this.sModesCookie,this.sModesCookielet).value,b;
if(!(_13e in this.aConversionMap)){
return null;
}
if(!h){
return "";
}
if(h===0){
return this.sSTRICT;
}
if(h&&h!="0"){
if(h.has(".")){
var a=h.split(".");
for(i=0;i<a.length;i++){
b=a[i].hex2Dec().toString(2)+b;
}
}else{
b=h.hex2Dec().toString(2);
}
i=0;
var l=b.length,j;
for(o in this.aConversionMap){
j=l-(2*(i+1));
f=b.substring(j,j+2).toString(10);
f=(!f)?this.sSTRICT:f;
if(_13e==o){
return (f.length==1)?"0"+f:f;
}
i++;
}
return null;
}
}}).inits(function(){
var vCJ=vjo.dsf.cookie.VjCookieJar;
vCJ.aFormatMap={"r":vCJ.Default_Cookie_Format,"dp1":vCJ.DP_Cookie_Format,"npii":vCJ.DP_Cookie_Format,"ebay":vCJ.Session_Cookie_Format,"reg":vCJ.Session_Cookie_Format,"apcCookies":this.Session_Cookie_Format,"ds2":vCJ.DS_Cookie_Format};
});

vjo.type("vjo.Registry").singleton().protos({constructs:function(){
this.controls=[];
},put:function(_143,_144){
return this.controls[_143]=_144;
},get:function(_145){
return this.controls[_145];
},dump:function(){
var _146=this.controls;
var _147="controls on page:\n";
for(var i in _146){
_147+="key = "+i;
_147+="controlName = "+_146[i].objtype;
_147+="\n";
}
return _147;
}}).inits(function(){
vjo.Registry=new vjo.Registry();
});


// en_US/e523/SYS_vjo_e5235035450_1_en_US
// b=5035450
