3 #------------------------------#
8 # <john.smith@msclinux.com> #
11 # http://www.msclinux.com #
12 # http://www.mscsoftware.com #
13 #------------------------------#
15 #----------------------------------------------------------------------------#
16 # Available Functions #
18 # -This gives you simple mouse over functions on graphics #
19 # and includea a link. #
20 # -Usage = &jroll_over("url", "name", "border", "imgoff", "imgon"); #
22 # -Preloads any number of given images. #
23 # -Usage = &jimg_preload("image/1.gif", "imgage/u.gif"); #
25 # -Updates any image on your page that has a name #
26 # -Usage = &jimg_update("imgname", "image/toload.gif"); #
28 # -Builds an Animation with any given list of images #
29 # -Usage = &janim("name", "speed", "list.gif", "of.gif", "images.jpg") #
31 # -Starts the animation you built with janim #
32 # -Usage = &janim_start("name"); #
34 # -Stops the animation you built with janim #
35 # -Usage = &janim_stop("name"); #
37 # -Launches an alert dialog box with a custom message #
38 # -Usage = &jalert("Your alert message!"); #
40 # -Opens a window with a given URL #
41 # -Usage = &jwindow("url", "name", "width", "height"); #
43 # -Repostitions a named windows x and y #
44 # -Usage = &jwindow_xy("name", "x", "y"); #
46 # -Creates an empty plain text window for writing data to #
47 # -Usage = &jterminal("name", "width", "height"); #
49 # -Write data to a created window or terminal #
50 # -Usage = &jwrite("name", "data to write"); #
52 # -Simple text rollovers between two colors #
53 # -Usage = &jtext("text message", "red", "#F1F1F1"); #
55 # -Builds a JavaScript for a pop-up talkback/bug report window #
56 # -Usage = &jtalkback(); #
58 # -Launches the jtalkback window upon execution #
59 # -Usage = &jerror("title", "email", "width", "height", \ #
60 # "errmsg", "url", "erroredonline"); #
62 # -Creates a button or text link to launch the jtalkback window #
63 # -Usage = &jtalkback_link("title", "email", "width", "height", \ #
65 #----------------------------------------------------------------------------#
67 #creates a mouse over event with a link
69 my ($url, $name, $border, $img_off, $img_on) = @_;
70 if (!$url) { $url = "javascript:"; }
71 print "\n<a href=\"$url\"", " onmouseover=\"document.$name.src=\'$img_on\'\;\"", " onmouseout=\"document.$name.src=\'$img_off\'\;\">";
72 print "<img src=\"$img_off\" name=\"$name\" border=\"0\" alt=\"$name\"></a>";
75 #preloads a list of images for smooth loading
78 print "<SCRIPT LANGUAGE=JavaScript>\n";
79 foreach my $img (@img_array) {
80 print "(new Image).src = \"$img\"\;\n";
85 #update any image on a page by its name
87 my ($name, $img) = @_;
88 print "<SCRIPT LANGUAGE=JavaScript>\n";
89 print "document.$name.src = '$img';\n";
93 #build an animation (preloads images itself)
95 my ($name, $speed, @anim_array) = @_;
96 my $frames = @anim_array;
99 print "<img name='$name' src='@anim_array[0]' alt='$name'>\n";
100 print "<SCRIPT LANGUAGE=JavaScript>\n";
101 print "var aniframes$name = new Array($frames);\n";
102 foreach my $img (@anim_array) {
103 print "aniframes$name\[$count] = new Image();\n";
104 print "aniframes$name\[$count].src = '@anim_array[$arraycount]';\n";
108 print "var frame$name = 0;\n";
109 print "var timeout_id$name = null;\n";
110 print "function animate$name() {\n";
111 print "document.$name.src = aniframes$name\[frame$name].src;\n";
112 print "frame$name = (frame$name + 1)%$frames;\n";
113 print "timeout_id$name = setTimeout('animate$name()', $speed);\n";
121 print "<SCRIPT LANGUAGE=JavaScript>\n";
122 print "animate$name();\n";
128 my ($name, $image) = @_;
130 print "<SCRIPT LANGUAGE=JavaScript>\n";
131 print "if (timeout_id$name) clearTimeout(timeout_id$name);\n";
132 print "timeout_id$name=null;\n";
134 print "document.$name.src = '$image';\n";
139 #create an alert dialog box
141 my (@alert_msg) = @_;
142 print "<SCRIPT LANGUAGE=JavaScript>\n";
143 print "alert('@alert_msg')";
147 #opens a specified url in a seprate window
149 my ($url, $name, $width, $height) = @_;
150 if (!$width) { $width = "300"; }
151 if (!$height) { $height = "200"; }
152 print "<SCRIPT LANGUAGE=JavaScript>\n";
153 print "$name = window.open('$url','$name','width=$width,height=$height');\n";
157 #sets a specified window to x y location
159 my ($name, $x, $y) = @_;
160 print "<SCRIPT LANGUAGE=JavaScript>\n";
161 print "$name.moveTo('$x','$y');\n";
165 #opens a blank terminal window for writing data to
167 my ($name, $width, $height) = @_;
168 if (!$width) { $width = "300"; }
169 if (!$height) { $height = "200"; }
170 print "<SCRIPT LANGUAGE=JavaScript>\n";
171 print "$name = window.open('','$name','width=$width,height=$height');\n";
172 print "$name.document.open('text/plain')\n";
176 #write data to a given window name
178 my ($name, @msg) = @_;
179 print "<SCRIPT LANGUAGE=JavaScript>\n";
180 print "$name.document.writeln('@msg');\n";
186 my ($text, $coloroff, $coloron) = @_;
187 print "<font color=\"$coloroff\" onMouseOver=\"this.style.color = '$coloron'\" onMouseOut=\"this.style.color = '$coloroff'\">$text</font>";
190 #Puts the needed JavaScript into your page for talkback reports
192 print "<SCRIPT LANGUAGE=JavaScript>\n";
193 print "var error_count = 0;\n";
195 print "function talkback(title,email,width,height,errmsg,url,line)\n";
197 print " var w = window.open(\"\", \"error\"+error_count++, \"resizable,status,width=\"+ width + \",height=\" + height + \"\");\n";
198 print " var d = w.document;\n";
199 print "d.write('<body bgcolor=\"#FFFFFF\" text=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">');\n";
201 print "d.write('<form action=\"/jtalkback.cgi\" method=\"post\">');\n";
203 print "d.write('<input type=\"hidden\" name=\"Subject\" value=\"' + title + '\">');\n";
204 print "d.write('<input type=\"hidden\" name=\"EmailTo\" value=\"' + email + '\">');\n";
206 print "d.write('<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">');\n";
207 print "d.write(' <tr $tb>');\n";
208 print "d.write(' <td colspan=\"2\">');\n";
209 print "d.write(' <div align=\"center\"><font size=\"4\" face=\"Verdana, Arial, Helvetica, sans-serif\">' + title + '</font></div>');\n";
210 print "d.write(' </td>');\n";
211 print "d.write(' </tr>');\n";
214 print "d.write(' <tr $cb>');\n";
215 print "d.write(' <td width=\"18%\">');\n";
216 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Name:</b>');\n";
217 print "d.write(' </font></div>');\n";
218 print "d.write(' </td>');\n";
219 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
220 print "d.write('<center><input size=\"42\" name=\"Name\"></center>');\n";
221 print "d.write(' </font></td>');\n";
222 print "d.write(' </tr>');\n";
224 print "d.write(' <tr $cb>');\n";
225 print "d.write(' <td width=\"18%\">');\n";
226 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>eMail:</b>');\n";
227 print "d.write(' </font></div>');\n";
228 print "d.write(' </td>');\n";
229 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
230 print "d.write('<center><input size=\"42\" name=\"eMail\"></center>');\n";
231 print "d.write(' </font></td>');\n";
232 print "d.write(' </tr>');\n";
235 print "d.write(' <tr $cb>');\n";
236 print "d.write(' <td width=\"18%\">');\n";
237 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>OS:</b>');\n";
238 print "d.write(' </font></div>');\n";
239 print "d.write(' </td>');\n";
240 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
241 print "d.write('<center><input size=\"42\" name=\"OS\"></center>');\n";
242 print "d.write(' </font></td>');\n";
243 print "d.write(' </tr>');\n";
245 print "d.write(' <tr $cb>');\n";
246 print "d.write(' <td width=\"18%\">');\n";
247 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Program:</b>');\n";
248 print "d.write(' </font></div>');\n";
249 print "d.write(' </td>');\n";
250 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
251 print "d.write('<center><input size=\"42\" name=\"Program\" value=\"' + url + '\"></center>');\n";
252 print "d.write(' </font></td>');\n";
253 print "d.write(' </tr>');\n";
256 print "d.write(' <tr $cb>');\n";
257 print "d.write(' <td width=\"18%\">');\n";
258 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Error:</b>');\n";
259 print "d.write(' </font></div>');\n";
260 print "d.write(' </td>');\n";
261 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
262 print "d.write('<center><input size=\"42\" name=\"Error\" value=\"' + errmsg + '\"></center>');\n";
263 print "d.write(' </font></td>');\n";
264 print "d.write(' </tr>');\n";
266 print "d.write(' <tr $cb>');\n";
267 print "d.write(' <td width=\"18%\">');\n";
268 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Line:</b>');\n";
269 print "d.write(' </font></div>');\n";
270 print "d.write(' </td>');\n";
271 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
272 print "d.write('<center><input size=\"42\" name=\"Line\" value=\"' + line + '\"></center>');\n";
273 print "d.write(' </font></td>');\n";
274 print "d.write(' </tr>');\n";
276 print "d.write(' <tr $cb>');\n";
277 print "d.write(' <td width=\"18%\">');\n";
278 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Browser:</b>');\n";
279 print "d.write(' </font></div>');\n";
280 print "d.write(' </td>');\n";
281 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
282 print "d.write('<center><input size=\"42\" name=\"Browser\" value=\"' + navigator.userAgent + '\"></center>');\n";
283 print "d.write(' </font></td>');\n";
284 print "d.write(' </tr>');\n";
286 print "d.write(' <tr $cb>');\n";
287 print "d.write(' <td width=\"18%\">');\n";
288 print "d.write(' <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Comment:</b>');\n";
289 print "d.write(' </font></div>');\n";
290 print "d.write(' </td>');\n";
291 print "d.write(' <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
292 print "d.write('<center><input size=\"42\" name=\"Comment\"></center>');\n";
293 print "d.write(' </font></td>');\n";
294 print "d.write(' </tr>');\n";
295 print "d.write(' </table>');\n";
297 print "d.write('<table border=\"0\" width=\"100%\"><tr><td>');\n";
298 print "d.write(' <input type=\"submit\" value=\"Report Error\"> ');\n";
299 print "d.write(' <input type=\"button\" value=\"Dismiss\" onclick=\"self.close();\">');\n";
300 print "d.write('</td></tr></table>');\n";
302 print "d.write('</form>');\n";
303 print "d.close();\n";
304 print "return true;\n";
310 #Launches the talkback form
312 my ($title, $email, $width, $height, $errmsg, $url, $line) = @_;
313 print "<SCRIPT LANGUAGE=JavaScript>\n";
314 print "talkback('$title','$email','$width','$height','$errmsg','$url','$line');\n";
318 #Allows you to manually luanch the talkback form
320 my ($title, $email, $width, $height, $text, $type) = @_;
322 print "<a href=\"#\" onclick=\"talkback('$title', '$email', '$width', '$height','$errmsg','$url','$line');\">$text</a>\n";
323 } elsif ($type eq 1) {
324 print "<form><input type=\"button\" value=\"$text\" onclick=\"talkback('$title', '$email', '$width', '$height','$errmsg','$url','$line');\"></form>\n";