-
-
-
{{item.Color.Name}}
- {{item.Name}}
0)avglsflyover.hide(null, 1);var phishLinks = [];for (var i=0; i 0){var prev = '1';if ( engine.type == 'inline' )prev = '0';searchshield.avgCallFunc(doc, 'GetPhishingResults', prev);}else if (links.length > 0 && engine.type != 'inline'){searchshield.avgCallFunc(doc, 'FinalScanComplete');}},stop: function(){if (searchshield.avgSearchMonitor.timeoutID){window.clearTimeout(searchshield.avgSearchMonitor.timeoutID);delete searchshield.avgSearchMonitor.timeoutID;}}};searchshield.avgProcessSearch = function (doc){// doc may be about:Tabs or about:Blankif (!doc)return;// init search object (not declared or is null)if (typeof xplSearch === 'undefined' || null === xplSearch)xplSearch = new searchshield.Search();xplSearch.doc = doc;xplSearch.href = xplSearch.doc.location.href;xplSearch.uri = searchshield.parseLink(xplSearch.href);if (!searchshield.clockUrl)searchshield.clockUrl = searchshield.avgCallFunc(doc, 'GetIconUrl', '0');xplSearch.clockUrl = searchshield.clockUrlif (!xplSearch.engines){var aEng = xplSearch.getSearchNames();var aEngLen = aEng.length;for (var i=0; i -1) ? avglschecked.substring(0, sPos) : null;var split = (sPos > -1) ? avglschecked.substring(sPos+1) : null;if (hash && split && split != searchshield.VERISIGN_SPLIT_NOTEST){// check updated verdict anchor for verisign domainvar d = event.srcElement.ownerDocument;if (d.getElementById("LXPLSS_" + hash + "U" + searchshield.SCORE_SS_VERISIGN)){searchshield.avgCallFunc(d, "RecordVSClick", hash, d.location.href);}}}var link = anchor.href;var verdict = searchshield.getAvgImage(anchor);var score = -1;var img_id = '';if (verdict != null){score = verdict.score;img_id = verdict.rawId;}// show popup alert (upper left)if ((score >= searchshield.SCORE_SS_CAUTION) && (score ]+>)','g');var strStr = new String(str);if (!!strStr)return strStr.replace(re, '');elsereturn str;};// Browser functionssearchshield.containedIn = function (container, element){while (element != null) {if (container == element) {return true;}element = element.parentNode;}return false;};searchshield.elementSize = function (element){//returns an array [sizeX, sizeY]var elemX;var elemY;elemX = parseInt(element.offsetWidth);elemY = parseInt(element.offsetHeight)return [elemX, elemY];};searchshield.GetFullBoundingRect = function (element){if (!element) return;// get bounding rect for incoming elementvar elementRect = element.getBoundingClientRect();var nextImg = null;var nextImgRect = null;// first check for another non-TextNode element after this onevar siblingElement = searchshield.NextSiblingNode(element);if ( siblingElement && siblingElement.firstChild && siblingElement.id && siblingElement.id.indexOf("XPLSS_") != -1){nextImg = siblingElement.firstChild; nextImgRect = nextImg.getBoundingClientRect(); }else{return elementRect;}if ((nextImgRect.top >= elementRect.bottom) && (nextImgRect.left -1)return true;return false;};searchshield.FilterUrl = function (url, filter){if (!url || (url.length = 3)){return parts[2].toLowerCase();}}return url;};searchshield.getUrlContents = function (url) {if (url == null)return null;// don't query if local urlif (url.indexOf("linkscanner://") != -1)return null;try {req = new XMLHttpRequest();req.open("GET", url, false);req.send(null);if (req.status == 200)return req.responseText;elsereturn null;} catch (err){// nothing to doreturn null;}};searchshield.parseLink = function (href, simpleMode){var uri = {};var parameter = {complex: {pattern: /^(?:([a-z]+):(?:([a-z]*):)?//)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+.)+[a-z]{2,})(?::(d+))?(?:([^:?#]+))?(?:?([^#]+))?(?:#([^s]+))?$/i,element: ['source','scheme','subscheme','user','pass','host','port','path','query','fragment']},simple: {pattern: /^(?:([a-z]+)://)?((?:[a-z0-9_-]+.)+[a-z]{2,})(?:/)([^:?]+)?(?:([?|#])([^?]+))?$/i,element: ['source','scheme','host','path','delimiter','query']}};var mode = simpleMode !== false ? 'simple' : 'complex';var pattern = parameter[mode].pattern;var element = parameter[mode].element;if (!href)return uri;var matches = href.match(pattern);if (matches){// --------------------// iterate over the matches array and populate uri properties// using the respective element parameter as the name.// NOTE: set raw property type as String to make inArray()// work properly with instanceof.// --------------------for (var i=0; i -1)){return;}// mark search result anchor so it isn't processed repeatedlyif (score == undefined)element.setAttribute("avglschecked", hash + "S" + this.VeriSignSplit);// create a new imagevar img = doc.createElement('img');img.src = image;img.id = "XPLSS_" + hash;img.style.borderStyle = "none";img.style.margin = "0 3px";// for IE, specify these style attributes to prevent inadvertent inheritance from parentif (img.width && img.height){img.style.width = img.width + 'px';img.style.height = img.height + 'px';}// apply custom element stylesthis.updateElementStyle(img, this.addImageStyle);// create the link element var anchor = doc.createElement("A");anchor.setAttribute("id", "LXPLSS_" + hash);if ((hidden != null) && (hidden == true)){ // hiding the parent will also hide its child nodesanchor.style.display = "none";}// Default anchor styles//Over-ride possible border style with inline declarationanchor.style.borderStyle = "none";// apply custom element stylesthis.updateElementStyle(anchor, this.addAnchorStyle);if (score == searchshield.SCORE_SS_VERISIGN){anchor.style.textDecoration = "none";anchor.style.background = "none";}// append the image to the linkanchor.appendChild(img);// insert the node as either a sibling or a childif (insertNode != null)parentNode.insertBefore(anchor, insertNode);elseparentNode.appendChild(anchor);return anchor;};searchshield.SearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){var updated = false;var frameDoc = this.search.doc;var docFrames = frameDoc.frames;var frameElem;if (docFrames && this.processFrames){for (var i=0; i anchor->containerNodes...while (cN && maxLoop--){if (cN.tagName == "DIV" || cN.tagName == "SPAN"){// get object height depending on ie document modevar clientHeight = (cN.clientHeight == 0 || (this.search.doc.documentMode && this.search.doc.documentMode eH)eH = reduceBy;var newDim = Math.ceil(eH*element.height);element.height = newDim;element.width = newDim;element.style.height = newDim + "px";element.style.width = newDim + "px";}}catch(e){}}// set default style attributeselement.style.display = "";// if verisign icon showing move our icon up for better centering of the 2// except for IE7 browser - it does not like this styletry {var ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);if (alt_image && (alt_image.length > 0) && ieVersion != 7)element.style.verticalAlign = "10%";}catch(err){};// apply custom element stylesthis.updateElementStyle(element, this.updateImageStyle)// update the click thruvar link = this.search.doc.getElementById("L" + hash);if (link){link.href = click_thru;link.id = link.id + "U" + score;}updated = true;// add the alternate image if supplied BUT not on avg yahooif ((alt_image) && (alt_image.length > 0) && (!this.omitAltImage) &&(this.VeriSignSplit != searchshield.VERISIGN_SPLIT_TESTB)){var vhash = hash.substring(hash.indexOf("_")+1);// create a temporary link nodevar tmp_node = {element: element.parentNode,href: altClick_thru,hash: vhash + "VU" + score,search: this.searchHash,score: score};var altAnchor = this.addImage(tmp_node, alt_image, false);if (altAnchor && altAnchor.firstChild){altAnchor.firstChild.setAttribute("onmouseover", "");altAnchor.href = altClick_thru;}}}if (updated != false){this.resizeFrame(frameElem);return true;}return false;};searchshield.SearchEngine.prototype.updateElementStyle = function (element, elementStyle){if (elementStyle){ // a NULL attribte value will unset itfor(attr in elementStyle){try {if (element.style.setAttribute)element.style.setAttribute(attr, elementStyle[attr]);elseelement.style[attr] = elementStyle[attr];} catch(err){}}}};searchshield.SearchEngine.prototype.resizeFrame = function (frameElem){ // resize frame to prevent unwanted scrolling after inserting verdicts// ignore inline and non-frame enginesif ((this.type == 'inline') || (!this.processFrames))return;// ensure all required elements are availableif ((frameElem == null) || (frameElem.style == null) || (frameElem.contentWindow == null))return;// if frame is scrolling vertically then resizevar frameHeight = parseInt(frameElem.style.height, 10);if (!isNaN(frameHeight) && (frameHeight = 5){ //if set to default then get config valueif (this.showCleanVerdicts === true)this.showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;if (this.showLowRiskVerdicts === true)this.showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;if (this.showMedRiskVerdicts === true)this.showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;this.VeriSignSplit = (parseInt(parts[4]));}return true;};searchshield.SearchEngine.prototype.init_inline_ratings = function (doc){if ((doc == null) || (doc.getElementById("XPLSS_InlineFlyover")))return;// create the popup boxvar box = doc.createElement("DIV");try {box.setAttribute("id", "XPLSS_InlineFlyover");box.style.visibility = "hidden";box.style.left = "-5000px";box.style.position = "absolute";box.style.zIndex = "9999";box.style.padding = "0px 0px";box.style.marginLeft = "0px";box.style.marginTop = "0px";box.style.overflow = "hidden";box.style.wordWrap = "break-word";box.style.color = "black";box.style.fontSize = "10px";box.style.textAlign = "left";box.style.lineHeight = "130%";doc.body.appendChild(box);box = null;}catch(boxErr){}};searchshield.SearchEngine.prototype.show_inline_ratings = function (doc, node, image){ var href = node.href;var anchor = node.element;if ((href == null) || (href.length 0 ){imageElem.setAttribute("title", "");imageElem.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html)});imageElem.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});}}};// add the image to the pagesearchshield.SearchEngine.prototype.add_inline_image = function (doc, anchor, nSeverity, aRisk, blShortUrl){if (anchor == null || anchor.parentNode == null)return null;// get the proper insertion point for the imagevar insertNode = anchor.nextSibling;while ((insertNode != null) && (insertNode.tagName != null) && (insertNode.tagName == "SPAN")){insertNode= insertNode.nextSibling;}// see if we already have an image anchorif ((insertNode != null) && (insertNode.id != null) && (insertNode.id == "avg_ls_anch")){return null;}var html = '';var image = this.inline.clockImage; if (aRisk != null && nSeverity != null){var riskCategory = aRisk[1];var riskName = aRisk[2];var bgColor = this.inline.color.background[nSeverity];var borderColor = this.inline.color.border[nSeverity];image = this.inline.image[nSeverity];var blUrl;if (blShortUrl){var aRiskName = riskName.split(':');var sUrl = searchshield.checkUrl(aRiskName[1]);blUrl = {};blUrl.riskNameLabel = aRiskName[0] + ': ';blUrl.riskCategory = riskCategory;blUrl.bgColor = bgColor;blUrl.borderColor = borderColor;blUrl.sUrl = sUrl;}else{html = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);}}doc = anchor.ownerDocument;var img = doc.createElement("img");img.src = image;img.setAttribute("id","avg_ls_image");img.style.width = "12px";img.style.border = "none";img.style.padding = "0 3px";img.style.margin = "0";img.style.display = "inline";if ((html && html.length > 0) || (blUrl != undefined)){img.setAttribute("title", "");img.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, blUrl)});img.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});}// create the link element var newAnchor = doc.createElement("A");newAnchor.setAttribute("id", "avg_ls_anch");newAnchor.appendChild(img);img = null;// insert the node as either a sibling or a childif (insertNode != null)anchor.parentNode.insertBefore(newAnchor, insertNode);elseanchor.parentNode.appendChild(newAnchor); return newAnchor; };//////////////// SEARCH ENGINE /////////////////////////////// GOOGLE SEARCH ENGINE ///////////////searchshield.GoogleSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.onlyPrimaries = false;};searchshield.GoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GoogleSearchEngine.prototype.constructor = searchshield.GoogleSearchEngine;searchshield.GoogleSearchEngine.prototype.name = "google"; // the name by which the search engine is known (always lowercase)searchshield.GoogleSearchEngine.prototype.validSearch = function(href) {var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = 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 logicvar path = uri.path + uri.delimiter + uri.query;// Domains valid for google searches, must start with '.'var valid_domains = new Array(".google.co", ".mozilla.co");// For Google the host must match:// .google.com OR// .google.co.XX where XX is a country code// .google.XX where XX is a country code// Where any subdomain can come before the top level domainvar domLen = valid_domains.length;for (var i = 0; i -1){if (domain.charAt(tldPos + valid_domain_len) == 'm')hostMatch = true;else if ((domain.charAt(tldPos + valid_domain_len) == '.') && ((domainLen - tldPos) == valid_domain_len+3))hostMatch = true;}else{// get the form .google. to check the length ofvar dot_pos = valid_domains[i].indexOf(".",1);var valid_short_name = valid_domains[i].substring(0, dot_pos+1);tldPos = domain.indexOf(valid_short_name);if ((tldPos > -1) && ((domainLen - tldPos) == valid_domain_len))hostMatch = true;}if (hostMatch){// replace beginning of domain with www.google since links will refer back to itif ((i > 0) && (tldPos > -1)){var last_dot = domain.indexOf(".",tldPos+1)if (last_dot > -1)domain = "www.google" + domain.substring(last_dot);}break;}}if (hostMatch){// using ajax engineif ((path.indexOf("search?") == 0) ||(path.indexOf("sponsoredlinks?") == 0) ||(path.indexOf("webhp?") == 0) ||(path.indexOf("webhp#") == 0) ||(path.indexOf("#q=") == 0) ||(path.indexOf("#hl=") == 0) ||(path.indexOf("#sclient=") == 0)){return true;}}return false;};searchshield.GoogleSearchEngine.prototype.includeLink = function(tag){var href = "";var outHref = false;var findStr = "";// check for interstitialsif (searchshield.DoesURLContain(tag.href, this.search.uri.host)){findStr = this.search.uri.host + "/interstitial?";if (tag.className == "l" && tag.href){if (tag.href.indexOf(findStr) != -1){findStr = "?url=";var pos = tag.href.indexOf(findStr);if (pos !== -1){pos += 5;outHref = tag.href.substring(pos);if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}}}if (tag.className == "sla"){findStr = "/url?q=";urlPos = tag.href.indexOf(findStr);if (urlPos != -1){urlPos += 7;outHref = tag.href.substring(urlPos);return outHref;}}// if an ad idif ((tag.id.indexOf("pa") == 0) || (tag.id.indexOf("an") == 0) ||(tag.className == "resultLink")){var urlPos = -1; // ads now need unescapinghref = unescape(tag.href);findStr= "/url?sa=";if (href.indexOf(findStr) != -1){ // first kind, locate real urlfindStr= "&q=http";urlPos = href.indexOf(findStr);if (urlPos != -1)urlPos += 3; // puts it on the http}if (urlPos == -1){findStr = "/pagead/iclk?sa=";if (href.indexOf(findStr) != -1){ // second kind, locate real urlfindStr = "&adurl=http";urlPos = href.indexOf(findStr);if (urlPos != -1)urlPos += 7; // puts it on the http}}if (urlPos == -1){if (href.indexOf("/aclk?sa=") != -1){ // third kindurlPos = href.indexOf("&q=http");if (urlPos != -1)urlPos += 3; // puts it on the httpelse{urlPos = href.indexOf("&lp=http");if (urlPos != -1)urlPos += 4;else{findStr = "&adurl=http";urlPos = href.indexOf(findStr);if (urlPos != -1)urlPos += 7; // puts it on the http}}}}if (urlPos == -1){if (href.indexOf("/url?cad=") != -1){ // fourth kindurlPos = href.indexOf("&q=http");if (urlPos != -1)urlPos += 3; // puts it on the http}}if (urlPos != -1){outHref = href.substring(urlPos);// extract any fragment text, shouldn't be unescapedvar pound = outHref.indexOf("#"); if (pound != -1){var fragment = outHref.substring(pound);outHref = outHref.substring(0, pound);outHref = unescape(outHref);outHref += fragment;if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}outHref = unescape(outHref);if (outHref.indexOf("?") == -1){var ampPos = outHref.indexOf("&");if (ampPos != -1)outHref = outHref.substring(0, ampPos);}if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}}// recommended link - use following to see one// http://www.google.cz/search?hl=cs&q=warey&btnG=Hledat&lr=lang_cs// elem parent class = r// href must contain - url? and q=httpvar parentNode = tag.parentNode;if (parentNode && (parentNode.className.toLowerCase() == "r")){href = tag.href;if (href && (href.indexOf("/url?") != -1)){// locate the real urlvar urlPos = href.indexOf("q=http");if (urlPos != -1){urlPos += 2;outHref = href.substring(urlPos);// include entire param up to '&'var ampPos = outHref.indexOf("&");if (ampPos != -1)outHref = outHref.substring(0, ampPos);return outHref;}}}}// no link to selfelse if (tag.className && (tag.className.charAt(0) == "l" || tag.className == "sla")){// check for any images on the linkif (0 === tag.getElementsByTagName("IMG").length)return tag.href;}// else nothingreturn false;};/////////////// GOOGLE ////////////////////////////// AVG GOOGLE SEARCH ENGINE ///////////////searchshield.AVGGoogleSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.onlyPrimaries = false;};searchshield.AVGGoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGGoogleSearchEngine.prototype.constructor = searchshield.AVGGoogleSearchEngine;searchshield.AVGGoogleSearchEngine.prototype.name = "avggoogle"; // the name by which the search engine is known (always lowercase)searchshield.AVGGoogleSearchEngine.prototype.validSearch = function(href) {var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain = uri.host;// re stitch the uri path and query elements to// use existing logicvar path = uri.path + uri.delimiter + uri.query;if (domain.indexOf("search.avg.com") > -1){ // ads link back to googlereturn true;}return false;};searchshield.AVGGoogleSearchEngine.prototype.includeLink = function(tag){var outHref = false;var findStr = "";// check for interstitialsif (searchshield.DoesURLContain(tag.href, "google.com")){// link back to self - DIV elem GrandParent class of res1 or res3 is Sponsored Link var parentNode = tag.parentNode;if (parentNode){var grandParentNode = tag.parentNode.parentNode;if (grandParentNode){if ((grandParentNode.tagName == "DIV") && ((grandParentNode.className.toLowerCase() == "res1") ||(grandParentNode.className.toLowerCase() == "res3"))){var urlPos = -1; // ads now need unescapinghref = unescape(tag.href);if (urlPos == -1){if (href.indexOf("/aclk?sa=") != -1){ findStr = "&adurl=http";urlPos = href.indexOf(findStr);if (urlPos != -1)urlPos += 7; // puts it on the http}}if (urlPos != -1){outHref = href.substring(urlPos)// extract any fragment text, shouldn't be unescapedvar pound = outHref.indexOf("#"); if (pound != -1){var fragment = outHref.substring(pound);outHref = outHref.substring(0, pound);outHref = unescape(outHref);outHref += fragment;if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}outHref = unescape(outHref);if (outHref.indexOf("?") == -1){var ampPos = outHref.indexOf("&");if (ampPos != -1)outHref = outHref.substring(0, ampPos);}if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}}}}} // no link to selfelse{var parentNode = tag.parentNode;if (parentNode){var grandParentNode = tag.parentNode.parentNode;if (grandParentNode){if ((grandParentNode.tagName == "DIV") && (grandParentNode.className.toLowerCase() == "res2")){// check for any images on the linkif (0 === tag.getElementsByTagName("IMG").length)return tag.href;}}}}// else nothingreturn false;}/////////////// AVG GOOGLE ////////////////////////////// YAHOO SEARCH ENGINE ///////////////searchshield.YahooSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.showCleanVerdicts = false;};searchshield.YahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YahooSearchEngine.prototype.constructor = searchshield.YahooSearchEngine;searchshield.YahooSearchEngine.prototype.name = "yahoo";searchshield.YahooSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;// re stitch the uri path and query elements to// use existing logicvar 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.comif ((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 urlhref = 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);elseoutHref = 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 parentNodesif ((tagParent) &&(tagParent.tagName !== "EM") &&(searchshield.getParentNodeByClassName("yst-web", tag, 4))){// China Yahoo supportoutHref = href;}else if ((tagParent) &&(tagParent.tagName === "H3") &&(!!searchshield.getParentNodeById("WS2m",tag, 5))){// Japan Yahoo supportvar 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 yschttlvar 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 prefixif (outHref.indexOf("://") == -1)outHref = "http://" + outHref;// if inside an , probably a paypal link, don't includeif (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 namesif (!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 insertionvar 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);elseuri = 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 logicvar path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];path += uri.delimiter + uri.query;// For AVG Yahoo classic the host must match:// yhs.search.yahoo.com OR// .yhs.search.yahoo.comif (domain.indexOf("yhs.search.yahoo.co") != -1){if ((avg == "avg") &&((path.indexOf("search?") == 0) ||(path.indexOf("search;") == 0))){return true;}}// also support new metro version which DOESN'T // contain /avg so avg split part is path// valid domains are:// search.yahoo.com, // xx.search.yahoo.com and// search.yahoo.co.xxif (domain.indexOf("search.yahoo.co") != -1) {// path (split avg) must start with search and// contain the avg toolbar parameterif (((path.indexOf("search?") == 0) ||(path.indexOf("search;") == 0)) &&(path.indexOf("fr=yhs-avg") != -1)){return true;}}return false;};searchshield.AVGYahooSearchEngine.prototype.includeLink = function(tag){var href = "";var outHref = "";var findStr = "";if (this.search.doc.body.className.toLowerCase() != "standard"){ // handle as std Yahoo results pagereturn searchshield.YahooSearchEngine.prototype.includeLink(tag);} // yahoo likes to encode the urlhref = unescape(tag.href);if (tag.target == "_top"){var da = href.indexOf("**");if (da != -1)outHref = href.substring(da+2);elseoutHref = href ;if (outHref.toLowerCase().indexOf("overture.") !== -1)return false;}else if (!this.onlyPrimaries){findStr = "&yargs=";var yargs = href.indexOf(findStr);if (yargs != -1){outHref = href.substring(yargs+findStr.length);// check for prefixif (outHref.indexOf("://") == -1)outHref = "http://" + outHref;// if inside an , probably a paypal link, don't includeif (tag.parentNode && (tag.parentNode.tagName == "I"))return false;} }// filter domains// split the url based on '/'var parts = outHref.split('/');// Filter out domains that match any of the search engine's namesif (!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;}return outHref;};searchshield.AVGYahooSearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){// remove style that is set when alt image is appliedthis.updateImageStyle = {verticalAlign: null};// don't show verisign iconif (alt_image && (alt_image.length > 0))this.omitAltImage = true;var parent = searchshield.SearchEngine.prototype.updateImage;return parent.call(this, hash, search, score, image, alt_image, flyover, click_thru, altClick_thru);};/////////////// AVG YAHOO SEARCH ENGINE ////////////////////////////// MSN SEARCH ENGINE ///////////////searchshield.MSNSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.onlyPrimaries = false;};searchshield.MSNSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MSNSearchEngine.prototype.constructor = searchshield.MSNSearchEngine;searchshield.MSNSearchEngine.prototype.name = "msn";searchshield.MSNSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = 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 logicvar path = uri.path + uri.delimiter + uri.query;// For MSN the host must match:// search.msn.com OR// search.live.comif (domain.indexOf("search.msn.co") > -1){if (domain.charAt(13) == 'm')hostMatch = true;else if ((domain.charAt(13) == '.') && (domain.length == 16))hostMatch = true;}else if (domain.indexOf("search.live.co") > -1){if (domain.charAt(14) == 'm')hostMatch = true;else if ((domain.charAt(14) == '.') && (domain.length == 17))hostMatch = true;}if (hostMatch){if (path.indexOf("results.aspx") == 0)return true;}return false;};searchshield.MSNSearchEngine.prototype.includeLink = function(tag){var outHref = false;// these don't seem common from Firefox, but they are in IEif (searchshield.DoesURLContain(tag.href, "g.msn.co")){var qPos = tag.href.indexOf("?");if (qPos != -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 CITEvar spanElements = element.getElementsByTagName("CITE");if ((spanElements != null) && (spanElements.length > 0)){outHref = spanElements[0].innerHTML;// replace any nbsp'soutHref = 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 linkreturn false;}else if (tag.id.toLowerCase() == "trademarks"){// don't link the trademark at the bottom of the pagereturn false;}else{// include itreturn 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);elseuri = 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 logicvar 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 daumif ((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.nethostMatch = true;}else{ // xx.bing.com or bing.com.xxvar 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 linksreturn false;}if (tag.id.toLowerCase() == "trademarks"){// don't link the trademark at the bottom of the pagereturn false;}if ((tag.parentNode) &&(tag.parentNode.id.toLowerCase() == "sc_stc")){ // don't verdict the social sites - our verdict doesn't fitreturn false;}else if (!!searchshield.getParentNodeByClassName("sw_t",tag,3)){ // no links in page headerreturn 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 elementvar spanElements = null;// top links - check for a CITEspanElements = tag.getElementsByTagName("CITE");if ((spanElements == null) || (spanElements.length 0)){outHref = spanElements[0].innerHTML;if (outHref != null){// replace any nbsp'soutHref = 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);// save the linkreturn outHref;}}// side links if (tag.lastChild != null){outHref = tag.lastChild.innerHTML;if (outHref != null){outHref = searchshield.checkUrl(outHref);// save the linkreturn outHref;}}}// no sponsored links for now else if (searchshield.DoesURLContain(tag.href, this.search.uri.host) ||searchshield.DoesURLContain(tag.href, ".live.com") ||searchshield.DoesURLContain(tag.href, ".bing.com") ||searchshield.DoesURLContain(tag.href, ".bing.net") ||searchshield.DoesURLContain(tag.href, ".daum.net") ||searchshield.DoesURLContain(tag.href, ".gmarket.co") ||searchshield.DoesURLContain(tag.href, ".multimap.com") ||searchshield.DoesURLContain(tag.href, "msn.") ||searchshield.DoesURLContain(tag.href, "ms.ciao.") ||searchshield.DoesURLContain(tag.href, "ms.ciao-") ||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") ||searchshield.DoesURLContain(tag.href, "cc.bingj.com") ||searchshield.DoesURLContain(tag.href, "microsofttranslator.com") ||searchshield.DoesURLContain(tag.href, ".engkoo.com") ||searchshield.DoesURLContain(tag.href, "sealinfo.verisign.com") ||searchshield.DoesURLContain(tag.href, "explabs.com") ||searchshield.DoesURLContain(tag.href, "onlinehelp.microsoft.com")){// not a linkreturn false;}elsereturn tag.href;};searchshield.BingSearchEngine.prototype.addImage = function(node, image, hidden){var element = node.element;var parentNode = node.element.parentNode;var grandParentNode = !!parentNode ? parentNode.parentNode : null;// if there are redundant links in the same grandparent then skip themif (!!grandParentNode){gpChildren = grandParentNode.childNodes;for (var i=0; i now http://us.yhs4.search.yahoo.com/yhs/search?fr=altavista&fr=altavista&itag=ody&q=warez&kgs=1&kls=0// xx.altavista.com where xx is a country codevar hostMatch = false;if ("www.altavista.com" == domain){hostMatch = true;}else{// xx.altavista.comvar pDest = domain.indexOf(".altavista.com");if ((pDest != -1 ) && ((domain.length - pDest) == 14)){hostMatch = true;}else{// a reference to altavista must be present in yahoo search urlvar pRef = (uri.qsArray.fr && uri.qsArray.fr == 'altavista');pDest = domain.indexOf("search.yahoo.com");if (pDest != -1 && pRef)hostMatch = true;}}if (hostMatch){//path must start with web/results?if ((path.indexOf("yhs/search?") == 0) ||(path.indexOf("search;") == 0) ||(path.indexOf("yhs/search;") == 0) ||(path.indexOf("web/results?") == 0)||(path.indexOf("fr=altavista") != -1)){return true;}}return false;};searchshield.AltaVistaSearchEngine.prototype.includeLink = function(tag){var outHref = "";var findStr = "";// initial checksif ((!tag.href) || (tag.href.charAt(0) == '#') ||(tag.href.indexOf("javascript:") == 0)){return false;}if (searchshield.DoesURLContain(tag.href, this.search.uri.host))return false;if ((tag.className == "spt") || (tag.className == "res") ||(tag.className == "yschttl spt")){findStr = "/**";var pos = tag.href.indexOf(findStr);if (pos != -1){pos += 3;outHref = tag.href.substring(pos);outHref = unescape(outHref);// no results for overture.com & no yahoo domainschkHref = outHref.toLowerCase();if (chkHref.indexOf("overture.") != -1)return false;// split the url based on '/'var parts = outHref.split('/');// only need a domainif ((parts != null) && (parts[2] != null)){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}}return outHref;}else{return tag.href;}}return false;};searchshield.AltaVistaSearchEngine.prototype.getImgElement = function (element){while (element != null) {element = element.nextSibling;if (element != null){if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1)){ // not our id but hit another anchor no verdictif (element.tagName == "A"){element = null;break;}}else if (element.tagName == "A")break;}}var rtnElem = !!element ? element.firstChild : element;return rtnElem;};/////////////// ALTAVISTA SEARCH ENGINE ////////////////////////////// YANDEX SEARCH ENGINE ///////////////searchshield.YandexSearchEngine = function(search){searchshield.SearchEngine.call(this, search);};searchshield.YandexSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YandexSearchEngine.prototype.constructor = searchshield.YandexSearchEngine;searchshield.YandexSearchEngine.prototype.name = "yandex";searchshield.YandexSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;// re stitch the uri path and query elements// to use existing logicvar path = uri.path + uri.delimiter + uri.query;if (((domain.indexOf("yandex.ru") > -1) ||(domain.indexOf("yandex.com") > -1)) &&(path.indexOf("yandsearch?") == 0)){return true;}return false;};searchshield.YandexSearchEngine.prototype.includeLink = function(tag){if (tag.href.indexOf("/search") != -1){return false;}if (searchshield.DoesURLContain(tag.href, this.search.uri.host) ||searchshield.DoesURLContain(tag.href, ".yandex.net") ||searchshield.DoesURLContain(tag.href, ".yandex.ru") ||searchshield.DoesURLContain(tag.href, "moikrug.ru") ||searchshield.DoesURLContain(tag.href, "ya.ru") ||searchshield.DoesURLContain(tag.href, ".yandex.com") ||searchshield.DoesURLContain(tag.href, "yandex.st")){return false;}parentNode = tag.parentNode;if ((tag.parentNode) && (tag.parentNode.parentNode) &&(tag.parentNode.parentNode.className.toLowerCase() == "moreinfo")){return false;}return tag.href;};searchshield.YandexSearchEngine.prototype.getImgElement = function (element){while (element != null) {element = element.nextSibling;if (element != null){if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1)){ // not our id but hit another anchor no verdictif (element.tagName == "A"){element = null;break;}}else if (element.tagName == "A")break;}}var rtnElem = !!element ? element.firstChild : element;return rtnElem;};/////////////// YANDEX SEARCH ENGINE ////////////////////////////// SEZNAM SEARCH ENGINE ///////////////searchshield.SeznamSearchEngine = function(search){searchshield.SearchEngine.call(this, search);};searchshield.SeznamSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SeznamSearchEngine.prototype.constructor = searchshield.SeznamSearchEngine;searchshield.SeznamSearchEngine.prototype.name = "seznam";searchshield.SeznamSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;// re stitch the uri path and query elements// to use existing logicvar path = uri.path + uri.delimiter + uri.query;if ((domain.indexOf("search.seznam.cz") > -1) &&((path.indexOf("?") == 0) || (path.indexOf("svet") == 0))){return true;}return false;};searchshield.SeznamSearchEngine.prototype.includeLink = function(tag){if (searchshield.DoesURLContain(tag.href, this.search.uri.host))return false;var parentNode = tag.parentNode;if (parentNode){var grandParentNode = tag.parentNode.parentNode;if ((parentNode.tagName == "SPAN") && ((parentNode.className.toLowerCase() == "sklik-url") ||(parentNode.className.toLowerCase() == "sklik-title"))){ // locate the real url and unencode itvar urlPos = tag.href.indexOf("&url=http");if (urlPos != -1){urlPos += 5; outHref = tag.href.substring(urlPos);outHref = unescape(outHref);return outHref;}}else if (grandParentNode) {var greatGrandParentNode = tag.parentNode.parentNode.parentNode;if ((grandParentNode.tagName == "DIV") &&((grandParentNode.className.toLowerCase() == "text") || (grandParentNode.className.toLowerCase() == "hlasky otz"))){ // standard linkreturn tag.href;}else if (greatGrandParentNode && greatGrandParentNode.tagName == "DIV" &&(greatGrandParentNode.className.toLowerCase() == "hotlinks")) { // hint linkreturn tag.href;}}}return false;};searchshield.SeznamSearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){this.elementAttribute = {width: "18",height: "18"};this.updateImageStyle = {width: "18px",height: "18px"};var parent = searchshield.SearchEngine.prototype.updateImage;return parent.call(this, hash, search, score, image, alt_image, flyover, click_thru, altClick_thru);};/////////////// SEZNAM SEARCH ENGINE ////////////////////////////// WEBHLEDANI SEARCH ENGINE ///////////////searchshield.WebhledaniSearchEngine = function(search){searchshield.SearchEngine.call(this, search);};searchshield.WebhledaniSearchEngine.prototype = new searchshield.SearchEngine();searchshield.WebhledaniSearchEngine.prototype.constructor = searchshield.WebhledaniSearchEngine;searchshield.WebhledaniSearchEngine.prototype.name = "webhledani";searchshield.WebhledaniSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;// re stitch the uri path and query elements// to use existing logicvar path = uri.path + uri.delimiter + uri.query;if ((domain.indexOf("webhledani.cz") > -1) &&(path.indexOf("results.aspx?") == 0)){return true;}return false;};searchshield.WebhledaniSearchEngine.prototype.includeLink = function(tag){var parentNode = tag.parentNode;if (searchshield.DoesURLContain(tag.href, this.search.uri.host)){if ( tag.href.indexOf("/redir.aspx?") != -1){attrNode = tag.attributes;if ( attrNode == null )return false;var outHref = attrNode.getNamedItem("onmouseover").nodeValue;if ( outHref == null )return false;var findStr = "window.status=";if (outHref.indexOf(findStr)!= -1){// get text before first semicolonvar semicolon = outHref.indexOf(";");if (semicolon > -1)outHref = outHref.substring(findStr.length, semicolon);// strip quotation marksoutHref = outHref.replace(/['"]/g, "");var space = outHref.indexOf(" ");var firstDot = outHref.indexOf(".");if ((space > -1) && (space -1) ||(domain.indexOf("shop.benl.ebay") > -1)){if ((path.indexOf("?_from=") == 0) ||(path.indexOf("i.html") > -1)){return true;}}// ebay.seif ((domain.indexOf("search.eim.ebay") > -1) &&((path.indexOf("?kw=") > -1) || (path.indexOf("?ev=") > -1))){return true;}if ((domain.indexOf("search.auction.co.kr") > -1 ) &&((path.indexOf("?keyword=") > -1))){// would normally set these properties in the constructor or in an// overriding function but they're only required for this domain// links are in iframesthis.processFrames = true;// must downsize verdicts for proper displaythis.elementAttribute = {width: "16",height: "16"};this.updateImageStyle = {width: "16px",height: "16px"};return true;}// latin america ebay// listado.mercadolibre.com.xx or listado.mercadolibre.co.xx// or listado.mercadolibre.xx or// category.mercadolibre.com.xx or listado.mercadolibre.xx/category// lista.mercadolivre.com.xx or lista.mercadolivre.com.xx/categoryif ((domain.indexOf("www.") == -1) &&((domain.indexOf(".mercadolibre.") > -1 ) ||(domain.indexOf(".mercadolivre.") > -1 ))) {return true;}return false;};searchshield.eBaySearchEngine.prototype.includeLink = function(tag){var parentNode = null;var outHref = false;if (searchshield.DoesURLContain(tag.href, this.search.uri.host))return false;if ( tag.href.indexOf(".ebayrtm.com/clk?") > -1 ){if ( tag.title == null || tag.title.length -1){ // at least one dot if (outHref.indexOf(this.search.uri.host) == -1){ // no hostif (outHref.toLowerCase().indexOf("ebay.com") == -1){return outHref;}}}} }// ebay.se - Google adsparentNode = tag.parentNode;if (parentNode && (parentNode.className.toLowerCase() == "google-ad-link")){if (tag.href.indexOf("/aclk?sa=") != -1){ findStr = "&adurl=http";var urlPos = tag.href.indexOf(findStr);if (urlPos != -1){urlPos += 7; // puts it on the httpoutHref = tag.href.substring(urlPos);// extract any fragment text, shouldn't be unescapedvar pound = outHref.indexOf("#"); if (pound != -1){var fragment = outHref.substring(pound);outHref = outHref.substring(0, pound);outHref = unescape(outHref);outHref += fragment;if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}outHref = unescape(outHref);if (outHref.indexOf("?") == -1){var ampPos = outHref.indexOf("&");if (ampPos != -1)outHref = outHref.substring(0, ampPos);}if (searchshield.FilterUrl(outHref, this.filter_urls))return false;return outHref;}}}// auction.co.krparentNode = tag.parentNode;if (parentNode && (parentNode.className.toLowerCase() == "link")){if (tag.href.indexOf("adcr.naver.com") > -1){outHref = tag.innerText;if ((outHref == null) || (outHref.length -1 ){var spanElements = tag.getElementsByTagName("span");if ((spanElements != null) && (spanElements.length > 0)){if ( spanElements[0].className.toLowerCase() == "mclics-url" ){outHref = spanElements[0].innerHTML;if ( outHref == null || outHref.length -1){ // at least one dot if (outHref.toLowerCase().indexOf("mercado") == -1){return outHref;}}}}}}return false;};/////////////// EBAY SEARCH ENGINE ////////////////////////////// DIGG SEARCH ENGINE ///////////////searchshield.DiggSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.new_links = false;};searchshield.DiggSearchEngine.prototype = new searchshield.SearchEngine();searchshield.DiggSearchEngine.prototype.constructor = searchshield.DiggSearchEngine;searchshield.DiggSearchEngine.prototype.name = "digg";searchshield.DiggSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;// re stitch the uri path and query elements// to use existing logicvar path = uri.path + uri.delimiter + uri.query;if ((domain.indexOf("digg.com") > -1) &&(path.indexOf("/ad") == -1)){return true;}return false;};searchshield.DiggSearchEngine.prototype.includeLink = function(tag){var outHref = false;var findStr = "";if ((tag.parentNode) &&(tag.parentNode.className.toLowerCase() == "digg-count")){return false;}if (searchshield.DoesURLContain(tag.href, this.search.uri.host)){if (tag.className && tag.className.indexOf('source') != -1){findStr = "/search?q=site:";var urlPos = tag.href.indexOf(findStr);if (urlPos != -1){urlPos += 15;outHref = tag.href.substring(urlPos);return outHref;}}}return false;};searchshield.DiggSearchEngine.prototype.addImage = function(node, image, hidden){// remove style that is set when alt image is appliedthis.addAnchorStyle = {background: "none"};var parent = searchshield.SearchEngine.prototype.addImage;return parent.call(this, node, image, hidden);};/////////////// DIGG SEARCH ENGINE ////////////////////////////// SLASHDOT SEARCH ENGINE ///////////////searchshield.SlashdotSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.showCleanVerdicts = false;this.new_links = false;this.type = 'inline';};searchshield.SlashdotSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SlashdotSearchEngine.prototype.constructor = searchshield.SlashdotSearchEngine;searchshield.SlashdotSearchEngine.prototype.name = "slashdot";searchshield.SlashdotSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;// re stitch the uri path and query elements// to use existing logicvar path = uri.path + uri.delimiter + uri.query;if (domain.indexOf("slashdot.org") != -1){return true;}return false;};searchshield.SlashdotSearchEngine.prototype.includeLink = function(tag){if (searchshield.DoesURLContain(tag.href, this.search.uri.host))return false;if ( tag.href.indexOf("mailto:") != -1 )return false;if ( tag.href.indexOf("slashdot.org") != -1 )return false;if (tag.parentNode && (tag.parentNode.tagName == "DIV")){if (tag.parentNode.id.indexOf("text-") != -1){return tag.href;}}else if ( tag.parentNode && tag.parentNode.parentNode && tag.parentNode.parentNode.tagName == "DIV" ){if ( tag.parentNode.parentNode.id.indexOf("text-") != -1 ){return tag.href;}}return false;};searchshield.SlashdotSearchEngine.prototype.addImage = function(node, image, hidden){var doc = this.search.doc;this.init_inline_ratings(doc);this.show_inline_ratings(doc, node, image);};/////////////// SLASHDOT SEARCH ENGINE ////////////////////////////// TWITTER SEARCH ENGINE ///////////////searchshield.TwitterSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.showCleanVerdicts = false;this.new_links = false;this.type = 'inline';};searchshield.TwitterSearchEngine.prototype = new searchshield.SearchEngine();searchshield.TwitterSearchEngine.prototype.constructor = searchshield.TwitterSearchEngine;searchshield.TwitterSearchEngine.prototype.name = "twitter";searchshield.TwitterSearchEngine.prototype.twitter_filter_urls = ["twitpic.com", "twitterfeed.com", "twitter.peoplebrowsr.com"];searchshield.TwitterSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;var domain= uri.host;if (domain.indexOf("twitter.com") != -1){return true;}return false;};searchshield.TwitterSearchEngine.prototype.includeLink = function(tag){if (searchshield.DoesURLContain(tag.href, this.search.uri.host))return false;if (tag.className.length = 4)){// else we want the fourth valuevar match = matches[3];if (match && (match.length > 0))return match}return href;};/////////////// GMAIL SEARCH ENGINE ////////////////////////////// FACEBOOK SEARCH ENGINE ///////////////searchshield.FacebookSearchEngine = function(search){searchshield.SearchEngine.call(this, search);this.showCleanVerdicts = false;this.type = 'inline'};searchshield.FacebookSearchEngine.prototype = new searchshield.SearchEngine();searchshield.FacebookSearchEngine.prototype.constructor = searchshield.FacebookSearchEngine;searchshield.FacebookSearchEngine.prototype.name = "facebook"; // the name by which the search engine is known (always lowercase)searchshield.FacebookSearchEngine.prototype.validSearch = function(href){var uri;if (typeof(this.search) === 'undefined' || null === this.search)uri = searchshield.parseLink(href);elseuri = this.search.uri;if(!uri || !uri.host)return false;if (uri.host.indexOf("www.facebook.com") != -1) return true;return false;};searchshield.FacebookSearchEngine.prototype.includeLink = function(tag){if (searchshield.DoesURLContain(tag.href, this.search.uri.host) ||(searchshield.DoesURLContain(tag.href, 'static.ak.fbcdn.net'))){return false;}// don't put verdicts in areas where typing is going onif (tag.parentNode) {var parentDiv = searchshield.getParentNodeByTagName("DIV", tag, "className");if (parentDiv &&(parentDiv.className == "Mentions_Input") ||(parentDiv.className.indexOf('UIThumbPager_') != -1)){return false;}}return tag.href};searchshield.FacebookSearchEngine.prototype.addImage = function(node, image, hidden){var doc = this.search.doc;this.init_inline_ratings(doc);this.show_inline_ratings(doc, node, image);};/////////////// FACEBOOK SEARCH ENGINE ////////////////////////////// AVG TOOLBAR REPORTING ///////////////var avgreport = {BLOCK_SEVERITY: 3,scanResult: function (doc, url, foundUrl, ip) {// report scan end only if surf enabledif ('1' != searchshield.avgCallFunc(doc, 'GetSurfEnabled'))return;// for now native is handling the interstitial var results = searchshield.avgCallFunc(doc, 'MalsiteCheck', url);if ( results == null )return;var parts = results.split('::');// need at least severityif (parts == null)return;if (!ip)ip = "";// use a block severity if foundUrl is givenvar severity = !!foundUrl ? avgreport.BLOCK_SEVERITY : parseInt(parts[0], 10);var category = "";var threat = "";// fill in the category and threat if something was foundif (severity > 0){category = parts[2];threat = parts[4];}var scan_result = searchshield.avgCallFunc(doc, 'ReportScanResult', url, url, threat, category, ip, severity);var scan_end = avgreport.scanEnd(doc, url);return (scan_result && scan_end);},scanEnd: function (doc, url) {return searchshield.avgCallFunc(doc, 'ReportScanEnd', url);},GetInterstitialIP: function (interstitial) {// simple regex to pull the IP addressvar regex = /(([1-9][0-9]{0,2})|0).(([1-9][0-9]{0,2})|0).(([1-9][0-9]{0,2})|0).(([1-9][0-9]{0,2})|0)/;var match = regex.exec(interstitial);if (!match)return '';return match[0];}}/////////////// AVG TOOLBAR REPORTING ////////////////////////////// FLYOVERS ///////////////var avglsflyover = {count: 0,poppedUp: false,poppedElement: null,orig_onmousemove: null,reset: function () {avglsflyover.count = 0;avglsflyover.poppedUp = false;avglsflyover.poppedElement = null;avglsflyover.orig_onmousemove = null;},popup: function (event, hash, search, flyover) {if (!event)event = window.event;var div = document.getElementById("XPLSS_Flyover");if (div == null)return;// establish target element and get its containing document object// in case verdict is inside a framevar eventTarget = event.srcElement || event.currentTarget;var frameDoc = eventTarget.ownerDocument;// if the element is the clock, don't pop over itif ((eventTarget.src != null) && (eventTarget.src.indexOf("clock.gif") != -1))return;// save the element we popped overavglsflyover.poppedElement = eventTarget;// if no flyover get itif ((flyover == null) || (flyover == "")){flyover = searchshield.avgCallFunc(frameDoc, 'BuildFlyover', hash);if (!flyover)return;// cleanup flyover, replace any new linesflyover = flyover.replace(/r/g, "");flyover = flyover.replace(/n/g, "");// escape any single quotesflyover = flyover.replace(/'/g, "'");}// set the html in the layerdiv.innerHTML = flyover;// there is an unwanted text node that causes vertical misalignment of flyoverif (div.firstChild.nodeType == 3)div.removeChild(div.firstChild);avglsflyover.poppedUp = true;// reset display countavglsflyover.count = 0;div.onmouseout = avglsflyover.hide;// if an onmousemove is already set and it isn't us, save it and restore laterif ((frameDoc.onmousemove != null) && (frameDoc.onmousemove != avglsflyover.position))avglsflyover.orig_onmousemove = frameDoc.onmousemove;frameDoc.onmousemove = avglsflyover.position;},hide: function (event, force) {var div = document.getElementById("XPLSS_Flyover");if ((div == null) || (div.style == null) || (div.style.visibility == "hidden"))return;var trans_div = document.getElementById("XPLSS_Trans");if ((trans_div == null) || (trans_div.style == null) || (trans_div.style.visibility == "hidden"))return;if (!!force)return setFlyoverStyle(div, trans_div);if (!event)event = window.event;// establish target element and get its containing document object// in case verdict is inside a framevar eventTarget = event.srcElement || event.currentTarget;var frameDoc = eventTarget.ownerDocument;// restore onmousemoveif (avglsflyover.orig_onmousemove != null)frameDoc.onmousemove = avglsflyover.orig_onmousemove;if (avglsflyover.poppedElement)avglsflyover.poppedElement.style.border = "";var relatedElement = event.toElement;if (!relatedElement){ //this happens on mouseout when verdict and flyover are on different frames/docswindow.top.document.detachEvent('onmouseout', avglsflyover.hide);window.top.document.attachEvent('onmouseout', avglsflyover.hide);return;}// make sure we aren't still over the popped image or our layerif (searchshield.containedIn(avglsflyover.poppedElement, relatedElement) ||searchshield.containedIn(div, relatedElement) ||searchshield.containedIn(trans_div, relatedElement)){return;}setFlyoverStyle();// hide and move somewhere off screen (negative offsets)function setFlyoverStyle(){div.style.visibility = "hidden";div.style.left = "-2100px";div.style.top = "-2100px";trans_div.style.visibility = "hidden";trans_div.style.left = "-2100px";trans_div.style.top = "-2100px";return true;}},position: function () {if (!avglsflyover.poppedUp || (avglsflyover.poppedElement == null))return;var flyover = document.getElementById("XPLSS_Flyover");if (flyover == null)return;// relative position of flyover in relation to iconvar locateX = 0; // 0=left, 1=rightvar locateY = 0; // 0=above, 1=below, 2=beside icon// get window sizesvar winSize = searchshield.viewPortSize();var windowX = winSize[0];var windowY = winSize[1];// get the exact size of the flyovervar flyoverSize = searchshield.elementSize(flyover);var flyoverX = flyoverSize[0];var flyoverY = flyoverSize[1];var verdictWidth = 0;if (avglsflyover.poppedElement && avglsflyover.poppedElement.width)verdictWidth = avglsflyover.poppedElement.width;// get the bounding rect for image(s)var imgRect = searchshield.GetFullBoundingRect(avglsflyover.poppedElement);// half width/height of element bounding rectvar halfX = (imgRect.right - imgRect.left) / 2;var halfY = (imgRect.bottom- imgRect.top) / 2;// element the mouse is over, get the center positionvar posX = searchshield.offsetLeft(avglsflyover.poppedElement) + halfX;var posY = searchshield.offsetTop(avglsflyover.poppedElement) + halfY;// if a verdict is inside a frame must get offsets for the frame elementvar docFrames = document.frames;if (docFrames){for (var i=0; i posX){// rightoffsetX += halfX;locateX = 1;}else{//leftoffsetX -= (flyoverX + halfX);}if ((windowY - posY) > posY){// belowif (posY windowY)offsetY = windowY - flyoverY;// add page offsets backoffsetX += pageOffsetX;offsetY += pageOffsetY;posX += pageOffsetX;posY += pageOffsetY;var paddedOffsetX = 0; //provide space between icon and flyovervar padX = 3;if (locateX == 0)paddedOffsetX = offsetX - padX;elsepaddedOffsetX = offsetX + padX;// set where to put the flyoverflyover.style.top = offsetY + "px";flyover.style.left = paddedOffsetX + "px";// set where to put the transparent layervar trans = document.getElementById("XPLSS_Trans");if (trans != null){var trans_left = 0;var trans_top = 0;var trans_width= 0;var trans_height = 0;// transparent layer should overlap verdict imageif (locateX == 0)trans_left = posX - flyoverX - halfX; // left elsetrans_left = posX - transXOffset - verdictWidth; // righttrans.style.left = trans_left + "px";trans.style.top = offsetY + "px";trans.style.width = flyoverX + "px";trans.style.height = flyoverY + "px";}avglsflyover.display();},display: function () {avglsflyover.count++;if (avglsflyover.count == 1){var flyover = document.getElementById("XPLSS_Flyover");if (flyover == null)return;// show the flyover, must use a little count to tell, crazy stuffflyover.style.visibility = "visible";// show the transparent layervar trans_div = document.getElementById("XPLSS_Trans");if (trans_div == null)return;trans_div.style.visibility = "visible";avglsflyover.poppedUp = false;}},show: function () {var div = document.getElementById("XPLSS_Flyover");if (div == null)return;div.style.visibility = "visible";var trans_div = document.getElementById("XPLSS_Trans");if (trans_div == null)return;trans_div.style.visible = "visible";}};var avglsinlineflyover = {build: function (riskCategory, riskName, bgColor, borderColor) {var html = '';html += "";html += "";html += riskCategory + "";html += riskName + "";return html;},popup: function (event, flyover, blUrl) {//set verdict infovar div = document.getElementById('XPLSS_InlineFlyover');if (div == null)return;// blUrl is an object for a blacklisted short url// when it is passed get the final url if (blUrl != undefined){var finalUrl = searchshield.avgCallFunc(document, 'GetFinalUrl', blUrl.sUrl);var uri = searchshield.parseLink(unescape(finalUrl));if (uri.source != null){ // regexp failed so used split to parse urlvar qsUrl = uri.source.indexOf("?url=");if (qsUrl != -1)riskName = blUrl.riskNameLabel + uri.source.substring(qsUrl + 5);elseriskName = blUrl.riskNameLabel + uri.source;}else if ((uri.qsArray.url != null) && (uri.qsArray.url.length > 0)){riskName = blUrl.riskNameLabel + uri.qsArray.url;}elseriskName = blUrl.riskNameLabel + blUrl.sUrlflyover = avglsinlineflyover.build(blUrl.riskCategory, riskName, blUrl.bgColor, blUrl.borderColor);}div.innerHTML = flyover;div.style.width = "auto"; //reset widthdiv.style.position = "absolute";if (!event)event = window.event;var eventTarget = event.srcElement;avglsinlineflyover.position(eventTarget);},hide: function (event) {if (!event)event = window.event;var div = document.getElementById("XPLSS_InlineFlyover");if (div == null)return;div.visibility = "hidden"; //invisiblediv.style.left = "-5000px";},position: function (imageElem) {var flyover = document.getElementById('XPLSS_InlineFlyover');if (flyover == null)return;// relative position of flyover in relation to iconvar locateX = 0; // 0=left, 1=rightvar locateY = 0; // 0=above, 1=below, 2=beside icon// get window sizesvar winSize = searchshield.viewPortSize();var windowX = winSize[0];var windowY = winSize[1];// Must know if there is a horizontal scroll bar for Firefox// for proper flyover positioning near bottom edgevar scrollYWidth = winSize[2];var scrollBarX = winSize[2] > 0 ? true : false;// get the exact size of the flyovervar flyoverSize = searchshield.elementSize(flyover);var flyoverX = flyoverSize[0];var flyoverY = flyoverSize[1];flyover.style.width = flyoverX + "px";// get the bounding rect for image(s)var imgRect = imageElem.getBoundingClientRect();// half width/height (center) of element bounding rectvar halfX = (imgRect.right - imgRect.left) / 2;var halfY = (imgRect.bottom- imgRect.top) / 2;// element the mouse is over, get the center positionvar posX = searchshield.offsetLeft(imageElem) + halfX;var posY = searchshield.offsetTop(imageElem) + halfY;var pageOffsetX = 0;var pageOffsetY = 0;// normalize pos to 0 -- get amount of scrolling in browser windowvar scroll = searchshield.scrollSize(imageElem);var pageOffsetX = scroll[0];var pageOffsetY = scroll[1];var hasParentFrame = scroll[2];posX -= pageOffsetX;posY -= pageOffsetY;//compensate for Firefox 3if (posX posX){// rightoffsetX += halfX;locateX = 1;}else{//leftoffsetX -= (flyoverX + halfX);}if ((windowY - posY) > posY){// belowif (posY windowY){offsetY = windowY - flyoverY;}else if (scrollBarX && ((windowY - (posY + halfY)) Nhanh tay sở hữu ngay cho mình sản phẩm độc đáo này nhé. , Nhà Sách Online Của Bạn: Đa Dạng & Uy Tín - BookBuy.vn'/>
190,000 đ
Tình trạng:
Hết hàng
THÔNG TIN CHI TIẾT
Giới thiệu sản phẩm
Những bông hoa sáng rực lên như lửa làm cho căn phòng của bạn ấm cúng, lung linh hơn vào buổi tối
Thông chi tiết sản phẩm:
- Chất liệu: nhựa (chậu), thủy tinh, hợp kim
- Tiết kiệm điện với công suất 3W.
- Hoạt động như bóng đèn dây tóc, điện năng làm nóng dây tóc bóng đèn phát ra ánh sáng. Tim đèn được thiết kế đặc biệt với hình dáng khác nhau, khi sáng lên các phần có màu sắc khác nhau.
- Cắm điện bình thường, dùng làm đèn ngủ.
- Bao quanh bóng đèn là cỏ nhân tạo, đừng tưới nước bạn nhé
- Hiện chỉ còn mẫu ngôi sao. Mong các bạn thông cảm!
Thông chi tiết sản phẩm: - Kích thước: 12 x 12 x 17 cm - Chất liệu: nhựa (chậu), thủy tinh, hợp kim - Tiết kiệm điện với công suất 3W. - Hoạt động như bóng đèn dây tóc, điện năng làm nóng dây tóc bóng đèn phát ra ánh sáng. Tim đèn được thiết kế đặc biệt với hình dáng khác nhau, khi sáng lên các phần có màu sắc khác nhau. - Cắm điện bình thường, dùng làm đèn ngủ. - Bao quanh bóng đèn là cỏ nhân tạo, đừng tưới nước bạn nhé :) - Hiện chỉ còn mẫu ngôi sao. Mong các bạn thông cảm!
Xem video http://www.youtube.com/watch?v=cg1vlBwDn6g&feature=related |
Nhanh tay sở hữu ngay cho mình sản phẩm độc đáo này nhé.
Đăng ký nhận bản tin
Đừng bỏ lỡ những tin nhắn ưu đãi độc quyền dành riêng cho bạn
NHẬN XÉT CỦA KHÁCH HÀNG
Chưa có đánh giá