Páginas

if (document.location.href.match( /.*(google|yahoo|bing|search\.seznam|baidu|search\.earthlink|search\.aol|ask|yandex|webhledani|shop\.ebay|digg|search\.avg|twitter|slashdot|facebook|myspace|mail\.google|gmail)\..+/ )) { // Initialize namespace, use existing context var searchshield = searchshield || {}; searchshield.VERISIGN_SPLIT_NOTEST = 0; searchshield.VERISIGN_SPLIT_TESTA = 1; searchshield.VERISIGN_SPLIT_TESTB = 2; // search monitors and processors searchshield.avgPageMonitor = { start: function(doc, processFrames) { searchshield.avgPageMonitor.stop(); if (searchshield.enabled) { searchshield.avgPageMonitor.process(doc, processFrames); searchshield.avgPageMonitor.timeoutID = window.setTimeout(function() { searchshield.avgPageMonitor.start(doc, processFrames) }, 1000); } else if (searchshield.enabled == null) { // shorter timeout to wait for the enabled flag to be set or not searchshield.avgPageMonitor.timeoutID = window.setTimeout(function() { searchshield.avgPageMonitor.start(doc, processFrames) }, 50); } }, process: function(doc, processFrames) { searchshield.avgProcessSearch(doc, processFrames); }, stop: function() { if (searchshield.avgPageMonitor.timeoutID) { window.clearTimeout(searchshield.avgPageMonitor.timeoutID); delete searchshield.avgPageMonitor.timeoutID; } } }; // called on an anchor click searchshield.blockClick = function(event) { // VeriSign A/B Split reporting - only for VerSign domains var avglsprocessed = $(event.currentTarget).attr("avglsprocessed"); if (avglsprocessed && avglsprocessed != -1) { var sPos = avglsprocessed.indexOf("S"); var hash = sPos ? avglsprocessed.substring(0, sPos) : null; var split = sPos ? avglsprocessed.substring(sPos+1) : null; if ((hash != null) && (split != null) && (split != searchshield.VERISIGN_SPLIT_NOTEST)) { // check updated verdict anchor for verisign domain var d = event.currentTarget.ownerDocument; if ($("#LXPLSS_" + hash + "U" + xplSearch.engine.SCORE_SS_VERISIGN).attr("id") != undefined) { this.plugin.RecordVSClick(hash, d.location.href); } } } var img = $(event.currentTarget).next().find("img[id^=XPLSS]")[0]; if (img) { if ($(img).attr("id")) { // parse the hash and the score after the 'U' var match = $(img).attr("id").match(/XPLSS_(\d+)U(\d+)/); if (match && (match.length >= 3)) { var score = match[2]; if ((score == xplSearch.engine.SCORE_SS_BLOCK) || (score == xplSearch.engine.SCORE_SS_EXPLOIT)) { this.block(event,match[1]); } } } } } searchshield.blockInlineClick = function(event) { var img = $(event.currentTarget).next().find("img[id^=avg_ls_image]")[0]; if (img) { if ($(img).attr("avgls")) { // parse the severity var match = $(img).attr("avgls").match(/S(\d+)/); if (match && (match.length >= 2)) { var score = parseInt(match[1])+1; // inline image severity is 0 based if ((score == xplSearch.engine.SCORE_SS_BLOCK) || (score == xplSearch.engine.SCORE_SS_EXPLOIT)) { this.block(event); } } } } } searchshield.block = function(event, hash) { if (!hash) hash = "0"; event.preventDefault(); event.stopPropagation(); window.stop(); // get the engine type var type = xplSearch.engine.name ? xplSearch.engine.name : ""; // get url if we have it var url = ""; if (event.currentTarget && event.currentTarget.href) url = event.currentTarget.href; // show the interstitial page, it will load the content itself window.location = getSearchShieldURL("content/interstitial-block.html")+"?"+hash+"T"+type+"U"+escape(url); } // init whether we are enabled or not, default is yes searchshield.enabled = null; // takes a function name and any number of arguments and sends to the background page searchshield.pluginRequest = function() { // must have at least two arguments, function and callback if (arguments.length < 2) return false; var request = {}; request.fn = arguments[0]; // create the args array request.args = []; for (var i = 1; i < (arguments.length-1); i++) request.args.push(arguments[i]); // send to background.html chrome.extension.sendRequest(request, arguments[arguments.length-1]); return true; } var xplSearch = null; // init flag for live phish check searchshield.needLivePhishCheck = false; searchshield.avgProcessSearch = function(doc, processFrames) { // doc may be about:Tabs or about:Blank if (!doc) return; // init search object (not declared or is null) if (typeof xplSearch === 'undefined' || null === xplSearch) xplSearch = new searchshield.Search(); // reset the links added flag xplSearch.new_links = false; xplSearch.doc = doc; xplSearch.href = xplSearch.doc.location.href; xplSearch.uri = parseLink(xplSearch.href); xplSearch.siteType = avg_ls_detect_site(xplSearch.href); if (xplSearch.engines == null) { // add all engines xplSearch.addEngine(new searchshield.GoogleSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.AVGGoogleSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.YahooSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.BingSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.MSNSearchEngine(xplSearch)); // MSN redirects to BING xplSearch.addEngine(new searchshield.BaiduSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.EarthlinkSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.AOLSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.AskSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.AltaVistaSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.YandexSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.SeznamSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.WebhledaniSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.eBaySearchEngine(xplSearch)); ///temp xplSearch.addEngine(new searchshield.DiggSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.SlashdotSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.TwitterSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.FacebookSearchEngine(xplSearch)); xplSearch.addEngine(new searchshield.GMailSearchEngine(xplSearch)); } // loop through all engines and find one that matches the search for (var i = 0; i < xplSearch.engines.length; i++) { if (xplSearch.engines[i].validSearch(xplSearch.href)) { xplSearch.engine = xplSearch.engines[i]; break; } } // start search monitor if (xplSearch.engine == null) { return null; } // set verdict display config xplSearch.engine.setRatingsConfig(doc); if (!this.plugin) { this.plugin = getPlugin(); } if ((this.plugin == null) || (this.plugin.checkMalsite == null)) { return null; } // initialize search xplSearch.searchHash = this.plugin.InitSearch(xplSearch.href); var linksFound = false; linksFound = searchshield.avgGetSearchLinks(doc); // process all frames var docFrames = $("iframe"); if (docFrames && xplSearch.engine.processFrames) { for (var j = 0; j < docFrames.length; j++) { var attr; var frameDoc; try { //attr = docFrames[j].frameElement.className; //frameDoc = docFrames[j].document; attr = docFrames[j].className; frameDoc = docFrames[j].contentDocument; } catch (err) { } //TODO: make frame processing an engine function or at least make exclusions an engine property // 'editable' frame it's probably a gmail reply //if (attr && (attr.indexOf("editable") != -1)) // continue; if (frameDoc) { //alert(String(frameDoc)); if (searchshield.avgGetSearchLinks(frameDoc)) { linksFound = true; } } } } // Start the phishing check threads if (searchshield.needLivePhishCheck) { // NOTE: Using xplSearch.searchHash doesn't work here sometimes because it is passed // as a double to npapi. var prevalence = (xplSearch.engine.type == 'inline') ? 0 : 1; this.plugin.getLivePhishResults(xplSearch.href, prevalence); searchshield.needLivePhishCheck = false; } // final prevalence call else if (linksFound && xplSearch.engine.type != 'inline') this.plugin.finalScanComplete(xplSearch.searchHash); return xplSearch.new_links; }; // Search constructor, created after DOMContentLoaded // Search constructor searchshield.Search = function() { this.doc = null; this.engine = null; this.engines = null; this.links = null; this.uri = null; this.searchHash = null; this.checkUrl = null; this.useLocalImgs = null; this.clockUrl = null; // create engine list (actually key/value object will be used) this.engineList = {}; this.href = null; this.new_links = false; }; searchshield.avgGetSearchLinks = function (doc, engine) { var linksFound = false; var isPhishing = false; // process each tag var alltags = doc.all ? doc.all : doc.getElementsByTagName("*"); for (var i = 0; i < alltags.length; i++) { // ignore links already processed if (alltags[i].getAttribute('avglsprocessed')) continue; if ((!alltags[i].href) || (alltags[i].href.charAt(0) == '#') || // in-page bookmark (alltags[i].href.indexOf("javascript") == 0)) continue; if (alltags[i].href && (alltags[i].href.indexOf("avgthreatlabs.com") != -1)) continue; // ignore verdicts if (alltags[i].id && (alltags[i].id.indexOf("XPLSS_") != -1)) continue; var href = xplSearch.engine.includeLink(alltags[i]); if ((href == null) || (href == false) || ((typeof href.length) === 'undefined') || (href.length < 1)) { continue; } // set flag that links were added linksFound = true; // else set it alltags[i].setAttribute("avglsprocessed", 1); // get the proper image isPhishing = this.plugin.checkMalsite(href, xplSearch.href); if (isPhishing) searchshield.needLivePhishCheck = true; // use the clock var image = "content/Icons/clock.gif"; // add to links var newNode = xplSearch.engine.search.addLink(alltags[i], href); // add a click handler to this element $(alltags[i]).click(function(event) { searchshield.blockClick(event); }); // else add image to the page xplSearch.engine.addImage(newNode, image, false, this.plugin.getHash(href)); xplSearch.new_links = true; } return linksFound; } // used to add a search engine to be considered in the search searchshield.Search.prototype.addEngine = function(engine) { if (this.engines == null) { this.engines = new Array(); } var index = this.engines.length; this.engines[index] = engine; }; searchshield.Search.prototype.addLink = function(inElement, inHref) { if (!this.links) this.links = new Array(); var newNode = { element: inElement, href: inHref, hash: null, search: this.searchHash }; this.links.push(newNode); this.new_links = true; return newNode; } function searchShieldEnabled() { var plugin = getPlugin(); if (!plugin) return false; return plugin.isSearchShieldEnabled(); } function initFlyover() { if (document.getElementById("XPLSS_Flyover")) return; // insert the flyover script into the head element var flyover_script = document.createElement("script"); flyover_script.setAttribute("src", getSearchShieldURL("content/flyover.js")); var head = document.getElementsByTagName("head")[0]; head.appendChild(flyover_script); // create a div to use for the flyover itself, hide for now var flyover_div = document.createElement("DIV"); flyover_div.setAttribute("ID", "XPLSS_Flyover"); flyover_div.style.position = "absolute"; flyover_div.style.zIndex = "10002"; document.body.appendChild(flyover_div); // create a layer for the image var trans_div = document.createElement("DIV"); trans_div.setAttribute("id", "XPLSS_Trans"); trans_div.style.position = "absolute"; trans_div.style.zIndex = "10000"; document.body.appendChild(trans_div); } function getPlugin() { if (this.plugin && this.plugin.checkMalsite) return this.plugin; else return document.getElementById("avgss-plugin"); } function initPlugin() { if (getPlugin()) return; var plugin = document.createElement("embed"); plugin.setAttribute("type", "application/avg-searchshield-plugin"); plugin.setAttribute("hidden", "yes"); plugin.setAttribute("id", "avgss-plugin"); document.body.appendChild(plugin); } function onContentLoaded(e) { // make background request whether we are enabled or not searchshield.pluginRequest("isSearchShieldEnabled", function (result) { searchshield.enabled = result.response; }); initFlyover(); initPlugin(); searchshield.avgPageMonitor.start(document, true); } window.addEventListener("DOMContentLoaded", onContentLoaded, false); }

Último Adeus: Mais de 500 mil pessoas ja se inscreveram para ir ao funeral de Michael Jackson.

O funeral do cantor Michael Jackson, que acontecerá na terça-feira (7) a partir das 10h de Los Angeles, também será transmitido ao vivo pela televisão nos Estados Unidos e ao redor do mundo. Somente 8.750 fãs com um acompanhante poderão estar presentes no funeral, no Staples Center, um grande evento organizado pela família Jackson para prestar uma última homenagem ao ídolo de gerações. Segundo fontes dos organizadores do evento, durante as primeiras sete horas, mais de 500 mil pessoas se registraram para participar do sorteio, uma média de 71 mil registros por hora