File: javascript-lib.pl

package info (click to toggle)
webmin 1.180-3sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 16,900 kB
  • ctags: 2,152
  • sloc: perl: 55,792; java: 1,362; sh: 980; ansic: 221; makefile: 191
file content (328 lines) | stat: -rw-r--r-- 15,042 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
#javascript-lib.pl

#------------------------------#
#  JavaScript Library          #
#                              #
#  Written By:                 #
#    John Smith                #
#    <john.smith@msclinux.com> #
#                              #
#  MSC.Software                #
#  http://www.msclinux.com     #
#  http://www.mscsoftware.com  #
#------------------------------#

#----------------------------------------------------------------------------#
# Available Functions                                                        #
#    *jroll_over                                                             #
#      -This gives you simple mouse over functions on graphics               #
#       and includea a link.                                                 #
#       -Usage = &jroll_over("url", "name", "border", "imgoff", "imgon");    #
#    *jimg_preload                                                           #
#      -Preloads any number of given images.                                 #
#       -Usage = &jimg_preload("image/1.gif", "imgage/u.gif");               #
#    *jimg_update                                                            #
#      -Updates any image on your page that has a name                       #
#       -Usage = &jimg_update("imgname", "image/toload.gif");                #
#    *janim                                                                  #
#      -Builds an Animation with any given list of images                    #
#       -Usage = &janim("name", "speed", "list.gif", "of.gif", "images.jpg") #
#    *janim_start                                                            #
#      -Starts the animation you built with janim                            #
#       -Usage = &janim_start("name");                                       #
#    *janim_stop                                                             #
#      -Stops the animation you built with janim                             #
#       -Usage = &janim_stop("name");                                        #
#    *jalert                                                                 #
#      -Launches an alert dialog box with a custom message                   #
#       -Usage = &jalert("Your alert message!");                             #
#    *jwindow                                                                #
#      -Opens a window with a given URL                                      #
#       -Usage = &jwindow("url", "name", "width", "height");                 #
#    *jwindow_xy                                                             #
#      -Repostitions a named windows x and y                                 #
#       -Usage = &jwindow_xy("name", "x", "y");                              #
#    *jterminal                                                              #
#      -Creates an empty plain text window for writing data to               #
#       -Usage = &jterminal("name", "width", "height");                      #
#    *jwrite                                                                 #
#      -Write data to a created window or terminal                           #
#       -Usage = &jwrite("name", "data to write");                           #
#    *jtext                                                                  #
#      -Simple text rollovers between two colors                             #
#       -Usage = &jtext("text message", "red", "#F1F1F1");                   #
#    *jtalkback                                                              #
#      -Builds a JavaScript for a pop-up talkback/bug report window          #
#       -Usage = &jtalkback();                                               #
#    *jerror                                                                 #
#      -Launches the jtalkback window upon execution                         #
#       -Usage = &jerror("title", "email", "width", "height", \              #
#                        "errmsg", "url", "erroredonline");                  #
#    *jtalkback_link                                                         #
#      -Creates a button or text link to launch the jtalkback window         #
#       -Usage = &jtalkback_link("title", "email", "width", "height", \      #
#                                "text", "type");                            #
#----------------------------------------------------------------------------#

#creates a mouse over event with a link
sub jroll_over {
   my ($url, $name, $border, $img_off, $img_on) = @_;
   if (!$url) { $url = "javascript:"; }
   print "\n<a href=\"$url\"", " onmouseover=\"document.$name.src=\'$img_on\'\;\"", " onmouseout=\"document.$name.src=\'$img_off\'\;\">";
   print "<img src=\"$img_off\" name=\"$name\" border=\"0\" alt=\"$name\"></a>";
}

#preloads a list of images for smooth loading
sub jimg_preload {
   my (@img_array) = @_; 
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   foreach my $img (@img_array) {
      print "(new Image).src = \"$img\"\;\n";
   }
   print "</SCRIPT>\n";
}

#update any image on a page by its name
sub jimg_update {
   my ($name, $img) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "document.$name.src = '$img';\n";
   print "</SCRIPT>\n";
}

#build an animation (preloads images itself)
sub janim {
   my ($name, $speed, @anim_array) = @_;
   my $frames = @anim_array;
   my $count = 0;
   my $arraycount = 0;
   print "<img name='$name' src='@anim_array[0]' alt='$name'>\n";
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "var aniframes$name = new Array($frames);\n";
   foreach my $img (@anim_array) {
      print "aniframes$name\[$count] = new Image();\n";
      print "aniframes$name\[$count].src = '@anim_array[$arraycount]';\n";
      $arraycount++;
      $count++;
   }
   print "var frame$name = 0;\n";
   print "var timeout_id$name = null;\n";
   print "function animate$name() {\n";
   print "document.$name.src = aniframes$name\[frame$name].src;\n";
   print "frame$name = (frame$name + 1)%$frames;\n";
   print "timeout_id$name = setTimeout('animate$name()', $speed);\n";
   print "}\n";
   print "</SCRIPT>\n";
}

#start an animation
sub janim_start {
   my ($name) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "animate$name();\n";
   print "</SCRIPT>\n";
}

