eBaySnipeMonkeyR

By mungushume Last update Nov 1, 2008 — Installed 444 times. Daily Installs: 0, 0, 6, 2, 1, 3, 4, 2, 2, 2, 4, 2, 2, 2, 2, 5, 1, 0, 0, 0, 0, 2, 3, 1, 0, 2, 3, 1, 0, 3, 1, 2

There are 5 previous versions of this script.

Add Syntax Highlighting (this will take a few seconds, probably freezing your browser while it works)

// ==UserScript==
// @author         mungushume
// @version        1.0.5
// @name           eBaySnipeMonkeyR
// @description    Adds AuctionSniper.com links to each item number (search lists, watch lists and item pages) in eBay for easy sniping.
// @namespace      http://www.monkeyr.com
// @include        http://*.ebay.tld/*
// @include        http://www.auctionsniper.com/snipeit/snipeit.aspx?item=*
// @include        http://www.auctionsniper.com/watches/AddWatch.aspx?item=*
// @scriptsource   http://userscripts.org/scripts/show/36231
/* StartHistory

v1.0.5 - 01 Nov 2008
 - Feature: Added the ability to add auctionsniper watches to items by holding
 the shift key down whilst clicking on a snipe link.
 - Feature: Added the ability to add auctionsniper watches to items by adding
 an "Add watch" link on the auctionsniper "snipe it now" window.
  As requested by David Kaspar

v1.0.4 - 30 Oct 2008
 - Bug fix: Stopped the update bar loading in auctionsniper iframes when an 
 update is available. Not major but irritating!

v1.0.3 - 30 Oct 2008
 - Feature: Added more info about the snipe in the title text (hover text) of 
 each sniper icon. Max bid and bid group (if its in one)

v1.0.2 - 30 Oct 2008
 - Bug fix: Added the snipe icon to the item page when using eBay.com (rather
 than being specific for my localisation). Should be ok now. let me know.
  Thanks for the heads up Bruce Edge!)
 - Feature: Changed the the links of each of your previous snipes to take you
 to a more specific page on auctionsniper.
 - Feature: Changed the way snipe icons load so your links are there quicker.

v1.0.1 - 29 Oct 2008
 - Auto update test.

v1.0 - 29 Oct 2008
 - Initial Release

EndHistory */ 
// ==/UserScript==

