/[drupal]/contributions/modules/flickrstickr/flickrstickr.js
ViewVC logotype

Contents of /contributions/modules/flickrstickr/flickrstickr.js

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download) (as text)
Mon Jan 22 13:22:12 2007 UTC (2 years, 10 months ago) by aronnovak
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-5
Changes since 1.6: +6 -2 lines
File MIME type: text/javascript
Fix enter-grabbing according to DOM
1 // Have to count the pages
2 var pagenum = 1;
3 var savedresult = '';
4 // For AJAX wizard
5 function getHTTPObject() {
6 var xmlhttp;
7
8 /*@cc_on
9
10 @if (@_jscript_version >= 5)
11
12 try {
13
14 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
15
16 } catch (e) {
17
18 try {
19
20 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
21
22 } catch (E) {
23
24 xmlhttp = false;
25
26 }
27
28 }
29
30 @else
31
32 xmlhttp = false;
33
34 @end @*/
35
36 if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
37 try {
38 xmlhttp = new XMLHttpRequest();
39 } catch (e) {
40 xmlhttp = false;
41 }
42 }
43 return xmlhttp;
44 }
45
46 function handlePhotosRequest() {
47 if (photosRequest.readyState == 2) {
48 document.getElementById("flickrstickr_loading").innerHTML="Loading photos...";
49 }
50 if (photosRequest.readyState == 4) {
51 document.getElementById("flickrstickr_loading").innerHTML="";
52 xmldoc =photosRequest.responseXML.documentElement;
53 if (xmldoc.getAttribute("stat")=="fail"){
54 err = xmldoc.getElementsByTagName("err");
55 alert(err[0].getAttribute("msg"));
56 return;
57 }
58 photos=xmldoc.getElementsByTagName("photo");
59 savedresult = photos;
60 for (i = 0; i < photos.length; i++) {
61 img = document.getElementById("flickrstickrphoto"+i);
62 // Need to pass parameters by url because tinymce use full url
63 var size_popup = document.getElementById('flickrstickr_size_popup').value;
64 size_popup = size_popup.substring(1, size_popup.length);
65 size = new String(document.getElementById('flickrstickr_size').value);
66 size = size.substring(1, size.length);
67 var imgparams = document.getElementById('flickrstickr_align').value
68 +'_'+size
69 +'_'+size_popup;
70 img.src="http://static.flickr.com/"+photos[i].getAttribute("server")
71 +"/"+photos[i].getAttribute("id")
72 +"_"+photos[i].getAttribute("secret")+"_s.jpg#"
73 +imgparams;
74 img.style.display="inline";
75 images[i].id=photos[i].getAttribute("id");
76 images[i].server=photos[i].getAttribute("server");
77 images[i].secret=photos[i].getAttribute("secret");
78 images[i].owner=photos[i].getAttribute("owner");
79
80 }
81 for (i = photos.length; i < getMaxImageNo(); i++) {
82 image = document.getElementById("flickrstickrphoto"+i);
83 image.style.display="none";
84 }
85 // If don't have any result hide the navibuttons. Otherwise show.
86 if (photos.length != 0) {
87 document.getElementById('navnext').style.display='inline';
88 document.getElementById('navprev').style.display='inline';
89 }
90 else {
91 document.getElementById('navnext').style.display='none';
92 document.getElementById('navprev').style.display='none';
93 document.getElementById("flickrstickr_loading").innerHTML="No images found";
94 }
95 }
96 }
97
98 function getPhotosFromName(username) {
99 userRequest.open("GET", getBaseUrl()+"/index.php?q=flickrstickr/xml/user/"+username+"/"+pagenum,true);
100 userRequest.onreadystatechange = handleUserRequest;
101 userRequest.send(null);
102 }
103
104 function handleUserRequest() {
105 if (photosRequest.readyState == 2) {
106 document.getElementById("flickrstickr_loading").innerHTML="Loading user...";
107 }
108 if (userRequest.readyState == 4) {
109 document.getElementById("flickrstickr_loading").innerHTML="";
110 xmldoc =userRequest.responseXML.documentElement;
111 if (xmldoc.getAttribute("stat")=="fail") {
112 err = xmldoc.getElementsByTagName("err");
113 alert(err[0].getAttribute("msg"));
114 return;
115 }
116 user = xmldoc.getElementsByTagName("user");
117 username = user[0].getElementsByTagName("username");
118 userids[username[0].textContent] = user[0].getAttribute("id");
119 getPhotosFromId(user[0].getAttribute("id"));
120 }
121 }
122
123 function getPhotosFromId(userid) {
124 tags = document.getElementById("flickrstickr_tag").value;
125 photosRequest.open("GET", getBaseUrl()+"/index.php?q=flickrstickr/xml/images/"+userid+"/"+tags+"/"+pagenum,true);
126 photosRequest.onreadystatechange = handlePhotosRequest;
127 photosRequest.send(null);
128 }
129
130 function loadImages(){
131 username = document.getElementById("flickrstickr_user").value;
132 tags = document.getElementById("flickrstickr_tag").value;
133 if (username=="" && tags=="") {
134 getPhotosFromId("!recent!",tags);
135 }
136 else if (username=="" && tags!="") {
137 getPhotosFromId("all",tags);
138 }
139 else if (userids[username]!=null) {
140 getPhotosFromId(userids[username],tags);
141 }
142 else {
143 getPhotosFromName(username);
144 }
145 }
146
147 function prevPage() {
148 if (pagenum == 1) {
149 alert('Already at the first page');
150 }
151 else {
152 pagenum--;
153 loadImages();
154 }
155 }
156
157 function nextPage() {
158 pagenum++;
159 loadImages();
160 }
161
162 function insertAtCursor(field, value) {
163 if (document.selection) { // for IE or compatible
164 field.focus();
165 sel = document.selection.createRange();
166 sel.text = value;
167 }
168 else if (field.selectionStart || field.selectionStart == '0') { // for FF, Moz, Konq, etc
169 var start = field.selectionStart;
170 var end = field.selectionEnd;
171 field.value = field.value.substring(0, start) + value + field.value.substring(end, field.value.length);
172 } else { // For dummy browsers
173 field.value += value;
174 }
175 }
176
177 function updateImages() {
178 for (i = 0; i < savedresult.length; i++) {
179 img = document.getElementById("flickrstickrphoto"+i);
180 // Need to pass parameters by url because tinymce use full url
181 var size_popup = document.getElementById('flickrstickr_size_popup').value;
182 size_popup = size_popup.substring(1, size_popup.length);
183 size = new String(document.getElementById('flickrstickr_size').value);
184 size = size.substring(1, size.length);
185 var imgparams = document.getElementById('flickrstickr_align').value
186 +'_'+size
187 +'_'+size_popup;
188 img.src="http://static.flickr.com/"+photos[i].getAttribute("server")
189 +"/"+photos[i].getAttribute("id")
190 +"_"+photos[i].getAttribute("secret")+"_s.jpg#"
191 +imgparams;
192 img.style.display="inline";
193 images[i].id=photos[i].getAttribute("id");
194 images[i].server=photos[i].getAttribute("server");
195 images[i].secret=photos[i].getAttribute("secret");
196 images[i].owner=photos[i].getAttribute("owner");
197
198 }
199 }
200
201 function toggleSelector() {
202 var selectorElement = document.getElementById('flickrstickr_float_selector');
203 var selectorButton = document.getElementById('flickr_togglebutton');
204 if (selectorElement.style.display != 'none') {
205 selectorElement.style.display='none';
206 selectorButton.value='Show the image selector';
207 }
208 else {
209 selectorElement.style.display='block';
210 selectorButton.value='Hide the image selector';
211 }
212 }
213
214 function dockSelector() {
215 var selectorElement = document.getElementById('flickrstickr_float_selector');
216 var selectorButton = document.getElementById('flickr_dockbutton');
217 if (selectorElement.style.position != 'relative') {
218 selectorElement.style.position = 'relative';
219 selectorElement.style.top = '0px';
220 selectorElement.style.left = '0px';
221 selectorButton.value='UnDock the image selector';
222 } else {
223 selectorElement.style.position = 'fixed';
224 selectorElement.style.top = '0px';
225 selectorElement.style.left = '20%';
226 selectorButton.value='Dock the image selector';
227 }
228 }
229
230 function handleEnter(evt) {
231 if (window.event && window.event.keyCode == 13) {
232 loadImages();
233 return false;
234 }
235
236 if (evt.keyCode == 13) {
237 loadImages();
238 return false;
239 }
240 }

  ViewVC Help
Powered by ViewVC 1.1.2