home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
-
- <overlay id="linkpreview"
- xmlns:html = "http://www.w3.org/1999/xhtml"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-
- <script type="application/x-javascript">
-
- <![CDATA[
- var img;
- var timout;
- var canshow;
- var combined=false;
- var imgleft,imgtop;
- var hrefsite="";
-
- function ShowPreview()
- {
- if (!canshow) canshow=true;
- else
- {
- if (combined && img.width<100)
- {
- img.src="http://thumbnails.alexa.com/image_server.cgi?size=small&url="+hrefsite;
- }
- if (img.width>100 && img.src.search("alexa")<0)
- img.border=1;
- var body=window._content.document.body;
- var toph=body.scrollTop+body.clientHeight;
- var topw=body.scrollLeft+body.clientWidth;
-
- if (imgtop+img.height>toph)
- {
- imgtop=imgtop-20-img.height;
- img.style.top=imgtop+"px";
- }
- if (imgleft+img.width>topw)
- {
- imgleft=imgleft-20-img.width;
- img.style.left=imgleft+"px";
- }
- img.style.visibility="visible";
- }
- }
-
- function LoadPreview()
- {
-
- if (!canshow) canshow=true;
- else ShowPreview();
- }
-
- function FirePreview(url,event)
- {
- img.border=0;
- canshow=false;
- window._content.document.body.appendChild(img);
- if (combined)
- {
- img.src="http://open.thumbshots.org/image.pxf?url="+hrefsite;
- }
- else
- img.src=url+hrefsite;
- img.style.position="absolute";
- img.style.textTop="true";
- img.style.zIndex="10";
-
- imgleft=event.pageX+20;
- imgtop=event.pageY+20;
- img.style.left=imgleft+"px";
- img.style.top =imgtop+"px";
- if (timout)
- clearTimeout(timout);
-
- timout=setTimeout("ShowPreview();",1000);
- }
-
- function closeAd()
- {
- if (timout)
- clearTimeout(timout);
- try {
- if (img)
- {
- img.src="about:blank";
- img.style.visibility="hidden";
- window._content.document.body.removeChild(img);
- }
- }
- catch (ex){}
- document.getElementById("statusbar-display").label="Done";
- }
-
- function mouseover(event)
- {
- try{
- var node=event.originalTarget;
- while (node.protocol==null)
- {
- node = node.parentNode;
- if (node==null)
- {
- closeAd();
- return true;
- }
- }
- curhost=window._content.location.hostname;
- if (node.hostname==curhost)
- {
- closeAd();
- return true;
- }
- hrefsite=node.href;
- hrefsite=unescape(hrefsite);
- hrefsite=hrefsite.toLowerCase();
- var pos=hrefsite.lastIndexOf("http:");
- if (pos!=-1)
- hrefsite=hrefsite.substr(pos);
- else
- hrefsite=node.protocol+"//"+node.hostname+node.pathname;
- hrefsite=hrefsite.toLowerCase();
- var searchstr="";
- combined=false;
- if (hrefsite.indexOf("javascript:")!=-1)
- {
- closeAd();
- return true;
- }
- if (hrefsite.indexOf("mailto:")!=-1)
- {
- hrefsite="chrome://linkpreview/content/mail.png";
- }
- else
- {
- const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- try
- {
- combined=preferencesService.getBoolPref("linkpreview.combined");
- if (combined==false)
- searchstr=preferencesService.getCharPref("linkpreview.string");
- }
- catch(ex)
- {
- combined=true;
- }
- }
- FirePreview(searchstr,event);
- }
- catch (ex) {}
- }
-
- function linkpreviewContext()
- {
- const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- var element=document.getElementById("idlinkpreview");
- var context;
- try
- {
- context=preferencesService.getBoolPref("linkpreview.addcontextmenu");
- }
- catch(ex)
- {
- element.hidden=true;
- return;
- }
-
- if (context=0 || !context)
- {
- element.hidden=true;
- return;
- }
- element.hidden=false;
-
- var enabl=preferencesService.getBoolPref("linkpreview.enabled");
- if (!enabl)
- {
- element.setAttribute("checked","false");
- return;
- }
- element.setAttribute("checked","true");
- }
-
-
- function enablelinkpreview(element)
- {
- const checked = element.getAttribute("checked");
- const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- if (checked)
- {
- preferencesService.setBoolPref("linkpreview.enabled", true);
- window.addEventListener("mouseover",mouseover,false);
- }
- else
- {
- preferencesService.setBoolPref("linkpreview.enabled", false);
- window.removeEventListener("mouseover",mouseover,false);
- }
- }
-
-
- function linkpreviewInit()
- {
- var menu = document.getElementById("contentAreaContextMenu");
- menu.addEventListener("popupshowing",linkpreviewContext,false);
- img=window._content.document.createElement("img");
- img.addEventListener("load",LoadPreview,false);
- }
-
- window.addEventListener("load", linkpreviewInit, false);
- const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- try{
- if (preferencesService.getBoolPref("linkpreview.enabled"))
- window.addEventListener("mouseover",mouseover,false);
- }
- catch(ex)
- {
- window.addEventListener("mouseover",mouseover,false);
- }
-
- ]]>
- </script>
-
-
- <popup id="contentAreaContextMenu">
- <menuitem id="idlinkpreview" label="LinkPreview" type="checkbox" oncommand="enablelinkpreview(this)"/>
- </popup>
-
-
- </overlay>
-