else uri = this.search.uri; if(!uri || !uri.host) return false; // re stitch the uri path and query elements to // use existing logic var path = uri.path + uri.delimiter + uri.query; // For Yahoo the host must match: // search.yahoo.com OR // xx.search.yahoo.com where xx country code OR // search.yahoo.co.xx OR // for Yahoo China: one.cn.yahoo.com & search.cn.yahoo.com if ((uri.host.indexOf("search.yahoo.co") != -1) || (uri.host.match(/^(search|one)(\.[a-z]{2}\.yahoo\.com)$/))) { if ((path.indexOf("search?") == 0) || (path.indexOf("search;") == 0) || (path.indexOf("s?p=") === 0)) { return true; } } return false;};searchshield.YahooSearchEngine.prototype.includeLink = function(tag){ var href = ""; var outHref = ""; var findStr = ""; // yahoo likes to encode the url href = unescape(tag.href); if ((tag.className.indexOf("yschttl") != -1) || (tag.className.indexOf("spt") != -1)) { var da = href.indexOf("**"); var ad = href.indexOf("*-"); if (da != -1) outHref = href.substring(da+2); else if (ad != -1) outHref = href.substring(ad+2); else outHref = href ; if (outHref.toLowerCase().indexOf("overture.") !== -1) return false; } else if ((tag.tagName) && (tag.tagName === "A") && (!tag.className)) { var tagParent = tag.parentNode; // if anchor without className then search parentNodes if ((tagParent) && (tagParent.tagName !== "EM") && (searchshield.getParentNodeByClassName("yst-web", tag, 4))) { // China Yahoo support outHref = href; } else if ((tagParent) && (tagParent.tagName === "H3") && (!!searchshield.getParentNodeById("WS2m",tag, 5))) { // Japan Yahoo support var da = href.indexOf("**"); if (da !== -1) outHref = href.substring(da+2); } else if ((tagParent) && (tagParent.className !== "c") && (tagParent.parentNode.id !== "fpn") && (!!searchshield.getParentNodeByClassName("ymc", tag, 7))) { // Korea Yahoo support - when not caught by yschttl var da = href.indexOf("**"); if (da !== -1) outHref = href.substring(da+2); } } else if (!this.onlyPrimaries) { findStr = "&yargs="; var yargs = href.indexOf(findStr); if (yargs != -1) { outHref = href.substring(yargs+findStr.length); // check for prefix if (outHref.indexOf("://") == -1) outHref = "http://" + outHref; // if inside an , probably a paypal link, don't include if (tag.parentNode && (tag.parentNode.tagName == "I")) return false; } } // filter domains // split the url based on '/' var parts = !!outHref ? outHref.split('/') : null; // Filter out domains that match any of the search engine's names if (!parts || !parts[2]) return false; var domain = parts[2]; if ((domain.indexOf("rdrjp.yahoo.com") != -1) || (domain.indexOf("rdrkrs.yahoo.com") != -1) || (domain.indexOf("rdrtpe.yahoo.com") != -1) || (domain.indexOf("rdrird.yahoo.com") != -1) || (domain.indexOf("rdrhk2.yahoo.com") != -1) || (domain.indexOf("rdrsg1.yahoo.com") != -1) || (domain.indexOf("rdrin2.yahoo.com") != -1) || (domain.indexOf("rdre1.yahoo.com") != -1) || (domain.indexOf("rdrw1.yahoo.com") != -1) ) { return false; } // set for yahoo to get parent node for image insertion var hash = searchshield.avgCallFunc(this.doc, 'GetHash', outHref); tag.setAttribute("id", "xplid_" + hash); return outHref;};/////////////// YAHOO SEARCH ENGINE ////////////////////////////// AVG YAHOO SEARCH ENGINE ///////////////searchshield.AVGYahooSearchEngine = function(search){ searchshield.SearchEngine.call(this, search); this.showCleanVerdicts = false;};searchshield.AVGYahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGYahooSearchEngine.prototype.constructor = searchshield.AVGYahooSearchEngine;searchshield.AVGYahooSearchEngine.prototype.name = "avgyahoo";searchshield.AVGYahooSearchEngine.prototype.validSearch = function(href){ var uri; if (typeof(this.search) === 'undefined' || null === this.search) uri = searchshield.parseLink(href); else uri = this.search.uri; if(!uri || !uri.host) return false; var domain= uri.host; //path may be 'avg/search' or 'search' var pathArray = uri.path.split("/"); var avg = pathArray[0]; // re stitch the uri path and query elements // to use existing logic var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1]; path += uri.delimiter + uri.query; // For AVG