alexa js codes

主题:  [原创]alexa 工具条全部js源代码  浏览人数:1470 
[这个贴子最后由cee999在 2005/07/28 09:49pm 第 1 次编辑]

使用,请把‘〈’、‘〉’替换为‘<’、‘>’。

〈!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"〉

〈html〉
〈head〉
       〈OBJECT STYLE="display:none;" ID="BrowserProxy" CLASSID="CLSID:69A72A8A-84ED-4a75-8CE7-263DBEF3E5D3"〉〈/OBJECT〉
       〈title〉Bootstrap〈/title〉
       〈!-- Alexa 7.0 Binary Bootstrap script --〉
       〈!-- Copyright 1999-2003 Alexa Internet, Inc.  All Rights Reserved. --〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       // how often to check for update from server
       //
       var CHECK_UPDATE_INTERVAL                 = 8640000;
       // url to use when checking for network connection
       //
       var TEST_CONNECT_FILE                         = "http://client.alexa.com/holiday/script/images/pixel.gif";
       // start file in resource dll (iframed)
       //
       var LOCAL_START_FILE                         = "res://AlxRes.dll/CHTML/index.html";
       // start file to use when loading remote
       //
       var REMOTE_START_FILE                         = "http://client.alexa.com/holiday/script/index.html";

       // Registry keys
       //
       var REG_UPDATE_KEY                                 = "lastupdate";        /* name of key to get last update time from. */
       var REG_TOGGLE_REMOTE                         = "loadremote"; /* name of key to get remote load toggle from. */
       var REG_AMZNID                                        = "amzn_id";        /* name of key to retrieve amazon ID from */
       var REG_BRAND                                        = "brand"; /* name of key to get branding flag (bool) from. */
       var REG_ASSOCINFOREADY                        = "brandDataReady"; /* name of key to flag when branding data has been retrieved. */

       var g_bCheckedBrand = false;
       var g_sAmznID = "";
       // set up error handling
       //
       try {
               window.onerror = null;
               window.onerror = window_onerror;
       } catch(ex) {}
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
               function getReg(sKey)
               {
                       return BrowserProxy.System.ReadClientState(sKey);
               }
       //--〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function dout(sMsg)
       {
               BrowserProxy.OutputDebugMessage(sMsg + "/n");
       }
       // error handler
       //
       function window_onerror(sMsg, sUrl, nLine) {
               try {
                       var aErrorData=new Array();
                       var sScope='';
                       var sImage="http://log.alexa.com/error.gif?clientversion=7.0&";
                       var sDelimeter="";
                       var oImage=new Image();
                       var i;
                       // error was caused by browser event?
                       //
                       if (window.event) {
                               window.event.returnValue=true;
                       }
                       if (typeof(window_onerror.caller) == 'function') {
                               // name of function where error occured was passed
                               //
                               sScope=stripFunctionName(window_onerror.caller.toString());
                       } else {
                               // global call - don't worry about scope
                               //
                               sScope='(global call)';
                       }
                       try {
                               // capture browserproxy info for error reporting
                               //
                               if (( BrowserProxy ) && ( typeof(BrowserProxy) == 'object' ) && ( typeof(BrowserProxy.host) == 'object' )) {
                                       aErrorData['bp']=escape(BrowserProxy.Version);
                                       aErrorData['url']=escape(BrowserProxy.Host.Location);
                                       // if there was an url loaded, get that so we have some error context
                                       //
                                       if(!aErrorData['url']) {
                                               aErrorData['url']="unknown";
                                       }
                               }
                       } catch(ex) {
                               // browserproxy wasn't able to load.
                               //
                               aErrorData['bp']='failed';
                       }
                       try {
                               // calling object derived from JSObj - grab the object's OID.
                               if ( window_onerror.caller.oID ) {
                                       aErrorData['id']=escape( window_onerror.caller.oID );
                               }
                       } catch(ex) {
                       }
                       // append error message, scope, and line number (if available)
                       //
                       aErrorData['errorMessage']=escape(sMsg);
                       aErrorData['scope']=escape(sScope);
                       aErrorData['line']=nLine;
                       var ePage = "http://client.alexa.com/holiday/script/fatal.html?";
                       // cat the string together into a regular querystring
                       //
                       BrowserProxy.OutputDebugMessage("Script error occurred:");
                       for (i in aErrorData) {
                               sImage += sDelimeter+i+"="+aErrorData[i];
                               ePage+=sDelimeter+i+"="+aErrorData[i];
                               sDelimeter="&";
                               BrowserProxy.OutputDebugmessage(i + ": " + aErrorData[i] + "/n");
                       }
                       // fire a message back to log the error
                       //
                       oImage.src=sImage;
                       // if we were still loading, check for an update
                       //
                       if (g_bLoading) {
                               if (window.parent) {
                                       try {
                                               // block here, since we can't do much else
                                               window.parent.document.parentWindow.setTimeout("checkUpdate(true)",1);
                                       } catch(ex) {
                                               // no parent??
                                       }
                               }
                       }
                       // send user to fatal page.
                       location.href=ePage;
               } catch(ex) {}
               return true;
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--

       /* base objects - this rarely, if ever, changes. */
       function JSAll() {
               this.objects                                = new Object();
               this.last_error                                = new Array();
               this.unique                                        = new Unique();
               this.register                                = JSAll_register;
               this.clobberUID                                = JSAll_clobberUID;
               this.clobberGID                         = JSAll_clobberGID;
               function JSAll_register(oObject) {
                       if (!oObject) {
                               return '';
                       }
                       if (!this.objects[oObject.oType]) {
                               this.objects[oObject.oType]        = new Array();
                       }
                       regUID                                         = this.unique.get(oObject.oType);
                       if (oObject.oID!='') {
                               for (var si in this.objects) {
                                       for (var sObject in this.objects[si]) {
                                               if (this.objects[si][sObject].oID==oObject.oID) {
                                                       delete this.objects[si][sObject];
                                                       this.objects[si][regUID]=oObject;
                                               }
                                       }
                               }
                       }
                       oObject.oID                                                        = '';
                       this.objects[oObject.oType][regUID]=oObject;
                       return regUID;
               }
               function JSAll_clobberUID(oObject) {
                       for (var si in this.objects) {
                               for (var sObject in this.objects[si]) {
                                       if (this.objects[si][sObject]!=null) {
                                               if (this.objects[si][sObject].oID==oObject.oID) {
                                                       delete this.objects[si][sObject];
                                               }
                                       }
                               }
                       }
               }
               function JSAll_clobberGID(oObject) {
                       for (var si in this.objects) {
                               for (var sObject in this.objects[oObject.oType]) {
                                       this.clobberUID(oObject);
                               }
                       }
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function Unique() {
               var o = new Object();
               o.m_nVal                                         = new Number(0);
               o.m_nUnique                                 = Unique.nUnique++;
               o.get                                                 = Unique_get;
               return o;
               function Unique_get(sType) {
                       var myChar=0;
                       var rVal                                 = new String();
                       var newVal                                 = new String();
                       if (eval(sType + ".ID")) {
                               rVal                                 = eval(sType + ".ID");
                       } else {
                               for (i = 0; i 〈 sType.length; i++) {
                                       myChar                        = sType.charCodeAt(i)-65;
                                       newVal                         += myChar.toString(16);
                               }
                               if (newVal.length 〉 24) {
                                       newVal                         = newVal.substring(0,24);
                               }
                               rVal                                 = newVal;
                               eval(sType + ".ID = '" + rVal +"'");
                               rVal                                 += String(65+(this.m_nVal%26)).toString(16)+String(this.m_nUnique).toString(16)+"_"+String(this.m_nVal++).toString(16);
                       }
                       return rVal;
               }
       }
       Unique.nUnique = 1;
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--

       function JSObj() {
               this.oType                                        = new String("JSObj");
               this.oID                                        = new String();
               this.last_error                                = new String();
               this.create                                        = JSObj_create;
               this.destroy                                = JSObj_destroy;
               this.isRegistered                         = JSObj_isRegistered;
               function JSObj_create() {
                       this.oID                                 = jsAll.register(this);
               }
               function JSObj_destroy() {
                       jsAll.clobberUID(this);
               }
               function JSObj_isRegistered(sEvent) {
                       if (et) {
                               return et.check(sEvent,this);
                       }
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function XML()
       {
               var o = new JSObj();
               o.oType="XML";
               o.bIsXMLHTTP = false;
               try {
                       o._xmlobj = new ActiveXObject("Microsoft.XMLDOM");
               } catch (ex) {
                       try {
                               o._xmlobj = new ActiveXObject("Msxml2.DOMDocument");
                               o.bIsXMLHTTP = true;
                       } catch(ex) {
                       }
               } finally {
                       o.err = true;
               }
               if (o._xmlobj)
               {
                       o._xmlobj.validateOnParse = false;
                       o._xmlobj.resolveExternals = false;
                       o._xmlobj.preserveWhiteSpace = false;
               }
               o.selectSingleNode = XML_selectSingleNode;

               o.create();

               return o;
               function XML_selectSingleNode(sXPath)
               {
                       return this._xmlobj.selectSingleNode(sXPath);
               }
       }
       function aborted()
       {
               return;
       }
       //--〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function AlxXML()
       {
               var o = new XML();
               o.oType = "AlxXML";
               try {
                       o._bpxml = BrowserProxy.System.GetAlxXML();
                       o._bpxml.async = true;
               } catch(ex) {
               }
               o.create();
               o.load = AlxXML_load;
               o.ready = AlxXML_ready;
               o.abort = AlxXML_abort;
               o.readyImpl = AlxXML_readyImpl_virtual;
               o.setEventHandlers = AlxXML_setEventHandlers;
               o._destroy = o.destroy;
               o.destroy = AlxXML_destroy;
               return o;
               function AlxXML_destroy()
               {
                       if (this._bpxml)
                       {
                               this._bpxml.abort();
                               this._bpxml.OnReadyStateChange = aborted;
                       }
                       this._destroy();
               }
               function AlxXML_setEventHandlers()
               {
                       // spoof event handler
                       var sFName = this.oType+this.oID+"_onReadyStateChange";
                       eval("function "+sFName+"() { "+getObjRef(this)+".ready(); }");
                       this._bpxml.OnReadyStateChange = eval(sFName);
               }
               function AlxXML_readyImpl_virtual()
               {
                       return true;
               }

               function AlxXML_load(sUrl)
               {
                       this.m_bLoading = true;
                       this._bpxml.load(sUrl);
               }
               function AlxXML_ready()
               {
                       if (this._bpxml.ReadyState == 4)
                       {
                               this._xmlobj.loadXML(this._bpxml.XML);
                               if (this._parser)
                               {
                                       this._parser.destroy();
                                       this._parser = null;
                                      
                               }
                               this._parser = new XMLParser(this._xmlobj);
                               this.readyImpl();
                               return true;
                       }
               }
               function AlxXML_abort()
               {
                       this._bpxml.abort();
               }
       }
       //--〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function XMLParser(oXMLDOM) {
               var o                                                 = new JSObj();
               o.oType                                         = "XMLParser";
               o.XMLDOM                                         = oXMLDOM;
               o.get                                                 = XMLParser_get;
               o.transform                                 = XMLParser_transform;
               o.create();
               return o;
               function XMLParser_get(sXPath) {
                       var oNodeList                        = null;
                       var oNode                                = null;
                       var aReturn                         = new Array();
                       var oItems                                = null;
                       var oItem                                = null;
                       var oAttributes                        = null;
                       var oAttribute                        = null;
                       var nItems                                 = 0;
                       if ( !this.XMLDOM.parsed ) {
                               return null;
                       }
                       oNodeList                                 = this.XMLDOM.selectNodes(sXPath);
                       if ( oNodeList.length == 0 ) {
                               return '';
                       }
                       oItems                                         = new Enumerator(oNodeList);
                       for (oItems.moveFirst(); !oItems.atEnd(); oItems.moveNext()) {
                               oItem                                 = oItems.item();
                               if ( oItem.attributes ) {
                                       oAttributes         = new Enumerator(oItem.attributes);
                                       aReturn[nItems]        = new Object();
                                       for (oAttributes.moveFirst(); !oAttributes.atEnd(); oAttributes.moveNext()) {
                                               oAttribute         = oAttributes.item();
                                               aReturn[nItems][oAttribute.name.toLowerCase()] = oAttribute.value;
                                       }
                               } else {
                                       // $$$$ doesn't quite work.  In the case that text nodes also have attributes.
                                       return oItem.text;
                               }
                               nItems++;
                       }
                       return aReturn;
               }
               function XMLParser_transform(oStyleXMLDOM) {
                       if ( oStyleXMLDOM.xml == '' ) {
                               return '';
                       }
                       var sResult                         = this.XMLDOM.transformNode(oStyleXMLDOM);
                       return sResult;
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       var jsAll                                                 = new JSAll();
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function ConnectionDependentExec(sOkCmd, sErrCmd, nRetryCount, nRetryInterval) {
               var o                                                 = new JSObj();
               o.oType                                         = "ConnectionDependentExec";
               o.sCmd                                                 = sOkCmd;
               o.sErrCmd                                        = sErrCmd;
               o.retryCount                                 = nRetryCount;
               o.retryInterval                         = nRetryInterval;
               o.pTimeout                                         = null;
               o.bReady                                        = false;
              
               o.testConnect                                = ConnectionDependentExec_testConnect;
               o.onError                                         = ConnectionDependentExec_onError;
               o.onReadyStateChange                = ConnectionDependentExec_onReadyStateChange;
               o._destroy                                        = o.destroy;
               o.destroy                                         = ConnectionDependentExec_destroy;
               o.testFile                                        = TEST_CONNECT_FILE;
               o.create();
               return o;

               function ConnectionDependentExec_testConnect() {
                       // make a dummy request to the server.
                       this.oImage                         = new Image();
                       this.oImage.id                         = "img_"+this.oID;
                       this.oImage.onerror         = ConnectionDependentExec_onError;
                       this.oImage.onreadystatechange         = ConnectionDependentExec_onReadyStateChange;
                       this.oImage.src                 = this.testFile;
                      
               }
               function ConnectionDependentExec_onError() {
                       if (!this.oID) {
                               jsAll.objects.ConnectionDependentExec[String(this.id).replace("img_","")].onError();
                       } else {
                               if (this.retryCount != 0) {
                                       this.oImage         = null;
                                       this.pTimeout         = setTimeout("jsAll.objects.ConnectionDependentExec['"+this.oID+"'].testConnect()",this.retryInterval);
                                       this.retryCount        = this.retryCount-1;
                                       return true;
                               }
                               if (this.sErrCmd != "") {
                                       eval(this.sErrCmd);
                               }
                               this.bReady = true;
                               BrowserProxy.OutputDebugMessage("calling error condition/n");
                               return false;
                       }
               }

               function ConnectionDependentExec_onReadyStateChange() {
                       if ((!this.oID) && (this.readyState == "complete")) {
                               // $$$ pass to CDE native.
                               jsAll.objects.ConnectionDependentExec[String(this.id).replace("img_","")].onReadyStateChange();
                       } else {
                               if (this.pTimeout !== null) {
                                       ClearTimeout(this.pTimeout);
                               }
                               this.pTimeout                 = null;
                               if (this.sCmd != '') {
                                       eval(this.sCmd);
                               }
                               BrowserProxy.OutputDebugMessage("readystate complete./n");
                               this.bReady = true;
                       }
                      
               }

               function ConnectionDependentExec_destroy() {
                       this.oImage                         = null;
                       this._destroy();
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function ConnectionDependentExecEx(sCmd, sErrCmd, nRetryCount, nRetryInterval, sFilename)        {
               var o = new ConnectionDependentExec(sCmd, sErrCmd, nRetryCount, nRetryInterval);
               o.oType = "ConnectionDependentExecEx";
               o.testFile = sFilename;
               o.create();
               return o;
       }

       function BrandingCDE(sCallback)
       {
               var o = new ConnectionDependentExec("", "", 5, 5);
               o.sCmd = getObjRef(o)+".checkBranding()";
               o.sErrCmd = "void(0)";
               o.checkBranding = BrandingCDE_checkBranding;
               o.callback = sCallback;
               o.handleFeed = BrandingCDE_handleFeed;
               o.xml = null;
              
               return o;

               function BrandingCDE_checkBranding()
               {
                       this.xml = new AlxXML();
                       this.xml.setEventHandlers();
                       this.xml.readyImpl = BrandingCDE_ready;
                       this.xml.callback = this.callback;
                       this.xml.handleFeed = this.handleFeed;

                       this.xml.load("http://cgi.alexa.com/associates/cgi-bin/getassocinfo.cgi?amzn_id="+g_sAmznID);
               }
               function BrandingCDE_ready()
               {
                       this.handleFeed();
                       if (this.callback) {
                               eval(this.callback);
                       }
               }

               function BrandingCDE_handleFeed() {
                       // DevNotify: Scope change.. runs in this.xml scope of BrandingCDE prototype
                       try {
                               var sError = this._parser.get("/alexa/error/@type");
                               if (sError == "param") {
                                       // clear entries
                                       //
                                       var aKeys = new Array("amzn_name", "amzn_url", "partner_searchname", "partner_searchroot", "brand", "brandimgw", "brandDataReady");
                                       for (var i in aKeys) {
                                               BrowserProxy.System.SaveClientState(aKeys[i], "");
                                       }
                                       return;
                               } else if (sError == "mysql") {
                                       return;
                               }

                               var aData = this._parser.get("/alexa/assoc");
                               if (aData)
                               {
                                       if (aData[0])
                                       {
                                               aData = aData[0];
                                               var loc_amzn_id = BrowserProxy.System.ReadClientState("amzn_id");
                                               BrowserProxy.System.SaveClientState("amzn_id", ((aData['id']) ? unescape(aData['id']) : loc_amzn_id));
                                               BrowserProxy.System.SaveClientState("", ((aData['id']) ? unescape(aData['id']) : loc_amzn_id));
                                               BrowserProxy.System.SaveClientState("amzn_name", ((aData['name']) ? unescape(aData['name']) : ""));
                                               BrowserProxy.System.SaveClientState("amzn_url", ((aData['url']) ? unescape(aData['url']) : ""));
                                               BrowserProxy.System.SaveClientState("partner_searchname", ((aData['searchname']) ? unescape(aData['searchname']) : ""));
                                               BrowserProxy.System.SaveClientState("partner_searchprefix", ((aData['searchprefix']) ? unescape(aData['searchprefix']) : ""));
                                               BrowserProxy.System.SaveClientState("partner_searchroot", ((aData['searchroot']) ? unescape(aData['searchroot']) : ""));
                                               BrowserProxy.System.SaveClientState("brand", ((aData['brand'] == 0) ? "false" : "true"));
                                               BrowserProxy.System.SaveClientState("brandimgw", ((aData['width']) ? unescape(aData['width']) : ""));
                                               BrowserProxy.System.SaveClientState("brandDataReady", "true");
                                       }
                               }
                               return;
                       } catch (ex) {
                               blue();
                               dout("error: " + ex.message);
                       }
               }
       }

       function getObjRef(oObj)
       {
               var sType = oObj.oType;
               var sID = oObj.oID;
               return "jsAll.objects['"+sType+"']['"+sID+"']";
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       // support functions (global)
       var g_oUpdateXMLDom                         = null;
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function loadFrame(sSrc) {
               var oFrame                                         = document.all['ifTB'];
               oFrame.scrolling                         = "no";
               oFrame.frameborder                        = 0;
               document.all['ifTB'].src         = sSrc;
       }
       var g_bForce = false;
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function checkUpdate(bForce) {
              
               if (bForce) {
                       g_bForce = true;
               }
               dout("g_bForce == " + g_bForce);
               // confirm that BrowserProxy exists, make request and assign return method
               //
               g_oUpdateXMLDom                         = BrowserProxy.System.GetAlxXML();
               g_oUpdateXMLDom.async                = true;
               g_oUpdateXMLDom.validateonparse = false;
               g_oUpdateXMLDom.onReadyStateChange = checkUpdate_onReadyStateChange;
               var sCurrentBinVersion                 = BrowserProxy.Version;
               try {
                       var sCurrentResVersion        = BrowserProxy.ResourceVersion;
               } catch(ex) {
                       var sCurrentResVersion        = "";
               }
               if (bForce) {
                       var br = BrowserProxy.Update.RunUpdate("all","http://client.alexa.com/holiday/update/","","");
               } else {
                       dout("Update loading XML");
                       var sUrl = "http://client.alexa.com/holiday/update.xml?seed="+Math.floor((Math.random()*32768))+"&binver="+sCurrentBinVersion+"&resver="+sCurrentResVersion;

                       g_oUpdateXMLDom.load(sUrl);
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function checkUpdate_onReadyStateChange() {
               var sType ="";
               if (g_oUpdateXMLDom.readyState == 4) {
                       // parse update xml and figure out what to do.
                       var omsXMLDOM                         = new ActiveXObject("Microsoft.XMLDOM");
                       omsXMLDOM.loadXML(g_oUpdateXMLDom.xml);
                       dout("loaded XML " + g_oUpdateXMLDom.xml);
                       var oxpContainer                 = new XMLParser(omsXMLDOM);
                       // check for version string
                       var oUpdate                         = oxpContainer.get("/alexa/update/version");
                       if (oUpdate) {
                               if (g_bForce == true) {
                                       sType = "res";
                               }
                               var sRegVer         = BrowserProxy.ResourceVersion;
                               if (sRegVer != oxpContainer.get("/alexa/update/version/@script")) {
                                       sType                 = "res";
                               }
                               var sRegVer                = BrowserProxy.Version;
                               if (sRegVer != oxpContainer.get("/alexa/update/version/@binary")) {
                                       sType                 = "all";
                               }
                               if ((sType) && (sType != "")) {
                                       // get md5s to pass in
                                       var sScriptMD5         = oxpContainer.get("/alexa/update/version/@scriptmd5");
                                       var sBinaryMD5         = oxpContainer.get("/alexa/update/version/@binarymd5");
                                       var sUrl                 = "http://client.alexa.com/holiday/update/";
                                       var bResult         = BrowserProxy.Update.RunUpdate(sType,sUrl,sScriptMD5,sBinaryMD5);
                                       if (bResult == true) {
                                               var oRegKeys= oxpContainer.get("/alexa/update/version/registry/node");
                                               for (var si in oRegKeys) {
                                                       switch (oRegKeys['type']) {
                                                               case "add":
                                                                       BrowserProxy.System.SaveClientState(oRegKeys['valuename'],oRegKeys['valuevalue']);
                                                                       break;
                                                               case "remove":
                                                                       BrowserProxy.System.SaveClientState(oRegKeys['valuename'],"");
                                                                       break;
                                                       }
                                               }
                                       }
                               }
                       }
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function deferUpdate() {
               BrowserProxy.System.SaveClientState("lastupdate","0");
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function window_onload(nContinue) {
               switch (nContinue)
               {
                       case 0:
                               dout("Entering runlevel 0");
                               nContinue++;
                               // check for visibility
                               //
                               if (BrowserProxy.Visible == false)
                               {
                                       setTimeout("if (BrowserProxy.Visible == false) { window.location.href = 'about:blank'; }", 300);
                               }
                               // check for server connection
                               // assign src to iFrame from alxres
                               var bCheck                                         = false;
                               g_sAmznID = getReg(REG_AMZNID);
                               bInfoReady = (getReg(REG_ASSOCINFOREADY) == "false") || (getReg(REG_ASSOCINFOREADY) == "");
                               if ((g_sAmznID != "") && (bInfoReady))
                               {
                                       // goto runlevel 1
                               } else {
                                       if ((g_sAmznID != "") && (parseInt(new Date().getTime()) - getReg(REG_UPDATE_KEY) 〉= CHECK_UPDATE_INTERVAL)) {
                                               // check update - runlevel 1.
                                       } else {
                                               // skip runlevel 1,2
                                               nContinue+=2;
                                       }
                               }
                               window_onload(nContinue);
                               break;
                       case 1:
                               nContinue++;
                               dout("in  window_onload : 2");
                               // check brandimage
                               //
                               var nLastUpdate = getReg(REG_UPDATE_KEY);
                               nLastUpdate = (nLastUpdate == "") ? 0 : nLastUpdate;
                               if (parseInt(new Date().getTime()) -  nLastUpdate 〉= CHECK_UPDATE_INTERVAL) {
                                       brandReady();
                                       break;
                               }
                               var bImageOkay = BrowserProxy.Update.CheckBrandImage(g_sAmznID);
                               if (!bImageOkay) {
                                       brandReady();
                                       break;
                               }
                       case 2:
                               nContinue++;
                               dout("in  window_onload : 1");
                               // need to block on call to ocdeBrand.testConnect() so that the toolbar has a branded image to load
                               //
                               // have associate ID but no extended info.
                               //
                               g_bCheckedBrand = true;
                               var ocdeBrand                        = new BrandingCDE("window_onload(3)");
                               ocdeBrand.testConnect();
                               break;
                       case 3:
                               dout("in window_onload : 3");
                               var nTime                                         = new Date().getTime();
                               var nLastUpdate                         = getReg(REG_UPDATE_KEY);
                               if (nLastUpdate == "")
                               {
                                       BrowserProxy.System.SaveClientState(REG_UPDATE_KEY, nTime);       
                               }
                               nLastUpdate                                 = (nLastUpdate == "") ? nTime : nLastUpdate;
                               if ((nLastUpdate) && (nTime - nLastUpdate 〉= CHECK_UPDATE_INTERVAL)) {
                                       BrowserProxy.System.SaveClientState(REG_UPDATE_KEY,nTime);
                                       // non-blocking call into deferred update runner
                                       //
                                       setTimeout("window_onload_deferred(false)",20000);
                               }
                       case 4:
                               dout("in  window_onload : 4");
                               var bValid                                         = (BrowserProxy.Valid == 1);
                               var bToggleRemote                        = (getReg(REG_TOGGLE_REMOTE) == "true");
                               if (bValid) {
                                       if (!bToggleRemote) {
                                               // for debugging purposes, we can require a remote load
                                               // but in normal circumstances we've got a valid dll.  Proceed with local load.
                                               // and check for connection to Resource DLL
                                               loadLocal();
                                       }
                               }
                               if ((!bValid) || (bToggleRemote)) {
                                       // did not auth this time, so it may mean that we have an unclean resource DLL.
                                       // Load script from server and check for an update.
                                       loadRemote();
                               }
                               break;
               }
               return;
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function brandReady(ocdeBrand) {
               // check associate's ID
               BrowserProxy.Update.FetchBrandImage(g_sAmznID);
               //alert(g_sAmznID);
               window_onload(2);
       }

       function getObjectRef(oObj)
       {
               return "jsAll.objects."+oObj.oType+"['"+oObj.oID+"']";
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function loadLocal(bFound) {
               if (!bFound) {
                       var sCmd                                ="loadLocal(true);";
                       var sErrCmd                                ="loadRemote();";
                       var ocdeLoad                        = new ConnectionDependentExecEx(sCmd, sErrCmd,1,10, "res://AlxRes.dll/IMAGE/pixel.gif");
                       ocdeLoad.testConnect();
                       return true;
               }
               loadFrame(LOCAL_START_FILE);
               return true;
       }
       function loadRemote() {
               var sCmd                                         = "loadFrame('"+REMOTE_START_FILE+"')";
               var ocdeLoad                                 = new ConnectionDependentExec(sCmd,"err_failed()",5,20000);
               ocdeLoad.testConnect();
               // in every case where we load remote (except where bToggleRemote is set),
               // we have a bad resource dll.
               if (getReg(REG_TOGGLE_REMOTE) != "true") {
                       setTimeout("window_onload_deferred(true)",20000);
               }
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function window_onload_deferred(bForce) {
               var ocdeUpdate                                 = new ConnectionDependentExec("checkUpdate("+bForce+")","deferUpdate()",5,10000);
               ocdeUpdate.testConnect();
       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function err_failed() {

       }
       // --〉
       〈/script〉
       〈script language="Javascript" type="text/javascript"〉
       〈!--
       function window_onunload()
       {
               for (var si in jsAll.objects.JSObj)
               {
                       jsAll.objects.JSObj[si].destroy();
                       jsAll.objects.JSObj[si] = null;
                       delete jsAll.objects.JSObj[si];
               }
       }
       // --〉
       〈/script〉
〈/head〉

〈body οnlοad="window_onload(0);" οnunlοad="window_onunload();" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="border:0;margin:0;overflow:hidden;background-color:menu;"〉
       〈iframe name="ifTB" width="100%" height="100%" scrolling="no" border="0" topmargin="0" leftmargin="0" src="about:blank"        style="scrolling:no;border:0;margin:0;overflow:hidden;background-color:menu;"〉
       〈body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="border:0;margin:0;overflow:hidden;background-color:menu;"/〉
       〈/iframe〉
〈/body〉
〈/html〉[DISABLELBCODE]
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值