any ads var newHref = avg_ls_parse_ads(element.href); // add the image avg_ls_check_url(doc, element, newHref); } } } // recursively process all frames if (processFrames && doc.frames && (doc.frames.length > 0)) { for (var j = 0; j < doc.frames.length; j++) { // 'editable' frame it's probably a reply if (doc.frames[j].frameElement.className && (doc.frames[j].frameElement.className.indexOf("editable") != -1)) { continue; } avg_ls_get_gmail_links(doc.frames[j].document, processFrames); } } return links;}function avg_ls_has_image(element){ if ((element == null) || (element.firstChild == null)) return false; var nextElem = element.firstChild; while (nextElem) { if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1)) return true; nextElem = nextElem.nextSibling; } return false;}function avg_ls_add_image(doc, element, image){ if ((doc == null) || (element == null)) return ; // if no image, nothing to add if (image == null) return; // create a new image var img = doc.createElement('img'); img.src = image; img.border=0; img.id = "avg_ls_image"; // append the image to the link element.appendChild(img);}var timeoutId = null;var stopGmail = false;function avg_ls_monitor_gmail(doc, processFrames){ // clear the timer if set if (timeoutId) { clearTimeout(timeoutId); timeoutId = null; } // get the links avg_ls_get_gmail_links(doc, processFrames); // reset the if (!stopGmail) timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);}function avg_ls_process_links(doc, processFrames){ if (avg_ls_valid_gmail_search(doc.location.href)) { // process the gmail links stopGmail = false; avg_ls_monitor_gmail(doc, processFrames); }}function avg_ls_reload(e){ avg_ls_process_links(document, true); }function avg_ls_onload(e){ if (timeoutId) { clearTimeout(timeoutId); timeoutId = null; } var doc = document; // set the event handler for the data element to listen for load/reloads var data_element = doc.getElementById("avglsdata"); if (data_element) { // save data element for use in later iframes gAvgDataElement = data_element; // rowexit event used to notify javascript of a page data load avg_ls_remove_event(data_element, "rowexit", avg_ls_reload); avg_ls_add_event(data_element, "rowexit", avg_ls_reload); // process links for the document avg_ls_process_links(doc, true); }}function avg_ls_get_anchors(doc){ return doc.getElementsByTagName("a");}function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5){ var avg_ls_data = null; // get the data element if (gAvgDataElement == null) { avg_ls_data = doc.getElementById("avglsdata"); if ((avg_ls_data == null) || (name == null)) { // data element does not exist return; } gAvgDataElement = avg_ls_data; } else { avg_ls_data = gAvgDataElement; } // for some reason you can't fire and event on an element with no parent node if ((avg_ls_data == null) || (avg_ls_data.parentNode == null)) { return; } // set the attributes avg_ls_data.setAttribute("function", name); if (param1) avg_ls_data.setAttribute("param1", param1); if (param2) avg_ls_data.setAttribute("param2", param2); if (param3) avg_ls_data.setAttribute("param3", param3); if (param4) avg_ls_data.setAttribute("param4", param4); if (param5) avg_ls_data.setAttribute("param5", param5); avg_ls_data.fireEvent("onrowenter"); // get the result return avg_ls_data.getAttribute("result"); }function avg_ls_get_image(result){ if ((result == null) || (result.length < 1)) return null; var strResult = new String(result); var parts = strResult.split("::"); var image = null; switch(parseInt(parts[0])) { case 0: // don't show greens inline //image = "linkscanner:safe12.png"; break; case 1: image = "linkscanner:caution12.png"; break; case 2: image = "linkscanner:warning12.png"; break; case 3: image = "linkscanner:blocked12.png"; break; default: image = "linkscanner:unknown12.gif"; break; } return image;}// do the url checkfunction avg_ls_check_url(doc, element){ if (avg_ls_has_image(element)) return; var result = avg_ls_call_func(doc, "MalsiteCheck", element.href); if (result == null) return; // mark as processed element.setAttribute("avglschecked", "1"); // get the image from the result var image = avg_ls_get_image(result); if (image == null) return; // add the image avg_ls_add_image(doc, element, image);}function avg_ls_add_event(obj, name, func){ if (obj.addEventListener) { obj.addEventListener(name, func, false); return true;