!= -1) { var postPart = tag.href.substring(qPos+1); var dblAmp = postPart.indexOf("&&"); if (dblAmp != -1) { outHref = postPart.substring(0, dblAmp); return outHref; } } } else if (searchshield.DoesURLContain(tag.href, "r.msn.co")) { var element = tag; var parentNode = tag.parentNode; // top links - check for a CITE var spanElements = element.getElementsByTagName("CITE"); if ((spanElements != null) && (spanElements.length > 0)) { outHref = spanElements[0].innerHTML; // replace any nbsp's outHref = outHref.replace(" ", " "); // url is after the last space in the html, after the '-' var space_pos = outHref.lastIndexOf(" "); if (space_pos != -1) outHref = outHref.slice(space_pos + 1); outHref = searchshield.checkUrl(outHref); return outHref; } // side links if (element.lastChild != null) { outHref = element.lastChild.innerHTML; if ( outHref != null) { outHref = searchshield.checkUrl(outHref); return outHref; } } } else if (searchshield.DoesURLContain(tag.href, this.search.uri.host) || searchshield.DoesURLContain(tag.href, ".live.com") || searchshield.DoesURLContain(tag.href, "msn.") || searchshield.DoesURLContain(tag.href, "msnscache.com") || searchshield.DoesURLContain(tag.href, "advertising.microsoft.co") || searchshield.DoesURLContain(tag.href, "javascript:") || searchshield.DoesURLContain(tag.href, "go.microsoft.co") || searchshield.DoesURLContain(tag.href, "hotmail.co")) { // not a link return false; } else if (tag.id.toLowerCase() == "trademarks") { // don't link the trademark at the bottom of the page return false; } else { // include it return tag.href; }};/////////////// MSN SEARCH ENGINE ////////////////////////////// BING SEARCH ENGINE ///////////////searchshield.BingSearchEngine = function(search){ searchshield.SearchEngine.call(this, search);};searchshield.BingSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BingSearchEngine.prototype.constructor = searchshield.BingSearchEngine;searchshield.BingSearchEngine.prototype.name = "bing";searchshield.BingSearchEngine.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 hostMatch = false; var domain = uri.host; // re stitch the uri path and query elements to // use existing logic var path = uri.path + uri.delimiter + uri.query; // For bing the host must match: // www.bing.com or www.bing.net // xx.bing.com or xx.bing.net where xx is a country code // bing.com.xx where xx is a country code // bing.search.xxxx.net where xxxx may be something like daum if ((domain.indexOf("www.bing.com") !== -1) || (domain.indexOf("www.bing.net") !== -1) || (domain.indexOf("bing.net") !== -1)) { hostMatch = true; } else if ((domain.indexOf("bing.search.") !== -1) && (domain.indexOf(".net") === (domain.length-4))) { //bing.search.xxxx.net hostMatch = true; } else { // xx.bing.com or bing.com.xx var domainLen = domain.length; var tldPos = domain.indexOf(".bing.com"); if (tldPos > -1) { if ((domainLen - tldPos) == 9) hostMatch = true; } } if (hostMatch) { if (path.indexOf("search?") == 0) return true; } return false;};searchshield.BingSearchEngine.prototype.includeLink = function(tag){ var outHref = false; if (tag.tagName == 'IMG') { //no images return false; } if (tag.href.charAt(0) == '/') { //no relative links return false; } if (tag.id.toLowerCase() == "trademarks") { // don't link the trademark at the bottom of the page return false; } if ((tag.parentNode) && (tag.parentNode.id.toLowerCase() == "sc_stc")) { // don't verdict the social sites - our verdict doesn't fit return false; } else if (!!searchshield.getParentNodeByClassName("sw_t",tag,3)) { // no links in page header return false; } else if (searchshield.DoesURLContain(tag.href, "r.msn.co") || searchshield.DoesURLContain(tag.href, "overture.com")) { // france has r.msn.co and italy has overture.com sponsored links // with the link in CITE element var spanElements = null; // top links - check for a CITE spanElements = tag.getElementsByTagName("CITE"); if ((spanElements == null) || (spanElements.length <= 0)) { if (tag.parentNode && tag.parentNode.parentNode) spanElements = tag.parentNode.parentNode.getElementsByTagName("CITE");