"undefined"==typeof JDBSSO&&(JDBSSO=function(){function c(a,b){a&&a(b)}function k(){window.sso_total_dom==window.sso_loaded_dom?(ssoRequest=window.ssoRequest,jdbResult=window.jdbResult,ssoRequest.onsuccess&&c(ssoRequest.onsuccess,jdbResult)):e>d?(ssoRequest=window.ssoRequest,jdbResult=window.jdbResult,ssoRequest.ontimeout&&c(ssoRequest.ontimeout,jdbResult)):(e+=m,setTimeout("JDBSSO.checkSSODomReady()",m))}function g(a){a=a.split(",");h=[];for(var b=i=0;b<a.length;b++)h.push(a[b])}function f(a,b){e=
0;window.ssoRequest=a;if(i>=h.length)return"undefined"!=typeof console&&console.info("retry reached max"),a.onerror&&c(a.onerror,{code:"Unreachable passport server.",msg:""}),!1;Shop88Event.publish("loading.on");var n="http://"+h[i]+"/"+b;i++;$.jsonp({url:n,success:function(b){(window.jdbResult=b)&&"true"==b.result?(b.callback&&eval(b.callback),k(a)):a.onerror&&c(a.onerror,b)},error:function(){f(a,b)},complete:function(){Shop88Event.publish("loading.off")}})}function o(a,b){e=0;window.ssoRequest=
a;$.jsonp({url:b,success:function(b){(window.jdbResult=b)&&"true"==b.result?(b.callback&&eval(b.callback),k(a)):a.onerror&&c(a.onerror,b)},error:function(){a.onerror&&c(a.onerror,{code:"JSONP_FAILED",msg:""})},complete:function(){}})}var j=jsUrlConfig.jdbssoPassportDomain,p=jsUrlConfig.jdbssoPassportLocalDomain,d=3E3,e=0,m=500,l=!0,h=[],i=0;return{login:function(a){if(!a)throw"ssoRequest cannot be null";if(!a.username)throw"ssoRequest.username cannot be null";if(!a.password)throw"ssoRequest.password cannot be null";
l=a.protect?a.protect:l;var b=a.duration?a.duration:"";g(a.passportUrl?a.passportUrl:j);d=a.maxTimeout?a.maxTimeout:d;var c;l?(c="authinP",a.password=Base64.encode(a.password)):c="authin";b=c+"/"+encodeURIComponent(a.username)+"/"+encodeURIComponent(a.password)+"/"+b;f(a,b)},loginFB:function(a){if(!a)throw"ssoRequest cannot be null";if(!a.token)throw"ssoRequest.token cannot be null";g(a.passportUrl?a.passportUrl:j);d=a.maxTimeout?a.maxTimeout:d;var b="authinFB/"+encodeURIComponent(a.token);f(a,b)},
logout:function(a){if(!a)throw"ssoRequest cannot be null";g(a.passportUrl?a.passportUrl:j);d=a.maxTimeout?a.maxTimeout:d;f(a,"authout/")},refresh:function(a){if(!a)throw"ssoRequest cannot be null";if(!a.token)throw"ssoRequest.token cannot be empty";g(a.passportUrl?a.passportUrl:j);d=a.maxTimeout?a.maxTimeout:d;f(a,"refresh/"+a.token)},getMemberInfo:function(a){var b=ShopData.getRoot()+"sso/getMemberInfo";o(a,b)},removeShopSSOCookie:function(){$.cookie("jdbsso_shop",null,{path:"/",domain:p})},checkSSODomReady:k}}());

