]> 91.132.146.200 Git - insipid.git/commitdiff
* Insipid Firefox/Flock extension - Initial import
authorDanny <dannymiles2@gmail.com>
Wed, 19 Aug 2009 21:34:03 +0000 (23:34 +0200)
committerDanny <dannymiles2@gmail.com>
Wed, 19 Aug 2009 21:34:03 +0000 (23:34 +0200)
62 files changed:
ff_ext/inspd@danny/chrome.manifest [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/inc/globals.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/inc/md5.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/inc/vars.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.xul [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost.css [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost1.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost2_popup.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost_trigger.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow1.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow2.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/allitems.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/cancel.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/icons_credits.txt [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_color_swatch.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_delicious_history.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit2.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon1_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon2_home.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_html_icon_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon5_mybookmarks_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_html_icon_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_icon_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon8_mystars_icon_1616.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links2.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_similar.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_gold.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_off.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_on.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/inspd_json_lib.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/mybookmarks.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.html [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.js [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/content/v2/json/style.css [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/icon1-3232.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/inspd.css [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/icons_credits.txt [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button1-home.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button2-posttoinsipid.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button3-mytagcloud.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button4-mystars.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-allitems.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-default-icon.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mybookmarks.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mytags.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-go-1413.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-splitter.png [new file with mode: 0644]
ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd_icon_post1.png [new file with mode: 0644]
ff_ext/inspd@danny/defaults/preferences/inspd.js [new file with mode: 0644]
ff_ext/inspd@danny/install.rdf [new file with mode: 0644]
ff_ext/utils/inspd_update.xml [new file with mode: 0644]

diff --git a/ff_ext/inspd@danny/chrome.manifest b/ff_ext/inspd@danny/chrome.manifest
new file mode 100644 (file)
index 0000000..1ec8b50
--- /dev/null
@@ -0,0 +1,8 @@
+content inspd  chrome/inspd/content/ \r
+content inspd  chrome/inspd/content/ contentaccessible=yes \r
+\r
+overlay chrome://browser/content/browser.xul chrome://inspd/content/inspdoverlay.xul\r
+\r
+skin   inspd   classic/1.0     chrome/inspd/skin/classic/\r
+style  chrome://browser/content/browser.xul    chrome://inspd/skin/inspd.css\r
+style  chrome://global/content/customizeToolbar.xul chrome://inspd/skin/inspd.css
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/inc/globals.js b/ff_ext/inspd@danny/chrome/inspd/content/inc/globals.js
new file mode 100644 (file)
index 0000000..3aa1462
--- /dev/null
@@ -0,0 +1,774 @@
+function $id(elid,doc){if(!doc){doc=document;} return doc.getElementById(elid); }\r
+if(typeof(Insipid) == 'undefined') var Insipid = {};           \r
+var Inspd_gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);\r
+var prefs_getBranch = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);\r
+var prefs_getservice = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);\r
+var $prefs = {\r
+\r
+                       set : function(pref_name, pref_value) {\r
+                               var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);\r
+                               str.data = $utils.trim(pref_value);\r
+                               prefs_getBranch.setComplexValue('extensions.inspd.'+pref_name, Components.interfaces.nsISupportsString, str);\r
+                       },\r
+                       \r
+                       set2 : function(pref_name, pref_value) {\r
+                               var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);\r
+                               str.data = $utils.trim(pref_value);\r
+                               prefs_getBranch.setComplexValue(pref_name, Components.interfaces.nsISupportsString, str);\r
+                       },\r
+                       \r
+                       \r
+\r
+                       get : function(pref_name){\r
+                               try{\r
+                               return prefs_getBranch.getComplexValue('extensions.inspd.'+pref_name,Components.interfaces.nsISupportsString).data;\r
+                               }\r
+                               catch(e){ return false;}\r
+                       },\r
+\r
+                       remove : function(pref_name){\r
+                               try{prefs_getBranch.clearUserPref('extensions.inspd.'+pref_name)\r
+                               }catch(e){}\r
+                       },\r
+                               \r
+                       remove_all : function(pref_name){\r
+                               try{prefs_getBranch.deleteBranch('extensions.inspd.'+pref_name,'')\r
+                               }catch(e){}\r
+                       },\r
+                               \r
+                               \r
+                       branch : function(pref_name){\r
+                                       var serialBranch = prefs_getservice.getBranch('extensions.inspd.'+pref_name+'.');\r
+                                       return serialBranch.getChildList("",{});\r
+                       }\r
+}\r
+\r
+\r
+var $ajax = {\r
+\r
+                       get : function(url,func){\r
+                               var http_request = new XMLHttpRequest();\r
+                               http_request.onreadystatechange = function() { func(http_request); };\r
+                               http_request.open('GET', url, true);\r
+                               http_request.setRequestHeader("Connection", "close");\r
+                               http_request.setRequestHeader("Keep-Alive", "");\r
+                               http_request.send(null);\r
+                       }\r
+\r
+}\r
+\r
+\r
+var $effects = {\r
+\r
+                       toggleFade: function(elid) {\r
+                                       if ($id(elid).style.display == 'none'){\r
+                                       this.fadeIn(elid);\r
+                                       }else{\r
+                                       this.fadeOut(elid);\r
+                                       }\r
+                       },\r
+                       \r
+                       toggleShow: function(elid) {\r
+                                       if ($id(elid).style.display == 'none'){\r
+                                               $id(elid).style.display = 'block';\r
+                                       }\r
+                                       else{\r
+                                               $id(elid).style.display = 'none';\r
+                                       }\r
+                       },\r
+                       \r
+\r
+\r
+                       fadeOut : function(elid) {\r
+                               var opacs = ["0",".1",".2",".3",".4",".5",".6",".7",".8",".9","1"];\r
+                               opacs.reverse();\r
+                                       for (var i = 0; i < 11; i++) {\r
+                                               setTimeout('$id(\''+elid+'\').style.opacity = "'+opacs[i]+'";', i * 40);\r
+                                       }\r
+                                               setTimeout('$id(\''+elid+'\').style.display = "none";', i * 40);\r
+                       },\r
+\r
+                               \r
+                       fadeIn : function(elid) {\r
+                               var opacs = [".1",".2",".3",".4",".5",".6",".7",".8",".9","1"];\r
+                               $id(elid).style.opacity = '0';\r
+                               $id(elid).style.display = 'block';\r
+                               for (var i = 0; i < 10; i++) {\r
+                                               setTimeout('$id(\''+elid+'\').style.opacity = "'+opacs[i]+'";', i * 40);\r
+                                       }\r
+                               \r
+                       },\r
+                               \r
+                       hide : function(elid,delay){\r
+                               setTimeout('$effects.fadeOut(\''+elid+'\');',parseInt(delay)*1000)      \r
+                       },\r
+                       \r
+                       initializedrag : function(e,main_id,drag_id){\r
+                               var crossobj=$id(main_id) ;\r
+                               var firedobj= e.target ;\r
+                               var topelement= "body" ;\r
+                               while (firedobj.tagName!=topelement.toUpperCase() && firedobj.id!=drag_id){\r
+                                       firedobj=firedobj.parentNode ;\r
+                               }\r
+               \r
+                               if (firedobj.id==drag_id){\r
+                                       var offsetx= e.clientX ;\r
+                                       var offsety= e.clientY ;\r
+               \r
+                                       var tempx=parseInt(crossobj.style.left) ;\r
+                                       var tempy=parseInt(crossobj.style.top) ;\r
+               \r
+                                       dragapproved=true ;\r
+                                       document.onmousemove=(function(e){\r
+                                                                                               if (dragapproved){\r
+                                                                                                       crossobj.style.left=tempx+e.clientX-offsetx+"px"\r
+                                                                                                       crossobj.style.top=tempy+e.clientY-offsety+"px"\r
+                                                                                                       return false\r
+                                                                                               }\r
+                                                                                       return false;\r
+                                                                                       }) \r
+                               }\r
+                       \r
+                       },\r
+                       \r
+                       pos2Anchor : function(obj,e,commentbox) {\r
+                                       \r
+                       \r
+                                       var tempX = 0;\r
+                                       var tempY = 0;\r
+                                       var offset = 5;\r
+                                                                               \r
+                                       obj = $id(obj);\r
+                        \r
+                                       tempX = e.pageX;\r
+                                       tempY = e.pageY;\r
+                                       if (tempX < 0){tempX = 0}\r
+                                       if (tempY < 0){tempY = 0}\r
+                                       \r
+                                       \r
+                                       \r
+                                       obj.style.top  = (tempY + offset) + 'px';\r
+                                       if (commentbox == true){\r
+                                               obj.style.left = ((tempX + offset)+0) + 'px';   \r
+                                       }\r
+                                       else {\r
+                                               obj.style.left = ((tempX + offset)-155) + 'px';\r
+                                       }\r
+                       \r
+                                       \r
+                       },\r
+                       \r
+                       show : function(obj,show) {\r
+\r
+                                       $id(obj).style.display = show ? 'block' : 'none';\r
+                                       //obj.style.visibility = show ? 'visible' : 'hidden';\r
+                       },\r
+                       \r
+                       \r
+                       getAnchorPos: function(anchorname) {\r
+                                       // This function will return an Object with x and y properties\r
+                                       var useWindow=false;\r
+                                       var coordinates=new Object();\r
+                                       var x=0,y=0;\r
+                                       var use_gebi=false, use_css=false, use_layers=false;\r
+                                       if (document.getElementById) { use_gebi=true; }\r
+                                       else if (document.all) { use_css=true; }\r
+                                       else if (document.layers) { use_layers=true; }\r
+                                       if (use_gebi && document.all) {\r
+                                               x=this.AnchorPosition_getPageOffsetLeft(document.all[anchorname]);\r
+                                               y=this.AnchorPosition_getPageOffsetTop(document.all[anchorname]);\r
+                                               }\r
+                                       else if (use_gebi) {\r
+                                               var o=document.getElementById(anchorname);\r
+                                               x=this.AnchorPosition_getPageOffsetLeft(o);\r
+                                               y=this.AnchorPosition_getPageOffsetTop(o);\r
+                                               }\r
+                                       else if (use_css) {\r
+                                               x=this.AnchorPosition_getPageOffsetLeft(document.all[anchorname]);\r
+                                               y=this.AnchorPosition_getPageOffsetTop(document.all[anchorname]);\r
+                                               }\r
+                                       else if (use_layers) {\r
+                                               var found=0;\r
+                                               for (var i=0; i<document.anchors.length; i++) {\r
+                                                       if (document.anchors[i].name==anchorname) { found=1; break; }\r
+                                               }\r
+                                               if (found==0) {\r
+                                                       coordinates.x=0; coordinates.y=0; return coordinates;\r
+                                                       }\r
+                                               x=document.anchors[i].x;\r
+                                               y=document.anchors[i].y;\r
+                                               }\r
+                                       else {\r
+                                               coordinates.x=0; coordinates.y=0; return coordinates;\r
+                                               }\r
+                                       coordinates.x=x;\r
+                                       coordinates.y=y;\r
+                                       return coordinates;\r
+                       },\r
+                       \r
+                       AnchorPosition_getPageOffsetLeft: function(el) {\r
+                                       var ol=el.offsetLeft;\r
+                                       while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }\r
+                                               return ol;\r
+                       },\r
+                       \r
+                       AnchorPosition_getWindowOffsetLeft: function(el) {\r
+                                       return this.AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;\r
+                       },\r
+                       \r
+                       AnchorPosition_getPageOffsetTop: function(el){\r
+                                       var ot=el.offsetTop;\r
+                                       while((el=el.offsetParent) != null) { ot += el.offsetTop; }\r
+                                                       return ot;\r
+                       },\r
+                       \r
+                       AnchorPosition_getWindowOffsetTop: function(el) {\r
+                                       return this.AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;\r
+                       }               \r
+                                       \r
+                                       \r
+               }\r
+\r
+\r
+\r
+var $utils = {\r
+\r
+                       trim : function(str){\r
+                               if(str){\r
+                                       return str.replace(/^\s*|\s*$/g,'');\r
+                               }\r
+                               else{\r
+                                       return "";\r
+                               } \r
+                       },\r
+\r
+                       replace : function(str,txt1,txt2){\r
+                               return str.replace(new RegExp(txt1,'g'),txt2);\r
+                       },\r
+                       \r
+                       instr : function(strSearch, charSearchFor){\r
+                               for (i=0; i < Len(strSearch); i++){\r
+                                       if (charSearchFor == Mid(strSearch, i, 1)){\r
+                                               return i;\r
+                                       }\r
+                               }\r
+                       return -1;\r
+                       },\r
+\r
+                       \r
+                               \r
+                       console : function(txt){\r
+                                 Components.utils.reportError(txt);\r
+                       },\r
+                       \r
+                       addEvent : function(event, elid, handler, bubble) {\r
+                               elid.addEventListener(event, handler, bubble);\r
+                       },\r
+                               \r
+                       delEvent : function(event, elid, handler, bubble) {\r
+                               elid.removeEventListener(event, handler, bubble);\r
+                       },\r
+\r
+                       qs : function(Query_String_Name,url) {\r
+                       var i, pos, argname, argvalue, queryString, pairs;\r
+                       if(!url){url = location.href}\r
+                       queryString = url.substring(url.indexOf("?")+1);\r
+                       pairs = queryString.split("&");\r
+                       for (i = 0; i < pairs.length; i++) { \r
+                               pos = pairs[i].indexOf('='); \r
+                                       if (pos == -1) {\r
+                                               continue; \r
+                                       }\r
+                               argname = pairs[i].substring(0,pos);\r
+                               argvalue = pairs[i].substring(pos+1); \r
+                               if (argname == Query_String_Name) {\r
+                                       // return unescape(argvalue.replace(/\+/g, " "));\r
+                                       return argvalue;\r
+                               }\r
+                       }\r
+                       return false;\r
+                       },\r
+                       \r
+                       inc : function(filename){\r
+                               var jssubscript_Include = new  Components.Constructor('@mozilla.org/moz/jssubscript-loader;1','mozIJSSubScriptLoader');\r
+                               var jssubscript_gInc = new jssubscript_Include();\r
+                               jssubscript_gInc.loadSubScript(filename);\r
+                       },\r
+                       \r
+                       set_title : function(obj,txt){\r
+                               obj.title = txt;\r
+                       },\r
+                       \r
+                       showImage: function(img){ \r
+                               return (function(){ img.style.display=''; }) \r
+                       },\r
+                       \r
+                       cutHex: function(h) { return (h.charAt(0)=="#") ? h.substring(1,7) : h},\r
+\r
+                       Hex2RGB: function(strhex){\r
+                               var rr = parseInt((this.cutHex(strhex)).substring(0,2),16) ;\r
+                               var gg = parseInt((this.cutHex(strhex)).substring(2,4),16);\r
+                               var bb = parseInt((this.cutHex(strhex)).substring(4,6),16);\r
+                               var rgb = [rr,gg,bb];\r
+                               return rgb;\r
+                       },\r
+                       \r
+                       encode: function(str){\r
+                               return $utils.replace(''+encodeURIComponent(str)+'',"'","%27");\r
+                       },\r
+                       \r
+                       decode: function(str){\r
+                               if (str){\r
+                                       return decodeURIComponent(str);\r
+                               }\r
+                               else {\r
+                                       return '';\r
+                               }\r
+                               \r
+                       },\r
+                       get_deliciousUser: function(){\r
+                               var domain  = ".delicious.com";\r
+                               var name    = "_user";\r
+                               var user    = "";\r
+                               var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);\r
+                               var iter = cookieManager.enumerator;\r
+                               while ( iter.hasMoreElements() ){\r
+                                       cookie = iter.getNext();\r
+                                       if ( cookie instanceof Components.interfaces.nsICookie && domain.endsWith(cookie.host) && (cookie.name == name)){\r
+                                               user = cookie.value.split(/%20/)[0];\r
+                                               break;\r
+                                       }\r
+                               }\r
+\r
+                               return user;\r
+                       },\r
+                       \r
+                       appendjs : function(filename,doc,elid){\r
+                               if (!doc){doc = document;}\r
+                               if (!elid){elid = 'head';}\r
+                               var element=doc.createElement('script');\r
+                               element.type = 'text/javascript';\r
+                               //element.innerHTML = '';\r
+                               element.setAttribute('src',filename);\r
+                               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+                       },\r
+                       \r
+                       \r
+                       appendjsHTML : function(txtHTML,doc,elid){\r
+                               if (!doc){doc = document;}\r
+                               if (!elid){elid = 'head';}\r
+                               var element=doc.createElement('script');\r
+                               element.type = 'text/javascript';\r
+                               element.innerHTML = txtHTML ;\r
+                               //element.setAttribute('src',filename);\r
+                               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+                       },\r
+                       \r
+                       appendcssfile : function(filename,doc,elid){\r
+                               if (!doc){doc = document;}\r
+                               if (!elid){elid = 'head';}\r
+                               var element=doc.createElement('link');\r
+                               element.type = 'text/css';\r
+                               element.setAttribute('rel','stylesheet');\r
+                               element.setAttribute('href',filename);\r
+                               //element.innerHTML = '';\r
+                               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+                       },\r
+                       \r
+                       appendFavIcon : function(filename,doc){\r
+                               if (!doc){doc = document;}\r
+                               var element=doc.createElement('link');\r
+                               element.type = 'image/x-icon';\r
+                               element.setAttribute('rel','shortcut icon');\r
+                               element.setAttribute('href',filename);\r
+                               //element.innerHTML = '';\r
+                               doc.getElementsByTagName('head').item(0).appendChild(element);\r
+                       \r
+                       \r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       \r
+                       \r
+\r
+                       \r
+                       \r
+\r
+                       \r
+}\r
+\r
+\r
+var $stars = {\r
+\r
+               add : function(img,urlmd5,url,tags,title,notes,dt){\r
+                               if((img.src).match('star_on')){\r
+                                       img.src = (img.src).replace('_on','_off');\r
+                                       img.setAttribute('title','Star this bookmark');\r
+                                       img.setAttribute('onclick','$stars.add(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');');\r
+                               }\r
+                               else{\r
+                                       img.src = (img.src).replace('_off','_on'); \r
+                                       img.setAttribute('title','Unstar this bookmark');\r
+                                       img.setAttribute('onclick','$stars.remove(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');');\r
+                               }\r
+                               var CurStarsTMP = $prefs.get('stars.list');\r
+                               $prefs.set('stars.list',''+urlmd5+' '+url+' '+title+' '+tags+' '+notes+' '+dt+' END_'+urlmd5+'|'+CurStarsTMP+'')\r
+                               //$utils.console(''+urlmd5+' '+url+' '+title+' '+tags+' '+notes+'|'+CurStarsTMP+'');\r
+               },\r
+               \r
+               remove : function(img,urlmd5,url,tags,title,notes,dt){\r
+                               if((img.src).match('star_on')){\r
+                                       img.src = (img.src).replace('_on','_off');\r
+                                       img.setAttribute('title','Star this bookmark');\r
+                                       img.setAttribute('onclick','$stars.add(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');');\r
+                               }\r
+                               else{\r
+                                       img.src = (img.src).replace('_off','_on'); \r
+                                       img.setAttribute('title','Unstar this bookmark');\r
+                                       img.setAttribute('onclick','$stars.remove(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');');\r
+                               }\r
+                               var CurStarsTMP = $prefs.get('stars.list');\r
+                               $prefs.set('stars.list',''+(''+CurStarsTMP+'').replace((''+(''+$prefs.get('stars.list')+'').match(''+urlmd5+'.*END_'+urlmd5+'\\|')+''),'')+'');\r
+               },\r
+               \r
+               show_header : function(obj){\r
+                       if (typeof obj[0] !== 'undefined'){\r
+                               var headertxt = '<a href="#" title="click to remove all your stars" onclick="$stars.remove_all();return false;">&raquo; Remove all my stars</a>';\r
+                               return headertxt ;\r
+                       }\r
+                       else {\r
+                               var helpIMG = 'data:image/png;base64,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';\r
+\r
+                               var headertxt = 'Star your Insipid bookmarks and come back here to see them!<br/>The bookmarks will be saved locally in your preferences.<br/><img style="margin:20px;padding:5px;border: 1px outset #377700;" src="'+helpIMG+'" border="0"/>';\r
+                               $id('nav').style.display= 'none';\r
+                               return headertxt ;\r
+                       }\r
+               },\r
+               \r
+               remove_all : function(){\r
+               if (confirm('Are you sure you want to delete all your stars?')){\r
+               $prefs.set('stars.list','');\r
+               document.location.href  = Inspd_JSON_HOME_PAGE ;\r
+               }\r
+               else {\r
+               return false;\r
+               }\r
+               return false;\r
+               }\r
+               \r
+               \r
+                       \r
+\r
+\r
+\r
+\r
+}\r
+\r
+var $conditions = { \r
+               \r
+               page_with_qs_tags : function() {\r
+                               if ($utils.qs('tag') && $utils.qs('tag').split('+').length < 2){\r
+                                       return true ;\r
+                               }\r
+                               else {\r
+                                       return false ; \r
+                               }\r
+               },\r
+               gate : function(){\r
+                               if (!document.location.href.match(Inspd_JSON_BOOKMARKS_PAGE) && $utils.qs('tag')){\r
+                                       document.location.href = Inspd_JSON_BOOKMARKS_PAGE+'?tag='+$utils.qs('tag')+'' ;\r
+                               }\r
+                               \r
+                               else if (!document.location.href.match(Inspd_JSON_ALLITEMS_PAGE) && $utils.qs('q')){\r
+                                       document.location.href = Inspd_JSON_ALLITEMS_PAGE+'?q='+$utils.qs('q')+'' ;\r
+                               }\r
+                               else if (document.location.href.match(Inspd_JSON_HOME_PAGE) && $utils.qs('tag')){\r
+                                       document.location.href = Inspd_JSON_BOOKMARKS_PAGE+'?tag='+$utils.qs('tag')+'' ;\r
+                               }\r
+                               else if (document.location.href.match(Inspd_JSON_HOME_PAGE) && $utils.qs('q')){\r
+                                       document.location.href = Inspd_JSON_ALLITEMS_PAGE+'?q='+$utils.qs('q')+'' ;\r
+                               }\r
+                               else if (document.location.href.match(Inspd_JSON_ALLITEMS_PAGE) && $utils.qs('q') == ''){\r
+                                       document.location.href = Inspd_JSON_HOME_PAGE ;\r
+                               }\r
+                               else if (document.location.href.match(Inspd_JSON_BOOKMARKS_PAGE) && $utils.qs('tag') == ''){\r
+                                       document.location.href = Inspd_JSON_HOME_PAGE ;\r
+                               }\r
+               },\r
+               \r
+               getProtocol : function(url,protocol_name){\r
+                               if(url.split(':')[0] == protocol_name){\r
+                                       return true ;\r
+                               }\r
+                               else{\r
+                                       return false;\r
+                               }\r
+               \r
+               \r
+               }\r
+               \r
+               \r
+               \r
+\r
+}\r
+\r
+\r
+var $delpage = {\r
+       \r
+       draw_postToInsipid : function(doc){\r
+               var posts = this.getNodes("//div[@class='data']//h4", doc,doc);\r
+               for (var i = 0, k = posts.snapshotLength ; i < k ; i++) {\r
+                       var row = posts.snapshotItem(i) ; \r
+                       var url , title , tags, user ;\r
+                   var extended = '';\r
+                   var metaNode = null;\r
+               var tagsNode = null ;\r
+               var original_save_link_href = row.getElementsByTagName('a')[1].getAttribute('href'); \r
+               original_save_link_href = original_save_link_href.replace(/^\/save;_y(.*)\?/,$prefs.get('defurl')+'?op=add_bookmark&');\r
+               original_save_link_href = original_save_link_href.replace(/jump=(.*)original_user=/,'copy_user=');\r
+               original_save_link_href = original_save_link_href.replace(/%20/g,'+');\r
+               var new_save_link_href = original_save_link_href ; \r
+               row.innerHTML += ' <a class="inlinesave" target="_blank" title="save this bookmark to Insipid" href="'+new_save_link_href+'">SAVE TO INSIPID</a>';\r
+               }\r
+               \r
+       },\r
+       \r
+       getNodes: function(what, where, doc) {\r
+               return doc.evaluate(what, where, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);\r
+       }\r
+\r
+}\r
+\r
+var $alt_Post = {\r
+\r
+               trigger : function(doc){\r
+                       //$utils.appendFavIcon('chrome://inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.ico',doc);\r
+                       $utils.appendcssfile(''+Inspd_BASE_ALTPOST_URL+'altpost.css',doc);\r
+                       $utils.appendjsHTML(''+$alt_Post.write_jsoptions()+'',doc);\r
+                       \r
+                       var title_tmp = doc.evaluate("//div[@class='title']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML ;\r
+                       doc.evaluate("//div[@class='title']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML = '<span style="color:#000000;">Post to</span> '+title_tmp+'<span style="color:#000000;">.</span>&nbsp;&nbsp;<span style="-moz-box-sizing:border-box;-moz-border-radius: 6px 6px 9px 9px ;padding: 5px;color:#377700;background-color:#FFFFCC;font-size:80%;border:1px solid #FFFF9D;" id="title_line2">With tag autocompletion.</span>';\r
+                       \r
+                       doc.evaluate("//div[@class='search']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML = '';\r
+                       \r
+                       doc.forms[0].getElementsByTagName('input')[1].setAttribute('value',(''+(''+doc.forms[0].getElementsByTagName('input')[1].value+'').replace(/</g,'&lt;')+'').replace(/>/g,'&gt;'));\r
+                       \r
+                       if (doc.evaluate("//span[@class='formtext']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML.match('already bookmarked')){\r
+                               //'this is an edit'\r
+                               var linkdelete = ''+$prefs.get('defurl')+'?op=delete_bookmark&id=\'+document.forms[0].id.value+\'';\r
+                               doc.forms[0].innerHTML += '&nbsp;&nbsp;&nbsp;<a onfocus="this.blur();" title="delete this bookmark" style="font-size:70%;color:#ff0000;" href="#" onclick="if (confirm(\'Are you sure you want to delete this bookmark?\')){document.location.href= \''+linkdelete+'\';}else{return false;}">&raquo; delete this bookmark</a>';\r
+                       }\r
+                       else{\r
+                               doc.evaluate("//span[@class='formtext']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML ='<span style="color:green;">URL (new bookmark):</span>';\r
+                       \r
+                       }\r
+                       \r
+                       doc.forms[0].innerHTML +='<div class="postui" id="main"><table><tr style="visibility:hidden;" id="suggestions">'+\r
+                       '<td class="rs"></td><td colspan="2"><div id="suggest"></div></td></tr></table>'+\r
+                       '<ul class="bundles" style="list-style-type:none;">'+\r
+                       '<li class="bundle fold" id="copy"><div class="label"><span></span></div></li>'+\r
+                       '<li class="bundle fold" id="rec"><div class="label"><span></span></div></li>'+\r
+                       '<li class="bundle fold" id="pop" style="line-height:1.5;display:block"><div class="label"><span id="poptags_msg" class="poptags_msg"></span></div></li>'+\r
+                       '<li class="bundle fold" id="pop3" style="line-height:1.5;margin-top:10px;"><div class="label"><span id="pop3tags_msg" style="color:#000000;display:block;"></span></div></li>'+\r
+                       '<li class="bundle fold" id="pop2" style="line-height:1.5;margin-top:10px;"><div class="label"><span id="pop2tags_msg" style="color:#000000;display:block;"></span></div></li>'+\r
+                       '<li class="bundle fold" id="yourtags"><span class="smaller right" id="sort"><!--&raquo; sort: <a id="alphasort" class="noclicky" href="javascript:sort(\'alpha\')">alphabetically</a> | <a id="freqsort" href="javascript:sort(\'freq\')">by frequency</a>--></span><div class="label"><span><!--my tags--></span></div><div id="alpha"></div><div id="freq"></div></li>'+\r
+                       '<li class="bundle fold" id="network"><div class="label"><span></span></div></li></div>'+\r
+                       '</ul>';\r
+                       \r
+                       $utils.appendjs('chrome://inspd/content/inc/vars.js',doc)\r
+                       $utils.appendjs('chrome://inspd/content/inc/md5.js',doc)\r
+                       $alt_Post.setInitialUI(doc);\r
+                       //$utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc)\r
+                       \r
+               },\r
+               \r
+               write_jsoptions : function(){\r
+               \r
+                       var jstxt = 'window.focus();var tagRec = [];var tagPop = [];var tagPop2 = []; var tagPop3 = [];  var tagFor = [];var copyuser = "" ; var copytags = [];'; \r
+                       \r
+                       $utils.get_deliciousUser() ? jstxt +='var Inspd_delicious_username=\''+$utils.get_deliciousUser()+'\';' : jstxt+='';\r
+                       return jstxt ;\r
+               },\r
+               \r
+               setInitialUI : function(doc){\r
+                       var url = doc.getElementsByTagName('input')[0].getAttribute('value') ;\r
+                       if($prefs.get('delintegratecommontags') != '0' && !url.match(''+$prefs.get('defurl')+'') && !url.match('^chrome|about|color\\:') && url.match('^http||https\\://') && !url.match('^.*\\://(localhost|127.0.0.|192.168.0.|10.0.0.)') ){\r
+                               doc.evaluate("//span[@class='poptags_msg']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML += '<span style="color:#377700;font-weight:bold;background-color:#FFFFCC;-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;border:1px solid #FFFF9D;">getting popular tags for this url from del.icio.us ....</span>';\r
+                               \r
+                               $utils.appendjsHTML('Inspd_delintegrate_commontags = 1;',doc);\r
+                               $alt_Post.GetPopTagsFromDeliciousChooser(doc,''+$prefs.get('delintegratecommontags')+'');\r
+                       \r
+                       \r
+                       }\r
+                       else{\r
+                               $utils.appendjsHTML('Inspd_delintegrate_commontags = 0;',doc);\r
+                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                       }\r
+               },\r
+               \r
+               \r
+               \r
+               GetPopTagsFromDeliciousPersonal : function(doc){\r
+                       //var urlDeliciousPersonal = 'http://del.icio.us/'+$utils.get_deliciousUser()+'?v=4&noui&jump=close&url='+doc.getElementsByTagName('input')[0].getAttribute('value')+'';\r
+                       var urlDeliciousPersonal = 'http://feeds.delicious.com/v2/json/tags/'+$utils.get_deliciousUser() ;\r
+\r
+\r
+                                               \r
+                       var http_requestDeliciousPersonal = new XMLHttpRequest();\r
+                       http_requestDeliciousPersonal.onreadystatechange = function() { \r
+                               if (http_requestDeliciousPersonal.readyState == 4) {\r
+                                       try{\r
+                                               if (http_requestDeliciousPersonal.status == 200) {\r
+                                                       //if(http_requestDeliciousPersonal.responseText.match('tagPop = \\[.*\\]') != 'tagPop = []'){\r
+                                                               //$utils.appendjsHTML('Inspd_delintegrate_commontags_found = 1;'+(''+http_requestDeliciousPersonal.responseText.match('var tagPop = \\[.*\\]')+'').toLowerCase()+';tagPop = tagpop;',doc) ;\r
+                                                               var tags_txt = http_requestDeliciousPersonal.responseText ; \r
+                                                               tags_txt = tags_txt.replace(/\{|\}|\:[0-9]{1}|\:[0-9]{2}|\:[0-9]{3}|\:[0-9]{4}/g,'');                                           \r
+                                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 1; tagPop = ['+tags_txt.toLowerCase()+'];',doc) ;\r
+                                                       //}\r
+                                                       //else{\r
+                                                               //$utils.appendjsHTML('Inspd_delintegrate_commontags_found = 2;',doc);\r
+                                                       //}\r
+                                                       $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                               }                                               \r
+                                               else {\r
+                                                       //alert(e);\r
+                                                       $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 3;',doc);\r
+                                                       $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                               }\r
+                                       }\r
+                                       catch(e){       \r
+                                               //alert(e);\r
+                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 3;',doc);\r
+                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                       }\r
+                               }\r
+                       };\r
+                       //http_requestDeliciousPersonal.overrideMimeType('text/xml');\r
+                       http_requestDeliciousPersonal.open('GET', urlDeliciousPersonal, true);          \r
+                       http_requestDeliciousPersonal.setRequestHeader("Connection", "close");\r
+                       http_requestDeliciousPersonal.setRequestHeader("Keep-Alive", "");\r
+                       http_requestDeliciousPersonal.send(null);\r
+               },\r
+               \r
+               GetPopTagsFromDeliciousFetchURL : function(doc){\r
+                       //$utils.inc('chrome://inspd/content/inc/md5.js');                              \r
+                       var urlDeliciousURL = 'http://delicious.com/url/'+hex_md5(''+doc.getElementsByTagName('input')[0].getAttribute('value')+'')+'?settagview=cloud';\r
+                       \r
+                       var http_requestDeliciousURL = new XMLHttpRequest();\r
+                       http_requestDeliciousURL.onreadystatechange = function() { \r
+                               if (http_requestDeliciousURL.readyState == 4) {\r
+                                       try{\r
+                                               if (http_requestDeliciousURL.status == 200) {\r
+                                                       //var alphacloud_txt = (''+http_requestDeliciousURL.responseText.match(/<div class="alphacloud">[\s\S]+/)+'').replace(/<div class="sidebar-break">[\s\S]+/,'');\r
+                                                       var alphacloud_txt = (''+http_requestDeliciousURL.responseText.match(/<ul class="list">[\s\S]+/)+'').replace(/<div class="clr">[\s\S]+/,'');\r
+                                                       //alert(alphacloud_txt);\r
+                                                       \r
+                                                       if(http_requestDeliciousURL.responseText.match('There is no del.icio.us history for this url\\.')){\r
+                                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 2;',doc);\r
+                                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                                       }\r
+                                                       else if(alphacloud_txt){\r
+                                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 1;var Inspd_delintegrate_commontags_found_url=1;',doc);\r
+                                                               doc.evaluate("//div[@class='title']",doc,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerHTML += '<span style="display:none;">'+alphacloud_txt+'</span>';\r
+                                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                                               \r
+                                                       }\r
+                                                       else {\r
+                                                               //$utils.console('well something else is going on!');\r
+                                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 5;',doc);\r
+                                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                                       }\r
+                                               }                                               \r
+                                               else {\r
+                                                               //alert('error!');\r
+                                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 3;',doc);\r
+                                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                               }\r
+                                       }\r
+                                       catch(e){       \r
+                                                       //$utils.console('errror:: '+e);\r
+                                                       //alert('errror:: '+e);\r
+                                                       $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 3;',doc);\r
+                                                       $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                                       \r
+                                       }\r
+                               }\r
+                       };\r
+                       //http_requestDeliciousURL.overrideMimeType('text/xml');\r
+                       http_requestDeliciousURL.open('GET', urlDeliciousURL, true);            \r
+                       http_requestDeliciousURL.setRequestHeader("Connection", "close");\r
+                       http_requestDeliciousURL.setRequestHeader("Keep-Alive", "");\r
+                       http_requestDeliciousURL.send(null);\r
+               \r
+               }, \r
+               \r
+               \r
+               \r
+               \r
+               \r
+               GetPopTagsFromDeliciousChooser : function(doc,sysname){\r
+                               if (sysname == 'personal'){\r
+                                       if($utils.get_deliciousUser()){\r
+                                               $alt_Post.GetPopTagsFromDeliciousPersonal(doc);\r
+                                       }\r
+                                       else{\r
+                                               $utils.appendjsHTML('Inspd_delintegrate_commontags_found = 4;',doc);\r
+                                               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost_trigger.js',doc) ;\r
+                                       }\r
+                               }\r
+                               else if(sysname=='url'){\r
+                                       $alt_Post.GetPopTagsFromDeliciousFetchURL(doc);\r
+                               }\r
+               }\r
+       \r
+               \r
+               \r
+\r
+\r
+\r
+\r
+\r
+}\r
+\r
+\r
+var $$date = {\r
+\r
+               year : function(mydate){\r
+                               return  ((''+mydate.split(" ")[0]+'').split("-")[0]) ;\r
+               },\r
+               \r
+               month : function(mydate){\r
+                               var monthnames = ["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];\r
+                               return monthnames[parseInt(''+((''+mydate.split(" ")[0]+'').split("-")[1]).replace(/^0/,'')+'')];\r
+               },\r
+               \r
+               day : function(mydate){\r
+                               return ((''+mydate.split(" ")[0]+'').split("-")[2].replace(/^0/,''));\r
+               }\r
+}\r
+\r
+String.prototype.endsWith = function (s) {\r
+       if ( this.length < s.length )\r
+               return false;\r
+       return this.substr( this.length-s.length ) == s;\r
+}\r
+\r
+String.prototype.beginsWith = function (s) {\r
+       if ( this.length < s.length )\r
+               return false;\r
+       return this.substr( 0, s.length ) == s;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+var qs_count, qs_page, qs_tag,backfromlast;\r
+if ($utils.qs('setcount')){ qs_count = $utils.qs('setcount'); $prefs.set('defcount',''+$utils.qs('setcount')+'') } else { qs_count = $prefs.get('defcount'); }\r
+if ($utils.qs('page') && parseInt($utils.qs('page')) != 0 ){ qs_page = parseInt($utils.qs('page')); } else { qs_page = 1; }\r
+if ($utils.qs('tag')){ qs_tag = '&tag='+$utils.qs('tag')+''; } else if ($utils.qs('q')){qs_tag = '&q='+$utils.qs('q')+''; } else { qs_tag = ''; }\r
+\r
+\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/inc/md5.js b/ff_ext/inspd@danny/chrome/inspd/content/inc/md5.js
new file mode 100644 (file)
index 0000000..12ec11a
--- /dev/null
@@ -0,0 +1,245 @@
+/*\r
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\r
+ * Digest Algorithm, as defined in RFC 1321.\r
+ * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.\r
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\r
+ * Distributed under the BSD License\r
+ * See http://pajhome.org.uk/crypt/md5 for more info.\r
+ */\r
+var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */\r
+var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */\r
+var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */\r
+\r
+function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}\r
+function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}\r
+function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}\r
+function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }\r
+function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }\r
+function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }\r
+\r
+function md5_vm_test()\r
+{\r
+  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";\r
+}\r
+\r
+/*\r
+ * Calculate the MD5 of an array of little-endian words, and a bit length\r
+ */\r
+function core_md5(x, len)\r
+{\r
+  /* append padding */\r
+  x[len >> 5] |= 0x80 << ((len) % 32);\r
+  x[(((len + 64) >>> 9) << 4) + 14] = len;\r
+\r
+  var a =  1732584193;\r
+  var b = -271733879;\r
+  var c = -1732584194;\r
+  var d =  271733878;\r
+\r
+  for(var i = 0; i < x.length; i += 16)\r
+  {\r
+    var olda = a;\r
+    var oldb = b;\r
+    var oldc = c;\r
+    var oldd = d;\r
+\r
+    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);\r
+    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);\r
+    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);\r
+    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);\r
+    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);\r
+    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);\r
+    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);\r
+    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);\r
+    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);\r
+    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);\r
+    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);\r
+    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);\r
+    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);\r
+    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);\r
+    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);\r
+    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);\r
+\r
+    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);\r
+    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);\r
+    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);\r
+    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);\r
+    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);\r
+    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);\r
+    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);\r
+    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);\r
+    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);\r
+    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);\r
+    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);\r
+    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);\r
+    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);\r
+    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);\r
+    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);\r
+    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);\r
+\r
+    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);\r
+    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);\r
+    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);\r
+    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);\r
+    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\r
+    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);\r
+    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);\r
+    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);\r
+    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);\r
+    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);\r
+    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);\r
+    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);\r
+    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);\r
+    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);\r
+    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);\r
+    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);\r
+\r
+    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);\r
+    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);\r
+    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);\r
+    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);\r
+    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);\r
+    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);\r
+    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);\r
+    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);\r
+    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);\r
+    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);\r
+    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);\r
+    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);\r
+    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);\r
+    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);\r
+    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);\r
+    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);\r
+\r
+    a = safe_add(a, olda);\r
+    b = safe_add(b, oldb);\r
+    c = safe_add(c, oldc);\r
+    d = safe_add(d, oldd);\r
+  }\r
+  return Array(a, b, c, d);\r
+\r
+}\r
+\r
+/*\r
+ * These functions implement the four basic operations the algorithm uses.\r
+ */\r
+function md5_cmn(q, a, b, x, s, t)\r
+{\r
+  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);\r
+}\r
+function md5_ff(a, b, c, d, x, s, t)\r
+{\r
+  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);\r
+}\r
+function md5_gg(a, b, c, d, x, s, t)\r
+{\r
+  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);\r
+}\r
+function md5_hh(a, b, c, d, x, s, t)\r
+{\r
+  return md5_cmn(b ^ c ^ d, a, b, x, s, t);\r
+}\r
+function md5_ii(a, b, c, d, x, s, t)\r
+{\r
+  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);\r
+}\r
+\r
+/*\r
+ * Calculate the HMAC-MD5, of a key and some data\r
+ */\r
+function core_hmac_md5(key, data)\r
+{\r
+  var bkey = str2binl(key);\r
+  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);\r
+\r
+  var ipad = Array(16), opad = Array(16);\r
+  for(var i = 0; i < 16; i++)\r
+  {\r
+    ipad[i] = bkey[i] ^ 0x36363636;\r
+    opad[i] = bkey[i] ^ 0x5C5C5C5C;\r
+  }\r
+\r
+  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);\r
+  return core_md5(opad.concat(hash), 512 + 128);\r
+}\r
+\r
+/*\r
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally\r
+ * to work around bugs in some JS interpreters.\r
+ */\r
+function safe_add(x, y)\r
+{\r
+  var lsw = (x & 0xFFFF) + (y & 0xFFFF);\r
+  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r
+  return (msw << 16) | (lsw & 0xFFFF);\r
+}\r
+\r
+/*\r
+ * Bitwise rotate a 32-bit number to the left.\r
+ */\r
+function bit_rol(num, cnt)\r
+{\r
+  return (num << cnt) | (num >>> (32 - cnt));\r
+}\r
+\r
+/*\r
+ * Convert a string to an array of little-endian words\r
+ * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.\r
+ */\r
+function str2binl(str)\r
+{\r
+  var bin = Array();\r
+  var mask = (1 << chrsz) - 1;\r
+  for(var i = 0; i < str.length * chrsz; i += chrsz)\r
+    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);\r
+  return bin;\r
+}\r
+\r
+/*\r
+ * Convert an array of little-endian words to a string\r
+ */\r
+function binl2str(bin)\r
+{\r
+  var str = "";\r
+  var mask = (1 << chrsz) - 1;\r
+  for(var i = 0; i < bin.length * 32; i += chrsz)\r
+    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);\r
+  return str;\r
+}\r
+\r
+/*\r
+ * Convert an array of little-endian words to a hex string.\r
+ */\r
+function binl2hex(binarray)\r
+{\r
+  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";\r
+  var str = "";\r
+  for(var i = 0; i < binarray.length * 4; i++)\r
+  {\r
+    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +\r
+           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);\r
+  }\r
+  return str;\r
+}\r
+\r
+/*\r
+ * Convert an array of little-endian words to a base-64 string\r
+ */\r
+function binl2b64(binarray)\r
+{\r
+  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\r
+  var str = "";\r
+  for(var i = 0; i < binarray.length * 4; i += 3)\r
+  {\r
+    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)\r
+                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )\r
+                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);\r
+    for(var j = 0; j < 4; j++)\r
+    {\r
+      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;\r
+      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);\r
+    }\r
+  }\r
+  return str;\r
+}\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/inc/vars.js b/ff_ext/inspd@danny/chrome/inspd/content/inc/vars.js
new file mode 100644 (file)
index 0000000..9d0f322
--- /dev/null
@@ -0,0 +1,8 @@
+const Inspd_BASE_JSON_URL = 'chrome://inspd/content/v2/json/';\r
+const Inspd_JSON_HOME_PAGE = 'chrome://inspd/content/v2/json/home.html';\r
+const Inspd_JSON_CLOUD_PAGE = 'chrome://inspd/content/v2/json/mytags.html';\r
+const Inspd_JSON_STARS_PAGE = 'chrome://inspd/content/v2/json/mystars.html';\r
+const Inspd_JSON_BOOKMARKS_PAGE = 'chrome://inspd/content/v2/json/mybookmarks.html';\r
+const Inspd_JSON_ALLITEMS_PAGE = 'chrome://inspd/content/v2/json/allitems.html';\r
+const Inspd_ALPOST_Q_PAGE = 'chrome://inspd/content/v2/altpost/qpost.html';\r
+const Inspd_BASE_ALTPOST_URL = 'chrome://inspd/content/v2/altpost/';
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.js b/ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.js
new file mode 100644 (file)
index 0000000..8dba269
--- /dev/null
@@ -0,0 +1,336 @@
+var $buttons = {\r
+       \r
+       open_in_new_tab: function(url){\r
+       getBrowser().selectedTab = getBrowser().addTab(url);\r
+       },\r
+       \r
+       open_in_same_tab: function(url){\r
+       top.content.document.location = url;\r
+       },\r
+       \r
+       open_as_popup: function(url){\r
+       var mypopup = window.open(url,'popuppage','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=700,height=400,left=30,top=30');\r
+       mypopup.focus();\r
+       },\r
+       \r
+       \r
+       focus: function(inspd_obj){\r
+               inspd_obj.focus();\r
+       },\r
+       \r
+       \r
+       cclick : function(aEvent,url){\r
+       if (aEvent.button == 2){\r
+               this.open_as_popup(url);\r
+       }\r
+    else if ((aEvent.ctrlKey) || (aEvent.button == 1) || (aEvent.metaKey)){\r
+               this.open_in_new_tab(url);\r
+       } \r
+       else {\r
+               this.open_in_same_tab(url);\r
+               this.focus(window._content);\r
+       }\r
+       \r
+       },\r
+       \r
+       \r
+       click : function (aEvent,actionname) {\r
+       \r
+       if ($utils.trim($prefs.get('defurl')) == "") {\r
+               $Chrome.set_options_action('defurl');                   \r
+       }\r
+       \r
+       if ($utils.trim($prefs.get('defurl')) != "") {\r
+               if (actionname == 'home') {\r
+                       if ($prefs.get('searchstyle') == 'json'){\r
+                               this.cclick(aEvent,Inspd_JSON_HOME_PAGE);\r
+                       }\r
+                       else {\r
+                               this.cclick(aEvent,$prefs.get('defurl'));\r
+                       }\r
+               }\r
+               else if (actionname =='posttoinsipid'){\r
+                               var redirect = ''; if (aEvent.button == 0){redirect = 'true';}else{redirect = 'false';}\r
+                               \r
+                               var url = '';\r
+                               if ($prefs.get('altpost') == '2'){\r
+                                       url = ''+Inspd_ALPOST_Q_PAGE+'?op=add_bookmark&url='+encodeURIComponent(window._content.location.href)+'&title='+encodeURIComponent(window._content.document.title)+'&redirect='+redirect+'';\r
+                               }\r
+                               else{\r
+                                       url = ''+$prefs.get('defurl')+'?op=add_bookmark&url='+encodeURIComponent(window._content.location.href)+'&title='+encodeURIComponent(window._content.document.title)+'&redirect='+redirect+'';\r
+                               }\r
+                               this.cclick(aEvent,url);\r
+               \r
+               }\r
+               else if (actionname =='mytagcloud'){\r
+                               if ($prefs.get('searchstyle') == 'json'){\r
+                                       this.cclick(aEvent,Inspd_JSON_CLOUD_PAGE);\r
+                               }\r
+                               else {\r
+                                       this.cclick(aEvent,$prefs.get('defurl'));\r
+                               }\r
+               }\r
+               \r
+               else if (actionname =='mystars'){\r
+                       this.cclick(aEvent,Inspd_JSON_STARS_PAGE);\r
+               }\r
+               \r
+               \r
+               else if (actionname =='searchgo' && $utils.trim($id('inspd-searchbar-textbox').value) != ''){\r
+                               var q1 = ''; if ($prefs.get('defsearchselection') == 'allitems'){q1 = 'q';}else{q1 = 'tag';}\r
+                               if ($prefs.get('searchstyle') == 'json'){\r
+                                       if ($prefs.get('defsearchselection') == 'mytags' && $utils.trim($id('inspd-searchbar-textbox').value).match("\\+") ){\r
+                                       alert('Plus (\'+\') sign will not work while viewing related tags.\nPlease remove it or search your bookmarks instead.');\r
+                                       return false;\r
+                                       }\r
+                                       \r
+                                       else {\r
+                                               \r
+                                               this.cclick(aEvent,Inspd_BASE_JSON_URL+$prefs.get('defsearchselection')+'.html?'+q1+'='+$id('inspd-searchbar-textbox').value);\r
+                                       }\r
+                               }\r
+                               else {\r
+                                       \r
+                                       this.cclick(aEvent,$prefs.get('defurl')+'?'+q1+'='+$id('inspd-searchbar-textbox').value);\r
+                               }\r
+                               if ($prefs.get('searchbar.autocomp') == '1'){\r
+                                       // var inspd_formhistory1 = Components.classes['@mozilla.org/satchel/form-history;1'].getService(Components.interfaces.nsIFormHistory);\r
+                                       var inspd_formhistory1 = Components.classes["@mozilla.org/satchel/form-history;1"].getService (Components.interfaces.nsIFormHistory ? Components.interfaces.nsIFormHistory : Components.interfaces.nsIFormHistory2);\r
+                                       inspd_formhistory1.addEntry('inspdsearchbarq', $id('inspd-searchbar-textbox').value);\r
+                                       $prefs.set('lastsearchq',$id('inspd-searchbar-textbox').value) ;\r
+                               }\r
+                               $id('inspd-searchbar-textbox').focus();\r
+               }\r
+               else if (actionname =='searchgotextbox' && $utils.trim($id('inspd-searchbar-textbox').value) != '' && aEvent.keyCode == aEvent.DOM_VK_RETURN ){\r
+                               this.click(aEvent,'searchgo');\r
+               }\r
+               \r
+       }\r
+       return false;\r
+       }\r
+       \r
+}\r
+\r
+\r
+\r
+var $Chrome = {\r
+\r
+                       set_icon : function(elid,prefname) {\r
+                               try{\r
+                                       $id(elid).setAttribute('style',"list-style-image: url('chrome://inspd/skin/searchtb/"+elid+"-"+$prefs.get(prefname)+".png');");\r
+                                       $id('inspd-searchbar-dropdown-'+$prefs.get(prefname)).setAttribute('checked','true');   \r
+                               }catch(e){}\r
+                               \r
+                       },\r
+                       \r
+                       set_defsearchselection: function(selectionval) {\r
+                               $prefs.set('defsearchselection', selectionval);\r
+                               this.set_icon('inspd-searchbar-dropdown','defsearchselection');\r
+                       },\r
+                       \r
+                       set_options_ui_all: function(){\r
+                               this.set_icon('inspd-searchbar-dropdown','defsearchselection');\r
+                               \r
+                               if ($prefs.get('searchstyle') == 'json') {\r
+                               $id('inspd-searchbar-dropdown-options-json').setAttribute('checked','true');\r
+                               }\r
+                               \r
+                               if ($prefs.get('searchbar.autocomp') == '1') {\r
+                               $id('inspd-searchbar-dropdown-options-searchbarautocomp').setAttribute('checked','true');\r
+                               }                                                       \r
+                               \r
+                               if ($prefs.get('delintegrate') == '1') {\r
+                               $id('inspd-searchbar-dropdown-options-delintegrate').setAttribute('checked','true');\r
+                               }\r
+                               \r
+                               \r
+                               \r
+                               $id('inspd-searchbar-dropdown-options-delintegratecommontags_'+$prefs.get('delintegratecommontags')+'').setAttribute('checked','true');\r
+                                                       \r
+                               \r
+                               \r
+                               if ($prefs.get('bookmarks.showfavicon') == '1') {\r
+                               $id('inspd-searchbar-dropdown-options-showfavicon').setAttribute('checked','true');\r
+                               }\r
+                               \r
+                               /* ======= */\r
+                               $id('inspd-searchbar-dropdown-options-altpost_'+$prefs.get('altpost')+'').setAttribute('checked','true');\r
+                               /* ======*/\r
+                               \r
+                               \r
+                               if ($prefs.get('showgo') == '1') {\r
+                               $id('inspd-searchbar-dropdown-options-showgo').setAttribute('checked','true');\r
+                               } \r
+                               else {\r
+                               $effects.show('inspd-searchbar-go',false);\r
+                               }\r
+                       },\r
+\r
+\r
+                       \r
+                       \r
+                       set_options_action: function(actionname,secondVal){\r
+                       \r
+                       if (actionname == 'defurl'){\r
+                               var query = prompt('Please enter the full URL of your insipid.cgi\nExample:\nhttp://localhost/insipid/insipid.cgi',''+$prefs.get('defurl')+'');\r
+                               try{\r
+                                       if ($utils.trim(query)) {\r
+                                               $prefs.set('defurl', query);\r
+                                       }\r
+                                       else {\r
+                                               return false;\r
+                                       }\r
+                               }catch(e){}\r
+                       }\r
+                       \r
+                       if (actionname == 'json'){\r
+                               if ($prefs.get('searchstyle') == 'json'){\r
+                                       $id('inspd-searchbar-dropdown-options-json').setAttribute('checked','false');\r
+                                       $prefs.set('searchstyle','classic')\r
+                               }\r
+                               else {\r
+                                       $id('inspd-searchbar-dropdown-options-json').setAttribute('checked','true');\r
+                                       $prefs.set('searchstyle','json')\r
+                               }\r
+                       \r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       if (actionname == 'delintegrate'){\r
+                               if ($prefs.get('delintegrate') == '1'){\r
+                                       $id('inspd-searchbar-dropdown-options-delintegrate').setAttribute('checked','false');\r
+                                       $prefs.set('delintegrate','0');\r
+                               }\r
+                               else {\r
+                                       $id('inspd-searchbar-dropdown-options-delintegrate').setAttribute('checked','true');\r
+                                       $prefs.set('delintegrate','1');\r
+                               }\r
+                       \r
+                       }\r
+                       \r
+                       if (actionname == 'delintegratecommontags'){\r
+                               $id('inspd-searchbar-dropdown-options-delintegratecommontags_'+secondVal+'').setAttribute('checked','true');\r
+                               $prefs.set('delintegratecommontags',''+secondVal+'')\r
+                       \r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       if (actionname == 'searchbarautocomp'){\r
+                               if ($prefs.get('searchbar.autocomp') == '1'){\r
+                                       $id('inspd-searchbar-dropdown-options-searchbarautocomp').setAttribute('checked','false');\r
+                                       $prefs.set('searchbar.autocomp','0');\r
+                                       // var inspd_formhistory1 = Components.classes['@mozilla.org/satchel/form-history;1'].getService(Components.interfaces.nsIFormHistory);\r
+                                       var inspd_formhistory1 = Components.classes["@mozilla.org/satchel/form-history;1"].getService (Components.interfaces.nsIFormHistory ? Components.interfaces.nsIFormHistory : Components.interfaces.nsIFormHistory2);\r
+                                       try{\r
+                                       inspd_formhistory1.removeEntriesForName('inspdsearchbarq');\r
+                                       }catch(e){}\r
+                                       //$prefs.set('lastsearchq','');\r
+                                       $id('inspd-searchbar-textbox').focus();\r
+                               }\r
+                               else {\r
+                                       $id('inspd-searchbar-dropdown-options-searchbarautocomp').setAttribute('checked','true');\r
+                                       $prefs.set('searchbar.autocomp','1');\r
+                                               if ($utils.trim($id('inspd-searchbar-textbox').value) == ''){$id('inspd-searchbar-textbox').value = $$prefs.get('lastsearchq');}\r
+                                       $id('inspd-searchbar-textbox').focus();\r
+                                       \r
+                               }\r
+                       \r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       \r
+                       if (actionname == 'showgo'){\r
+                               if ($prefs.get('showgo') == '1'){\r
+                                       $id('inspd-searchbar-dropdown-options-showgo').setAttribute('checked','false');\r
+                                       $prefs.set('showgo','0')\r
+                                       $effects.fadeOut('inspd-searchbar-go');\r
+                               }\r
+                               else {\r
+                                       $id('inspd-searchbar-dropdown-options-showgo').setAttribute('checked','true');\r
+                                       $prefs.set('showgo','1')\r
+                                       $effects.fadeIn('inspd-searchbar-go');\r
+                               }\r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       if (actionname == 'showfavicon'){\r
+                               if ($prefs.get('bookmarks.showfavicon') == '1'){\r
+                                       $id('inspd-searchbar-dropdown-options-showfavicon').setAttribute('checked','false');\r
+                                       $prefs.set('bookmarks.showfavicon','0')\r
+                               }\r
+                               else {\r
+                                       $id('inspd-searchbar-dropdown-options-showfavicon').setAttribute('checked','true');\r
+                                       $prefs.set('bookmarks.showfavicon','1')\r
+                               }\r
+                       }\r
+                       \r
+                       \r
+                       if (actionname == 'altpost'){\r
+                                       $id('inspd-searchbar-dropdown-options-altpost_'+secondVal+'').setAttribute('checked','true');\r
+                                       $prefs.set('altpost',''+secondVal+'')\r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       return false;   \r
+                       }\r
+                       \r
+                         \r
+                       \r
+}\r
+\r
+\r
+\r
+var $moz = {\r
+       inc : function(filename){\r
+               var jssubscript_Include = new  Components.Constructor('@mozilla.org/moz/jssubscript-loader;1','mozIJSSubScriptLoader');\r
+               var jssubscript_gInc = new jssubscript_Include();\r
+               jssubscript_gInc.loadSubScript(filename);\r
+       }\r
+}\r
+\r
+\r
+\r
+\r
+var $inspd = {\r
+  \r
+       initChrome: function() {\r
+               $Chrome.set_options_ui_all();\r
+               if ($prefs.get('searchbar.autocomp') == '1') {\r
+                       $id('inspd-searchbar-textbox').value = $prefs.get('lastsearchq') ;\r
+               }\r
+       },\r
+  \r
+   \r
+       initAll: function() {\r
+               if($id('appcontent')) {\r
+                       $id('appcontent').addEventListener('DOMContentLoaded', this.onPageLoad, true);\r
+               }\r
+       },\r
+\r
+       \r
+       onPageLoad: function(aEvent) {\r
+               if (aEvent.originalTarget.nodeName == '#document'){\r
+                       var doc = aEvent.originalTarget;\r
+                               if(doc.location.href.match('^http://delicious.com/') && $prefs.get('delintegrate') == '1' ){\r
+                                       $delpage.draw_postToInsipid(doc);\r
+                               }\r
+                               else if (doc.location.href.match('^'+$prefs.get('defurl')+'\\?op=add_bookmark') && $prefs.get('altpost') !== '0' && doc.forms[1]){\r
+                                       $alt_Post.trigger(doc);\r
+                               }\r
+               }\r
+       }\r
+  \r
+}\r
+\r
+\r
+$moz.inc('chrome://inspd/content/inc/vars.js');\r
+$moz.inc('chrome://inspd/content/inc/globals.js');\r
+$utils.inc('chrome://inspd/content/inc/md5.js');\r
+$utils.addEvent('load', window, $inspd.initChrome, false);\r
+// window.addEventListener("DOMContentLoaded", function() { $inspd_start.initAll(); }, false);\r
+$utils.addEvent('DOMContentLoaded', window, function() { $inspd.initAll(); }, false);\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.xul b/ff_ext/inspd@danny/chrome/inspd/content/inspdoverlay.xul
new file mode 100644 (file)
index 0000000..1525264
--- /dev/null
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding='UTF-8'?>\r
+\r
+<?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css"?>\r
+<?xml-stylesheet href="chrome://inspd/skin/inspd.css" type="text/css"?>\r
+\r
+<overlay id="InspdOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">\r
+\r
+\r
+<script type="application/x-javascript" src="chrome://inspd/content/inspdoverlay.js" charset="utf8"></script>\r
+\r
+       \r
+<toolbarpalette id="BrowserToolbarPalette">\r
+       \r
+\r
+<toolbaritem context="" id="inspd-searchbar-container" align="center" class="chromeclass-toolbar-additional" \r
+       title="Insipid Searchbar">\r
+       \r
+\r
+       <toolbarbutton  onpopupshowing="$Chrome.set_options_ui_all();" id="inspd-searchbar-dropdown" type="menu" tooltiptext="Insipid search options" >\r
+       <menupopup>\r
+    \r
+        <menuitem id="inspd-searchbar-dropdown-allitems" oncommand="$Chrome.set_defsearchselection('allitems');" label="All items" type="radio" name="inspd-searchmarker" tooltiptext="Search all my items"/>\r
+        <menuitem id="inspd-searchbar-dropdown-mybookmarks" oncommand="$Chrome.set_defsearchselection('mybookmarks');" label="My bookmarks" type="radio" name="inspd-searchmarker" tooltiptext="Search my bookmarks"/>\r
+        <menuitem id="inspd-searchbar-dropdown-mytags" oncommand="$Chrome.set_defsearchselection('mytags');" label="My tags" type="radio" name="inspd-searchmarker" tooltiptext="Search my tags"/>\r
+                       \r
+               \r
+               <menuseparator style="margin-bottom:2px;margin-top:1px;"/>\r
+               <menu id="inspd-searchbar-dropdown-options" label="Options" tooltiptext="">\r
+                       <menupopup>\r
+                               <menuitem id="inspd-searchbar-dropdown-options-defurl" oncommand="$Chrome.set_options_action('defurl');"    label="Default insipid.cgi URL..." tooltiptext="enter the URL of your insipid.cgi"/>\r
+                               <menuitem id="inspd-searchbar-dropdown-options-json" oncommand="$Chrome.set_options_action('json');" label="Use JSON" type="checkbox" tooltiptext="Use Javascript and render the results locally."/>\r
+                               <menuitem id="inspd-searchbar-dropdown-options-delintegrate" oncommand="$Chrome.set_options_action('delintegrate');" label="del.icio.us integration" type="checkbox" tooltiptext="Add a 'post to Insipid' link in del.icio.us pages" />\r
+                               <menuitem id="inspd-searchbar-dropdown-options-searchbarautocomp" oncommand="$Chrome.set_options_action('searchbarautocomp');" label="Searchbar autocomplete" type="checkbox" tooltiptext="Enable/disable autocomplete in searchbar" />\r
+                               <menuitem id="inspd-searchbar-dropdown-options-showgo" oncommand="$Chrome.set_options_action('showgo');" label="Show 'Go' button" type="checkbox" tooltiptext="Show 'Go' button beside searchbar" />\r
+                               <menuitem id="inspd-searchbar-dropdown-options-showfavicon" oncommand="$Chrome.set_options_action('showfavicon');" label="Show bookmarks' favicon" type="checkbox" tooltiptext="Show favicons of websites" />\r
+                               \r
+                               <menu tooltiptext="Integrate some tweaks on your Insipid post page" label="'Alternative' post page">\r
+                               <menupopup>\r
+                               <menuitem name="inspd-searchbar-dropdown-options-altpost" id="inspd-searchbar-dropdown-options-altpost_0" oncommand="$Chrome.set_options_action('altpost',0);" label="Disabled" type="radio" tooltiptext="Disable all tweaks on Insipid post page and load it normally" />\r
+                               <menuitem name="inspd-searchbar-dropdown-options-altpost" id="inspd-searchbar-dropdown-options-altpost_1" oncommand="$Chrome.set_options_action('altpost',1);" label="Tag autocompletion" type="radio" tooltiptext="Enable tag autocompletion on Insipid post page" />\r
+                               <menuitem name="inspd-searchbar-dropdown-options-altpost" id="inspd-searchbar-dropdown-options-altpost_2" oncommand="$Chrome.set_options_action('altpost',2);" label="Quick post" type="radio" tooltiptext="Post from a very simple html page without waiting" />\r
+                               <menuseparator style="margin-bottom:2px;margin-top:1px;"/>\r
+                                               <menu tooltiptext="Get popular tags from del.icio.us for links you post to your Insipid" label="Get Popular tags">\r
+                                                       <menupopup>\r
+                                                               <menuitem name="inspd-searchbar-dropdown-options-delintegratecommontags" id="inspd-searchbar-dropdown-options-delintegratecommontags_0" oncommand="$Chrome.set_options_action('delintegratecommontags',0);" label="Disabled" type="radio" tooltiptext="Don't get popular tags from del.icio.us" />\r
+                                                               <menuitem name="inspd-searchbar-dropdown-options-delintegratecommontags" id="inspd-searchbar-dropdown-options-delintegratecommontags_url" oncommand="$Chrome.set_options_action('delintegratecommontags','url');" label="from url's history page" type="radio" tooltiptext="Get popular tags from del.icio.us md5(url) page" />\r
+                                                               <menuitem name="inspd-searchbar-dropdown-options-delintegratecommontags" id="inspd-searchbar-dropdown-options-delintegratecommontags_personal" oncommand="$Chrome.set_options_action('delintegratecommontags','personal');" label="from personal post page" type="radio" tooltiptext="Get popular tags from your del.icio.us post page" />\r
+                                                       </menupopup>\r
+                                               </menu>\r
+                               \r
+                               \r
+                               </menupopup>\r
+                               </menu>\r
+                               \r
+                               \r
+                       \r
+                       </menupopup>\r
+               </menu>\r
+        \r
+       </menupopup>\r
+     \r
+       </toolbarbutton>\r
+       \r
+  <textbox onfocus="$Chrome.set_options_ui_all();" type="autocomplete" id="inspd-searchbar-textbox" value="" oninput="" \r
+  onkeypress="" onblur="" tabscrolling="true" persist="width" autocompletesearch="form-history" \r
+  completeselectedindex="true" autocompletesearchparam="inspdsearchbarq" onkeyup="$buttons.click(event,'searchgotextbox');"/>\r
+       \r
+       <splitter context="" id="inspd-searchbar-resizer" state="open" collapse="none" resizebefore="closest" resizeafter="grow" />\r
+       <toolbaritem context="" id="inspd-searchbar-dummyforresize"/>\r
+       <toolbarbutton context="" id="inspd-searchbar-go" onclick="$buttons.click(event,'searchgo');" class="toolbarbutton-1" tooltiptext="Go" flex="0"/>\r
+               \r
+</toolbaritem>\r
+       \r
+       \r
+       \r
+       \r
+<toolbaritem context="" id="inspd-allin1button-container" style="list-style-image: url('chrome://inspd/content/v2/json/images/inspd_icon1_1616.png');" align="center" class="chromeclass-toolbar-additional" \r
+       title="Insipid all-in-1 button">\r
+       \r
+\r
+       <toolbarbutton  id="inspd-allin1button-dropdown" type="menu" tooltiptext="Insipid all-in-1" >\r
+               <menupopup>\r
+                       <menuitem label=" My Home" \r
+                               style="list-style-image: url('chrome://inspd/content/v2/json/images/inspd_icon2_home.png');"\r
+                               class="menuitem-iconic"\r
+                               tooltiptext="Open my Insipid front page"\r
+                               onclick="$buttons.click(event,'home');" />\r
+       \r
+                       <menuitem label=" Post" \r
+                               style="list-style-image: url('chrome://inspd/skin/searchtb/inspd_icon_post1.png');"\r
+                               class="menuitem-iconic"\r
+                               tooltiptext="Post this page to Insipid"\r
+                               onclick="$buttons.click(event,'posttoinsipid');" />\r
+  \r
+                       <menuitem label=" My Cloud" \r
+                               style="list-style-image: url('chrome://inspd/content/v2/json/images/inspd_icon3_mytagcloud_html_icon_1616.png');"\r
+                               class="menuitem-iconic"\r
+                               tooltiptext="Open my Insipid tag cloud"\r
+                               onclick="$buttons.click(event,'mytagcloud');" />\r
+                       \r
+                       \r
+                       \r
+                       <menuitem label=" My Stars" \r
+                               style="list-style-image: url('chrome://inspd/content/v2/json/images/inspd_star_gold.png');"\r
+                               class="menuitem-iconic"\r
+                               tooltiptext="Open my stars page"\r
+                               onclick="$buttons.click(event,'mystars');" />\r
+                       \r
+               \r
+               \r
+               </menupopup>\r
+       </toolbarbutton>\r
+</toolbaritem>         \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+         \r
+<toolbarbutton id="inspd-button1-home"\r
+       context=""\r
+       label="Insipid Home"\r
+       tooltiptext="Open my Insipid front page"\r
+       class="toolbarbutton-1"\r
+       onclick="$buttons.click(event,'home');" >\r
+       </toolbarbutton>\r
+\r
+\r
+                                       \r
+<toolbarbutton id="inspd-button2-posttoinsipid"\r
+       context=""\r
+       label="Post to Insipid"\r
+       tooltiptext="Post this page to Insipid"\r
+       class="toolbarbutton-1"\r
+       onclick="$buttons.click(event,'posttoinsipid');" />\r
+       \r
+<toolbarbutton id="inspd-button3-mytagcloud"\r
+       context=""\r
+       label="Insipid tag cloud"\r
+       tooltiptext="Open my Insipid tag cloud"\r
+       class="toolbarbutton-1"\r
+       onclick="$buttons.click(event,'mytagcloud');" />\r
+       \r
+\r
+<toolbarbutton id="inspd-button4-mystars"\r
+       context=""\r
+       label="My Stars"\r
+       tooltiptext="Open my stars page"\r
+       class="toolbarbutton-1"\r
+       onclick="$buttons.click(event,'mystars');" />\r
+\r
+       \r
+                                               \r
+</toolbarpalette>\r
+                                       \r
+       \r
+       \r
+<toolbox id="navigator-toolbox" iconsize="small" mode="icons">\r
+\r
+    <toolbar id="inspd-Toolbar1" accesskey="" class="chromeclass-toolbar" \r
+                       context="toolbar-context-menu"\r
+                       toolbarname="Insipid Toolbar" \r
+                       hidden="false" persist="hidden" customizable="true"\r
+                       defaultset="inspd-button1-home,inspd-button2-posttoinsipid,inspd-button3-mytagcloud,inspd-button4-mystars,inspd-searchbar-container"\r
+                       iconsize="small" mode="icons" />\r
+\r
+</toolbox>\r
+\r
+       \r
+</overlay>\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost.css b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost.css
new file mode 100644 (file)
index 0000000..4ee2e5f
--- /dev/null
@@ -0,0 +1,41 @@
+form { margin: 0; padding: 0; }\r
+ul, ol, li { margin: 0 0 0.5em 0; padding: 0; }\r
+li { margin-left: 2em; }\r
+\r
+\r
+#inline-suggestions { border: 2px solid #eee; border-top: none; position: absolute; background-color: #fff; padding: 2px; }\r
+#inline-suggestions .tag { font-size: 80%; display: block; color: #000; cursor: default;  }\r
+\r
+\r
+/* ========================================== */\r
+/*popup suggestions hover with hand color*/\r
+#inline-suggestions .selected, #suggestions .tag:hover  { background-color: #377700 !important; color: #fff !important; text-decoration: none; cursor: pointer; }\r
+/*============================================*/\r
+\r
+.postui { font-size: 14px }\r
+.postui .tag { padding: 2px; text-decoration: none; }\r
+.postui ul { list-style-type: none; }\r
+/* =================================================== */\r
+/*suggestion popup select*/\r
+.postui .selected, .postui .tag:hover  { background-color: #800000  !important; color: #fff !important; text-decoration: none; }\r
+/*==================================================*/\r
+.postui .recommended { color: #080;  }\r
+.postui input { margin-left: 0; padding-left: 0; text-indent: 0; }\r
+.postui .bundle .tag, #suggest .tag { font-size: 90%; }\r
+a.noclicky, a.noclicky:hover { cursor: default; color: #000; text-decoration: none; }\r
+a.clicky { color: blue; cursor: pointer; }\r
+.postui ul li.bundle { padding: 0.25em 0.6em; text-align: justify; display: none; }\r
+.postui ul li.bundle {padding:0;margin:0 0 0.3em}\r
+.postui .bundle .label { display: inline; }\r
+.postui .fold { display: block; }\r
+.postui #notes { font-family: arial, sans-serif; font-size: 80%; }\r
+.postui .label span { text-align: left; font-weight: bolder; font-size: 100%; }\r
+.postui #sort { font-size: 85%; float: right; _margin-top: -25px; margin-top: 0.2em; white-space: nowrap; }\r
+.postui .bundles .label { color: #000; }\r
+.postui .bundles { margin-top: 0.5em; }\r
+.postui .bundle { margin: 0 0 0 1em; }\r
+/*======================================================= popupbg:*/\r
+.postui .popup { position: absolute; background-color: #FFFFCC; border-top: 2px solid #ccc; padding:2px 5px 5px 5px; }\r
+/*=================================================================*/\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost1.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost1.js
new file mode 100644 (file)
index 0000000..f250595
--- /dev/null
@@ -0,0 +1,63 @@
+String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }\r
+String.prototype.unescHtml = function(){ var i,e={'&lt;':'<','&gt;':'>','&amp;':'&','&quot;':'"'},t=this; for(i in e) t=t.replace(new RegExp(i,'g'),e[i]); return t }\r
+\r
+function loadTags(t) { tags = t }\r
+\r
+// styling functions\r
+function isA(o,klass){ if(!o.className) return false; return new RegExp('\\b'+klass+'\\b').test(o.className) }\r
+function addClass(o,klass){ if(!isA(o,klass)) o.className += ' ' + klass }\r
+function rmClass(o,klass){ o.className = o.className.replace(new RegExp('\\s*\\b'+klass+'\\b'),'') }\r
+function swapClass(o,klass,klass2){ var swap = isA(o,klass) ? [klass,klass2] : [klass2,klass]; rmClass(o,swap[0]); addClass(o,swap[1]) }\r
+function getStyle(o,s) {\r
+       if (document.defaultView && document.defaultView.getComputedStyle) return document.defaultView.getComputedStyle(o,null).getPropertyValue(s)\r
+       else if (o.currentStyle) { return o.currentStyle[s.replace(/-([^-])/g, function(a,b){return b.toUpperCase()})] }\r
+}\r
+// shorter names for grabbing stuff\r
+//function $id(id){ return document.getElementById(id) }\r
+function $tags(t,o){ o=o||document; return o.getElementsByTagName(t) }\r
+function $tag(t,o,i) { o=o||document; return o.getElementsByTagName(t)[i||0] }\r
+// get elements by class name, eg $c('post', document, 'li')\r
+function $c(c,o,t) { o=o||document;\r
+       if (!o.length) o = [o]\r
+       else if(o.length == 1 && !o[0]) o = [o] // opera, you're weird\r
+       var elements = []\r
+       for(var i = 0, e; e = o[i]; i++) {\r
+               if(e.getElementsByTagName) {\r
+                       var children = e.getElementsByTagName(t || '*')\r
+                       for (var j = 0, child; child = children[j]; j++) if(isA(child,c)) elements.push(child)\r
+       }}\r
+       return elements\r
+}\r
+\r
+// get mouse pointer position\r
+function pointerX(e) { return e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) }\r
+function pointerY(e) { return e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) }\r
+\r
+// get window size\r
+function windowHeight() { return self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0 }\r
+function windowWidth() { return self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0 }\r
+\r
+// get pixel position of an object\r
+function getY(o){ var y = 0\r
+       if (o.offsetParent) while (o.offsetParent) { y += o.offsetTop; o = o.offsetParent }\r
+       return y\r
+}\r
+function getX(o){ var x = 0\r
+       if (o.offsetParent) while (o.offsetParent) { x += o.offsetLeft; o = o.offsetParent }\r
+       return x\r
+}\r
+\r
+\r
+// event functions\r
+function falseFunc(){ return false }\r
+\r
+// the following two functions ganked from prototype (see http://prototype.conio.net)\r
+// (c) 2005 Sam Stephenson\r
+var Class = {\r
+       create: function() {\r
+               return function() { this.initialize.apply(this, arguments) }\r
+}}\r
+Function.prototype.bind = function(o) {\r
+       var __method = this\r
+       return function() { return __method.apply(o, arguments) }\r
+}
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost2_popup.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost2_popup.js
new file mode 100644 (file)
index 0000000..e431095
--- /dev/null
@@ -0,0 +1,373 @@
+String.prototype.escRegExp = function(){ return this.replace(/[\\$*+?()=!|,{}\[\]\.^]/g,'\\$&') }\r
+String.prototype.unescHtml = function(){ var i,t=this; for(i in e) t=t.replace(new RegExp(i,'g'),e[i]); return t }\r
+function Suggestions() { this.length=1; this.picked=0; this[0] = 'dummy' }\r
+var suggestions = new Suggestions()\r
+var tagSearch='', lastEdit=''\r
+var h={}, sections=[{},{},{},{},{}], selected={}, currentTag={}, e={'&lt;':'<','&gt;':'>','&amp;':'&','&quot;':'"'}, reco = {}\r
+\r
+function init() { var elements = ['rec','pop','pop2','network','pop3'], divs={}, freqSort=[], freqMap={}, t,i\r
+       for(i in elements) divs[elements[i]] = makeDiv(elements[i] + 'tags')\r
+       elements = elements.concat('suggest','tags')\r
+       for(i in elements) h[elements[i]] = $id(elements[i])\r
+       for(t in tags) {\r
+               if (!freqMap[tags[t]]) { freqMap[tags[t]] = {}; freqSort[freqSort.length] = tags[t] }\r
+               freqMap[tags[t]][t] = true;\r
+       }\r
+       freqSort.sort(function(a,b){return b-a})\r
+       for(i in freqSort) { for(t in freqMap[freqSort[i]]) tagSearch += t + ' ' }\r
+       for(t in tagFor) { t = 'for:'+tagFor[t] \r
+               sections[2][t.toLowerCase()] = makeTag(divs.network, t, 'swap')\r
+               tagSearch += t + ' '\r
+       }\r
+       if(tagFor.length > 0) { h.network.style.display = 'block'; h.network.appendChild(divs.network) }\r
+       \r
+       \r
+       \r
+       \r
+       for(t in tagPop) { t = tagPop[t]\r
+               sections[0][t.toLowerCase()] = makeTag(divs.pop, t, 'swap')\r
+               // if(!sections[0][t.toLowerCase()] && !sections[4][t.toLowerCase()]) tagSearch += t + ' '\r
+       }\r
+       if(tagPop.length > 0) { h.pop.style.display = 'block'; h.pop.appendChild(divs.pop) }\r
+       \r
+       \r
+       for(t in tagPop2) { t = tagPop2[t]\r
+               sections[3][t.toLowerCase()] = makeTag(divs.pop2, t, 'swap')\r
+                //if(!sections[0][t.toLowerCase()] && !sections[4][t.toLowerCase()]) tagSearch += t + ' '\r
+       }\r
+       if(tagPop2.length > 0) { h.pop2.style.display = 'block'; h.pop2.appendChild(divs.pop2) }\r
+       \r
+       \r
+       \r
+       for(t in tagPop3) { t = tagPop3[t]\r
+               sections[4][t.toLowerCase()] = makeTag(divs.pop3, t, 'swap')\r
+                //if(!sections[0][t.toLowerCase()] && !sections[4][t.toLowerCase()]) tagSearch += t + ' '\r
+       }\r
+       if(tagPop3.length > 0) { h.pop3.style.display = 'block'; h.pop3.appendChild(divs.pop3) }\r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       for(t in tagRec) { t = tagRec[t]\r
+               reco[t.toLowerCase()] = true\r
+               sections[1][t.toLowerCase()] = makeTag(divs.rec, t, 'swap')\r
+               for(i in sections) {\r
+                       if(sections[i][t.toLowerCase()]) addClass(sections[i][t.toLowerCase()], 'recommended')\r
+               }}\r
+       if(tagRec.length > 0) { h.rec.style.display = 'block'; h.rec.appendChild(divs.rec) }\r
+       \r
+       document.onkeyup = keyup\r
+       h.tags.onkeypress = keypress; h.tags.onkeydown = keydown\r
+\r
+       $id('url').onfocus = $id('title').onfocus = $id('description').onfocus = dropdownBlur\r
+       $id('tags').onfocus = dropdownFocus\r
+       \r
+       addClass($id('suggest'), 'popup')\r
+       $id('suggest').style.top = getY($id('tags')) + h.tags.offsetHeight - 1 + 'px'\r
+       inviso = document.createElement('div')\r
+       inviso.style.top = inviso.style.left = 0\r
+       inviso.style.position = 'absolute'; inviso.style.visibility = 'hidden'\r
+       inviso.style.fontSize = getStyle($id('tags'), 'font-size')\r
+       inviso.style.fontFamily = getStyle($id('tags'), 'font-family')\r
+       \r
+       h.tags.parentNode.appendChild(inviso)\r
+       updateHilight()\r
+       //$id('title_line2').innerHTML = '';    \r
+       //$id('poptags_msg').innerHTML = 'popular tags for this url from del.icio.us:';\r
+       /*if (Inspd_delicious_username != 0 && Inspd_delintegrate_commontags == 1 && !document.forms[0].url.value.match(''+Inspd_defurl+'') && !document.forms[0].url.value.match('chrome\\://') && document.forms[0].url.value.match('^http\\://') && !document.forms[0].url.value.match('^http\\://localhost') && !document.forms[0].url.value.match('^http\\://127.0.0.') && !document.forms[0].url.value.match('^http\\://192.168.0.') && !document.forms[0].url.value.match('^http\\://10.0.0.')){\r
+       */\r
+       var bulletIconTXT = '<img src="chrome://inspd/content/v2/altpost/images/inspd_altpost_arrow1.png" width="16" height="16" align="absmiddle"/>';\r
+       $id('pop2tags_msg').innerHTML = ''+bulletIconTXT+' tags used in your 30 most recent bookmarks:';\r
+       \r
+       if($utils.qs('copytags') && $utils.qs('copytags') != 'null'){\r
+               if ($utils.qs('copyuser') && $utils.qs('copyuser') != 'null' && $utils.qs('copyuser') != false ){\r
+                       $id('pop3tags_msg').innerHTML = ''+bulletIconTXT+' you copied this bookmark from user <a title="Go to this user\'s home page" href="http://del.icio.us/'+$utils.qs('copyuser')+'" target="_blank">'+$utils.decode($utils.qs('copyuser'))+'</a> with tags:';\r
+               }\r
+               else {\r
+                       $id('pop3tags_msg').innerHTML = ''+bulletIconTXT+' tags copied with this bookmark from del.icio.us:';\r
+               }\r
+       }       \r
+       \r
+       if(typeof(Inspd_delintegrate_commontags_found)!='undefined') {\r
+                       if(Inspd_delintegrate_commontags_found == 1){\r
+                               if(typeof(Inspd_delintegrate_commontags_found_url)!='undefined' && Inspd_delintegrate_commontags_found_url == 1){\r
+                                       $id('poptags_msg').innerHTML = '<span style="color:#000000;display:block;">'+bulletIconTXT+' <small style="font-size:100%;color:#FE6601;">popular</small> tags for this URL from <small style="font-size:100%;color:#0201FD;"><a title="go to this url&#39;s history page" href="http://del.icio.us/url/'+hex_md5(document.forms[0].url.value)+'" target="_blank">del.icio.us</a>:</small> <small style="font-size:80%;color:#000000;">[&nbsp;<b style="cursor:pointer;color:#ff0000;" id="loggedindelusername" onmouseover="this.innerHTML=\'you are hitting del.icio.us history pages to get popular tags. Hit with caution!\'" onmouseout="this.innerHTML=\'....\'">....</b>&nbsp;]</small></span>';\r
+                               }\r
+                               else{\r
+                                       $id('poptags_msg').innerHTML = '<span style="color:#000000;display:block;">'+bulletIconTXT+' <small style="font-size:100%;color:#FE6601;">popular</small> tags for this URL from <small style="font-size:100%;color:#0201FD;"><a title="go to your del.icio.us home page" href="http://del.icio.us/'+Inspd_delicious_username+'" target="_blank">your del.icio.us post page</a>:</small> <small style="font-size:80%;color:#000000;">[&nbsp;<b style="cursor:pointer;color:#006625;" id="loggedindelusername" onmouseover="this.innerHTML=\'you are logged into del.icio.us as: '+Inspd_delicious_username+'\'" onmouseout="this.innerHTML=\'....\'">....</b></a>&nbsp;]</small></span>';\r
+                               }\r
+                       }\r
+                       else if(Inspd_delintegrate_commontags_found == 2){\r
+                               //$id('poptags_msg').innerHTML = '<span style="color:#CC0001;background-color:#FFFFCC;'+\r
+                               //'-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;'+\r
+                               //'border: 0px solid #cccccc;">no popular tags were found for this url on del.icio.us</span>';\r
+                               setTimeout('$id(\'poptags_msg\').innerHTML=\'\';$id(\'poptags_msg\').innerHTML=\'<span style="color:#CC0001;background-color:#FFFFCC;-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;border:1px solid #FFFF9D;">no popular tags were found for this url on del.icio.us</span>\';',500);\r
+                               //setTimeout('$effects.fadeOut(\'poptags_msg\');',6000);\r
+                               setTimeout('$id(\'poptags_msg\').setAttribute("style","visibility:hidden;");',6000);\r
+                       }\r
+                       \r
+                       else if(Inspd_delintegrate_commontags_found == 3){\r
+                               setTimeout('$id(\'poptags_msg\').innerHTML=\'\';$id(\'poptags_msg\').innerHTML=\'<span style="color:#CC0001;background-color:#FFFFCC;-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;border:1px solid #FFFF9D;">Could not connect to del.icio.us</span>\';',500);\r
+                               //setTimeout('$effects.fadeOut(\'poptags_msg\');',6000);\r
+                               setTimeout('$id(\'poptags_msg\').setAttribute("style","visibility:hidden;");',6000);\r
+                       }\r
+                       \r
+                       else if(Inspd_delintegrate_commontags_found == 4){\r
+                               setTimeout('$id(\'poptags_msg\').innerHTML=\'\';$id(\'poptags_msg\').innerHTML=\'<span style="color:#CC0001;background-color:#FFFFCC;-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;border:1px solid #FFFF9D;">You have chosen to get popular tags from your del.icio.us posting page but you are not logged in! Login first!</span>\';',500);\r
+                               //setTimeout('$effects.fadeOut(\'poptags_msg\');',10000);\r
+                               setTimeout('$id(\'poptags_msg\').setAttribute("style","visibility:hidden;");',10000);\r
+                       }\r
+                       \r
+                       else if(Inspd_delintegrate_commontags_found == 5){\r
+                               setTimeout('$id(\'poptags_msg\').innerHTML=\'\';$id(\'poptags_msg\').innerHTML=\'<span style="color:#CC0001;background-color:#FFFFCC;-moz-box-sizing:border-box;-moz-border-radius: 5px 5px 5px 5px ;padding:5px;border:1px solid #FFFF9D;">You are hitting del.icio.us history page too much! Please switch back to "Get popular tags from personal page" for a while.</span>\';',500);\r
+                               //setTimeout('$effects.fadeOut(\'poptags_msg\');',10000);\r
+                               setTimeout('$id(\'poptags_msg\').setAttribute("style","visibility:hidden;");',10000);\r
+                       }\r
+                               \r
+       }\r
+       else{\r
+               setTimeout('$effects.fadeOut(\'poptags_msg\');',1);\r
+       }\r
+       \r
+       \r
+\r
+}\r
+\r
+var tagsFocused = false\r
+function dropdownBlur() { tagsFocused = false; hideSuggestions() }\r
+function dropdownFocus() { tagsFocused = true }\r
+\r
+function makeDiv(id) { var obj=document.createElement('div'); obj.id=id; return obj }\r
+\r
+var tagHeight = 0\r
+function makeTag(parent, tag, js, post, display) {\r
+       parent.appendChild(document.createTextNode(' '))\r
+       var obj = document.createElement('a')\r
+       if (display) obj.style.display = display\r
+       obj.className = 'tag'\r
+       obj.setAttribute('href','javascript:'+js+'("'+tag.replace(/"/g,'\\"')+'")')\r
+       var text = tag\r
+       if(post) text += post\r
+       obj.appendChild(document.createTextNode(text))\r
+       \r
+       var tagCountTXT //= '' ;\r
+       if (tags[tag] !== undefined){tagCountTXT = tags[tag];}else{tagCountTXT = 0;tags[tag]= 0;}\r
+       \r
+       \r
+       \r
+       if(reco[tag.toLowerCase()]) addClass(obj, 'recommended')\r
+       else if(tagCountTXT < 2) obj.style.color = '#66f'\r
+       else if(tagCountTXT == 2) obj.style.color = '#44f'\r
+       \r
+       \r
+       \r
+       \r
+       //if(tags[tag] > 10) obj.style.fontSize = '90%'\r
+       parent.appendChild(obj)\r
+       if (tagHeight == 0) tagHeight = obj.offsetHeight\r
+       return obj\r
+}\r
+\r
+function select(t) { var i; t=t.toLowerCase()\r
+       selected[t] = true; for(i in sections) if(sections[i][t]) addClass(sections[i][t], 'selected')\r
+}\r
+function deselect(t) { var i; t=t.toLowerCase()\r
+       delete selected[t]; for(i in sections) if(sections[i][t]) rmClass(sections[i][t], 'selected')\r
+}\r
+\r
+function swap(tag){\r
+       var tagArray = h.tags.value.trim().split(' '), present=false, t, tl=tag.toLowerCase()\r
+       if (tagArray[0].trim() == '') tagArray.splice(0,1);\r
+       for (t=0; t<tagArray.length; t++) {\r
+               if (tagArray[t].toLowerCase() == tl) { tagArray.splice(t,1); deselect(tag); present=true; t-=1  }\r
+       }\r
+       if (!present) { tagArray.push(tag); select(tag) }\r
+       var content = tagArray.join(' ')\r
+       lastEdit = h.tags.value = (content.length > 1) ? content + ' ' : content\r
+       hideSuggestions()\r
+       focusTo(h.tags)\r
+}\r
+\r
+function complete(tag) { var tagArray=h.tags.value.split(' ')\r
+       if(typeof tag == 'undefined') tag = suggestions[suggestions.picked].innerHTML.replace(/ \([0-9]+\)$/, '').unescHtml() // tab complete rather than click complete\r
+       tagArray[currentTag.index] = tag\r
+       var text = tagArray.join(' ')\r
+       h.tags.value = (text.substr(-1,1) == ' ' ? text : text + ' ' )\r
+       hideSuggestions()\r
+       updateHilight()\r
+       focusTo(h.tags)\r
+       //$id("tags").blur();   //hack to "wake up" safari\r
+       //$id("tags").focus();\r
+}\r
+\r
+// focus the caret to end of a form input (+ optionally select some text)\r
+var range=0 //ie\r
+function focusTo(obj, selectFrom) {\r
+       if (typeof selectFrom == 'undefined') selectFrom = obj.value.length\r
+       if(obj.createTextRange){ //ie + opera\r
+               if (range == 0) range = obj.createTextRange()\r
+               range.moveEnd("character",obj.value.length)\r
+               range.moveStart("character",selectFrom)\r
+               setTimeout('range.select()', 10)\r
+       } else if (obj.setSelectionRange){ //ff\r
+               obj.select()\r
+               obj.setSelectionRange(selectFrom,obj.value.length)\r
+       } else { //safari :(\r
+        obj.blur()\r
+        obj.focus()\r
+}}\r
+\r
+function updateHilight() { var tagArray=h.tags.value.toLowerCase().split(' '), tagHash={}\r
+       if (tagArray[0].trim() == '') tagArray.splice(0,1);\r
+       for (t in tagArray) {\r
+               if(tagArray[t] != '') {\r
+                       select(tagArray[t])\r
+                       tagHash[tagArray[t]] = true\r
+       }}\r
+       for (t in selected) {if (!tagHash[t]) deselect(t)}\r
+       return [tagArray, tagHash]\r
+}\r
+\r
+function hideSuggestions() {\r
+       h.suggest.parentNode.parentNode.style.visibility='hidden'\r
+       $id('suggest').style.left = '700px'\r
+}\r
+function showSuggestions() {\r
+       suggest(0)\r
+       var pos = 0, tagz = h.tags.value.split(' '), s = $id('suggest'), t = $id('tags')\r
+       \r
+       for(var i=0; i<currentTag.index; i++) { pos += tagz[i].length+1 }\r
+       var text = h.tags.value.substr(0,pos)\r
+       var esc = {'<':'[','>':']',' ':'&nbsp;'}\r
+       for(var i in esc) text=text.replace(new RegExp(i,'g'), esc[i])\r
+       inviso.innerHTML = text\r
+       s.style.height = 'auto'; s.style.width = 'auto'; s.style.overflow = 'visible'\r
+       var suggestHeight = getY(s) + s.offsetHeight\r
+       if(windowHeight() < suggestHeight) {\r
+               s.style.height = windowHeight() - getY(s) - 2 + 'px'\r
+               s.style.overflow = 'auto'\r
+               s.scrollTop = 0\r
+               if(s.clientWidth < s.scrollWidth) s.style.width = s.scrollWidth + (s.scrollWidth - s.clientWidth) + 'px' // get rid of horizontal scrollbars on ie overflow divs\r
+       }\r
+       s.style.left = getX(t) + inviso.offsetWidth + 'px' // put dropdown right below current typed tag\r
+       if(getX(s) + s.offsetWidth > getX(t) + t.offsetWidth) { // force dropdown to right align to tags input\r
+               s.style.left = getX(s) - (getX(s) + s.offsetWidth - getX(t) - t.offsetWidth) + 'px'\r
+       }\r
+       h.suggest.parentNode.parentNode.style.visibility='visible'\r
+}\r
+\r
+function scrollDropdown() {\r
+       var amt = Math.ceil((Math.ceil($id('suggest').offsetHeight - tagHeight) / tagHeight) / 2 )\r
+       var scrollTo = (suggestions.picked * tagHeight) - (amt * tagHeight)\r
+       $id('suggest').scrollTop = (scrollTo < 0) ? 0 : scrollTo\r
+}\r
+\r
+function updateSuggestions() {\r
+       if(!getCurrentTag() || !currentTag.text || !tagsFocused) { hideSuggestions(); return false }\r
+\r
+       while (h.suggest.hasChildNodes()) h.suggest.removeChild(h.suggest.firstChild)\r
+       delete suggestions; suggestions = new Suggestions();\r
+       var tagArray = h.tags.value.toLowerCase().split(' '), txt=currentTag.text.escRegExp(), tagHash={}, t\r
+       for(t in tagArray) tagHash[tagArray[t]] = true\r
+\r
+       var search = tagSearch.match(new RegExp(("(?:^| )("+txt+"[^ ]+)"), "gi"))\r
+       if(search){\r
+               for (i=0; i<search.length; i++) {\r
+                       tl = search[i].trim()\r
+                       if(tagHash[tl])  continue // do not suggest already typed tag\r
+                       var text = tags[tl] ? ' ('+tags[tl]+')' : ''\r
+                       suggestions[suggestions.length] = makeTag(h.suggest, tl, 'complete', text, 'block')\r
+                       suggestions.length++\r
+       }}\r
+       if (suggestions.length > 1) showSuggestions()\r
+       else hideSuggestions()\r
+}\r
+\r
+function suggest(index) {\r
+       if(suggestions.length == 1) index = 0\r
+       if(suggestions[suggestions.picked].className) rmClass(suggestions[suggestions.picked], 'selected')\r
+       addClass(suggestions[suggestions.picked = index], 'selected')\r
+}\r
+\r
+function getCurrentTag() {\r
+       if(h.tags.value == lastEdit) return true // no edit\r
+       if(h.tags == '') return false\r
+       currentTag = {}\r
+       var tagArray=h.tags.value.toLowerCase().split(' '), oldArray=lastEdit.toLowerCase().split(' '), currentTags = [], matched=false, t,o\r
+       for (t in tagArray) {\r
+               for (o in oldArray) {\r
+                       if(typeof oldArray[o] == 'undefined') { oldArray.splice(o,1); break }\r
+                       if(tagArray[t] == oldArray[o]) { matched = true; oldArray.splice(o,1); break; }\r
+               }\r
+               if(!matched) currentTags[currentTags.length] = t\r
+               matched=false\r
+       }\r
+       // more than one word changed... abort\r
+       if(currentTags.length > 1) { hideSuggestions(); return false }\r
+       currentTag = { text:tagArray[currentTags[0]], index:currentTags[0] }\r
+       return true\r
+}\r
+\r
+function prevent(e) {\r
+       if (window.event) window.event.returnValue = false\r
+       else e.preventDefault()\r
+}\r
+\r
+function keydown(e) { e=e||window.event\r
+       if(h.suggest.parentNode.parentNode.style.visibility == 'visible') {\r
+               switch(e.keyCode) {\r
+                       case 40:\r
+                               suggest((suggestions.picked + 1) % suggestions.length)\r
+                               scrollDropdown()\r
+                               prevent(e)\r
+                               break\r
+                       case 38:\r
+                               suggest(suggestions.picked == 0 ? suggestions.length - 1 : suggestions.picked - 1)\r
+                               scrollDropdown()\r
+                               prevent(e)\r
+                               break\r
+}}}\r
+\r
+function keypress(e) { e=e||window.event\r
+       switch(e.keyCode){\r
+               case 38: case 40:\r
+                       prevent(e)\r
+                       break\r
+               case 9:\r
+                       if(h.suggest.parentNode.parentNode.style.visibility == 'visible') prevent(e)\r
+                       break\r
+               case 13:\r
+                       if(h.suggest.parentNode.parentNode.style.visibility == 'visible' && suggestions.picked > 0) prevent(e)\r
+                       break\r
+               default: lastEdit = h.tags.value\r
+}}\r
+\r
+function keyup(e) { e=e||window.event\r
+       switch(e.keyCode){\r
+               case 38: case 40:\r
+                       prevent(e)\r
+                       break\r
+               case 9:\r
+                       if(h.suggest.parentNode.parentNode.style.visibility == 'visible') {\r
+                               if (suggestions.picked == 0) suggest(1)\r
+                               complete()\r
+                               prevent(e)\r
+                       }\r
+                       break\r
+               case 13:\r
+                       if(h.suggest.parentNode.parentNode.style.visibility == 'visible' && suggestions.picked > 0) {\r
+                               complete()\r
+                               prevent(e)\r
+                       }\r
+                       break\r
+               case 35: //end\r
+               case 36: //home\r
+               case 39: //right\r
+               case 37: //left\r
+               case 32: //space\r
+                       hideSuggestions()\r
+                       break\r
+               default: updateSuggestions()\r
+}}
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost_trigger.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/altpost_trigger.js
new file mode 100644 (file)
index 0000000..494107b
--- /dev/null
@@ -0,0 +1,265 @@
+function $id(id){ return document.getElementById(id) }\r
+       \r
+\r
+       \r
+var $utils = {\r
+       \r
+       addEvent : function(event, elid, handler, bubble) {\r
+                               elid.addEventListener(event, handler, bubble);\r
+       },\r
+       \r
+       appendjs : function(filename,doc,elid){\r
+               if (!doc){doc = document;}\r
+               if (!elid){elid = 'head';}\r
+               var element=doc.createElement('script');\r
+               element.type = 'text/javascript';\r
+               //element.innerHTML = '';\r
+               element.setAttribute('src',filename);\r
+               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+       },\r
+       \r
+       \r
+       appendjsHTML : function(txtHTML,doc,elid){\r
+               if (!doc){doc = document;}\r
+               if (!elid){elid = 'head';}\r
+               var element=doc.createElement('script');\r
+               element.type = 'text/javascript';\r
+               element.innerHTML = txtHTML ;\r
+               //element.setAttribute('src',filename);\r
+               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+       },\r
+       \r
+       appendcssfile : function(filename,doc,elid){\r
+               if (!doc){doc = document;}\r
+               if (!elid){elid = 'head';}\r
+               var element=doc.createElement('link');\r
+               element.type = 'text/css';\r
+               element.setAttribute('rel','stylesheet');\r
+               element.setAttribute('href',filename);\r
+               //element.innerHTML = '';\r
+               doc.getElementsByTagName(elid).item(0).appendChild(element);\r
+       },\r
+       \r
+       replace : function(str,txt1,txt2){\r
+                               return str.replace(new RegExp(txt1,'g'),txt2);\r
+       },\r
+       trim : function(str){\r
+                               if(str){\r
+                                       return str.replace(/^\s*|\s*$/g,'');\r
+                               }\r
+                               else{\r
+                                       return "";\r
+                               } \r
+       },\r
+                               \r
+       decode: function(str){\r
+               return decodeURIComponent(str);\r
+       },\r
+                       \r
+       encode: function(str){\r
+               return encodeURIComponent(str);\r
+       },\r
+       \r
+       qs : function(Query_String_Name) {\r
+                       var i, pos, argname, argvalue, queryString, pairs;\r
+                       queryString = location.href.substring(location.href.indexOf("?")+1);\r
+                       pairs = queryString.split("&");\r
+                       for (i = 0; i < pairs.length; i++) { \r
+                               pos = pairs[i].indexOf('='); \r
+                                       if (pos == -1) {\r
+                                               continue; \r
+                                       }\r
+                               argname = pairs[i].substring(0,pos);\r
+                               argvalue = pairs[i].substring(pos+1); \r
+                               if (argname == Query_String_Name) {\r
+                                       // return unescape(argvalue.replace(/\+/g, " "));\r
+                                       return argvalue;\r
+                               }\r
+                       }\r
+                       return false;\r
+       }\r
+                       \r
+                       \r
+                       \r
+               \r
+       \r
+}\r
+\r
+var $effects = {\r
+       \r
+       fadeOut : function(elid) {\r
+               var opacs = ["0",".1",".2",".3",".4",".5",".6",".7",".8",".9","1"];\r
+               opacs.reverse();\r
+               for (var i = 0; i < 11; i++) {\r
+                       setTimeout('$id(\''+elid+'\').style.opacity = "'+opacs[i]+'";', i * 40);\r
+                       }\r
+                       setTimeout('$id(\''+elid+'\').style.display = "none";', i * 40);\r
+                       },\r
+}\r
+\r
+\r
+\r
+var $altp = {\r
+       initPage : function(){\r
+               $altp.setInitialFormValues();\r
+               \r
+               if(typeof(Inspd_delintegrate_commontags_found_url) !='undefined'){\r
+                       if(Inspd_delintegrate_commontags_found_url==1){\r
+                               $utils.appendjsHTML($altp.scrap_tagPop(),document);\r
+                       }\r
+               }\r
+               \r
+               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost1.js',document)\r
+               $utils.appendjs(''+Inspd_BASE_ALTPOST_URL+'altpost2_popup.js',document)\r
+                       \r
+               $utils.appendjsHTML($altp.scrapTags(),document);\r
+               \r
+               if ($utils.qs('copytags') && $utils.qs('copytags') != 'null'){\r
+                       $utils.appendjsHTML($altp.scrap_tagCopyUser(),document);\r
+               }\r
+               \r
+               $altp.setSwapForRecentLinks();\r
+               \r
+               setTimeout('init();',1);\r
+               \r
+       },\r
+       \r
+       \r
+       scrapTags : function(){\r
+               var txtTagsObj = 'loadTags({';\r
+               var tagsfromtbl = document.evaluate("//table[@class='tagsummarytable']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0);\r
+               var j = tagsfromtbl.getElementsByTagName('a').length ;\r
+               for(var i = 0;i<j;i++){\r
+                               //tagsfromtbl.getElementsByTagName('a')[i].setAttribute('onclick','swap(this.innerHTML);return false;');\r
+                               txtTagsObj +='"'+tagsfromtbl.getElementsByTagName('a')[i].innerHTML+'":'+tagsfromtbl.getElementsByTagName('span')[i].innerHTML.match(/\d+/)+'';\r
+                               if (i < j-1 ){txtTagsObj += ',';}\r
+               }\r
+               txtTagsObj += '})';     \r
+               return txtTagsObj;\r
+       },\r
+       \r
+       scrap_tagPop : function(){\r
+               try{\r
+               var txtTagsObj = 'tagPop = [';\r
+               //var tagsfromtbl = document.evaluate("//div[@class='alphacloud']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0);\r
+                var tagsfromtbl = document.evaluate("//span[@class='m']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);\r
+               \r
+               //alert(tagsfromtbl.snapshotLength);\r
+               \r
+               // var j = tagsfromtbl.getElementsByTagName('a').length ;\r
+               var j = tagsfromtbl.snapshotLength ; \r
+               \r
+               if (j == 0 ){\r
+                       var txtTagsObj = 'Inspd_delintegrate_commontags_found = 2';\r
+                       return txtTagsObj; \r
+               }\r
+               for(var i = 0;i<j;i++){\r
+                               //tagsfromtbl.getElementsByTagName('a')[i].setAttribute('onclick','swap(this.innerHTML);return false;');\r
+                               //txtTagsObj +='"'+(tagsfromtbl.getElementsByTagName('a')[i].innerHTML).toLowerCase()+'"';\r
+                               txtTagsObj +='"'+((tagsfromtbl.snapshotItem(i).innerHTML).replace(/<em>(.*)<\/em>/,'')).toLowerCase()+'"';\r
+                               if (i < j-1 ){txtTagsObj += ',';}\r
+               }\r
+               txtTagsObj += ']';\r
+               // alert(txtTagsObj);\r
+               }\r
+               catch(e){\r
+                       var txtTagsObj = 'Inspd_delintegrate_commontags_found = 2';\r
+                       //alert(e);\r
+               }\r
+               \r
+               return txtTagsObj;\r
+       },\r
+       \r
+       \r
+       scrap_tagCopyUser : function(){\r
+               \r
+               if ($utils.qs('copytags') && $utils.qs('copytags') != 'null'){\r
+                       var txtTagsObj = 'tagPop3 = [';\r
+                       var tagsfromtbl = ($utils.decode($utils.qs('copytags'))).split('+') ;           \r
+                       var j = tagsfromtbl.length ;\r
+                       for(var i = 0;i<j;i++){\r
+                               txtTagsObj +='"'+(tagsfromtbl[i]).toLowerCase()+'"';\r
+                                       if (i < j-1 ){txtTagsObj += ',';}\r
+                       }\r
+                       txtTagsObj += ']';\r
+                       return txtTagsObj;\r
+               }\r
+       },\r
+       \r
+       \r
+       \r
+       \r
+       setInitialFormValues : function(){\r
+               //document.forms[0].setAttribute('id','InspdForm');\r
+               //document.forms[0].setAttribute('name','InspdForm');\r
+               document.forms[0].url.setAttribute('id','url');         \r
+               document.forms[0].title.setAttribute('id','title');\r
+               document.forms[0].description.setAttribute('id','description'); \r
+               document.forms[0].tags.setAttribute('id','tags');                               \r
+               document.forms[0].tags.setAttribute('autocomplete','off');\r
+               \r
+       \r
+       },\r
+       \r
+       setSwapForRecentLinks : function(){\r
+               var alldivs = document.evaluate("//div[@class='bookmarkOperations']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);\r
+               var j = 30 ;\r
+               var jstxt = '';\r
+               for (var i=0; i<j; i++) {\r
+                       var div = alldivs.snapshotItem(i);\r
+                       for(var k = 0;k<div.getElementsByTagName('a').length;k++){\r
+                                       //div.getElementsByTagName('a')[k].setAttribute('onclick','swap(this.innerHTML);return false;');\r
+                                               if ( div.getElementsByTagName('a')[k].className == 'bookmarkTag'){\r
+                                                       jstxt += ''+div.getElementsByTagName('a')[k].innerHTML+' ';\r
+                                               }\r
+                       }\r
+               }\r
+               //jstxt += '';\r
+               $utils.appendjsHTML('tagPop2 = ['+$altp.removeDuplicateTags($utils.trim(jstxt))+'];',document);\r
+       },\r
+       \r
+       removeDuplicateTags : function(strtxt) { \r
+               var temp = strtxt; \r
+               var array = temp.split(" "); \r
+               array.sort(); \r
+               temp = array.join(" "); \r
+               do { \r
+                       var newTemp = temp; \r
+                       var temp = newTemp.replace(/\s(\w+\s)\1/, " $1"); \r
+               } while (temp.length != newTemp.length); \r
+               temp = temp.replace(/^(\w+\s)\1/, "$1"); \r
+               temp = temp.replace(/(\s\w+)\1$/, "$1"); \r
+               var orig = strtxt.split(" "); \r
+               var finalStr = ""; \r
+               for (var i=0; i<orig.length; i++) { \r
+                       if (temp.indexOf(orig[i] + " ") != -1) { \r
+                               finalStr += orig[i] + " "; \r
+                               temp = temp.split(orig[i] + " ").join(" "); \r
+                       } else if (temp.indexOf(" " + orig[i]) != -1) { \r
+                               finalStr += orig[i] + " "; \r
+                               temp = temp.split(" " + orig[i]).join(" "); \r
+                       } \r
+               } \r
+               if (finalStr.substring(finalStr.length-1, finalStr.length) == " ") { \r
+                       finalStr = finalStr.substring(0, finalStr.length-1); \r
+               } \r
+               var finalArray = '';\r
+               var newArray = finalStr.split(' ');\r
+               for(var j=0;j<newArray.length;j++){\r
+                               //if (newArray[j] != ''){\r
+                                       finalArray +='"'+newArray[j]+'"';\r
+                                       if(j<((newArray.length)-1)){finalArray +=',';}\r
+                               //}\r
+               }\r
+               // return finalStr; \r
+               return finalArray; \r
+       }       \r
+       \r
+\r
+\r
+}\r
+\r
+$altp.initPage();\r
+//init();\r
+//$utils.addEvent('load', window, function() { $altp.initPage(); }, false);\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow1.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow1.png
new file mode 100644 (file)
index 0000000..7b2921d
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow1.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow2.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow2.png
new file mode 100644 (file)
index 0000000..b47adff
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/images/inspd_altpost_arrow2.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.html
new file mode 100644 (file)
index 0000000..e8388d1
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html id="inspd">\r
+<head>\r
+       <title>Quick post to Insipid</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
+       <script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+       <script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+       <script type="text/javascript" src="chrome://inspd/content/v2/altpost/qpost.js"></script>\r
+       <link rel="shortcut icon" type="image/x-icon" href="chrome://inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.png" />\r
+\r
+<style>\r
+\r
+html, body, form { margin: 0; padding: 0; }\r
+body { font-family: arial, sans-serif; background-color: #fff; }\r
+h1, p { margin: 0 0 0.5em 0; padding: 0; }\r
+input { text-indent: 2px; _text-indent: 0; }\r
+input[type="submit"] { text-indent: 0; }\r
+h1 { font-size: 130%; }\r
+#header-mini { background-color: #ddd; padding: 0.3em 0.5em; margin: 0; }\r
+#header-mini h1 { font-size: 130%; margin: 0; padding: 0 0 0 26px; }\r
+#main { margin: 0px 1em 0 1em; }\r
+.postui { font-size: 14px }\r
+.postui .tag { padding: 2px; text-decoration: none; }\r
+.postui input { margin-left: 0; padding-left: 0; text-indent: 0; }\r
+td.rs { text-align: right; }\r
+\r
+</style>\r
+</head>\r
+\r
+<body>\r
+\r
+\r
+<div id="header-mini">\r
+<h1 style="display:inline">Quick post to Insipid</h1>\r
+</div>\r
+\r
\r
+<div class="postui" id="main">\r
+<form id="InspdForm" name="InspdForm" method="post" action="">\r
+<table>\r
+       <tbody>\r
+       \r
+       <tr id="msgurltr">\r
+               <td>&nbsp;</td>\r
+               <td align="left" id="msgurl" class="smaller"></td>\r
+       </tr>\r
+       \r
+       <tr>\r
+               <td class="rs">url</td>\r
+               <td><input name="url" autocomplete="off" id="url" value="" size="80" type="text" /></td>\r
+       </tr>\r
+       <tr>\r
+               <td class="rs">Title</td>\r
+               <td><input name="title" autocomplete="off" id="title" value="" size="80" type="text" /></td><td>\r
+               </td>\r
+       </tr>\r
+       <tr>\r
+               <td class="rs">Description</td>\r
+               <td>\r
+                       <textarea name="description" id="description" rows="2" cols="40"></textarea>\r
+               </td>\r
+               <td></td>\r
+       </tr>\r
+       <tr>\r
+               <td class="rs">tags</td>\r
+               <td><input id="tags" name="tags" value="" size="80" type="text" autocomplete="off" /></td><td align="left" class="smaller"><!--space separated--></td>\r
+       </tr>\r
+       \r
+\r
+       <tr>\r
+       \r
+       <td></td>\r
+       \r
+       <td><span id="snapshotspan">\r
+       <label class="smaller" for="snapshot">Snapshot:</label>\r
+       <input type="checkbox" name="snapshot" id="snapshot"/>\r
+       &nbsp;&nbsp;&nbsp;\r
+       </span>\r
+       \r
+       <label class="smaller" for="access_level">Public:</label>\r
+       <input type="checkbox" id="access_level" name="access_level" checked="true"/>\r
+       &nbsp;&nbsp;&nbsp;\r
+       <label class="smaller" for="redirect">Return:</label>\r
+       <input type="checkbox" id="redirect" name="redirect"/>\r
+       \r
+\r
+       </td>\r
+       \r
+       \r
+       \r
+       \r
+       </tr>\r
+       \r
+       \r
+       \r
+       <tr>\r
+               <td class="rs"><input id="submitbtn" name="submitbtn" value="Save" type="submit" /></td>\r
+               <td align="right">\r
+\r
+               </td>\r
+               <td></td>\r
+       </tr>\r
+\r
+               \r
+       </tbody></table>\r
+        <input type="hidden" id="save" name="save" value="true" />\r
+           <input type="hidden" id="op" name="op" value="add_bookmark" />\r
+</form>\r
+\r
+</div>\r
+<script type="text/javascript">\r
+$id('url').style.width = $id('title').style.width = $id('tags').style.width = '500px'\r
+$id('description').style.width = $id('tags').offsetWidth - 4 + 'px'\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/altpost/qpost.js
new file mode 100644 (file)
index 0000000..82a39ac
--- /dev/null
@@ -0,0 +1,49 @@
+var $qpost = {\r
+\r
+       pageLoad : function(){\r
+               \r
+               document.forms[0].setAttribute('action',''+$prefs.get('defurl')+'');\r
+               document.forms[0].setAttribute('onsubmit','return $qpost.validateForm();');\r
+               if ($utils.qs('redirect') == 'true'){\r
+                       document.forms[0].redirect.setAttribute('checked','true');\r
+               }\r
+               else {\r
+                       document.forms[0].redirect.removeAttribute('checked');\r
+               }\r
+               \r
+               if($utils.qs('url')){\r
+                       document.forms[0].url.value = $utils.decode($utils.qs('url'));\r
+               \r
+               }\r
+               \r
+               if($utils.qs('title')){\r
+                       document.forms[0].title.value = $utils.decode($utils.qs('title'));\r
+               \r
+               }\r
+               \r
+               \r
+       },\r
+       \r
+       validateForm : function(){\r
+               if(!$utils.trim(document.forms[0].url.value)){\r
+                       alert('Please enter a URL for your post');\r
+                       return false;\r
+               }\r
+               else if(!$utils.trim(document.forms[0].title.value) ){\r
+                               alert('Please enter a title for your post');\r
+                               return false;\r
+               }\r
+               else {\r
+                       return true;\r
+               }\r
+       \r
+       }\r
+\r
+\r
+\r
+}\r
+\r
+\r
+$utils.addEvent('DOMContentLoaded', window, function() { $qpost.pageLoad(); }, false);\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/allitems.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/allitems.html
new file mode 100644 (file)
index 0000000..647dcf7
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>All items</title>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/md5.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/inspd_json_lib.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/home.js"></script>\r
+<link rel="stylesheet" type="text/css" href="chrome://inspd/content/v2/json/style.css">\r
+<link rel="shortcut icon" href="chrome://inspd/content/v2/json/images/inspd_icon6_allitems_icon_1616.png" />\r
+</head>\r
+\r
+<body>\r
+                       <h1 id="header"><img src="images/inspd_icon6_allitems_html_icon_1616.png" align="absmiddle" style="margin-right:5px;"/>All items</h1>\r
+                       <div id="cont">\r
+                               <div id="nav">\r
+               <div id="inspd_cloud_mini_header" class="inspd_cloud_mini_header" style="display:block;visibility:hidden;">\r
+               &raquo; Search tags inline: <input size="11" name="qq" id="qq" type="text" onkeyup="$id('inspd_cloud').innerHTML = $cloud.g_draw(Insipid.tags,this.value)" />\r
+               </div>\r
+               \r
+               <span><ul id="inspd_cloud" class="inspd_cloud_mini">\r
+                               <li style="font-size: 20px;">Loading your tags...</li>\r
+                               </ul>\r
+               </span>\r
+               \r
+               </div>\r
+                       \r
+                       <span id="contposts"><div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Loading your bookmarks...</div></span>\r
+\r
+                       </div>\r
+       \r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.html
new file mode 100644 (file)
index 0000000..069532b
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>Home</title>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/md5.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/inspd_json_lib.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/home.js"></script>\r
+<link rel="stylesheet" type="text/css" href="chrome://inspd/content/v2/json/style.css">\r
+<link rel="shortcut icon" href="chrome://inspd/content/v2/json/images/inspd_icon1_1616.png" />\r
+</head>\r
+\r
+<body>\r
+                       <h1 id="header"><img src="images/inspd_icon2_home.png" align="absmiddle" style="margin-right:5px;"/>Home</h1>\r
+                       <div id="cont">\r
+                               <div id="nav">\r
+               <div id="inspd_cloud_mini_header" class="inspd_cloud_mini_header" style="display:block;visibility:hidden;">\r
+               &raquo; Search tags inline: <input size="11" name="qq" id="qq" type="text" onkeyup="$id('inspd_cloud').innerHTML = $cloud.g_draw(Insipid.tags,this.value)" />\r
+               </div>\r
+               <span><ul id="inspd_cloud" class="inspd_cloud_mini">\r
+                               <li style="font-size: 20px;">Loading your tags...</li>\r
+                               </ul>\r
+               </span>\r
+                               </div>\r
+                       \r
+                       <span id="contposts"><div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Loading your bookmarks...</div></span>\r
+                       \r
+\r
+                       </div>\r
+               \r
+\r
+\r
+                       \r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/home.js
new file mode 100644 (file)
index 0000000..6335677
--- /dev/null
@@ -0,0 +1,190 @@
+var $home = {\r
+       draw_body_page: function(){\r
+               if ($utils.qs('tag') != ''){\r
+                       document.title = document.title+' ['+$utils.decode($utils.qs('tag'))+']';\r
+                       $id('header').innerHTML =  $id('header').innerHTML+' ['+$utils.decode($utils.qs('tag'))+']';\r
+               }\r
+               else if ($utils.qs('q') != ''){\r
+                       document.title = document.title+' ['+$utils.decode($utils.qs('q'))+']';\r
+                       $id('header').innerHTML =  $id('header').innerHTML+' ['+$utils.decode($utils.qs('q'))+']';\r
+               }\r
+               \r
+       \r
+       \r
+               if ($conditions.page_with_qs_tags()){\r
+                       $ajax.get(''+$prefs.get('defurl')+'?op=json_tags'+qs_tag+'&d='+new Date().valueOf()+'', this.draw_cloud_mini);\r
+               }\r
+               \r
+               \r
+               this.draw_contposts();\r
+\r
+       },\r
+       \r
+       \r
+       draw_cloud_mini: function(http_request){\r
+               if (http_request.readyState == 4) {\r
+                       try{\r
+                       if (http_request.status == 200) {\r
+                               eval(http_request.responseText);\r
+                                       \r
+                                       $id('inspd_cloud_mini_header').style.visibility = 'visible';\r
+                                       \r
+                                       var tags = Insipid.tags ;\r
+                                       \r
+                                       var keyArray = new Array();\r
+                                       var i = 0 ; \r
+                                       for (t in tags){\r
+                                               keyArray[i] = t;\r
+                                               i++;\r
+                                       }\r
+                                       \r
+                                       if ($prefs.get('cloud.sortby') == 'alphabetic'){\r
+                                                       $cloud.p_sort(keyArray, tags, 'alpha','');\r
+                                       }\r
+                                       else {\r
+                                                       $cloud.p_sort(keyArray, tags, 'freq','');       \r
+                                       }\r
+                               \r
+                               \r
+                       } \r
+                       else {\r
+                               // error\r
+                       }\r
+                       }\r
+                       catch(e){\r
+                               //error\r
+                       }\r
+               }\r
+       },\r
+       \r
+       draw_contposts: function(){\r
+               \r
+               var url = ''+$prefs.get('defurl')+'?op=json_posts&count='+qs_count+'&page='+qs_page+''+qs_tag+'&d='+new Date().valueOf()+'';\r
+               var http_request = new XMLHttpRequest();\r
+               http_request.onreadystatechange = function() { \r
+                       if (http_request.readyState == 4) {\r
+                               try{\r
+                                       if (http_request.status == 200) {\r
+                                               eval(http_request.responseText);\r
+                                                       if (typeof Insipid.posts[0] == 'undefined'){\r
+                                                               \r
+                                                               $id('nav').style.display = 'none';\r
+                                                               if ($utils.qs('page')){\r
+                                                                       \r
+                                                                       $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Page '+(parseInt($utils.qs('page')))+'</span> does not exists. <a href="'+Inspd_JSON_HOME_PAGE+'">Return to Home</a>.</div>';\r
+                                                               }\r
+                                                               else if (qs_tag != ''){\r
+                                                                       qs_tag = $utils.replace(qs_tag,'&tag=','');\r
+                                                                       qs_tag = $utils.replace(qs_tag,'&q=','');\r
+                                                                       $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">'+$utils.decode(qs_tag)+'</span> returned no results. <a href="'+Inspd_JSON_HOME_PAGE+'">Return to Home</a>.</div>';\r
+                                                               }\r
+                                                               \r
+                                                       }\r
+                                                       else {\r
+                                                               $id('contposts').innerHTML = '';\r
+                                                               $id('inspd_cloud_mini_header').style.visibility = 'visible';\r
+                                                               //$id('inspd_cloud').innerHTML = '' ;\r
+                                                               $posts.g_draw('contposts',Insipid.posts);\r
+                                                               if ($utils.qs('tag') == '' || $utils.qs('tag').match("\\+")){\r
+                                                                       //$id('inspd_cloud_mini_header').style.visibility = 'visible';\r
+                                                                       $cloud.extract_tags_from_posts('inspd_cloud', Insipid.posts);\r
+                                                               }\r
+                                                       }\r
+                                               \r
+                                       } \r
+                                       else {\r
+                                               // error\r
+                                               \r
+                                               $id('nav').style.display = 'none';\r
+                                               $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                                               \r
+                                       }\r
+                                       \r
+                               }\r
+                               catch(e){\r
+                               //$utils.console(e);\r
+                               $id('nav').style.display = 'none';\r
+                               $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                               }\r
+                                       \r
+                       }\r
+               \r
+               }\r
+               \r
+               http_request.open('GET', url, true);\r
+               http_request.setRequestHeader("Connection", "close");\r
+               http_request.setRequestHeader("Keep-Alive", "");\r
+               http_request.send(null);\r
+\r
+       },\r
+       \r
+       draw_posts_inline : function(page,tag){\r
+                               \r
+                               qs_page = parseInt(page);\r
+                               \r
+                               $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Loading your bookmarks...</div>'; \r
+                               scroll(0,0);\r
+                               var url = ''+$prefs.get('defurl')+'?op=json_posts&count='+qs_count+'&page='+page+''+$utils.decode(tag)+'&d='+new Date().valueOf()+'';\r
+                               var http_request = new XMLHttpRequest();\r
+                               http_request.onreadystatechange = function() { \r
+                                       \r
+                                       if (http_request.readyState == 4) {\r
+                                               try{\r
+                                               if (http_request.status == 200) {\r
+                                                       \r
+                                                                       eval(http_request.responseText);\r
+                                                                       if (typeof Insipid.posts[0] == 'undefined'){\r
+                                                                               $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Page '+(page-1)+' was the last. Reloading...</div>';\r
+                                                                               backfromlast = true ;\r
+                                                                               setTimeout('$home.draw_posts_inline('+(page-1)+',"'+tag+'")',2000);\r
+                                                                               \r
+                                                                       }\r
+                                                                       else{ \r
+                                                                               $id('contposts').innerHTML = ''; \r
+                                                                       \r
+                                                                               $posts.g_draw('contposts',Insipid.posts);\r
+                                                                               if (($utils.qs('tag') && $utils.qs('tag').match("\\+")) || document.location.href.match(Inspd_JSON_HOME_PAGE) || document.location.href.match(Inspd_JSON_ALLITEMS_PAGE)){\r
+                                                                                       $cloud.extract_tags_from_posts('inspd_cloud', Insipid.posts);\r
+                                                                               }\r
+                                                                               \r
+                                                                               \r
+                                                                       }                                               \r
+                                               } \r
+                                               else {\r
+                                                       // error\r
+                                                       $id('nav').style.display = 'none';\r
+                                                       $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                               \r
+                                               }\r
+                                               \r
+                                               }\r
+                                               catch(e){\r
+                                                       $id('nav').style.display = 'none';\r
+                                                       $id('contposts').innerHTML = '<div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                               \r
+                                               }\r
+                                               \r
+                                       }\r
+                               };\r
+                               \r
+                               http_request.open('GET', url, true);\r
+                               http_request.setRequestHeader("Connection", "close");\r
+                               http_request.setRequestHeader("Keep-Alive", "");\r
+                               http_request.send(null);\r
+\r
+       },\r
+       \r
+       \r
+       pageLoad: function(){\r
+               $conditions.gate();\r
+               this.draw_body_page();\r
+       \r
+       }\r
+               \r
+}\r
+\r
+\r
+       \r
+       \r
+$utils.addEvent('DOMContentLoaded', window, function() { $home.pageLoad(); }, false);\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/cancel.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/cancel.png
new file mode 100644 (file)
index 0000000..7bcdfff
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/cancel.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/icons_credits.txt b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/icons_credits.txt
new file mode 100644 (file)
index 0000000..ac1b606
--- /dev/null
@@ -0,0 +1,7 @@
+The pictures used in the icons are originally created by:\r
+mjames at gmail dot com.\r
+licensed under Creative Commons Attribution 2.5 License.\r
+http://creativecommons.org/licenses/by/2.5/\r
+\r
+They were downloaded from: \r
+http://www.famfamfam.com/lab/icons/silk/\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_color_swatch.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_color_swatch.png
new file mode 100644 (file)
index 0000000..2c0efb7
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_color_swatch.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_delicious_history.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_delicious_history.png
new file mode 100644 (file)
index 0000000..f36b342
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_delicious_history.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit.png
new file mode 100644 (file)
index 0000000..1856dfb
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit2.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit2.png
new file mode 100644 (file)
index 0000000..2c9b187
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_edit2.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon1_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon1_1616.png
new file mode 100644 (file)
index 0000000..0bc50e8
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon1_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon2_home.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon2_home.png
new file mode 100644 (file)
index 0000000..cb4207b
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon2_home.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_1616.png
new file mode 100644 (file)
index 0000000..2d14479
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_html_icon_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_html_icon_1616.png
new file mode 100644 (file)
index 0000000..9a7b655
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon3_mytagcloud_html_icon_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon5_mybookmarks_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon5_mybookmarks_1616.png
new file mode 100644 (file)
index 0000000..1ba79d8
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon5_mybookmarks_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_html_icon_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_html_icon_1616.png
new file mode 100644 (file)
index 0000000..217fc54
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_html_icon_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_icon_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_icon_1616.png
new file mode 100644 (file)
index 0000000..c46a42f
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon6_allitems_icon_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.png
new file mode 100644 (file)
index 0000000..2aa22d8
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon7_posttoinsipid_icon_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon8_mystars_icon_1616.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon8_mystars_icon_1616.png
new file mode 100644 (file)
index 0000000..65b549a
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_icon8_mystars_icon_1616.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links.png
new file mode 100644 (file)
index 0000000..20222a1
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links2.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links2.png
new file mode 100644 (file)
index 0000000..507cd89
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_links2.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_similar.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_similar.png
new file mode 100644 (file)
index 0000000..83c8c84
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_similar.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_gold.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_gold.png
new file mode 100644 (file)
index 0000000..0eaa571
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_gold.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_off.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_off.png
new file mode 100644 (file)
index 0000000..e0b4839
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_off.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_on.png b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_on.png
new file mode 100644 (file)
index 0000000..4c39621
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/images/inspd_star_on.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/inspd_json_lib.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/inspd_json_lib.js
new file mode 100644 (file)
index 0000000..dbd7f81
--- /dev/null
@@ -0,0 +1,730 @@
+var $cloud = {\r
+                       \r
+                       // extract_tags_from_posts() from the example code sent to pwlin by Darrel Huston from Flock Inc. \r
+                       extract_tags_from_posts:function (\r
+                                               container, // the id of a div or a span that we want to write our cloud to it\r
+                                               posts_obj // an object containing the posts which our tags are supposed to be extracted from. e.g Delicious.posts\r
+                                               ){\r
+                                               \r
+                                               \r
+                                               \r
+                       var sorted_tags = {} ;\r
+                       var posts = posts_obj;\r
+                       var tmptxt = '' ;               \r
+                                               \r
+                                               \r
+                                               \r
+                       \r
+            // var tags = new Object();\r
+                       var tags = [];\r
+\r
+           \r
+            var tags_idx = new Array();\r
+\r
+            for(var i = 0; i < posts.length; i++){\r
+            \r
+                var tags_array = posts[i].t;\r
+\r
+                \r
+                if(typeof tags_array == 'undefined'){\r
+                    tags_array = new Array('system:unfiled');\r
+                }\r
+\r
+                for(var j = 0; j< tags_array.length; j++){\r
+                    \r
+                    if(typeof tags[tags_array[j]] == 'undefined'){\r
+                        tags[tags_array[j]] = new Array();\r
+                        tags_idx[tags_idx.length] = tags_array[j];\r
+                    }\r
+\r
+                    tags[tags_array[j]][tags[tags_array[j]].length] = posts[i].u;\r
+\r
+                }\r
+            }\r
+\r
+            \r
+            tags_idx.sort();\r
+\r
+           \r
+                       for(var i = 0; i < tags_idx.length; i++){\r
+                sorted_tags[''+tags_idx[i]+''] =  tags[tags_idx[i]].length ;\r
+                       }\r
+\r
+                       \r
+                       \r
+                       // $cloud.p_sort(tags_idx, sorted_tags, action,'');\r
+                       \r
+                       if ($prefs.get('cloud.sortby') == 'alphabetic'){\r
+                               $cloud.p_sort(tags_idx, sorted_tags, 'alpha','');\r
+                       }\r
+                       else {\r
+                               $cloud.p_sort(tags_idx, sorted_tags, 'freq','');        \r
+                       }\r
+                       \r
+                                               \r
+                       \r
+                       \r
+       },\r
+               // tag cloud routine, originally from del.icio.us bits. \r
+               g_draw : function(ts,q){\r
+                       \r
+                       !q ? q = '' : q = $utils.trim(q); \r
+                       q = q.replace(/[\\$*+?()=!|,{}\[\]\.^]/g,'\\$&') ;\r
+                       var pattern = "^"+q+"";\r
+                       var reg =  new RegExp(pattern, "i");\r
+                       var all_tags = 0, matched_tags = 0 , output_tmp = '';\r
+                       var delCount = new Array();\r
+                       for (p in ts){\r
+                               if (!delCount[ts[p]]){\r
+                                       delCount[ts[p]] = new Array(ts[p])\r
+                               }\r
+                       }\r
+                       var ta = 0,tz=delCount.length-1;\r
+                       \r
+                       output_tmp += '<li style="font-size:70%;text-align:left;display:block;color:#666666">'+this.p_draw_cloud_header()+'</li>';\r
+                       \r
+                       var ca=$utils.Hex2RGB($prefs.get('cloud.mincolor')),cz=$utils.Hex2RGB($prefs.get('cloud.maxcolor')),c=[] ;\r
+                                               \r
+                       for(var t in ts){\r
+                               all_tags ++;\r
+                               for (var i=0;i<3;i++) {c[i]=this.p_spread(ca[i],cz[i],ts[t]-ta,tz)} ;\r
+                               if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+                               var fs = this.p_spread(parseInt($prefs.get('cloud.minfont')),parseInt($prefs.get('cloud.maxfont')),ts[t]-ta,tz) ;\r
+                               }\r
+                               else {\r
+                               var fs = this.p_spread(14,21,ts[t]-ta,tz) ;\r
+                               }\r
+                               \r
+                               if (q != '' ){\r
+                                       if (ar = reg.test(t)){\r
+                                               if (ts[t] >= parseInt($prefs.get('cloud.mintag'))){\r
+                                                       output_tmp += this.p_draw_single_tag(fs,t,ts[t],$prefs.get('cloud.showcounts'),c[0],c[1],c[2]);\r
+                                                       matched_tags++;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else{\r
+                                       if (ts[t] >= parseInt($prefs.get('cloud.mintag'))){\r
+                                               output_tmp += this.p_draw_single_tag(fs,t,ts[t],$prefs.get('cloud.showcounts'),c[0],c[1],c[2]);\r
+                                       }\r
+                               }\r
+                       }\r
+                       return output_tmp ;\r
+               },\r
+               \r
+               //tag cloud spread calculation originally from del.icio.us bits.\r
+               p_spread : function(a,b,i,x) {\r
+                       if(a>b){\r
+                               var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m);\r
+                       }\r
+                       else{\r
+                               var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a) ;\r
+                       }\r
+                       return v ;\r
+               },\r
+               \r
+               \r
+               \r
+               p_draw_single_tag : function(fs,t,count,show_counts,c0,c1,c2){\r
+                       var strtxt = '';\r
+                       var target = '';\r
+                       if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+                               target = 'target="_blank"';\r
+                       }\r
+                       if (isNaN(c0) || isNaN(c1) || isNaN(c2) || isNaN(fs) ){ fs = parseInt($prefs.get('cloud.minfont')) ; c0 = $utils.Hex2RGB($prefs.get('cloud.mincolor')); c2 = c0[2]; c1 = c0[1]; c0 = c0[0];}\r
+                       \r
+                       strtxt +='<li style="font-size:'+fs+'px;line-height:1.3;"><a '+target+' style="color:rgb('+c0+','+c1+','+c2+');" href="'+Inspd_JSON_BOOKMARKS_PAGE+'?tag='+t+'" onfocus="this.blur();">'+t+'</a>';\r
+                       \r
+                       if (show_counts == '1'){\r
+                               if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+                                               strtxt +='<small style="font-size:10px;margin-left:0px;color:#666666;"><a href="#" onclick="$mytags.showBlob(\''+$utils.encode(t)+'maindragholder\',event,\''+count+'\');return false;" onfocus="this.blur();">('+count+')</a></small> ';\r
+                                               \r
+                               }\r
+                               else {\r
+                                       strtxt +='<small style="font-size:10px;margin-left:0px;color:#666666;">('+count+')</small>';\r
+                                       if (document.location.href.match(Inspd_JSON_HOME_PAGE) || document.location.href.match(Inspd_JSON_ALLITEMS_PAGE) ){\r
+                                               strtxt += '\n';\r
+                                       }\r
+                                       \r
+                               }\r
+                       }\r
+                       else if (document.location.href.match(Inspd_JSON_CLOUD_PAGE) || document.location.href.match(Inspd_JSON_HOME_PAGE) || document.location.href.match(Inspd_JSON_ALLITEMS_PAGE) ){\r
+                       \r
+                               strtxt += '\n';\r
+                       }\r
+                       \r
+                       \r
+                       \r
+                       \r
+                       \r
+                       if (document.location.href.match(Inspd_JSON_CLOUD_PAGE) || document.location.href.match(Inspd_JSON_ALLITEMS_PAGE) ){\r
+                               \r
+                       }\r
+                       else {\r
+                               strtxt += this.p_draw_single_plusminus(t);\r
+                       }\r
+                       \r
+                       \r
+                       strtxt +='</li>';\r
+                       \r
+                       if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+                       strtxt +='<div id="'+$utils.encode(t)+'maindragholder"'+ \r
+                                       'style="position:absolute;width:350px;display:none;"></div>'+\r
+                                       '';\r
+                       }\r
+                       \r
+                       return strtxt ;\r
+               },\r
+               \r
+               p_draw_single_plusminus : function(t){\r
+                       var strtxt = '';\r
+                       if (qs_tag && $prefs.get('cloud.showadd')=='1'){\r
+                               var matched_qstag = false;\r
+                               var unmatched_qstag = 0;\r
+                               var qstags_Array = $utils.qs('tag').split('+');\r
+                               var unmatched_qstags_Array = [];\r
+                               for (var j = 0; j<qstags_Array.length;j++){\r
+                                       if (qstags_Array[j] == t){\r
+                                               matched_qstag = true ;\r
+                                       }\r
+                                       else {\r
+                                               unmatched_qstags_Array[unmatched_qstag] = qstags_Array[j] ;\r
+                                               unmatched_qstag++ ;                                                     \r
+                                       }\r
+                               }\r
+                               if (!matched_qstag){\r
+                                       strtxt +='<a onfocus="this.blur();" style="color:#326712;text-decoration:none;font-size:15px;" title="add \''+t+'\'" href="?'+qs_tag+'+'+(t)+'">+</a> ';\r
+                               }\r
+                               else {\r
+                                       strtxt += '<a onfocus="this.blur();"'+\r
+                                                               'style="color:#ff0000;text-decoration:none;font-size:25px;"'+\r
+                                                               ' title="remove \''+t+'\'" href="?tag='+\r
+                                                               '';\r
+                                       for (var unmatched_qs in unmatched_qstags_Array){\r
+                                               strtxt +=''+unmatched_qstags_Array[unmatched_qs]+'+';\r
+                                       }\r
+                                       //strtxt = $utils.replace(strtxt,'^\\+','') ;\r
+                                       strtxt = $utils.replace(strtxt,'\\+$','') ;\r
+                                       //strtxt = $utils.replace(strtxt,'\\+\\+','+') ;\r
+                                       strtxt += '">-</a> '\r
+                               }\r
+                       }\r
+                       else {\r
+                               strtxt += '\n';\r
+                       }               \r
+                       return strtxt ;\r
+               },\r
+                               \r
+               \r
+               \r
+               \r
+               \r
+               \r
+               p_sort : function(keyArray, tags, action,anchor_id){\r
+                                       var keyArraytmp=[];\r
+                                       Insipid.Curtags = {} ;\r
+                                       \r
+                                       if (action == 'freq'){\r
+                                                       $prefs.set('cloud.sortby','tagscount');\r
+                                                       \r
+                                                       if (anchor_id){\r
+                                                               $id(anchor_id).removeAttribute('href');\r
+                                                               $id($utils.replace(''+anchor_id+'','_freq_','_alpha_')).setAttribute('href','#');\r
+                                                               $id($utils.replace(''+anchor_id+'','_freq_','_alpha_')).setAttribute('onclick','$mytags.do_sort(this.id,\'alpha\');return false;');\r
+                                                       }                                               \r
+                                                       \r
+                                                       if ($prefs.get('cloud.sorttype') == 'asc'){\r
+                                                                       keyArraytmp = keyArray.sort(function(a,b){return tags[a]-tags[b];});\r
+                                                       }\r
+                                                       else {\r
+                                                                       keyArraytmp = keyArray.sort(function(a,b){return tags[b]-tags[a];});                                            \r
+                                                       }\r
+                                       }\r
+                                       else if (action == 'alpha'){\r
+                                                       $prefs.set('cloud.sortby','alphabetic');\r
+                                                       \r
+                                                       if (anchor_id){\r
+                                                               $id(anchor_id).removeAttribute('href');\r
+                                                               $id($utils.replace(''+anchor_id+'','_alpha_','_freq_')).setAttribute('href','#');\r
+                                                               $id($utils.replace(''+anchor_id+'','_alpha_','_freq_')).setAttribute('onclick','$mytags.do_sort(this.id,\'freq\');return false;');\r
+                                                       }\r
+                                                       \r
+                                                       if ($prefs.get('cloud.sorttype') == 'asc'){\r
+                                                               // keyArraytmp = keyArray.sort();\r
+                                                               keyArraytmp = keyArray;\r
+                                                               \r
+                                                       }\r
+                                                       else {\r
+                                                               keyArraytmp = keyArray.reverse();                                               \r
+                                                       }\r
+                                       }\r
+                                       else if (action == 'asc'){\r
+                                                       $prefs.set('cloud.sorttype','asc');\r
+                                                       \r
+                                                       if (anchor_id){\r
+                                                               $id(anchor_id).removeAttribute('href');\r
+                                                               $id($utils.replace(''+anchor_id+'','_asc_','_desc_')).setAttribute('href','#');\r
+                                                               $id($utils.replace(''+anchor_id+'','_asc_','_desc_')).setAttribute('onclick','$mytags.do_sort(this.id,\'desc\');return false;');\r
+                                                       }\r
+                                                       \r
+                                                       if ($prefs.get('cloud.sortby') == 'tagscount'){\r
+                                                               keyArraytmp = keyArray.sort(function(a,b){return tags[a]-tags[b];});\r
+                                                       }\r
+                                                       else {\r
+                                                               // keyArraytmp = keyArray.sort();\r
+                                                               keyArraytmp = keyArray;\r
+                                                       }\r
+                                       }\r
+                                       \r
+                                       \r
+                                       else if (action == 'desc'){\r
+                                                       $prefs.set('cloud.sorttype','desc');\r
+                                                       \r
+                                                       if (anchor_id){\r
+                                                               $id(anchor_id).removeAttribute('href');\r
+                                                               $id($utils.replace(''+anchor_id+'','_desc_','_asc_')).setAttribute('href','#');\r
+                                                               $id($utils.replace(''+anchor_id+'','_desc_','_asc_')).setAttribute('onclick','$mytags.do_sort(this.id,\'asc\');return false;');\r
+                                                       }\r
+                                                       \r
+                                                       if ($prefs.get('cloud.sortby') == 'tagscount'){\r
+                                                               keyArraytmp = keyArray.sort(function(a,b){return tags[b]-tags[a];});    \r
+                                                       }\r
+                                                       else {\r
+                                                               keyArraytmp = keyArray.reverse();       \r
+                                                       }\r
+                                       }\r
+                                       \r
+                                       \r
+                                       \r
+                                       \r
+                                       for (i=0;i<keyArraytmp.length;i++){\r
+                                               Insipid.Curtags[''+keyArraytmp[i]+''] = tags[keyArraytmp[i]] ;\r
+                                       }\r
+                                       \r
+                                       $id('qq').setAttribute('onkeyup','$id(\'inspd_cloud\').innerHTML = $cloud.g_draw(Insipid.Curtags,this.value)');\r
+                                       $id('inspd_cloud').innerHTML = this.g_draw(Insipid.Curtags,$id('qq').value) ;\r
+                                       \r
+                                       \r
+                                       \r
+                                       \r
+               },\r
+               \r
+               p_draw_cloud_header : function(){\r
+                                       var strtxt = '';\r
+                                       try {\r
+                                       if ( document.location.href.match(Inspd_JSON_HOME_PAGE)){\r
+                                               strtxt += '&raquo; Tags in this page :';\r
+                                       }\r
+                                       else if ($utils.qs('tag') == '' && !document.location.href.match(Inspd_JSON_CLOUD_PAGE) ){\r
+                                               strtxt += '&raquo; Tags in this page :';\r
+                                       }\r
+                                       else if ($utils.qs('tag') !==''){\r
+                                               if ($utils.qs('tag').match("\\+") && !document.location.href.match(Inspd_JSON_CLOUD_PAGE) ){\r
+                                                       strtxt += '&raquo; Tags in this page :';\r
+                                               }\r
+                                               else {\r
+                                               strtxt += '&raquo; Tags related to \' '+$utils.qs('tag')+' \' :';\r
+                                               }\r
+                                       }\r
+                                       }catch(e){}\r
+               \r
+                               return strtxt ;\r
+               }\r
+       \r
+       \r
+\r
+}\r
+\r
+\r
+var $posts = {\r
+\r
+\r
+\r
+\r
+               // draw bookmarks routine, originally from del.icio.us JSON help and example page.\r
+               g_draw : function(container,posts_obj){\r
+               \r
+               var ul = document.createElement('ul')\r
+               ul.className = 'posts';\r
+                       \r
+               var liheader = document.createElement('span')\r
+               liheader.className = 'pagination';\r
+               \r
+               if (document.location.href.match(Inspd_JSON_STARS_PAGE)){\r
+               liheader.innerHTML = $stars.show_header(posts_obj);\r
+               }\r
+               else if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+               liheader.innerHTML = '';\r
+               }\r
+               else{\r
+                       liheader.innerHTML = this.draw_pagination(posts_obj);\r
+               }\r
+               \r
+               ul.appendChild(liheader)\r
+               \r
+               for (var i=0, post; post = posts_obj[i]; i++) {\r
+                               var li = document.createElement('li');\r
+                               li.innerHTML = '<div id="menu_post">'+this.p_draw_datebox(post.dt,post.u,post.t,post.d,post.n)+'</div><div id="content_post">'+this.p_draw_link(post.u,post.d,post.t,post.n)+'</div>';\r
+                               ul.appendChild(li)\r
+               }\r
+               \r
+               \r
+               if (document.location.href.match(Inspd_JSON_STARS_PAGE)){\r
+               \r
+                       var lifooter = document.createElement('span')\r
+                       lifooter.className = 'pagination';\r
+                       lifooter.innerHTML = '';\r
+                       //10, 25, 50, 100 items per page';\r
+                       ul.appendChild(lifooter)\r
+               }\r
+               else if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+               }\r
+               else if (typeof posts_obj[0] == 'undefined'){\r
+               }\r
+               else{\r
+               var lifooter = document.createElement('span')\r
+               lifooter.className = 'pagination';\r
+               lifooter.innerHTML = liheader.innerHTML+'<br/>&nbsp;'+this.draw_footer();\r
+               //10, 25, 50, 100 items per page';\r
+               ul.appendChild(lifooter)\r
+               }\r
+               \r
+               \r
+               $id(container).innerHTML = '' ;\r
+               $id(container).appendChild(ul)\r
+       },\r
+       \r
+       \r
+       p_draw_datebox : function(dt,url,tags,title,notes){\r
+               return '<div class="post-cal-2"><span class="post-month-2">'+$$date.month(dt)+'</span><span class="post-date-2">'+$$date.day(dt)+'</span><span class="post-dateyear-2">'+$$date.year(dt)+'</span><span class="post-dateicon-2">'+this.p_draw_favico(url,tags,title,notes,dt)+'</span></div>';\r
+       },\r
+       \r
+       \r
+       p_draw_favico: function(url,tags,title,notes,dt){\r
+               var favicotxt = '<div style="text-align:left;position:absolute;display:none;" id="span_pointer_'+hex_md5(url)+'"></div>'+\r
+                                               '<span title="Bookmark\'s options" onclick="$posts.draw_blob_comment_box(\''+hex_md5(url)+'\',\''+$utils.encode(url)+'\',\''+$utils.encode(tags)+'\',\''+$utils.encode(title)+'\',\''+$utils.encode(notes)+'\',\''+$utils.encode(dt)+'\');"'+\r
+                                               ' class="favico_span">';\r
+               var linksrc = '' ;\r
+               var defimgsrc = '';\r
+               if ($prefs.get('bookmarks.showfavicon') == '1' && url.match('^http://') ){\r
+                       linksrc = ''+url.split('/').splice(0,3).join('/')+'/favicon.ico'+'';\r
+               }\r
+               if($conditions.getProtocol(url,'color')){\r
+                       defimgsrc +=''+Inspd_BASE_JSON_URL+'/images/inspd_color_swatch.png'\r
+               }\r
+               else{\r
+                       defimgsrc += ''+Inspd_BASE_JSON_URL+'/images/inspd_links2.png';\r
+               }\r
+               favicotxt +='<img id="favico_default_'+hex_md5(url)+'" width="16" height="16" src="'+defimgsrc+'" "/><img id="favico_'+hex_md5(url)+'" width="16" height="16" style="display:none;" onload="this.previousSibling.style.display=\'none\';this.removeAttribute(\'style\');" src="'+linksrc+'" /><img id="favico_edit_'+hex_md5(url)+'" style="display:none;position:absolute;right:8px;" src="'+Inspd_BASE_JSON_URL+'/images/inspd_edit.png" />'+\r
+                                       '</span>';\r
+               return favicotxt ;\r
+               \r
+       },\r
+       \r
+       p_draw_link: function(url,title,tags,notes){\r
+               var linktxt = '';\r
+               if($conditions.getProtocol(url,'color')){\r
+                       linktxt += ''+this.p_draw_link_color_protocol(url,title)+'';\r
+               }else {\r
+                       linktxt +='<a href="'+url+'" class="a_posts" target="_blank" onfocus="this.blur();" >'+(''+(''+title+'').replace(/</,'&lt;')+'').replace(/>/,'&gt;')+'</a>';\r
+               }\r
+               linktxt += ''+this.p_draw_tags(tags,notes)+'';\r
+               return linktxt ;                \r
+                               \r
+       },\r
+       \r
+       p_draw_link_color_protocol : function(url,title){\r
+               colors = ((url.replace('color:','')).replace('#','')).split(',');\r
+               var link_colortxt = '';\r
+               link_colortxt += '<div class="a_posts_link_color_protocol_container">';\r
+                       for(var i = 0;i<colors.length;i++){\r
+                               if(colors[i]){\r
+                                       link_colortxt += '<span title="click for copying #'+colors[i]+' to clipboard" onclick="Inspd_gClipboardHelper.copyString(\'#'+colors[i]+'\');self.status=\'#'+colors[i]+' was placed into your clipboard\'; " class="colorBar" style="background-color:#'+colors[i]+';"> </span>&nbsp;';        \r
+                               }\r
+                       }\r
+               link_colortxt += '&nbsp;&nbsp;'+title+'</div>';\r
+               return link_colortxt ;\r
+               \r
+       },\r
+       \r
+       \r
+       p_draw_tags : function(tags,notes){\r
+               var notestxt = '';\r
+               if(notes && notes != 'undefined'){\r
+                       notestxt +='<span class="post_notes">'+notes+'</span>';\r
+               }\r
+               var tagstxt = '';\r
+               tagstxt +='<span class="post_tags">';\r
+               \r
+               if (tags){\r
+                               var array_tags = $utils.decode(tags);\r
+                               array_tags = array_tags.split(",");\r
+                               for (var j = 0, tag; tag = array_tags[j]; j++){\r
+                                       tagstxt += ' <a onfocus="this.blur()" class="a_post_tags" href="'+Inspd_JSON_BOOKMARKS_PAGE+'?tag='+tag+'">'+tag+'</a> ';\r
+                               }\r
+               }\r
+               else if(!notes){\r
+                       tagstxt +='&nbsp;&nbsp;';\r
+               }\r
+               tagstxt +='</span>';\r
+               return notestxt+tagstxt ;\r
+               },\r
+       \r
+       \r
+               \r
+                       \r
+                       \r
+       \r
+\r
+\r
+       \r
+               \r
+       g_draw_mini : function(container,posts_obj,classname){\r
+               \r
+               var ul = document.createElement('ul')\r
+               ul.className = classname;\r
+                       \r
+               var liheader = document.createElement('span')\r
+               liheader.className = classname+'_pagination';\r
+               \r
+               /*\r
+               if (document.location.href.match(Inspd_JSON_STARS_PAGE)){\r
+               liheader.innerHTML = $stars.show_header(posts_obj);\r
+               }\r
+               else if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+               liheader.innerHTML = '';\r
+               }\r
+               */\r
+               if (typeof posts_obj[0] == 'undefined'){\r
+               //$id('nav').style.display = 'none';\r
+               liheader.innerHTML = '<span style="color:#ff0000;">'+$utils.decode($utils.replace(container,'maindragholder-content',''))+'</span> returned no results. Please choose another tag.</a>'\r
+               }\r
+               \r
+               /*\r
+               else{\r
+                       liheader.innerHTML = this.draw_pagination(posts_obj);\r
+               }\r
+               */\r
+               ul.appendChild(liheader)\r
+               \r
+               for (var i=0, post; post = posts_obj[i]; i++) {\r
+                       \r
+                               var li = document.createElement('li');\r
+                               \r
+                               //li.className = 'posts';\r
+                               var a = document.createElement('a')\r
+                               // a.className = classname+'_a_posts'\r
+                               a.setAttribute('onfocus','this.blur();');\r
+                               a.setAttribute('target','_blank');\r
+                               if ($prefs.get('bookmarks.showfavicon') == '1'){\r
+                                       a.style.marginLeft = '20px';\r
+                                       \r
+                                       \r
+                                       var img = document.createElement('img');\r
+                                       img.style.position = 'absolute';\r
+                                       //img.setAttribute('align','absmiddle');\r
+                                       img.style.paddingTop = '5px';\r
+                                       img.style.display = 'none';\r
+                                       img.height = img.width = 16;\r
+                                       if (post.u.match('^http://')){\r
+                                               img.src = post.u.split('/').splice(0,3).join('/')+'/favicon.ico';\r
+                                               img.onload = $utils.showImage(img);\r
+                                               li.appendChild(img);\r
+                                       }\r
+                               }\r
+                               \r
+                               a.setAttribute('href', post.u);\r
+                               //a.setAttribute('title', post.dt);\r
+                               a.appendChild(document.createTextNode(post.d));\r
+                               \r
+                               if (post.n){\r
+                               var span_desc = document.createElement('span');\r
+                               span_desc.className = classname+'_notes' ;\r
+                               span_desc.innerHTML = ''+post.n+'';\r
+                               }\r
+                               \r
+                               \r
+                               var span_tags = document.createElement('span');\r
+                               span_tags.className = classname+'_tags' ;\r
+                               \r
+                               if (post.t){\r
+                               var array_tags = $utils.decode(post.t);\r
+                               array_tags = array_tags.split(",");\r
+\r
+                               \r
+                               var tagstxt = '';\r
+                                               for (var j = 0, tags; tags = array_tags[j]; j++){\r
+                                                       tagstxt += ' <a onfocus="this.blur()" href="'+Inspd_JSON_BOOKMARKS_PAGE+'?tag='+tags+'">'+tags+'</a> ';\r
+                                               }\r
+                                                                       \r
+                               }\r
+                               \r
+                               //li.appendChild(img)\r
+                               li.appendChild(a)\r
+                               \r
+                               if (post.n){\r
+                                       li.appendChild(span_desc);\r
+                               }\r
+                               \r
+                                       //if (post.t){\r
+                                       span_tags.innerHTML = tagstxt ;\r
+                                       li.appendChild(span_tags) ;\r
+                                       //}\r
+                               \r
+                               \r
+                               ul.appendChild(li)\r
+                       }\r
+               \r
+               \r
+               if (document.location.href.match(Inspd_JSON_STARS_PAGE)){\r
+               }\r
+               else if (document.location.href.match(Inspd_JSON_CLOUD_PAGE)){\r
+               }\r
+               \r
+               else if (typeof posts_obj[0] == 'undefined'){\r
+               \r
+               }\r
+               \r
+               else{\r
+               var lifooter = document.createElement('span')\r
+               lifooter.className = 'pagination';\r
+               lifooter.innerHTML = liheader.innerHTML+'<br/>&nbsp;'+this.draw_footer();\r
+               \r
+               \r
+               ul.appendChild(lifooter)\r
+               }\r
+               \r
+               \r
+               $id(container).innerHTML = '' ;\r
+               $id(container).appendChild(ul)\r
+       },\r
+\r
+       \r
+       \r
+       draw_blob_comment_box : function(urlmd5,url,tags,title,notes,dt){\r
+       \r
+               if($id('favico_edit_'+(urlmd5)+'').style.display == 'none'){$id('favico_edit_'+(urlmd5)+'').style.display = 'inline';}else{$id('favico_edit_'+(urlmd5)+'').style.display = 'none';}\r
+               var strtxt = '<div class="blob_comment_box_div">';\r
+               strtxt += '<a onfocus="this.blur();" target="_blank" title="Edit this bookmark" href="'+$prefs.get('defurl')+'?op=add_bookmark&url='+(url)+'"><img width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_edit2.png" /></a>'+\r
+                                 //'<a onfocus="this.blur();" title="Star this bookmark" href="#"><img width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_star_off.png" /></a>'+\r
+                                 ''+this.p_draw_star_icon(urlmd5,url,tags,title,notes,dt)+''+\r
+                                 //'<a onfocus="this.blur();" target="_blank" title="Find similar links in similicio.us" href="http://similicio.us/search.php?url='+url+'"><img width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_similar.png" /></a>'+\r
+                                 '<a onfocus="this.blur();" target="_blank" title="URL history on del.icio.us" href="http://del.icio.us/url/'+urlmd5+'"><img width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_delicious_history.png" /></a>'+\r
+                                 '';\r
+               strtxt += '</div>';\r
+               $id('span_pointer_'+urlmd5+'').innerHTML = strtxt ;\r
+               $effects.toggleShow('span_pointer_'+urlmd5+'',true);\r
+               \r
+       },\r
+       \r
+       p_draw_star_icon : function(urlmd5,url,tags,title,notes,dt){\r
+               var startxt = ''\r
+               startxt += '<img style="cursor:pointer;" title="Star this bookmark" onclick="$stars.add(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');return false;" width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_star_off.png" />'; \r
+               var CurStarsArray = $prefs.get('stars.list').split("|");\r
+               for(var i = 0 ; i<CurStarsArray.length;i++){\r
+                       var CurStarArray = CurStarsArray[i].split(" "); \r
+                       if(CurStarArray[0] == urlmd5){\r
+                               startxt = '<img style="cursor:pointer;" title="Unstar this bookmark" onclick="$stars.remove(this,\''+urlmd5+'\',\''+url+'\',\''+tags+'\',\''+title+'\',\''+notes+'\',\''+dt+'\');return false;" width="16" height="16" src="'+Inspd_BASE_JSON_URL+'/images/inspd_star_on.png" />'; \r
+                               break;\r
+                       }\r
+               }\r
+               return startxt;\r
+       \r
+       },\r
+       \r
+       \r
+       \r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+       \r
+                       \r
+                       \r
+       draw_footer : function(){\r
+               var rangeitemspp = [5,10,15,25,50,80,100] ;\r
+               var footer_txt = '<br/>&raquo; Showing ';\r
+               for (itemspp in rangeitemspp){\r
+                       if (rangeitemspp[itemspp] == parseInt($prefs.get('defcount'))){\r
+                               footer_txt +=' '+rangeitemspp[itemspp]+',';\r
+                       }\r
+                       else {\r
+                               footer_txt +=' <a href="?setcount='+rangeitemspp[itemspp]+''+qs_tag+'">'+rangeitemspp[itemspp]+'</a>,';\r
+                               \r
+                       }\r
+                       \r
+               }\r
+               footer_txt =  $utils.replace(footer_txt,',$','');\r
+               footer_txt =  $utils.replace(footer_txt,',',', ');\r
+               footer_txt +=' items per page.';\r
+               return footer_txt ;\r
+       },\r
+       \r
+       draw_pagination : function(obj){\r
+                       var headertxt = 'Page '+qs_page+' &nbsp;&nbsp;&nbsp;';\r
+                       if (qs_tag != ''){\r
+                       // 'tag is not zero '\r
+                       if (typeof obj[parseInt($prefs.get('defcount'))-1] == 'undefined' || backfromlast == true ){\r
+                               backfromlast = false;\r
+                               if (qs_page == 1){\r
+                                       headertxt += '<a>&laquo; earlier</a> | <a>later &raquo;</a>';\r
+                               }\r
+                               else{\r
+                                       headertxt += '<a>&laquo; earlier</a> | <a href="?page='+(qs_page-1)+''+qs_tag+'" onclick="$home.draw_posts_inline('+(qs_page-1)+',\''+$utils.encode(qs_tag)+'\');return false;">later &raquo;</a>';     \r
+                               }\r
+                       }       \r
+                       \r
+                       else{\r
+                               \r
+                               if (qs_page == 1){\r
+                                       headertxt += '<a onclick="$home.draw_posts_inline('+(qs_page+1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page+1)+''+qs_tag+'">&laquo; earlier</a> | <a>later &raquo;</a>';\r
+                               }\r
+                               else{\r
+                                       headertxt += '<a onclick="$home.draw_posts_inline('+(qs_page+1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page+1)+''+qs_tag+'">&laquo; earlier</a> | <a onclick="$home.draw_posts_inline('+(qs_page-1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page-1)+''+qs_tag+'">later &raquo;</a>';       \r
+                                       headertxt +='<span>&nbsp;&nbsp;&nbsp;&raquo; pages so far: </span>';\r
+                                       for (var i=1;i<(qs_page);i++){\r
+                                               headertxt +='<a onclick="$home.draw_posts_inline('+(i)+',\''+$utils.encode(qs_tag)+'\');return false;" title="page '+i+'" href="?page='+(i)+''+qs_tag+'">'+i+'</a>&nbsp; '\r
+                                       }\r
+                               }\r
+                               \r
+                               \r
+                       }\r
+               \r
+                       }\r
+               \r
+                       else {\r
+                       // tag is zero i.e. we are in home page ;\r
+                       if (qs_page == 1){\r
+                               headertxt += '<a onclick="$home.draw_posts_inline('+(qs_page+1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page+1)+'">&laquo; earlier</a> | <a class="gray">later &raquo;</a>';\r
+                       }\r
+                       else{\r
+                               \r
+                               if (typeof obj[parseInt($prefs.get('defcount'))-1] !== 'undefined'){\r
+                                       headertxt += '<a onclick="$home.draw_posts_inline('+(qs_page+1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page+1)+'">&laquo; earlier</a> | <a onclick="$home.draw_posts_inline('+(qs_page-1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page-1)+'">later &raquo;</a>';   \r
+                                       headertxt +='<span>&nbsp;&nbsp;&nbsp;&raquo; pages so far: </span>';\r
+                                       for (var i=1;i<(qs_page);i++){\r
+                                               headertxt +='<a onclick="$home.draw_posts_inline('+(i)+',\''+$utils.encode(qs_tag)+'\');return false;" title="page '+i+'" href="?page='+(i)+'">'+i+'</a>&nbsp; '\r
+                                       }\r
+                               }\r
+                               else {\r
+                                       headertxt += '<a>&laquo; earlier</a> | <a onclick="$home.draw_posts_inline('+(qs_page-1)+',\''+$utils.encode(qs_tag)+'\');return false;" href="?page='+(qs_page-1)+'">later &raquo;</a>';       \r
+                                       \r
+                               }\r
+                       }\r
+               \r
+               }\r
+       return headertxt ;\r
+       \r
+       }\r
+\r
+\r
+\r
+\r
+\r
+}\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mybookmarks.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mybookmarks.html
new file mode 100644 (file)
index 0000000..e26e7e3
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>My bookmarks</title>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/md5.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/inspd_json_lib.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/home.js"></script>\r
+<link rel="stylesheet" type="text/css" href="chrome://inspd/content/v2/json/style.css">\r
+<link rel="shortcut icon" href="chrome://inspd/content/v2/json/images/inspd_icon5_mybookmarks_1616.png" />\r
+</head>\r
+\r
+<body>\r
+                       <h1 id="header"><img src="images/inspd_links.png" align="absmiddle" style="margin-right:5px;"/>My Bookmarks</h1>\r
+                       <div id="cont">\r
+                               <div id="nav">\r
+               <div id="inspd_cloud_mini_header" class="inspd_cloud_mini_header" style="display:block;visibility:hidden;">\r
+               &raquo; Search tags inline: <input size="11" name="qq" id="qq" type="text" onkeyup="$id('inspd_cloud').innerHTML = $cloud.g_draw(Insipid.tags,this.value)" />\r
+               </div>\r
+               \r
+               <span><ul id="inspd_cloud" class="inspd_cloud_mini">\r
+                               <li style="font-size: 20px;">Loading your tags...</li>\r
+                               </ul>\r
+               </span>\r
+               \r
+               </div>\r
+                       \r
+                       <span id="contposts"><div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Loading your bookmarks...</div></span>\r
+       \r
+                       </div>\r
+                       \r
+\r
+       \r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.html
new file mode 100644 (file)
index 0000000..7ba7bd2
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>My Stars</title>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/md5.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/inspd_json_lib.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/mystars.js"></script>\r
+<link rel="stylesheet" type="text/css" href="chrome://inspd/content/v2/json/style.css">\r
+<link rel="shortcut icon" href="chrome://inspd/content/v2/json/images/inspd_icon8_mystars_icon_1616.png" />\r
+</head>\r
+<body>\r
+                       <h1 id="header"><img src="images/inspd_star_gold.png" align="absmiddle" style="margin-right:5px;"/>My Stars</h1>\r
+                       <div id="cont">\r
+                               <div id="nav">\r
+               <div id="inspd_cloud_mini_header" class="inspd_cloud_mini_header" style="display:block;visibility:hidden;">\r
+               &raquo; Search tags inline: <input size="11" name="qq" id="qq" type="text" onkeyup="$id('inspd_cloud').innerHTML = $cloud.g_draw(Insipid.tags,this.value)" />\r
+               </div>\r
+               <span><ul id="inspd_cloud" class="inspd_cloud_mini">\r
+                               <li style="font-size: 20px;">Loading your tags...</li>\r
+                               </ul>\r
+               </span>\r
+                               </div>\r
+                       \r
+                       <span id="contposts"><div style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif ;">Loading your stars...</div></span>\r
+\r
+               </div>          \r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mystars.js
new file mode 100644 (file)
index 0000000..5d9e53f
--- /dev/null
@@ -0,0 +1,38 @@
+var $mystars = {\r
+       \r
+       extract_stars : function(){\r
+                       var stars = $prefs.get('stars.list').split('|');\r
+                       var CurStars = [];\r
+                       if (!stars[0]){\r
+                               $id('contposts').innerHTML = '<span class="pagination">'+$stars.show_header(stars[0])+'</span>';\r
+                       }\r
+                       else {  \r
+                               if(!stars[(stars.length)]){stars.length = stars.length-1}\r
+                               for(var i = 0; i<stars.length;i++){\r
+                                       CurStars[i] = {\r
+                                               'u': $utils.decode(stars[i].split(" ")[1]),\r
+                                               'd': $utils.decode(stars[i].split(" ")[2]),\r
+                                               't': $utils.decode(stars[i].split(" ")[3]).split(","),\r
+                                               'n': $utils.decode(stars[i].split(" ")[4]), \r
+                                           'dt' : $utils.decode(stars[i].split(" ")[5]),\r
+                                       };\r
+                               }\r
+                               $id('contposts').innerHTML = '';\r
+                               $id('inspd_cloud_mini_header').style.visibility = 'visible';\r
+                               $cloud.extract_tags_from_posts('inspd_cloud', CurStars);\r
+                               $posts.g_draw('contposts',CurStars);\r
+                       }\r
+                       \r
+       },\r
+               \r
+       pageLoad: function(){\r
+                       this.extract_stars();\r
+       }\r
+               \r
+}\r
+\r
+\r
+       \r
+       \r
+$utils.addEvent('DOMContentLoaded', window, function() { $mystars.pageLoad(); }, false);\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.html b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.html
new file mode 100644 (file)
index 0000000..65f5e2e
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>My tags</title>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/vars.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/md5.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/inc/globals.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/inspd_json_lib.js"></script>\r
+<script type="text/javascript" src="chrome://inspd/content/v2/json/mytags.js"></script>\r
+<link rel="stylesheet" type="text/css" href="chrome://inspd/content/v2/json/style.css">\r
+<link rel="shortcut icon" href="chrome://inspd/content/v2/json/images/inspd_icon3_mytagcloud_1616.png" />\r
+</head>\r
+\r
+<body>\r
+                       <h1 id="header"><img src="images/inspd_icon3_mytagcloud_html_icon_1616.png" align="absmiddle" style="margin-right:5px;"/> My tags</h1>\r
+                       <div id="cont">\r
+                               <div id="nav" style="display:none;">\r
+                                       <div id ="cloud_header_div_searchbar" class="cloud_header_div_searchbar"></div>\r
+               <span id="navtags"></span>\r
+                               </div>\r
+                       \r
+                               <div class="inspd_tags">\r
+                               \r
+                               <span class="tags_search" id="tags_search" style="display:block;visibility:hidden;">\r
+                               &raquo; Search tags inline: <input size="11" name="qq" id="qq" type="text" onkeyup="$id('inspd_cloud').innerHTML = $cloud.g_draw(Insipid.tags,this.value)" />\r
+                               &nbsp; &nbsp; <a onfocus="this.blur();" href="#" id="anchor_show_options" onclick="$mytags.showOptionsDiv('nav',this.id);return false;">&raquo; Show options</a>\r
+                               </span>\r
+                               \r
+                               <ul id="inspd_cloud" class="inspd_cloud">\r
+                               <li style="font-size: 20px;">Loading your tags...</li>\r
+                               </ul>\r
+                               \r
+                               </div>\r
+                       \r
+                       </div>\r
+                       \r
+\r
+\r
+                       \r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.js b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/mytags.js
new file mode 100644 (file)
index 0000000..8120252
--- /dev/null
@@ -0,0 +1,233 @@
+var dragswitch=0 ;\r
+document.onmouseup=new Function("dragapproved=false")\r
+\r
+var $mytags = {\r
+\r
+               pageLoad : function(){\r
+               \r
+                       if ($utils.qs('tag') != ''){\r
+                               document.title = document.title+' ['+$utils.decode($utils.qs('tag'))+']';\r
+                               $id('header').innerHTML =  $id('header').innerHTML+' ['+$utils.decode($utils.qs('tag'))+']';\r
+                       }\r
+               \r
+                       $ajax.get(''+$prefs.get('defurl')+'?raw=1&op=json_tags'+qs_tag+'&d='+new Date().valueOf()+'', this.getTags);\r
+                       \r
+               },\r
+       \r
+               getTags : function(http_request){\r
+                       if (http_request.readyState == 4) {\r
+                               try{\r
+                               if (http_request.status == 200) {\r
+                                       if (http_request.responseText.match("^{}")){\r
+                                               $id('inspd_cloud').innerHTML = '<li style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">'+$utils.decode($utils.qs('tag'))+'</span> returned no results. <a href="'+Inspd_JSON_HOME_PAGE+'">Return to Home</a>.</li>';\r
+                                       }\r
+                                       else {\r
+                                               $id('tags_search').style.visibility = 'visible';\r
+                                               eval("Insipid.tags = "+http_request.responseText);\r
+                                               if ($prefs.get('cloud.sortby') == 'alphabetic'){\r
+                                                       $mytags.do_sort('','alpha');    \r
+                                               }\r
+                                               else {\r
+                                                       $mytags.do_sort('','freq');     \r
+                                               }\r
+                                               \r
+                                               \r
+                                       }\r
+                               } \r
+                               else {\r
+                                       $id('tags_search').style.visibility = 'hidden';\r
+                                       $id('inspd_cloud').innerHTML = '<li style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</li>';\r
+                               }\r
+                               \r
+                               }\r
+                               catch(e){\r
+                                       $id('tags_search').style.visibility = 'hidden';\r
+                                       $id('inspd_cloud').innerHTML = '<li style="font-size: 20px;padding:30px 8px 8px 8px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</li>';\r
+\r
+                               }\r
+                       }\r
+               },\r
+               \r
+       \r
+               \r
+               showBlob : function(container,e,count){\r
+               \r
+                               $effects.pos2Anchor(container,e);\r
+                               var t = $utils.decode($utils.replace(container,'maindragholder','')) ;\r
+                               \r
+                               var strtxt = '';\r
+                               strtxt +='<div id="'+container+'-dragbar" class="tooltip_dragbar" onmousedown="$effects.initializedrag(event,\''+container+'\',\''+container+'-dragbar\');">'+\r
+                                                               '<span class="span_dragbar_title">'+t+' - Last 10 posts:</span><span class="span_closex">'+\r
+                                                               '<a href="#" title="close this box" onfocus="this.blur();" onclick="$effects.show(\''+container+'\',false);return false;">'+\r
+                                                               '<img align="absmiddle" src="images/cancel.png" border="0"/></a>'+\r
+                                                               '</span>'+\r
+                                                               '</div>'+\r
+                                                               '<div class="span_drag_content" id="'+container+'-content"><i>Loading your bookmarks...</i></div>'\r
+                               $id(container).innerHTML = strtxt ;\r
+                               $effects.show(container,true);          \r
+                               this.getPosts_in_Blob(container,t);\r
+                                                       \r
+                               \r
+                               \r
+               \r
+               },\r
+               \r
+               \r
+               getPosts_in_Blob: function(container,t){\r
+                               var url = ''+$prefs.get('defurl')+'?raw=1&op=json_posts&count=10&page='+qs_page+'&tag='+t+'&d='+new Date().valueOf()+'';\r
+                               var http_request = new XMLHttpRequest();\r
+                               http_request.onreadystatechange = function() { \r
+                                               \r
+                                       if (http_request.readyState == 4) {\r
+                                               try{\r
+                                               if (http_request.status == 200) {\r
+                                                               eval("Insipid.posts ="+http_request.responseText);\r
+                                                               $posts.g_draw_mini(''+container+'-content',Insipid.posts,'mini_posts');\r
+                                               } \r
+                                               else {\r
+                                                       // error\r
+                                                       $id(''+container+'-content').innerHTML = '<div style="font-size: 20px;padding:5px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                                               }\r
+                                               }\r
+                                               catch(e){\r
+                                                       $id(''+container+'-content').innerHTML = '<div style="font-size: 20px;padding:5px;font-family: verdana,arial,sans-serif;"><span style="color:#ff0000">Connection error!</span> Please try again.</div>';\r
+                                               }\r
+                                       }\r
+                               };\r
+                               \r
+                               http_request.open('GET', url, true);\r
+                               http_request.setRequestHeader("Connection", "close");\r
+                               http_request.setRequestHeader("Keep-Alive", "");\r
+                               http_request.send(null);\r
+               \r
+               \r
+               \r
+               },\r
+               \r
+               showOptionsDiv : function(container,anchor){\r
+                       \r
+                       if ($id(container).style.display == 'none'){\r
+                               $id(container).style.display = 'block' ; \r
+                               $id(anchor).innerHTML = '&laquo; Hide options' ;\r
+                       }\r
+                       else {\r
+                               $id(container).style.display = 'none' ; \r
+                               $id(anchor).innerHTML = '&raquo; Show options' ;\r
+                       }\r
+                       $id(container).innerHTML = this.private_showOptions();\r
+               },\r
+               \r
+               \r
+               private_showOptions : function(){\r
+                       \r
+               var strtxt = '';\r
+               \r
+               strtxt = ''+\r
+               '<span class="cloud_options_span">&raquo; Sort by: '+\r
+               '';\r
+               \r
+               if ($prefs.get('cloud.sortby') == 'alphabetic'){\r
+               \r
+                       strtxt +='<a onfocus="this.blur();" id="cloud_options_sort_alpha_anchor">alpha</a> | <a onfocus="this.blur();" href="#" id="cloud_options_sort_freq_anchor" onclick="$mytags.do_sort(this.id,\'freq\');return false;">freq</a> ';\r
+               }\r
+               else {\r
+               \r
+                       strtxt +='<a onfocus="this.blur();" href="#" id="cloud_options_sort_alpha_anchor" onclick="$mytags.do_sort(this.id,\'alpha\');return false;">alpha</a> | <a onfocus="this.blur();" id="cloud_options_sort_freq_anchor">freq</a> ';\r
+                       \r
+               }\r
+               \r
+               \r
+               \r
+               strtxt += '<br/>&raquo; Sort type: ';\r
+               \r
+               if ($prefs.get('cloud.sorttype') == 'asc'){\r
+               \r
+                       strtxt +='<a onfocus="this.blur();" id="cloud_options_sort_asc_anchor">asc</a> | <a onfocus="this.blur();" id="cloud_options_sort_desc_anchor" onclick="$mytags.do_sort(this.id,\'desc\');return false;" href="#">desc<a>';\r
+               }\r
+               else {\r
+                       strtxt +='<a onfocus="this.blur();" id="cloud_options_sort_asc_anchor" onclick="$mytags.do_sort(this.id,\'asc\');return false;" href="#">asc</a> | <a onfocus="this.blur();" id="cloud_options_sort_desc_anchor">desc<a>';\r
+                       \r
+               \r
+               }\r
+               \r
+               \r
+               \r
+               // use minimum: 1, 2, 5 \r
+               \r
+               strtxt +='<br/>' +\r
+               '&raquo; Use minimum tags: ';\r
+               \r
+               var range_min_tags = [1,2,5,10] ;\r
+               for (mintag in range_min_tags){\r
+                       if (range_min_tags[mintag] == parseInt($prefs.get('cloud.mintag'))){\r
+                               strtxt +='&nbsp;<a onfocus="this.blur();" id="cloud_options_mintag_anchor_'+range_min_tags[mintag]+'">'+range_min_tags[mintag]+'</a>&nbsp;';\r
+                       }\r
+                       else {\r
+                               strtxt +='&nbsp;<a onfocus="this.blur();" id="cloud_options_mintag_anchor_'+range_min_tags[mintag]+'" '\r
+                               +'href="#" onclick="$prefs.set(\'cloud.mintag\',\''+range_min_tags[mintag]+'\');$id(\'inspd_cloud\').innerHTML = $cloud.g_draw(Insipid.Curtags,$id(\'qq\').value); $mytags.showOptionsDiv(\'nav\',this.id);$mytags.showOptionsDiv(\'nav\',this.id);return false;">'+range_min_tags[mintag]+'</a>&nbsp;';\r
+                       }\r
+                       \r
+               }\r
+               \r
+               strtxt += '<br/>' +\r
+                               '&raquo; Font  <small>(px)</small>: min: <input maxlength="2" onkeyup="$mytags.do_options(\'minfont\',this.value)" value="'+$prefs.get('cloud.minfont')+'" size="1" type="text"> &nbsp;max: <input maxlength="2" onkeyup="$mytags.do_options(\'maxfont\',this.value)" value="'+$prefs.get('cloud.maxfont')+'" size="1" type="text">'+\r
+                               '<br/>' +\r
+                               '&raquo; Color <small>(hex)</small>: min: <input maxlength="7" value="#'+$prefs.get('cloud.mincolor')+'" onkeyup="$mytags.do_options(\'mincolor\',this.value)" size="6" type="text"> &nbsp;max: <input maxlength="7" onkeyup="$mytags.do_options(\'maxcolor\',this.value)" value="#'+$prefs.get('cloud.maxcolor')+'" size="6" type="text">'+\r
+                               '<br/>'+\r
+                               '&raquo; Counts: '+\r
+                               \r
+                               '';\r
+                       \r
+                       if ($prefs.get('cloud.showcounts') == '1'){\r
+                               strtxt +='<a onfocus="this.blur();" id="cloud_options_counts_show_anchor">show</a> | <a href="#" onfocus="this.blur();" onclick="$prefs.set(\'cloud.showcounts\',\'0\');$id(\'inspd_cloud\').innerHTML = $cloud.g_draw(Insipid.Curtags,$id(\'qq\').value); $mytags.showOptionsDiv(\'nav\',this.id);$mytags.showOptionsDiv(\'nav\',this.id);return false;" id="cloud_options_counts_hide_anchor">hide</a>'+\r
+                               '';\r
+                       }\r
+                       else {\r
+                               strtxt +='<a href="#" onfocus="this.blur();" onclick="$prefs.set(\'cloud.showcounts\',\'1\');$id(\'inspd_cloud\').innerHTML = $cloud.g_draw(Insipid.Curtags,$id(\'qq\').value); $mytags.showOptionsDiv(\'nav\',this.id);$mytags.showOptionsDiv(\'nav\',this.id);return false;" id="cloud_options_counts_show_anchor">show</a> | <a onfocus="this.blur();" id="cloud_options_counts_hide_anchor">hide</a>'+\r
+                               '';\r
+                       }\r
+\r
+\r
+                       \r
+\r
+               \r
+               strtxt +='</span>'+\r
+               '';\r
+               \r
+               \r
+               \r
+       return strtxt ;\r
+               \r
+       },\r
+       \r
+       do_sort : function(anchor_id,action){\r
+                       var tags = Insipid.tags ;\r
+                       var keyArray = new Array();\r
+                       var i = 0 ; \r
+                       for (t in tags){\r
+                               keyArray[i] = t;\r
+                               i++;\r
+                       }\r
+                       $cloud.p_sort(keyArray, tags, action,anchor_id);\r
+       },\r
+       \r
+       do_options : function (action,act_val){\r
+                       act_val = $utils.replace(''+act_val+'','#','')\r
+                       $prefs.set('cloud.'+action+'',''+act_val+'');\r
+                       \r
+                       if ($prefs.get('cloud.sortby') == 'alphabetic'){\r
+                               $mytags.do_sort('','alpha');    \r
+                       }\r
+                       else {\r
+                               $mytags.do_sort('','freq');     \r
+                       }\r
+       }               \r
+       \r
+               \r
+       \r
+}\r
+\r
+\r
+$utils.addEvent('DOMContentLoaded', window, function() { $mytags.pageLoad(); }, false);\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/content/v2/json/style.css b/ff_ext/inspd@danny/chrome/inspd/content/v2/json/style.css
new file mode 100644 (file)
index 0000000..d3200ee
--- /dev/null
@@ -0,0 +1,532 @@
+html { \r
+       padding:0px;\r
+       margin:0px;\r
+}\r
+\r
+body {\r
+       background-color: #f9f9f9 ;\r
+       padding:5px 40px 500px 40px;\r
+       margin:0px;\r
+       \r
+}\r
+\r
+p {\r
+       margin: 0px;\r
+       padding: 5px;\r
+}      \r
+                       \r
+#header {\r
+       font-size: 70%;\r
+       width: 100%;\r
+       text-align: left;\r
+       color: #000;\r
+       background-color: #cccccc;\r
+       margin: 0px;\r
+       padding: 5px 10px;\r
+       -moz-box-sizing:border-box ;\r
+       -moz-border-radius:12px 12px 0px 0px ;\r
+       font-family: verdana,arial,sans-serif ;\r
+       \r
+}\r
+\r
+\r
+#cont {\r
+       border:0px solid #cccccc; \r
+       border-top: 0px solid #fff;\r
+       background-color:#fff;\r
+}\r
+\r
+#cont #nav {\r
+       border-left:1px dotted #800000; \r
+       border-bottom:1px dotted #800000;\r
+       float:right;\r
+       width:350px;\r
+       background-color:#eeeeee;\r
+       margin:0px 0px 5px 5px;\r
+       padding: 0px 5px 0px 5px;\r
+}\r
+\r
+\r
+.tags_search {\r
+       background-color: #fff ;\r
+       padding: 4px 0px;\r
+       font-size: 70%;\r
+       color: #666666 ;\r
+       \r
+\r
+}\r
+\r
+#inspd_cloud_mini_header{\r
+       \r
+       font-size: 70%;\r
+       color: #666666 ;\r
+}\r
+\r
+\r
+.cloud_options_span{\r
+       font-family: verdana,arial,sans-serif ;\r
+       font-size: 85%;\r
+       padding: 4px;\r
+       display: block;\r
+       line-height: 2;\r
+       \r
+}\r
+\r
+\r
+.inspd_tags{\r
+       font-family: verdana,arial,sans-serif ;\r
+       padding: 0px 5px 5px 5px;\r
+}\r
+\r
+.inspd_tags a img{\r
+       border:0;\r
+       display:inline;\r
+       margin:0 0 0 3px;\r
+       padding:0;\r
+}\r
+\r
+.inspd_tags a{\r
+       text-decoration:none;\r
+}\r
+\r
+.inspd_tags a:hover{\r
+       text-decoration:underline;\r
+}\r
+\r
+.inspd_tags ul{\r
+       list-style-type:none;\r
+       margin:0;\r
+       padding:0;\r
+       text-align:justify;\r
+}\r
+\r
+.inspd_cloud{\r
+text-align:justify;\r
+}\r
+\r
+.inspd_cloud li{\r
+       display:inline;\r
+       background-image:none !important;\r
+       padding:2px;\r
+       padding-left: 0px;\r
+       margin:0;\r
+\r
+}\r
+\r
+.inspd_cloud .inspd_tag-count{\r
+       padding-left:0.2em;\r
+       font-size:20px ;\r
+}\r
+\r
+.inspd_cloud li:before{\r
+       content:"" !important\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+.inspd_cloud_mini li{\r
+       font-family: verdana,arial,sans-serif ;\r
+       display:inline;\r
+       background-image:none !important;\r
+       padding:2px;\r
+       margin:0;\r
+\r
+}\r
+\r
+.inspd_cloud_mini {\r
+       list-style-type:none;\r
+       margin:0;\r
+       padding:5px 8px 8px 8px;\r
+       text-align:justify;\r
+       \r
+}\r
+\r
+.inspd_cloud_mini li:before{\r
+       content:"" !important\r
+}\r
+\r
+\r
+\r
+.inspd_cloud_mini a img{\r
+       border:0;\r
+       display:inline;\r
+       margin:0 0 0 3px;\r
+       padding:0;\r
+}\r
+\r
+.inspd_cloud_mini a{\r
+       text-decoration:none;\r
+}\r
+\r
+.inspd_cloud_mini a:hover{\r
+       text-decoration:underline;\r
+}\r
+\r
+.inspd_cloud_mini_header{\r
+       font-family: verdana,arial,sans-serif ;\r
+       font-size: 90%;\r
+       margin:0;\r
+       padding:5px 8px 0px 8px;\r
+       text-align:left;\r
+       \r
+       \r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+.tooltip_dragbar {\r
+       cursor:move;\r
+       width:350px;\r
+       background-color:#e2e2e2;\r
+       padding-top: 8px;\r
+       padding-bottom: 8px;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 0px 0px ;\r
+       border: 1px solid #cccccc;\r
+}\r
+\r
+.span_closex {\r
+       top:8px;\r
+       padding:0px;\r
+       margin:0px;\r
+       float:right;\r
+       right:8px;\r
+       position:absolute;\r
+}\r
+\r
+.span_dragbar_title{\r
+       padding-left:8px;\r
+       font-family:verdana;\r
+       font-size: 13px;\r
+       color: #880000;\r
+}\r
+\r
+.span_drag_content{\r
+       background-color: #ffffff;\r
+       padding-left: 8px;\r
+       padding-right: 8px;\r
+       padding-bottom: 5px;\r
+       padding-top: 5px; \r
+       border-left:1px solid #cccccc; \r
+       border-right:1px solid #cccccc; \r
+       border-bottom:1px solid #cccccc;\r
+       margin-bottom: 90px;\r
+       \r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+/* Start mini posts */\r
+.mini_posts  li { \r
+       display:block; \r
+       text-align: left; \r
+       background-color: #fff;  \r
+       border: 1px dotted #800000; \r
+       border-width: 1px 0; \r
+       margin: 5px 0; \r
+       padding: 5px 0;\r
+}\r
+\r
+.mini_posts  ul { \r
+       background-color: #fff;  \r
+       margin: 5px 0; \r
+       /* padding: 5px 0; */\r
+       list-style-type: none; \r
+       padding: 0 0 0.75em 0;\r
+}\r
+\r
+.mini_posts a { \r
+       display: block;\r
+       font: bold 100% arial, sans-serif;\r
+       padding: 5px; \r
+       text-decoration: none;\r
+}\r
+.mini_posts a:link { \r
+       text-decoration: none;\r
+       color: #00f;\r
+}\r
+\r
+.mini_posts a:visited {\r
+       text-decoration: none;\r
+       color: #639;\r
+}\r
+       \r
+.mini_posts a:hover { \r
+       text-decoration: underline;\r
+       background: #eeeeee;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 8px 8px ;\r
+}\r
+.mini_posts a:active { \r
+       text-decoration: underline; \r
+}\r
+\r
+\r
+.mini_posts_tags {\r
+       margin-left: 15px;\r
+       display: block ;\r
+       font: bold 100% arial, sans-serif;\r
+       text-decoration: none;\r
+       padding: 5px;\r
+       text-align: justify ;\r
+}\r
+\r
+\r
+.mini_posts_tags  a:link { \r
+       text-decoration: none;\r
+       color: #9999FF;\r
+       padding: 5px;\r
+       display: inline;\r
+}\r
+       \r
+.mini_posts_tags  a:visited {\r
+       text-decoration: none;\r
+       color: #639;\r
+}\r
+       \r
+.mini_posts_tags  a:hover { \r
+       text-decoration: underline;\r
+       background: #FFEAEA;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 8px 8px ;\r
+}\r
+\r
+.mini_posts_tags  a:active { \r
+       text-decoration: underline; \r
+}\r
+\r
+.mini_posts_notes {\r
+       margin-left: 20px;\r
+       color: #666666;\r
+       display: block; \r
+       font: normal 90% Verdana, arial, sans-serif;\r
+       padding: 5px; \r
+}\r
+\r
+/* End mini posts */\r
+\r
+\r
+\r
+\r
+.posts { list-style-type: none; padding: 0 0 0.75em 0; display:inline;}\r
+.posts li { background-color: #fff;  border: 1px dotted #800000; border-width: 1px 0; margin: 5px; padding: 8px;}\r
+.posts ul { background-color: #fff;  margin: 5px 0; padding: 5px 0;}\r
+\r
+\r
+.pagination{\r
+       color: #666666;\r
+       display: block; \r
+       font: normal 80% arial, sans-serif;\r
+       padding: 5px 5px 5px 8px; \r
+       text-decoration: none;\r
+}\r
+\r
+\r
+.pagination a:link { \r
+       text-decoration: none;\r
+       color: #00f;\r
+}\r
+       \r
+.a_posts { \r
+       display:block;\r
+       font: bold 100% arial, sans-serif;\r
+       padding: 5px; \r
+       text-decoration: none;\r
+       \r
+}\r
+.a_posts:link { \r
+       text-decoration: none;\r
+       color: #00f;\r
+}\r
+       \r
+.a_posts:visited {\r
+       text-decoration: none;\r
+       color: #639;\r
+}\r
+       \r
+.a_posts:hover { \r
+       text-decoration: underline;\r
+       background: #eeeeee;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 8px 8px ;\r
+       \r
+}\r
+.a_posts:active { \r
+       text-decoration: underline; \r
+}\r
+\r
+\r
+.post_notes {\r
+       margin-left: 5px;\r
+       color: #666666;\r
+       display: block; \r
+       font: normal 90% Verdana, arial, sans-serif;\r
+       padding: 5px; \r
+       \r
+}\r
+\r
+.post_tags {\r
+       display: block ;\r
+       font: bold 100% arial, sans-serif;\r
+       text-decoration: none;\r
+       padding: 5px;\r
+       padding-left:0px;\r
+       margin-top:1px;\r
+       line-height:1.5;\r
+}\r
+\r
+\r
+.a_post_tags:link { \r
+       text-decoration: none;\r
+       color: #9999FF;\r
+       padding: 5px;\r
+}\r
+       \r
+.a_post_tags:visited {\r
+       text-decoration: none;\r
+       color: #639;\r
+}\r
+       \r
+.a_post_tags:hover { \r
+       text-decoration: underline;\r
+       background: #FFEAEA;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 8px 8px ;\r
+}\r
+.a_post_tags:active { \r
+       text-decoration: underline; \r
+}\r
+\r
+\r
+\r
+.post-cal-2 {\r
+       text-align: center;\r
+       float:left; \r
+       font-family: Arial, Helvetica, sans-serif;\r
+       border:1px outset #bbb;\r
+       padding: 0 ;\r
+}\r
+.post-month-2 {\r
+       font-size: .6em;\r
+       margin:0; \r
+       padding:0 2px;\r
+       /*padding-bottom:4px;*/\r
+       /*background:#fed url(images/cal-triangle.png) center bottom repeat-x;\r
+       */\r
+       \r
+       display: block;\r
+       background: #eeeeee;\r
+       }\r
+       \r
+.post-date-2 { \r
+       font-size:0.7em;\r
+       margin:0; \r
+       padding:0 2px;\r
+       background:#ffffff; \r
+       display: block;\r
+       font-weight: bold;\r
+       \r
+}\r
+\r
+.post-dateyear-2 { \r
+       font-size:.6em;\r
+       margin:0; \r
+       padding:0 2px;\r
+       background:#eeeeee;  \r
+       display: block;\r
+       \r
+}\r
+\r
+\r
+.post-dateicon-2 { \r
+       font-size:.6em;\r
+       margin:0; \r
+       padding:3px 2px;\r
+       background:#ffffff;  \r
+       display: block;\r
+       \r
+}\r
+\r
+\r
+#menu_post {\r
+       position: absolute;\r
+       width: 30px;\r
+       margin:2px 0px 0px 0px;\r
+       padding:0px;\r
+       \r
+\r
+}\r
+\r
+\r
+#content_post {\r
+  margin-left: 35px;\r
+  background-color:#fff;\r
+} \r
+\r
+\r
+\r
+.favico_span{\r
+cursor: pointer ;\r
+\r
+}\r
+\r
+.favico_span:hover{\r
+\r
+}\r
+\r
+.blob_comment_box_div{\r
+       background-color:#FFFFCC;\r
+       padding:1px 0px 1px 3px; \r
+       border:4px solid #FFFF9D;\r
+       width:93px;\r
+       margin-left:29px;\r
+       -moz-box-sizing:border-box;\r
+       -moz-border-radius:8px 8px 8px 8px ;\r
+}\r
+\r
+\r
+.blob_comment_box_div img{\r
+               margin-right: 3px;\r
+               padding: 3px;\r
+               border: 1px dotted #FFFFCC;\r
+                       \r
+}\r
+\r
+.blob_comment_box_div img:hover{\r
+               background-color:#ffffff;\r
+               border: 1px solid #800000;\r
+       \r
+}\r
+\r
+\r
+\r
+.colorBar { font-size: 132%; padding: 0px 1em; cursor:pointer; border: 1px solid #ffffff;}\r
+.colorBar:hover{border: 1px solid #0000FF;}\r
+\r
+.a_posts_link_color_protocol_container {\r
+       font: normal 100% arial, sans-serif;\r
+       color: #8B2500;\r
+       padding: 5px; \r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/icon1-3232.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/icon1-3232.png
new file mode 100644 (file)
index 0000000..a5b0847
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/icon1-3232.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/inspd.css b/ff_ext/inspd@danny/chrome/inspd/skin/classic/inspd.css
new file mode 100644 (file)
index 0000000..c6c3b5d
--- /dev/null
@@ -0,0 +1,59 @@
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");\r
+\r
+\r
+#inspd-searchbar-container{\r
+/* */\r
+}\r
+\r
+#inspd-searchbar-textbox {\r
+       min-width: 40px;\r
+       width: 80px;\r
+       min-height: 24px;\r
+       margin-right: 0px;\r
+       margin-left: 1px;\r
+}\r
+\r
+\r
+#inspd-searchbar-dropdown {\r
+       list-style-image: url("chrome://inspd/skin/searchtb/inspd-searchbar-dropdown-default-icon.png");\r
+       margin: 0px;\r
+       min-width: 40px;\r
+       width: 40px;\r
+}\r
+\r
+#inspd-searchbar-resizer {\r
+       min-height: 24px; \r
+       min-width: 11px;\r
+       margin-left: 2px;\r
+       margin-right: 0px;\r
+       border: none;\r
+       background-image: url("chrome://inspd/skin/searchtb/inspd-searchbar-splitter.png");\r
+       background-color: transparent;\r
+}\r
+\r
+#inspd-searchbar-go {\r
+       list-style-image: url('chrome://inspd/skin/searchtb/inspd-searchbar-go-1413.png'); \r
+       cursor: pointer;\r
+       margin: 0px;\r
+       padding-left: 2px;\r
+       padding-right: 2px;\r
+}\r
+\r
+#inspd-button1-home{\r
+       list-style-image: url('chrome://inspd/skin/searchtb/inspd-button1-home.png');\r
+}\r
+\r
+#inspd-button2-posttoinsipid{\r
+       list-style-image: url('chrome://inspd/skin/searchtb/inspd-button2-posttoinsipid.png');\r
+}\r
+\r
+#inspd-button3-mytagcloud{\r
+       list-style-image: url('chrome://inspd/skin/searchtb/inspd-button3-mytagcloud.png');\r
+}\r
+\r
+#inspd-button4-mystars{\r
+       list-style-image: url('chrome://inspd/skin/searchtb/inspd-button4-mystars.png');\r
+}\r
+\r
+\r
+\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/icons_credits.txt b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/icons_credits.txt
new file mode 100644 (file)
index 0000000..ac1b606
--- /dev/null
@@ -0,0 +1,7 @@
+The pictures used in the icons are originally created by:\r
+mjames at gmail dot com.\r
+licensed under Creative Commons Attribution 2.5 License.\r
+http://creativecommons.org/licenses/by/2.5/\r
+\r
+They were downloaded from: \r
+http://www.famfamfam.com/lab/icons/silk/\r
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button1-home.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button1-home.png
new file mode 100644 (file)
index 0000000..f438c85
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button1-home.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button2-posttoinsipid.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button2-posttoinsipid.png
new file mode 100644 (file)
index 0000000..c382fd8
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button2-posttoinsipid.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button3-mytagcloud.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button3-mytagcloud.png
new file mode 100644 (file)
index 0000000..cccdc70
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button3-mytagcloud.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button4-mystars.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button4-mystars.png
new file mode 100644 (file)
index 0000000..4d2b72f
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-button4-mystars.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-allitems.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-allitems.png
new file mode 100644 (file)
index 0000000..11c6ea0
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-allitems.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-default-icon.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-default-icon.png
new file mode 100644 (file)
index 0000000..fbf25bc
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-default-icon.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mybookmarks.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mybookmarks.png
new file mode 100644 (file)
index 0000000..4f3d64f
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mybookmarks.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mytags.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mytags.png
new file mode 100644 (file)
index 0000000..b7cb50f
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-dropdown-mytags.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-go-1413.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-go-1413.png
new file mode 100644 (file)
index 0000000..a0266fd
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-go-1413.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-splitter.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-splitter.png
new file mode 100644 (file)
index 0000000..659db48
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd-searchbar-splitter.png differ
diff --git a/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd_icon_post1.png b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd_icon_post1.png
new file mode 100644 (file)
index 0000000..1cb57e2
Binary files /dev/null and b/ff_ext/inspd@danny/chrome/inspd/skin/classic/searchtb/inspd_icon_post1.png differ
diff --git a/ff_ext/inspd@danny/defaults/preferences/inspd.js b/ff_ext/inspd@danny/defaults/preferences/inspd.js
new file mode 100644 (file)
index 0000000..43395b3
--- /dev/null
@@ -0,0 +1,22 @@
+pref("extensions.inspd.defurl", "");\r
+pref("extensions.inspd.showgo", "1");\r
+pref("extensions.inspd.delintegrate", "0");\r
+pref("extensions.inspd.delintegratecommontags", "0");\r
+pref("extensions.inspd.defsearchselection", "allitems");\r
+pref("extensions.inspd.searchstyle", "json");\r
+pref("extensions.inspd.lastsearchq", "");\r
+pref("extensions.inspd.searchbar.autocomp", "1");\r
+pref("extensions.inspd.defcount", "15");\r
+pref("extensions.inspd.altpost", "0");\r
+pref("extensions.inspd.cloud.minfont", "16");\r
+pref("extensions.inspd.cloud.maxfont", "50");\r
+pref("extensions.inspd.cloud.mincolor", "8B2500");\r
+pref("extensions.inspd.cloud.maxcolor", "0000AC");\r
+pref("extensions.inspd.cloud.sortby", "alphabetic");\r
+pref("extensions.inspd.cloud.sorttype", "asc");\r
+pref("extensions.inspd.cloud.showcounts", "1");\r
+pref("extensions.inspd.cloud.mintag", "1");\r
+pref("extensions.inspd.cloud.showadd", "1");\r
+pref("extensions.inspd.bookmarks.showfavicon", "0");\r
+pref("extensions.inspd.stars.list", "");\r
+\r
diff --git a/ff_ext/inspd@danny/install.rdf b/ff_ext/inspd@danny/install.rdf
new file mode 100644 (file)
index 0000000..5839b75
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>\r
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\r
+     xmlns:em="http://www.mozilla.org/2004/em-rdf#">\r
+  <Description about="urn:mozilla:install-manifest">\r
+    <em:id>inspd@danny</em:id>\r
+    <em:version>0.0.2.8</em:version>\r
+               <!-- Firefox -->        \r
+               <em:targetApplication>\r
+                       <Description>\r
+                               <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>\r
+                               <em:minVersion>1.5</em:minVersion>\r
+                               <em:maxVersion>6.0</em:maxVersion>\r
+                       </Description>\r
+               </em:targetApplication>\r
+               \r
+               <!-- Flock -->\r
+       <em:targetApplication>\r
+               <Description>\r
+                       <em:id>{a463f10c-3994-11da-9945-000d60ca027b}</em:id>\r
+                       <em:minVersion>0.5</em:minVersion>\r
+                       <em:maxVersion>6.0</em:maxVersion>\r
+               </Description>\r
+       </em:targetApplication>\r
+       \r
+       \r
+       \r
+    <em:name>Insipid Firefox/Flock Extension</em:name>\r
+    <em:description>Access your Insipid bookmark manager.</em:description>\r
+    <em:creator>Danny Miles</em:creator>\r
+       <em:contributor>Luke Reeves</em:contributor>\r
+       <em:iconURL>chrome://inspd/skin/icon1-3232.png</em:iconURL>\r
+    <em:homepageURL>https://neuro-tech.net/insipid/</em:homepageURL>\r
+       <em:updateURL>https://neuro-tech.net/insipid/inspd_update.xml</em:updateURL>\r
+               \r
+       </Description>      \r
+</RDF>\r
diff --git a/ff_ext/utils/inspd_update.xml b/ff_ext/utils/inspd_update.xml
new file mode 100644 (file)
index 0000000..a4d7d20
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<r:RDF xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \r
+    xmlns="http://www.mozilla.org/2004/em-rdf#">\r
+    <!-- Insipid Firefox/Flock  Extension -->\r
+    <r:Description about="urn:mozilla:extension:inspd@danny">\r
+        <updates>\r
+            <r:Seq>\r
+                <r:li>\r
+                    <r:Description>\r
+                        <version>0.0.2.8</version>\r
+\r
+                        <!-- Firefox -->\r
+                        <targetApplication>\r
+                            <r:Description>\r
+                                <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id>\r
+                                <minVersion>1.5</minVersion>\r
+                                <maxVersion>6.0</maxVersion>\r
+                                <updateLink>https://neuro-tech.net/insipid/insipid_firefox_flock_extension_0.0.2.8.xpi</updateLink>\r
+\r
+                            </r:Description>\r
+                        </targetApplication>\r
+                        <!-- Flock -->\r
+                        <targetApplication>\r
+                            <r:Description>\r
+                                <id>{a463f10c-3994-11da-9945-000d60ca027b}</id>\r
+                                <minVersion>0.5</minVersion>\r
+                                <maxVersion>6.0</maxVersion>\r
+\r
+                                <updateLink>https://neuro-tech.net/insipid/insipid_firefox_flock_extension_0.0.2.8.xpi</updateLink>\r
+                            </r:Description>\r
+                        </targetApplication>\r
+                    </r:Description>\r
+                </r:li>\r
+            </r:Seq>\r
+        </updates>\r
+        <version>0.0.2.8</version>\r
+\r
+        <updateLink>https://neuro-tech.net/insipid/insipid_firefox_flock_extension_0.0.2.8.xpi</updateLink>\r
+    </r:Description>\r
+</r:RDF>\r