1 | var Wistlet = {
|
---|
2 | init : function () {
|
---|
3 | var o = document.getElementsByTagName('body').item(0);
|
---|
4 |
|
---|
5 | //var text = (typeof(document.selection == 'undefined') ) ? getSelection() : document.selection.createRange().text;
|
---|
6 |
|
---|
7 | function getSel() {
|
---|
8 | var txt = '';
|
---|
9 | if (window.getSelection) {
|
---|
10 | txt = window.getSelection();
|
---|
11 | } else if (document.getSelection) {
|
---|
12 | txt = document.getSelection();
|
---|
13 | } else if (document.selection) {
|
---|
14 | txt = document.selection.createRange().text;
|
---|
15 | } else {
|
---|
16 | return;
|
---|
17 | }
|
---|
18 | return txt;
|
---|
19 | }
|
---|
20 |
|
---|
21 |
|
---|
22 | var s = '' +
|
---|
23 | '<form name="f" id="f" action="http://www.wists.com/s.php" method="get">'+
|
---|
24 | '<input name="c" id="c" type="hidden" value="null" />'+
|
---|
25 | '<input name="r" id="r" type="hidden" value="'+location+'" />'+
|
---|
26 | '<input name="u" id="u" type="hidden" value="" />'+
|
---|
27 | '<input name="title" id="title" type="hidden" value="'+document.title +'" />'+
|
---|
28 | '<input name="m" type="hidden" value="'+getSel()+'" />'+
|
---|
29 | '</form>'+
|
---|
30 | '<div>'+
|
---|
31 | '<a href="http://wists.com/"><img src="http://wists.com/mainimages/logo_top_left.gif" border=0></a><br />'+
|
---|
32 | '<p>Click on the most appropriate image below to create a thumbnail image for your bookmark:</a></p>'+
|
---|
33 | '<table width=800><tr width=800><td width=800>\n';
|
---|
34 |
|
---|
35 | var x = this.scrape_images();
|
---|
36 | if (x == 0)
|
---|
37 | {
|
---|
38 | location = 'http://www.wists.com/s.php?c=&r='+location+'&title='+document.title;
|
---|
39 | return true;
|
---|
40 | }
|
---|
41 | s += x +
|
---|
42 |
|
---|
43 | '</td></tr></table>\n'+
|
---|
44 | '<p>Don\'t like any of these images? <a href="http://www.wists.com/s.php?c=&r='+location+'&title='+document.title +'">Create a thumbnail screenshot</a> instead!</p>'+
|
---|
45 | '</div>';
|
---|
46 |
|
---|
47 | o.innerHTML = s;
|
---|
48 | this.strip_document();
|
---|
49 | this.style_document();
|
---|
50 | return true;
|
---|
51 | },
|
---|
52 | make_thumbnail : function (r) {
|
---|
53 | var s = '' +
|
---|
54 | '<table style="float:left;"><tr><td width=120 height=90 valign=middle align=center><a href="http://www.wists.com/" onclick="return Wistlet.submit_form(\''+r+'\');">'+
|
---|
55 | '<img src="'+r+'" alt="" onload="resizeImage(this);" />'+
|
---|
56 | '</a></td></tr></table>\n';
|
---|
57 | return s;
|
---|
58 | },
|
---|
59 | submit_form : function (r) {
|
---|
60 | var f = document.getElementById('f'); if (!f) return false;
|
---|
61 | var u = document.getElementById('u'); if (!u) return false;
|
---|
62 | u.setAttribute("value", r);
|
---|
63 | f.submit();
|
---|
64 | return false;
|
---|
65 | },
|
---|
66 | get_background : function (o) {
|
---|
67 | var s = '';
|
---|
68 | if (window.getComputedStyle) s = window.getComputedStyle(o,null).getPropertyValue("background-image");
|
---|
69 | if (o.currentStyle) s = o.currentStyle.backgroundImage;
|
---|
70 | if (s == "none") s = "";
|
---|
71 | return s;
|
---|
72 | },
|
---|
73 | scrape_images : function () {
|
---|
74 | var a = document.getElementsByTagName('*');
|
---|
75 | var s = '';
|
---|
76 | var n = 0;
|
---|
77 | var l = [];
|
---|
78 | for (var i=0; i < a.length; i++)
|
---|
79 | {
|
---|
80 | var o = a[i];
|
---|
81 | if (o.tagName == "IMG" && o.src != "")
|
---|
82 | {
|
---|
83 | n++;
|
---|
84 | if (!l[o.src])
|
---|
85 | {
|
---|
86 | l[o.src] = "1";
|
---|
87 | s += this.make_thumbnail(o.src);
|
---|
88 | }
|
---|
89 | }
|
---|
90 | else
|
---|
91 | {
|
---|
92 | var x = /url\(["']?(.+[^'"])["']?\)/gi.exec(this.get_background(o));
|
---|
93 | if (x && x != "" && x.length > 1)
|
---|
94 | {
|
---|
95 | n++;
|
---|
96 | if (!l[x[1]])
|
---|
97 | {
|
---|
98 | l[x[1]] = "1";
|
---|
99 | s += this.make_thumbnail(x[1]);
|
---|
100 | }
|
---|
101 | }
|
---|
102 | }
|
---|
103 | }
|
---|
104 | if (n > 0)
|
---|
105 | {
|
---|
106 | return s
|
---|
107 | }
|
---|
108 | else {
|
---|
109 | return n;
|
---|
110 | }
|
---|
111 | },
|
---|
112 | strip_document : function () {
|
---|
113 | var a = document.getElementsByTagName('*');
|
---|
114 | for (var i=0; i < a.length; i++)
|
---|
115 | {
|
---|
116 | var o = a[i];
|
---|
117 | if (o.tagName == "LINK" || o.tagName == "STYLE")
|
---|
118 | {
|
---|
119 | this.destroy_element(o);
|
---|
120 | }
|
---|
121 | else if (o.tagName == "IMG")
|
---|
122 | {
|
---|
123 | if (o.offsetWidth <= 10 || o.offsetHeight <= 10)
|
---|
124 | {
|
---|
125 | // this.destroy_element(o.parentNode);
|
---|
126 | }
|
---|
127 | }
|
---|
128 | }
|
---|
129 | return true;
|
---|
130 | },
|
---|
131 | style_document : function () {
|
---|
132 | var x = document.getElementsByTagName('head').item(0);
|
---|
133 | var o = document.createElement('link');
|
---|
134 | if (typeof o != 'object') o = document.standardCreateElement('link');
|
---|
135 | o.setAttribute('href','http://www.wists.com/wistlet.css?x=' + Math.floor(Math.random() * 9999));
|
---|
136 | o.setAttribute('rel','stylesheet');
|
---|
137 | o.setAttribute('type','text/css');
|
---|
138 | x.appendChild(o);
|
---|
139 | return true;
|
---|
140 | },
|
---|
141 | destroy_element : function (o) {
|
---|
142 | while (o.childNodes.length > 0)
|
---|
143 | {
|
---|
144 | o.removeChild(o.childNodes[0]);
|
---|
145 | }
|
---|
146 | o.parentNode.removeChild(o);
|
---|
147 | }
|
---|
148 | }
|
---|
149 |
|
---|
150 | function resizeImage(img) {
|
---|
151 |
|
---|
152 | var img_width = img.offsetWidth;
|
---|
153 | var img_height = img.offsetHeight;
|
---|
154 | var img_aspect_ratio = Math.round((img_width / img_height) * 100) / 100;
|
---|
155 |
|
---|
156 | var max_width = 120;
|
---|
157 | var max_height = 90;
|
---|
158 | var max_aspect_ratio = Math.round((max_width / max_height) * 100) / 100;
|
---|
159 |
|
---|
160 | // alert("orig image size is " + img_width + "x" + img_height + "\n" + "aspect ratio is " + img_aspect_ratio + "\n\n" + "max image size is " + max_width + "x" + max_height + "\n" + "max aspect ratio is " + max_aspect_ratio);
|
---|
161 |
|
---|
162 | var new_img_width = 0;
|
---|
163 | var new_img_height = 0;
|
---|
164 | var new_aspect_ratio = 0;
|
---|
165 |
|
---|
166 | // if no resize needed
|
---|
167 | if (img_width < 120 && img_height < 90) {
|
---|
168 | new_img_width = img_width;
|
---|
169 | new_img_height = img_height;
|
---|
170 |
|
---|
171 | // if wider
|
---|
172 | } else if (img_aspect_ratio > max_aspect_ratio) {
|
---|
173 | new_img_width = max_width;
|
---|
174 | new_img_height = Math.round(new_img_width / img_aspect_ratio);
|
---|
175 |
|
---|
176 | // if taller
|
---|
177 | } else if (img_aspect_ratio < max_aspect_ratio) {
|
---|
178 | new_img_height = max_height;
|
---|
179 | new_img_width = Math.round(new_img_height * img_aspect_ratio);
|
---|
180 |
|
---|
181 | // equal
|
---|
182 | } else {
|
---|
183 | new_img_width = max_width;
|
---|
184 | new_img_height = max_height;
|
---|
185 | }
|
---|
186 |
|
---|
187 | img.style.width = new_img_width + "px";
|
---|
188 | img.style.height = new_img_height + "px";
|
---|
189 | new_aspect_ratio = Math.round((new_img_width / new_img_height) * 100) / 100;
|
---|
190 |
|
---|
191 | // alert("new image size is " + new_img_width + "x" + new_img_height + "\n" + "new aspect ratio is " + new_aspect_ratio);
|
---|
192 | }
|
---|
193 |
|
---|
194 |
|
---|
195 | var sociable_old_onload = window.onload;
|
---|
196 | window.onload = function () {
|
---|
197 | imgs = document.getElementsByTagName("img");
|
---|
198 | for(var i = 0; i < imgs.length; i++) {
|
---|
199 | var img = imgs[i];
|
---|
200 | if (img.className == 'sociable-hovers sociable_wists') {
|
---|
201 | img.onclick = function() { Wistlet.init(); return false; }
|
---|
202 | }
|
---|
203 | }
|
---|
204 | if (sociable_old_onload) sociable_old_onload();
|
---|
205 | };
|
---|