#stop an animation
sub janim_stop {
   my ($name, $image) = @_;
   if (!$image) { }
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "if (timeout_id$name) clearTimeout(timeout_id$name);\n";
   print "timeout_id$name=null;\n";
   if ($image) {
      print "document.$name.src = '$image';\n";
   }
   print "</SCRIPT>\n";
}

#create an alert dialog box
sub jalert {
   my (@alert_msg) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "alert('@alert_msg')";
   print "</SCRIPT>\n";
}

#opens a specified url in a seprate window
sub jwindow {
   my ($url, $name, $width, $height) = @_;
   if (!$width)  { $width  = "300"; }
   if (!$height) { $height = "200"; }
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "$name = window.open('$url','$name','width=$width,height=$height');\n";
   print "</SCRIPT>\n";
}

#sets a specified window to x y location
sub jwindow_xy {
   my ($name, $x, $y) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "$name.moveTo('$x','$y');\n";
   print "</SCRIPT>\n";
}

#opens a blank terminal window for writing data to
sub jterminal {
   my ($name, $width, $height) = @_;
   if (!$width)  { $width  = "300"; }
   if (!$height) { $height = "200"; }
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "$name = window.open('','$name','width=$width,height=$height');\n";
   print "$name.document.open('text/plain')\n";
   print "</SCRIPT>\n";
}

#write data to a given window name
sub jwrite {
   my ($name, @msg) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "$name.document.writeln('@msg');\n";
   print "</SCRIPT>\n";
}

#text rollover
sub jtext {
   my ($text, $coloroff, $coloron) = @_;
   print "<font color=\"$coloroff\" onMouseOver=\"this.style.color = '$coloron'\" onMouseOut=\"this.style.color = '$coloroff'\">$text</font>";
}

#Puts the needed JavaScript into your page for talkback reports
sub jtalkback {
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "var error_count = 0;\n";

   print "function talkback(title,email,width,height,errmsg,url,line)\n";
   print "{\n";
   print "   var w = window.open(\"\", \"error\"+error_count++, \"resizable,status,width=\"+ width + \",height=\" + height + \"\");\n";
   print "   var d = w.document;\n";
   print "d.write('<body bgcolor=\"#FFFFFF\" text=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">');\n";

   print "d.write('<form action=\"/jtalkback.cgi\" method=\"post\">');\n";

   print "d.write('<input type=\"hidden\" name=\"Subject\" value=\"' + title + '\">');\n";  
   print "d.write('<input type=\"hidden\" name=\"EmailTo\" value=\"' + email + '\">');\n";  

   print "d.write('<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">');\n";
   print "d.write('  <tr $tb>');\n";
   print "d.write('    <td colspan=\"2\">');\n";
   print "d.write('      <div align=\"center\"><font size=\"4\" face=\"Verdana, Arial, Helvetica, sans-serif\">' + title + '</font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('  </tr>');\n";


   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Name:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Name\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";

   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>eMail:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"eMail\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";


   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>OS:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"OS\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";

   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Program:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Program\" value=\"' + url + '\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";


   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Error:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Error\" value=\"' + errmsg + '\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";

   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Line:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Line\" value=\"' + line + '\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";

   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Browser:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Browser\" value=\"' + navigator.userAgent + '\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";

   print "d.write('  <tr $cb>');\n";
   print "d.write('    <td width=\"18%\">');\n";
   print "d.write('      <div align=\"right\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Comment:</b>');\n";
   print "d.write('        </font></div>');\n";
   print "d.write('    </td>');\n";
   print "d.write('    <td width=\"82%\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\">');\n";
   print "d.write('<center><input size=\"42\" name=\"Comment\"></center>');\n";
   print "d.write('      </font></td>');\n";
   print "d.write('  </tr>');\n";
   print "d.write('  </table>');\n";

   print "d.write('<table border=\"0\" width=\"100%\"><tr><td>');\n";
   print "d.write('      <input type=\"submit\" value=\"Report Error\">&nbsp;&nbsp;');\n";
   print "d.write('      <input type=\"button\" value=\"Dismiss\" onclick=\"self.close();\">');\n";
   print "d.write('</td></tr></table>');\n";

   print "d.write('</form>');\n";
   print "d.close();\n";
   print "return true;\n";
   print "}\n";
   print "</SCRIPT>\n";

}

#Launches the talkback form
sub jerror {
   my ($title, $email, $width, $height, $errmsg, $url, $line) = @_;
   print "<SCRIPT LANGUAGE=JavaScript>\n";
   print "talkback('$title','$email','$width','$height','$errmsg','$url','$line');\n";
   print "</SCRIPT>\n";
}

#Allows you to manually luanch the talkback form
sub jtalkback_link {
   my ($title, $email, $width, $height, $text, $type) = @_;
   if ($type eq 0) {
      print "<a href=\"#\" onclick=\"talkback('$title', '$email', '$width', '$height','$errmsg','$url','$line');\">$text</a>\n";
   } elsif ($type eq 1) {
      print "<form><input type=\"button\" value=\"$text\" onclick=\"talkback('$title', '$email', '$width', '$height','$errmsg','$url','$line');\"></form>\n";
   }
}

return 1;