document.getElementByXPath = function(XPath, contextNode)
{
    var a = this.evaluate(XPath, (contextNode || this), null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    return (a.snapshotLength ? a.snapshotItem(0) : null);
};

document.getElementsByXPath = function(XPath, contextNode)
{
    var ret=[], i=0;
    var a = this.evaluate(XPath, (contextNode || this), null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    while(a.snapshotItem(i))
    {
        ret.push(a.snapshotItem(i++));
    }
    return ret;
};

Function.prototype.bind = function(object)
{
    var __method = this;
    return function()
    {
        __method.apply(object, arguments);
    }
};

String.prototype.repeat = function(l)
{
    return new Array(l+1).join(this);
};

String.prototype.retNum = function()
{
    return (isNaN(this) ? 0 : (+this));
}; 

String.prototype.trim = function () 
{
    return this.replace(/^\s+|\s+$/g, '');
};

var O = {

    scriptName: "eBaySnipeMonkeyR",
    scriptVersion:"1.0.5",
    scriptId:"36231",

    init : function()
    {
        var pageType = this.determineCurrentPageType();
        this.processPage(pageType);
    },
 
    determineCurrentPageType : function()
    {
        var pageType = null;
        if (window.location.href.toLowerCase().indexOf("auctionsniper.com/snipeit") != -1)
        {
            pageType = "sniper";
        }
        else if (window.location.href.toLowerCase().indexOf("auctionsniper.com/watches") != -1)
        {
            pageType = "watch";
        }
        else if (window.location.href.toLowerCase().indexOf("ebay") != -1)
        {
            pageType = "ebay";
        }
        return pageType;
    },

    processPage: function(pageType)
    {
        if (pageType !== null)
        {
            var pageProcessor = pageType + "PageProcessor";
            if (typeof(this[pageProcessor]) == "function")
            {
                this[pageType + "PageProcessor"]();
            }
        }
    },
		
    sniperPageProcessor : function()
    {
        var el = document.getElementById("pnl_SnipeForm") || document.getElementById("pnl_SnipePlaced");
        if(el)
        {
            el.width = "";
            el.align = "center";
            el.style.backgroundColor = "#FFF";
        }
        var fnt = document.getElementByXPath("//a[@id='mySnipes_lnk']/parent::u/parent::font");
        if (fnt)
        {
            var fnt2 = fnt.cloneNode(true);
            var lnk = document.getElementByXPath(".//a[@id='mySnipes_lnk']", fnt2);
            lnk.id = "myWatches_lnk"
            lnk.target = "_self";
            lnk.href = "../watches/AddWatch.aspx?" + window.location.href.match(/item=\d+/);
            lnk.innerHTML = "Add Watch";
            fnt.parentNode.insertBefore(fnt2, this._nextObject(fnt, 2));
        }
    },
    
    watchPageProcessor : function()
    { 
        var form = document.getElementById("Form1");
        if(form)
        {
            var tab = document.createElement("table");
            var tr = document.createElement("tr");
            var td = document.createElement("td");
            form.parentNode.appendChild(tab);
            tab.appendChild(tr);
            tr.appendChild(td);
            td.appendChild(form);
            td.width = "450px";
            tab.align = "center";
            tab.cellPadding = "10";
            tab.style.backgroundColor = "#FFF";
        }
    },    
    
    ebayPageProcessor : function()
    {        
        var that = this;
        var els1 = document.getElementsByXPath("//span[@class='g-vxs']/text()/parent::span");
        els1.forEach(function(el){that.addAuctionSniperLink(el)});

        var els2 = document.getElementsByXPath("//span[@class='v']/text()/parent::span")
        els2.forEach(function(el){that.addAuctionSniperLink(el)});

        var els3 = document.getElementsByXPath("//td[@class='c_ItemID']/div/text()/parent::div")
        els3.forEach(function(el){that.addAuctionSniperLink(el)});

        var els4 = document.getElementsByXPath("//table[@class='itemDetails']//td[contains(text(), 'Item number')]/following-sibling::td");
        els4.forEach(function(el){that.addAuctionSniperLink(el)});

        var els5 = document.getElementsByXPath("//table//td[contains(text(), 'Item number: ')]");
        els5.forEach(function(el){that.addAuctionSniperLink(el)});

        if ( els1.length || els2.length || els3.length || els4.length || els5.length )
        {
            var postUrl = "";
            var date = new Date();
            date.setDate(date.getDate()-30);
            postUrl += "http://www.auctionsniper.com/mysnipes.aspx?customSearch=yes&keywds=&in=item&folder=0&status=-2147483648";
            postUrl += "&fMonth="+ date.getMonth() +"&fDay="+ date.getDate() +"&fYear="+ date.getFullYear() +"&tMonth=&tDay=&tYear=";
            this.postUrl = postUrl;
            
            this.checkForSnipe();
        }
    },
    
    checkForSnipe : function()
    {
        var that = this;
        //GM_log(this.postUrl);
        GM_xmlhttpRequest({
            method : "GET",
            url : this.postUrl,//+"?"+Math.random(),
            headers : {
                'User-agent' : 'Mozilla/4.0 (compatible) Greasemonkey',
                'Accept' : 'application/atom+xml,application/xml,text/xml'
            },
            onload : function(xhr) { that.checkForSnipeHandler(xhr.responseText).bind(that); }
        }); 
    },   

    checkForSnipeHandler : function(txt)
    {
        //GM_log(txt);
        var sniper = document.body.appendChild(document.createElement('div'));
        sniper.style.display = "none";
        sniper.innerHTML = txt;
        
        var sids = [], bgs = [];
        var itemIds = document.getElementsByXPath(".//a[contains(@href, 'ViewItem&item=') and contains(@href, text())]/text()/parent::a", sniper);
        var maxs = document.getElementsByXPath(".//span[contains(@id, '_maxWithCurrency_lbl')]", sniper);
        var statuss = document.getElementsByXPath(".//a[contains(@id, '_dlSnipeStatus_lnk')]//font", sniper);
        if (!this._compArr(itemIds.length, statuss.length, maxs.length))
        {
            GM_log("Scrape from AS brought back dif lengths (itemIds="+itemIds.length +" statuss="+ statuss.length +" maxs="+ maxs.length +")");
            return;
        }
    	//GM_log("itemIds"+itemIds.length);
    	//GM_log("statuss"+statuss.length);
        for (var i = 0; i < itemIds.length; i++)
        {
            //GM_log(itemIds[i].innerHTML +" "+statuss[i].innerHTML);
            sids.push(this._parentByTag(statuss[i], "a").href.match(/sid=(\d+)/)[1]); //items sid
            bgs.push(this._previousObject(this._parentByTag(statuss[i], "td")).textContent.trim()); //items bid group
            itemIds[i] = itemIds[i].textContent; //eBay item id
            maxs[i] = maxs[i].textContent; //max bid
            statuss[i] = statuss[i].textContent; //snipe status
    	}
        sniper.parentNode.removeChild(sniper);
        
    	var links = document.getElementsByXPath(".//a[@snipe_item]");
        //GM_log(links.length);
        for ( var j=0, link; link = links[j]; j++ ) 
        {
            for ( var k=0, itemId, status, sid, max, bg; (itemId = itemIds[k]) && (max = maxs[k]) && (status = statuss[k]) && (sid = sids[k]) && (bg = bgs[k]) ; k++ ) 
            {
                if ( link.getAttribute('snipe_item') == itemId )
                {
                    var icon = null;
                    if (link.hasChildNodes()) //replace link and change image (auction still active)
                    {
                        var aNew = document.createElement("a");
                        aNew.setAttribute("snipe_item", itemId);
                        icon = aNew.appendChild(link.firstChild);
                        link.parentNode.appendChild(aNew);
                        link.parentNode.removeChild(link);
                        link = aNew;
                    }
                    else //edit link and add image (has ended)
                    {
                        icon = document.createElement("img");
                        icon.border = "0";
                        icon.align = "top";
                        link.appendChild(icon);
                    }
                    
                    link.title = status + ", " + max + ((bg.toLowerCase() == "my snipes") ? "" : ", " + bg);                    
                    link.target = "_blank";

                    switch(status)
                    {
                      case "Ready":
                          link.href = "http://www.auctionsniper.com/editmultisnipes.aspx?sids=" + sid;
                          icon.src = this.RES.SNIPER_GOOD_GIF;
                          break;
                      case "Success":
                          link.href = "http://www.auctionsniper.com/mysnipes.aspx";
                          icon.src = this.RES.SNIPER_GOOD_GIF;
                          break;
                      case "You Won!":
                          link.href = this.postUrl;
                          icon.src = this.RES.SNIPER_GOOD_GIF;
                          break;
                      default:
                          link.href = this.postUrl;
                          icon.src = this.RES.SNIPER_BAD_GIF;
                          break;

                    }
                    //GM_log("oooooo "+itemId);
                }
            }
        }
    },

    addAuctionSniperLink : function(el)
    {
        var tr = this._parentByTag(el, "tr");
        var ended = document.getElementByXPath(".//p[@class = 'g-asm' and contains(text(), 'Ended')] | .//td[@class='c_TimeLeft']/div[contains(text(), 'Ended')]", tr);
        ended = ended || document.getElementByXPath(".//td[@class='vi-is-lblp' and contains(text(), 'Ended')]");
        
        var itemId = el.textContent;
        itemId = itemId.match(/\d+/g, ""); //keep only numbers
        var snipeLink = document.createElement("a");
        snipeLink.href = "#";
        snipeLink.setAttribute("snipe_item", itemId);
        
        if ( !ended ) 
        {
            snipeLink.addEventListener("click", this.snipeIt(itemId), false);
            snipeLink.title = "Snipe this auction on AuctionSniper.com";
            var img = document.createElement("img");
            img.src = this.RES.SNIPER_NORM_GIF;
            img.border = "0";
            img.align = "top";
            snipeLink.appendChild(img);
        }

        var nobr = document.createElement("nobr");
        var childs = document.getElementsByXPath("./text()", el);
        childs.forEach(function(child)
        {
            nobr.appendChild(child);
        });
        nobr.appendChild(document.createTextNode(" "));
        nobr.appendChild(snipeLink);
        el.innerHTML = "";
        el.appendChild(nobr);
    },

    snipeIt : function(itemId)
    {
        var that = this;
        return function(e)
        {
            var shift = false;
            if (e)
            {
                shift = e.shiftKey;
                e.preventDefault();
                e.stopPropagation();
            }
            var snipeUrl = "http://www.auctionsniper.com/"+( shift ? "watches/AddWatch" : "snipeit/snipeit" )+".aspx?item=" + itemId;
            //var snipeUrl = "http://www.auctionsniper.com/watches/AddWatch.aspx?item=" + itemId;
            that.sniperShow(snipeUrl);
            
        }.bind(this);
    },
    
    closeShowLoadHandler : function()
    {
        this.close.contentDocument.getElementById("close").addEventListener("click", this.hide.bind(this), false);
    },
    
    sniperShow : function(snipeUrl)
    {
        this._loadBlocker();

        var sniper = document.createElement("iframe");
        this.sniper = sniper;

        document.body.appendChild(sniper);

        sniper.id = "sniper_iframe";
        sniper.name = "sniper_iframe";
        with(sniper.style)
        {
            position = "fixed";
            top = "15%";
            left = "0px";
            right = "0px";
            border = "none";
            height = "100%";
            width = "100%";
            overflow = "hidden";
            zIndex = "1000";
        }
        sniper.src = snipeUrl;
        this._loadClose();
        
    },

    _loadClose : function()
    {
        var close = document.createElement("iframe");
        close.addEventListener("load", this.closeShowLoadHandler.bind(this), false);
        this.close = close;

        document.body.appendChild(close);

        close.id = "close_iframe";
        close.name = "close_iframe";
        with(close.style)
        {
            position = "fixed";
            top = "15%";
            left = "0px";
            right = "0px";
            border = "none";
            height = "30px";
            width = "100%";
            overflow = "hidden";
            zIndex = "1001";
        }
        close.src = this.RES.CLOSE_HTML;
    },
    
    _loadBlocker : function()
    {
        if (this.blocker==null)
        {
            var blocker = document.createElement("div");
            this.blocker = blocker;
            blocker.id = "sniper_blocker";
            with(blocker.style)
            {
                position = "fixed";
                top = "0px";
                right = "0px";
                bottom = "0px";
                left = "0px";
                backgroundColor = "#000";
                opacity = "0.2";
                zIndex = "999";
            }
            document.body.appendChild(blocker);	
        }
    },
    
    _compArr : function(a)
    {
        for (var i=0; i<a.length; i++)
        {
            for (var j=i; j<a.length; j++)
            {
                if(a[i] != a[j]) return false;		
            }	
        }
        return true;
    },
    
    _parentByTag : function(el, tag)
    {
        do el = el.parentNode;
        while(el && el.tagName.toLowerCase() != tag.toLowerCase())
        return el;
    },
    
    _previousObject : function(el, num) 
    {
        num = num || 1;
        do el = el.previousSibling;
        while (el && (el.nodeType != 1 || --num > 0) );
        return el;
    },
 
    _nextObject : function(el, num) 
    {
        num = num || 1;
        do el = el.nextSibling;
        while (el && (el.nodeType != 1 || --num > 0));
        return el;
    },
 
    hide : function()
    {
        if(this.sniper) document.body.removeChild(this.sniper);
        if(this.close)document.body.removeChild(this.close);
        if(this.blocker)document.body.removeChild(this.blocker);
        this.sniper = null;
        this.close = null;
        this.blocker = null;
        
        this.checkForSnipe();
    }    
};

O.UI =
    {   
    _loadBlocker: function()
    {
        if (this.blocker==null)
        {
            var blocker = document.createElement("div");
            this.blocker = blocker;
            blocker.id = "uil_blocker";
            with(blocker.style)
            {
                position = "fixed";
                top = "0px";
                right = "0px";
                bottom = "0px";
                left = "0px";
                backgroundColor = "#000";
                opacity = "0.5";
                zIndex = "10000";
            }
            document.body.appendChild(blocker);	
        }
    },
	
    updateScript: function(e)
    {
        if (e)
        {
            e.preventDefault();
            e.stopPropagation();
        }

        this._loadBlocker();

        try{
            window.location.replace("http://userscripts.org/scripts/source/"+ O.scriptId +".user.js");
        }
        catch(e)
        {}
        if(this.prefs)document.body.removeChild(this.prefs);
        if(this.history)document.body.removeChild(this.history);
        GM_setValue('skipVersion', 0);
        setTimeout(this.refreshShow.bind(this),4000);

    },

    refreshShow: function()
    {
        var refresh = document.createElement("iframe");
        this.refresh = refresh;
        refresh.addEventListener("load", this.refreshDocumentLoadHandler.bind(this), false);
        document.body.appendChild(refresh);
        with(refresh.style)
        {
            position = "fixed";
            top = "20%";
            left = "0px";
            right = "0px";
            border = "none";
            height = "100%";
            width = "100%";
            overflow = "hidden";
            zIndex = "10001";
        }
        refresh.src = O.RES.REFRESH_HTML;
    },
    
    refreshDocumentLoadHandler: function()
    {
        this.refresh.contentDocument.getElementById("scriptName").innerHTML=O.scriptName;
    },
	
    hide: function()
    {
        if(this.history) document.body.removeChild(this.history);
        if(this.blocker)document.body.removeChild(this.blocker);
        this.history = null;
        this.prefs = null;
        this.blocker = null;
    },
    	
    getURL: function(address, cb)
    {
        GM_xmlhttpRequest({
            method:"GET",
            url:address,//+"?"+Math.random(),
            onload:function(xhr) { cb(xhr.responseText); }
        });
    },
	
    updateCheckRequest: function()
    {		
        var lastCheck = GM_getValue('lastCheck', 0);
        if (this._currentTime() > (lastCheck + 86400)) //24 hours after last check
        { 
            GM_setValue('delayUpdate', false);
            this.getURL("http://userscripts.org/scripts/source/"+O.scriptId+".meta.js", this.updateTestOnPage.bind(this));
        }
        else
        {
            this.onSiteVersion = GM_getValue('onSiteVersion', 0);
            var delayUpdate = GM_getValue('delayUpdate', false);			
            var skipVersion = GM_getValue('skipVersion', 0);
            if ( this.versionCompare(O.scriptVersion, this.onSiteVersion) )
            {
                if ( this.versionCompare(skipVersion, this.onSiteVersion) && !delayUpdate )
                {
                    this.updateMessageShow();
                }
            }
        }
    },
	
    updateTestOnPage: function(text)
    {
        var skipVersion = GM_getValue('skipVersion', 0);

        var onSiteVersion = text.match(/\/\/\s*@version\s*(\d.*)/);
        this.onSiteVersion = (onSiteVersion===null) ? 0 : onSiteVersion[1];
        GM_setValue('onSiteVersion', this.onSiteVersion);
		
        var updateHistory = text.substring(text.search(/\/\*.*StartHistory/im));
        updateHistory = updateHistory.substring(0, updateHistory.search(/EndHistory.*\*\//im))
        GM_setValue('onSiteVersionHistory', encodeURI(updateHistory));

        if ( this.versionCompare(O.scriptVersion, this.onSiteVersion) )
        {
            if ( this.versionCompare(skipVersion, this.onSiteVersion) )
            {
                this.updateMessageShow();
            }
    	}
    	GM_setValue('lastCheck', this._currentTime());
    },	
	
	
    versionCompare: function(ver1, ver2)
    {
        var maxVersionPartTest = 5;
        var ver1Arr = (ver1+('.0'.repeat(maxVersionPartTest))).split(".",maxVersionPartTest);
        var ver2Arr = (ver2+('.0'.repeat(maxVersionPartTest))).split(".",maxVersionPartTest);
        
        //GM_log(ver1Arr.join(',') + ' - ' +ver2Arr.join(','));
        
        for(var i=0; i<maxVersionPartTest; i++)
        {
            //GM_log(ver1Arr[i].retNum() +' '+ ver2Arr[i].retNum());
            if( ver1Arr[i].retNum() < ver2Arr[i].retNum() )
            {
                break;
            }
            else if( ver1Arr[i].retNum() > ver2Arr[i].retNum() )
            {
                i = maxVersionPartTest
                break;
            }
        }
        return (i<maxVersionPartTest);
    },
	
    updateMessageShow: function()
    {
        this._addStyle("@namespace url(http://www.w3.org/1999/xhtml); .gbh{display: none !important;} #gm_update_alert {margin: 10px; background-color: #E5ECF9; text-align: center; -moz-border-radius: 5px} #gm_update_alert a:visited {color: #0000CC !important} #gm_update_alert p {padding: 5px}");
        var div = document.createElement("div");
        div.id = 'gm_update_alert';
        var p = document.createElement("p");
        var sn = document.createElement("strong");
        sn.innerHTML = O.scriptName+"&nbsp;";
        var sep = document.createElement("span");
        sep.innerHTML = "&nbsp;&nbsp;-&nbsp;&nbsp;";
        p.appendChild(sn);
        p.appendChild(document.createTextNode(" update available v"+this.onSiteVersion+" (current v"+O.scriptVersion+")"));
        p.appendChild(sep.cloneNode(true));
        p.appendChild(this.createLinkControl("Ignore for 24 hours", this.updateDelay.bind(this)));
        p.appendChild(sep.cloneNode(true));
        p.appendChild(this.createLinkControl("Wait for next version", this.updateSkip.bind(this)));
        p.appendChild(sep.cloneNode(true));
        var a = document.createElement("a"); 
        a.target = "_blank";
        a.href = "http://userscripts.org/scripts/show/"+O.scriptId;
        a.innerHTML = "Script homepage";
        p.appendChild(a);
        p.appendChild(sep.cloneNode(true));
        p.appendChild(this.createLinkControl("What's new", this.historyShow.bind(this)));
        p.appendChild(sep.cloneNode(true));
        p.appendChild(this.createLinkControl("Update", this.updateScript.bind(this)));
        div.appendChild(p);
        document.body.insertBefore(div, document.body.firstChild);
        this.updateMessage = div
    },

    updateMessageHide: function()
    {
        if(this.updateMessage)document.body.removeChild(this.updateMessage);
        this.updateMessage = null;
    },
	
    updateDelay: function(e)
    {
        if (e)
        {
            e.preventDefault();
            e.stopPropagation();
        }
        GM_setValue('delayUpdate', true);
        alert("You will not be reminded about this update again for 24 hours.");
        this.updateMessageHide();
    },
	
    updateSkip: function(e)
    {
        if (e)
        {
            e.preventDefault();
            e.stopPropagation();
        }
        GM_setValue('skipVersion', this.onSiteVersion);
        alert("You will not be reminded again until the next new version is released.");
        this.updateMessageHide();
    },
	
    _currentTime: function()
    {
        var d = new Date();
        return Math.round(d.getTime() / 1000); // Unix time in seconds
    },

    historyShow: function(e)
    {
        if (e)
        {
            e.preventDefault();
            e.stopPropagation();
        }
        
        this._loadBlocker();
        if(this.prefs)document.body.removeChild(this.prefs);
        this.prefs = null;

        var history = document.createElement("iframe");
        history.addEventListener("load", this.historyDocumentLoadHandler.bind(this), false);
        this.history = history;

        document.body.appendChild(history);

        history.id = "uil_history";
        history.name = "uil_history";
        with(history.style)
        {
            position = "fixed";
            top = "5%";
            left = "0px";
            right = "0px";
            border = "none";
            height = "100%";
            width = "100%";
            overflow = "hidden";
            zIndex = "10001";
        }
        history.src = O.RES.HISTORY_HTML;
    },

    historyDocumentLoadHandler: function()
    {
        this.history.contentDocument.getElementById("version").innerHTML=O.scriptVersion;
        this.history.contentDocument.getElementById("scriptName").innerHTML=O.scriptName;

        var form = this.history.contentDocument.forms.namedItem("history");

        // Set up form state
        form.elements.namedItem("history_text").innerHTML = decodeURI(GM_getValue('onSiteVersionHistory', ''));
	    
        // Set up event handlers
        form.elements.namedItem("install_button").addEventListener("click", this.updateScript.bind(this), false);
        form.elements.namedItem("close_button").addEventListener("click", this.hide.bind(this), false);
                
    },
    
    _addStyle: function(css)
    {
        if (typeof GM_addStyle != "undefined") {
            GM_addStyle(css);
        } else if (typeof addStyle != "undefined") {
            addStyle(css);
        } else {
            var heads = document.getElementsByTagName("head");
            if (heads.length > 0) {
                var node = document.createElement("style");
                node.type = "text/css";
                node.innerHTML = css;
                heads[0].appendChild(node); 
            }
        }
    },
    
    createLinkControl: function(name, handler)
    {
        var a = document.createElement("a");
        a.href = "#";
        a.appendChild(document.createTextNode(name));
        a.addEventListener("click", handler, false);
        return a;
    }
};

O.RES = 
{
    SNIPER_NORM_GIF : "data:image/gif;base64,R0lGODlhEAAQAJEAAISChMTCxGSazPz%2B%2FCH5BAAAAAAALAAAAAAQABAAAAJJnBegG%2BfagEny"+
        "1QGaUYcbAQgWcg2gIHaJhpzp5n3uiy32fQcNOgs6deCFeBOIDNNKQSQBFNLke0I0lV%2BmcyldLZIMheWg2ByDAgA7",
    
    SNIPER_GOOD_GIF : "data:image/gif;base64,R0lGODlhEAAQAJEAAISChMTCxEXmK%2Fz%2B%2FCH5BAAAAAAALAAAAAAQABAAAAJJnBegG%2BfagE"+
        "ny1QGaUYcbAQgWcg2gIHaJhpzp5n3uiy32fQcNOgs6deCFeBOIDNNKQSQBFNLke0I0lV%2BmcyldLZIMheWg2ByDAgA7",
    
    SNIPER_BAD_GIF : "data:image/gif;base64,R0lGODlhEAAQAJEAAISChMTCxOYrLPz%2B%2FCH5BAAAAAAALAAAAAAQABAAAAJJnBegG%2BfagEny"+
        "1QGaUYcbAQgWcg2gIHaJhpzp5n3uiy32fQcNOgs6deCFeBOIDNNKQSQBFNLke0I0lV%2BmcyldLZIMheWg2ByDAgA7",

    CLOSE_HTML : "data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJh"+
        "bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0K"+
        "PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ%2BDQo8bWV0YSBodHRwLWVxdWl2PSJDb2"+
        "50ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIiAvPg0KPC9oZWFkPg0KPGJvZHk%2BDQo8"+
        "dGFibGUgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPg0KPHRyPg0KPHRk"+
        "IHdpZHRoPSI0NTAiIGFsaWduPSJyaWdodCI%2BDQo8YSBpZD0iY2xvc2UiIGhyZWY9IiMiIHRpdGxlPSIgY2xvc2UgdGhlIHNuaX"+
        "BlciB3aW5kb3cgIj4NCjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1"+
        "VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOCUyRjloQUFBRENrbEVRVlI0MnFXVGEyZ2NWUlRIZnpPN3M3dlpSOGhMVFZOSW1xWXhiWk"+
        "50UXpYV3hsYSUyRlZEOW9vU0NsQ1BwQnJDRldLMG9LclZSYUs0ckZoa3BiV2lLVWZvb0VLaTJLaVElMkZvQXlScTNLSXRacTB4SV"+
        "dtUzNUdzIyZDNNYnZZeE96TzdzMDRIRkV2OVZBOWNMZ2Z1JTJGWjE3JTJGdmQlMkZCUDVuQ1A5T0xrTkZFbHBzc0ZPRVZnUEtORE"+
        "IwODV5NTV4TXdiSzZCV2ZqbXZKbmZCUmlDN1VYbzl0U1Z0N3JYTmlFOTlBQjJ0NHVDcWxGSXAxSGxKUkx6Y1VLelM4eG50TSUyQn"+
        "pJbnNPcVZyYUFud0JwU3NsZmxuZHNhdXhzdU0xV0p5Q2tXRnlDMUdRazJpSlpmU1VnaWdJcUdxQjc0TmhSdVhNQyUyQiUyQnB5Z1"+
        "VMMEFlUCUyQnh1cWhsb3U5RUxnQ3VHdnYwVnclMkJ2Qmw0OHhFVlp5U0E2ZVNRU2d0dzFOWlFUQVVJM0E3Y3ZaQWNubWZCZmdLam"+
        "pRJTJGOThUN3ExJTJGWnpmU1owMFRibnFlcFl3JTJGVGg3c1FObTZoOXFsMjRxZTZzWVVuOGRSVU14RkpFQmdKRGI0Wmw1JTJCME"+
        "FBUFE3MyUyRngyUjBySHE1aE5uQ1RxcE9mNFcxY1N5RVJ3eWFhVWpvazlOOSUyRkkzS3dDM2Q1S1hPSkxJUEIyMk52TE1hYkxFQS"+
        "UyRjNIejAxWjJ0SllLTyUyRmtlUXVSWE50SnpyUlN6YzBWN0RNSjhmT2Z3dSUyQmtnUTM3cEdGaGNUWEwweHB1JTJCTHlRNExjQW"+
        "xTN1M4OTQzVXBhYWFDNDBndnYwN3ozazVRRlJPUXA1Qk5tJTJCMGNRWmdhcDJKZEExTXpNYTc5JTJCaWRkY2xMNFc4VHh6VTglMk"+
        "YwdURSc3NUaUdXcDd6dVBidElIaWZBUWpyMlB6ZWpBUVdUcDdFa2Q0Z2x2VFVRYUh4ME1IazZrNkMzRE85TkNtNXRydE5aVSUyQm"+
        "NsR1o0bm8lMkZLJTJGZnZKOWJUUTY1Z3NPcjR4eFJEazJUNkx5SkVvJTJGeDRmWVRBYVBpSG8ycHVtd1U0QVoxcktueWZ0dm5yem"+
        "U5ellCaDNoSE5pNUZSTFFHOTdPJTJGWmNDakdkSWphOXdIZlhiekd6SUIlMkY3d01nZnNnRGQ4S0Jia242dXI2NnNiMWhWamJmTW"+
        "E5NlhFRjB1Qkx2TmRLT0NWaFJKeW1sdWpJV1puSXRtVlZYZDhDRk0lMkZHUGxUMFQ3WTRKa08xSGlLZGxhVmVyQjdYVmhkemdvRk"+
        "lzb21vYThyTENVeXFCa2NpRkR6NzkxRk9QTGU0YnBIVERsWXJkb2w5NjJPeDElMkJxN3JaanE3bmwlMkZXYzlwT0IwV2ZPeTdXUF"+
        "lQWSUyRnAlMkZGJTJCNGklMkJEdzFNZ2htRWg5Z0FBQUFCSlJVNUVya0pnZ2clM0QlM0QiIC8%2BPC9hPjwvdGQ%2BDQo8L3RyPg"+
        "0KPC90YWJsZT4NCjwvYm9keT4NCjwvaHRtbD4%3D",
    
    HISTORY_HTML: "data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO"+
        "IiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI%2BDQo8aHRtbD48aGVhZD4NCjxtZXRhIGh0dHAtZXF1aX"+
        "Y9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjxtZXRhIG5hbWU9IkF1dGhvciIgY2"+
        "9udGVudD0ibXVuZ3VzaHVtZSI%2BDQo8bWV0YSBuYW1lPSJDb3B5cmlnaHQiIGNvbnRlbnQ9IsKpIDIwMDcsIE1vbmtleVIuY29t"+
        "Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmFsQXV0aG9yIiBjb250ZW50PSJKb25hdGhhbiBCdWNoYW5hbiI%2BDQo8bWV0YSBuYW1lPS"+
        "JPcmlnaW5hbENvcHlyaWdodCIgY29udGVudD0iwqkgMjAwNiwgSm9uYXRoYW4gQnVjaGFuYW4iPg0KPHN0eWxlIHR5cGU9InRleH"+
        "QvY3NzIj4NCmJvZHkgeyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MTJweDsgZm9udC1mYW1pbHk6Ikx1Y2lkYSBHcm"+
        "FuZGUiLCJCaXRzdHJlYW0gVmVyYSBTYW5zIixWZXJkYW5hLEFyaWFsLHNhbnMtc2VyaWY7IGNvbG9yOiMzMzM7IHdpZHRoOiA2OD"+
        "ZweDsgbWFyZ2luOiAwIGF1dG87IH0NCi5tb2R1bGUgeyBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOiA1cH"+
        "g7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH0NCi5tb2R1bGUgaDIsIC5tb2R1bGUgY2FwdGlvbiB7IG1hcmdpbjogMDsgcGFkZG"+
        "luZzogMnB4IDVweCAzcHggNXB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBiYWNrZ3JvdW5kOiAjQ0NDQ0"+
        "NDIHVybCgiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBV0FNUUFBTWpLeXNYSHg5JTJGaDRjJTJGUjBlUGw1Y2JJeU"+
        "5QVjFjM1B6JTJCZnA2ZDdoNGU3dzhPdnQ3Y3ZOemRmWjJlSGo0OXZkM2ZEeThnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU"+
        "FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFCQUJZQUFBVVNJQ1FxQzBJSVQzTUVCY0FNUn"+
        "ZNa2poTUNBRHMlM0QiKSB0b3AgbGVmdCByZXBlYXQteDsgY29sb3I6ICM2NjY2NjY7IGJvcmRlci1ib3R0b206IDA7IH0NCi5mb3"+
        "JtLXJvdyB7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6IDhweCA4cHg7IGZvbnQtc2l6ZTogMTFweDsgYm9yZGVyLWJvdHRvbT"+
        "ogMXB4IHNvbGlkICNlZWU7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7IH0NCi5mb3JtLXJvdyBpbWcsIC5mb3JtLXJvdy"+
        "BpbnB1dCB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0NCmlucHV0LmJ0biB7CXBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Oy"+
        "Bjb2xvcjogIzk5OTk5OTsgYmFja2dyb3VuZC1jb2xvcjogV2hpdGU7IGZvbnQtd2VpZ2h0OiBib2xkOyBib3JkZXI6IHNvbGlkID"+
        "FweCAjQ0NDQ0NDOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCmlucHV0LmJ0bjpob3ZlciB7CXBhZGRpbmc6IDFweCAxMXB4IDFweC"+
        "AxMXB4OyBjb2xvcjogIzMzMzMzMzsgYm9yZGVyLWNvbG9yOiAjNjY2NjY2OyB9DQphIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG"+
        "9yOiAjOTk5OTk5OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgfQ0KYTpob3ZlciB7CWZvbnQtd2VpZ2"+
        "h0OiBib2xkOyBjb2xvcjogIzMzMzMzMzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQo8L3N0eWxlPg0KPC9oZWFkPjxib2R5IG"+
        "9uTG9hZD0iIj4NCjxmb3JtIG5hbWU9Imhpc3RvcnkiIGlkPSJoaXN0b3J5IiBjbGFzcz0iYWxpZ25lZCI%2BDQogIDxkaXYgY2xh"+
        "c3M9Im1vZHVsZSIgaWQ9InJvb3QiPg0KDQogICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5n"+
        "PSIwIiB3aWR0aD0iMTAwJSI%2BDQogICAgICA8dGJvZHk%2BPHRyPg0KICAgICAgICA8dGQ%2BPGgyPjxzcGFuIGlkPSJzY3JpcH"+
        "ROYW1lIj5zY3JpcHROYW1lPC9zcGFuPiA6OiB2PHNwYW4gaWQ9InZlcnNpb24iPjEuMC4wPC9zcGFuPiA6OiBoaXN0b3J5PC9oMj"+
        "48L3RkPg0KICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48aDI%2BPGEgaHJlZj0iaHR0cDovL3d3dy5tb25rZXlyLmNvbS8iIHRh"+
        "cmdldD0iX3RvcCI%2BTW9ua2V5Ui5jb208L2E%2BPC9oMj48L3RkPg0KICAgICAgPC90cj4NCiAgICA8L3Rib2R5PjwvdGFibGU%"+
        "2BDQogICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPg0KICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgPHRleHRhcm"+
        "VhIGlkPSJoaXN0b3J5X3RleHQiIG5hbWU9Imhpc3RvcnlfdGV4dCIgY29scz0iODAiIHJvd3M9IjE1Ij4mbmJzcDs8L3RleHRhcm"+
        "VhPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY%2BDQogIDxkaXYgY2xhc3M9Im1vZHVsZSI%2BDQogICAgPH"+
        "RhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSI%2BDQogICAgICA8dGJv"+
        "ZHk%2BPHRyIGhlaWdodD0iMzAiPg0KICAgICAgICA8dGQgd2lkdGg9IjUxNCIgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIj"+
        "4mbmJzcDs8L3RkPg0KICAgICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiIHdpZHRoPSI4NSI%2BPGlucHV0"+
        "IHZhbHVlPSJJbnN0YWxsIiBuYW1lPSJpbnN0YWxsX2J1dHRvbiIgaWQ9Imluc3RhbGxfYnV0dG9uIiBjbGFzcz0iYnRuIiB0eXBl"+
        "PSJidXR0b24iPg0KICAgICAgICA8L3RkPg0KICAgICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiIHdpZHRo"+
        "PSI4NSI%2BPGlucHV0IHZhbHVlPSJDbG9zZSIgbmFtZT0iY2xvc2VfYnV0dG9uIiBpZD0iY2xvc2VfYnV0dG9uIiBjbGFzcz0iYn"+
        "RuIiB0eXBlPSJidXR0b24iPg0KICAgICAgICA8L3RkPg0KICAgICAgPC90cj4NCiAgICA8L3Rib2R5PjwvdGFibGU%2BDQogIDwv"+
        "ZGl2Pg0KPC9mb3JtPg0KPC9ib2R5PjwvaHRtbD4%3D",

    REFRESH_HTML: "data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO"+
        "IiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI%2BDQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPkdvb2dsZU"+
        "1vbmtleVIgVXBkYXRlPC90aXRsZT4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOy"+
        "BjaGFyc2V0PVVURi04Ij4NCjxtZXRhIG5hbWU9IkF1dGhvciIgY29udGVudD0ibXVuZ3VzaHVtZSI%2BDQo8bWV0YSBuYW1lPSJD"+
        "b3B5cmlnaHQiIGNvbnRlbnQ9IsKpIDIwMDcsIE1vbmtleVIuY29tIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BDQpib2R5IH"+
        "sgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZm9udC1zaXplOjEycHg7IGZvbnQtZmFtaWx5OiJMdWNpZGEgR3JhbmRlIiwiQml0c3RyZW"+
        "FtIFZlcmEgU2FucyIsVmVyZGFuYSxBcmlhbCxzYW5zLXNlcmlmOyBjb2xvcjojMzMzOyB3aWR0aDogMzAwcHg7IG1hcmdpbjogMC"+
        "BhdXRvOyB9DQoubW9kdWxlIHsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgbWFyZ2luLWJvdHRvbTogNXB4OyBiYWNrZ3JvdW5kLW"+
        "NvbG9yOiAjZmZmOyB9DQoubW9kdWxlIGgyIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAycHggNXB4IDNweCA1cHg7IGZvbnQtc2l6ZT"+
        "ogMTFweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQ6ICNDQ0NDQ0MgdXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUj"+
        "BsR09EbGhBUUFXQU1RQUFNakt5c1hIeDklMkZoNGMlMkZSMGVQbDVjYkl5TlBWMWMzUHolMkJmcDZkN2g0ZTd3OE92dDdjdk56ZG"+
        "ZaMmVIajQ5dmQzZkR5OGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU"+
        "NINUJBQUFBQUFBTEFBQUFBQUJBQllBQUFVU0lDUXFDMElJVDNNRUJjQU1Sdk1ramhNQ0FEcyUzRCIpIHRvcCBsZWZ0IHJlcGVhdC"+
        "14OyBjb2xvcjogIzY2NjY2NjsgYm9yZGVyLWJvdHRvbTogMDsgfQ0KLmZvcm0tcm93IHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZG"+
        "luZzogMTJweCAxMnB4OyBmb250LXNpemU6IDExcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyBib3JkZXItcmlnaH"+
        "Q6IDFweCBzb2xpZCAjZWVlOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHRleHQtYWxpZ246Y2VudGVyOyB9DQppbnB1dC5idG4gew"+
        "lwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsgY29sb3I6ICM5OTk5OTk7IGJhY2tncm91bmQtY29sb3I6IFdoaXRlOyBmb250LX"+
        "dlaWdodDogYm9sZDsgYm9yZGVyOiBzb2xpZCAxcHggI0NDQ0NDQzsgdGV4dC1hbGlnbjogY2VudGVyOyB9DQppbnB1dC5idG46aG"+
        "92ZXIgewlwYWRkaW5nOiAxcHggMTFweCAxcHggMTFweDsgY29sb3I6ICMzMzMzMzM7IGJvcmRlci1jb2xvcjogIzY2NjY2NjsgfQ"+
        "0KYSB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogIzk5OTk5OTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjdXJzb3I6IHBvaW"+
        "50ZXI7IH0NCmE6aG92ZXIgewlmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMzMzMzMzM7IHRleHQtZGVjb3JhdGlvbjogbm9uZT"+
        "sgfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IG9uTG9hZD0iIj4NCjxmb3JtIG5hbWU9InVwZGF0ZSIgaWQ9InVwZGF0ZSIgY2"+
        "xhc3M9ImFsaWduZWQiPg0KICA8ZGl2IGNsYXNzPSJtb2R1bGUiPg0KICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIi"+
        "BjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPg0KDQogICAgICA8dHI%2BDQogICAgICAgIDx0ZD48aDI%2BPHNwYW4gaW"+
        "Q9InNjcmlwdE5hbWUiPnNjcmlwdE5hbWU8L3NwYW4%2BPC9oMj48L3RkPg0KICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48aDI%"+
        "2BPGEgaHJlZj0iaHR0cDovL3d3dy5tb25rZXlyLmNvbSIgdGFyZ2V0PSJfdG9wIj5Nb25rZXlSLmNvbTwvYT48L2gyPjwvdGQ%2B"+
        "DQogICAgICA8L3RyPg0KICAgIDwvdGFibGU%2BDQogICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPg0KCTx0YWJsZSB3aWR0aD0iMT"+
        "AwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPg0KCTx0cj48dGQgaGVpZ2h0PSI0MCIgYWxpZ2"+
        "49ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlJlZnJlc2ggeW91ciBicm93c2VyIHRvIGNvbnRpbnVlLjwvdGQ%2BPC90cj4NCg0K"+
        "CTx0cj48dGQgaGVpZ2h0PSI0MCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxpbnB1dCBuYW1lPSJidXR0b24iIHR5"+
        "cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biIgb25DbGljaz0iamF2YXNjcmlwdDp0b3AubG9jYXRpb24ucmVwbGFjZSh0b3AubG9jYXRp"+
        "b24pIiB2YWx1ZT0iUmVmcmVzaCI%2BPC90ZD48L3RyPg0KCTwvdGFibGU%2BPC9kaXY%2BDQogIDwvZGl2Pg0KPC9mb3JtPg0KPC"+
        "9ib2R5Pg0KPC9odG1sPg%3D%3D"
}
if (window.location.href.toLowerCase().indexOf("auctionsniper.com") == -1)
{
    O.UI.updateCheckRequest();
}
O.init();