]> git.sesse.net Git - vlc/blob - projects/mozilla/test.html
macosx: fixed menubar appearance in fullscreen mode by partially reverting [46c93c9cc...
[vlc] / projects / mozilla / test.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
2 <HTML>\r
3 <TITLE>VLC Plugin test page</TITLE>\r
4 <STYLE>\r
5   .inputTrackerInput {\r
6         height:20;\r
7         width:30;\r
8         font-family : Arial, Helvetica, sans-serif;\r
9         font-size : 12px;\r
10   }\r
11 </STYLE>\r
12 \r
13 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>\r
14 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>\r
15 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>\r
16 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>\r
17 \r
18 <SCRIPT language="JavaScript"><!--\r
19 function init()\r
20 {\r
21     inputTracker = new Bs_Slider();\r
22     if (inputTracker)\r
23     {\r
24         inputTracker.attachOnChange(onInputTrackerChange);\r
25         inputTracker.attachOnSlideStart(onInputTrackerScrollStart);\r
26         inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);\r
27         inputTracker.width         = 530 ;\r
28         inputTracker.height        = 15;\r
29         inputTracker.minVal        = 0;\r
30         inputTracker.maxVal        = 1.0;\r
31         inputTracker.valueDefault  = 0;\r
32         inputTracker.valueInterval = 1/530;\r
33         inputTracker.setDisabled(true);\r
34         inputTracker.imgDir   = 'blueshoes-4.5/javascript/components/slider/img/';\r
35         inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');\r
36         inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);\r
37         inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);\r
38         inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);\r
39         inputTracker.useInputField = 0;\r
40         inputTracker.draw('inputTrackerDiv');\r
41     }\r
42 \r
43     if( navigator.appName.indexOf("Microsoft Internet")==-1 )\r
44     {\r
45         onVLCPluginReady()\r
46     }\r
47     else if( document.readyState == 'complete' )\r
48     {\r
49         onVLCPluginReady();\r
50     }\r
51     else\r
52     {\r
53         /* Explorer loads plugins asynchronously */\r
54         document.onreadystatechange=function()\r
55         {\r
56             if( document.readyState == 'complete' )\r
57             {\r
58                 onVLCPluginReady();\r
59             }\r
60         }\r
61     }\r
62 }\r
63 \r
64 function getVLC(name)\r
65 {\r
66     if (window.document[name])\r
67     {\r
68         return window.document[name];\r
69     }\r
70     if (navigator.appName.indexOf("Microsoft Internet")==-1)\r
71     {\r
72         if (document.embeds && document.embeds[name])\r
73             return document.embeds[name];\r
74     }\r
75     else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)\r
76     {\r
77         return document.getElementById(name);\r
78     }\r
79 }\r
80 \r
81 function onVLCPluginReady()\r
82 {\r
83     updateVolume(0);\r
84 }\r
85 \r
86 //--></SCRIPT>\r
87 \r
88 <BODY onLoad="init();">\r
89 <TABLE>\r
90 <TR><TD colspan="2">\r
91 MRL:\r
92 <INPUT size="90" id="targetTextField" value="">\r
93 <INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">\r
94 <INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);">\r
95 </TD></TR>\r
96 <TR><TD align="center" colspan="2">\r
97 <!--\r
98 Insert VideoLAN.VLCPlugin.2\r
99 -->\r
100 <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"\r
101         width="640"\r
102         height="480"\r
103         id="vlc"\r
104         events="True">\r
105 <param name="MRL" value="" />\r
106 <param name="ShowDisplay" value="True" />\r
107 <param name="AutoLoop" value="False" />\r
108 <param name="AutoPlay" value="False" />\r
109 <param name="Volume" value="50" />\r
110 <param name="toolbar" value="true" />\r
111 <param name="StartTime" value="0" />\r
112 <EMBED pluginspage="http://www.videolan.org"\r
113        type="application/x-vlc-plugin"\r
114        version="VideoLAN.VLCPlugin.2"\r
115        width="640"\r
116        height="480"\r
117        toolbar="true"\r
118        name="vlc">\r
119 </EMBED>\r
120 </OBJECT>\r
121 </TD></TR>\r
122 <TR><TD colspan="2">\r
123 <TABLE><TR>\r
124 <TD valign="top" width="550">\r
125 <!--\r
126 Insert Slider widget\r
127 -->\r
128 <DIV id="inputTrackerDiv"</DIV>\r
129 </TD><TD width="15%">\r
130 <DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>\r
131 <DIV id="state" style="text-align:center">Stopped...</DIV>\r
132 </TD></TR></TABLE>\r
133 </TD></TR>\r
134 <TR><TD>\r
135 <INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>\r
136 <INPUT type=button value="Stop" onClick='doStop();'>\r
137 &nbsp;\r
138 <INPUT type=button value=" << " onClick='doPlaySlower();'>\r
139 <INPUT type=button value="Reverse" onClick='doReverse();'>\r
140 <INPUT type=button value=" >> " onClick='doPlayFaster();'>\r
141 &nbsp;\r
142 <INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'>\r
143 <INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'>\r
144 <INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'>\r
145 </TD><TD align="right">\r
146 <SPAN style="text-align:center">Volume:</SPAN>\r
147 <INPUT type=button value=" - " onClick='updateVolume(-10)'>\r
148 <SPAN id="volumeTextField" style="text-align:center">--</SPAN>\r
149 <INPUT type=button value=" + " onClick='updateVolume(+10)'>\r
150 <INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'>\r
151 </TD>\r
152 </TR>\r
153 <TR><TD>Playlist:\r
154 <INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'>\r
155 <INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'>\r
156 <INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'>\r
157     Aspect Ratio:\r
158     <SELECT readonly onChange='doAspectRatio(this.value)'>\r
159       <OPTION value="default">Default</OPTION>\r
160       <OPTION value="1:1">1:1</OPTION>\r
161       <OPTION value="4:3">4:3</OPTION>\r
162       <OPTION value="16:9">16:9</OPTION>\r
163       <OPTION value="221:100">221:100</OPTION>\r
164       <OPTION value="5:4">5:4</OPTION>\r
165     </SELECT>\r
166 </TD><TD align="right">\r
167 <INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>\r
168 <INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">\r
169 </TD>\r
170 </TR>\r
171 <TR><TD>Audio Channel:\r
172   <SELECT readonly onClick='doAudioChannel(this.value);'>\r
173     <OPTION value=1>Stereo</OPTION>\r
174     <OPTION value=2>Reverse Stereo</OPTION>\r
175     <OPTION value=3>Left</OPTION>\r
176     <OPTION value=4>Right</OPTION>\r
177     <OPTION value=5>Dolby</OPTION>\r
178   </SELECT>\r
179 </TD>\r
180 <TD>\r
181 <INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'>\r
182 </TD>\r
183 </TR>\r
184 <TR><TD> Audio Track:\r
185 <INPUT type=button value=" + " onClick='doAudioTrack(1);'>\r
186 <SPAN id="trackTextField" style="text-align:center">--</SPAN>\r
187 <INPUT type=button value=" - " onClick='doAudioTrack(-1);'>\r
188 </TD>\r
189 <TD>\r
190 <INPUT type=button value="set slider" onClick='doSetSlider();'>\r
191 <INPUT type=button value="get position" onClick='doGetPosition();'>\r
192 </TD>\r
193 </TR>\r
194 <TR>\r
195 <TD>Video Subtitle:\r
196     <INPUT type=button value=" + " onClick='doSubtitle(1);'>\r
197     <SPAN id="spuTextField" style="text-align:center">--</SPAN>\r
198     <INPUT type=button value=" - " onClick='doSubtitle(-1);'>\r
199 </TD>\r
200 </TR>\r
201 <TR>\r
202 <TD>\r
203     <INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'>\r
204     Teletext page:\r
205     <INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'>\r
206 </TD>\r
207 </TR>\r
208 </TABLE>\r
209 <SCRIPT language="javascript">\r
210 <!--\r
211 \r
212 var rate = 0;\r
213 var prevState = 0;\r
214 var monitorTimerId = 0;\r
215 var inputTracker;\r
216 var inputTrackerScrolling = false;\r
217 var inputTrackerIgnoreChange = false;\r
218 var telxState = false;\r
219 \r
220 function doSetSlider()\r
221 {\r
222     var vlc = getVLC("vlc");\r
223 \r
224     // set slider to new position\r
225     if( vlc )\r
226         vlc.input.time = (vlc.input.length/2);\r
227 }\r
228 \r
229 function doGetPosition()\r
230 {\r
231     var vlc = getVLC("vlc");\r
232 \r
233     // set slider to new position\r
234     if (vlc)\r
235         alert( "position is " + vlc.input.time);\r
236 }\r
237 \r
238 function doReverse(rate)\r
239 {\r
240     var vlc = getVLC("vlc");\r
241     if( vlc )\r
242         vlc.input.rate = -1.0 * vlc.input.rate;\r
243 }\r
244 \r
245 function doAudioChannel(value)\r
246 {\r
247     var vlc = getVLC("vlc");\r
248     if( vlc )\r
249         vlc.audio.channel = parseInt(value);\r
250 }\r
251 \r
252 function doAudioTrack(value)\r
253 {\r
254     var vlc = getVLC("vlc");\r
255     if( vlc )\r
256     {\r
257         vlc.audio.track = vlc.audio.track + value;\r
258         document.getElementById("trackTextField").innerHTML = vlc.audio.track;\r
259     }\r
260 }\r
261 \r
262 function doAspectRatio(value)\r
263 {\r
264     var vlc = getVLC("vlc");\r
265     if( vlc )\r
266         vlc.video.aspectRatio = value;\r
267 }\r
268 \r
269 function doSubtitle(value)\r
270 {\r
271     var vlc = getVLC("vlc");\r
272     if( vlc )\r
273     {\r
274         vlc.video.subtitle = vlc.video.subtitle + value;\r
275         document.getElementById("spuTextField").innerHTML = vlc.video.subtitle;\r
276     }\r
277 }\r
278 \r
279 function doTelxPage(value)\r
280 {\r
281     var vlc = getVLC("vlc");\r
282     if( vlc )\r
283         vlc.video.teletext = parseInt(value);\r
284 }\r
285 \r
286 function doToggleTeletext()\r
287 {\r
288     var vlc = getVLC("vlc");\r
289 \r
290     if( vlc )\r
291     {\r
292         vlc.video.toggleTeletext();\r
293         if (telxState)\r
294         {\r
295             document.getElementById("telx").innerHTML = "Teletext on";\r
296             telxState = true;\r
297         }\r
298         else\r
299         {\r
300             document.getElementById("telx").innerHTML = "Teletext off";\r
301             telxState = false;\r
302         }\r
303     }\r
304 }\r
305 \r
306 function doItemCount()\r
307 {\r
308     var vlc = getVLC("vlc");\r
309     if( vlc )\r
310     {\r
311         var count = vlc.playlist.items.count;\r
312         document.getElementById("itemCount").value = " Items " + count + " ";\r
313     }\r
314 }\r
315 \r
316 function doRemoveItem(item)\r
317 {\r
318     var vlc = getVLC("vlc");\r
319     if( vlc )\r
320         vlc.playlist.items.remove(item);\r
321 }\r
322 \r
323 function doPlaylistClearAll()\r
324 {\r
325     var vlc = getVLC("vlc");\r
326     if( vlc )\r
327     {\r
328         vlc.playlist.items.clear();\r
329         while( vlc.playlist.items.count > 0)\r
330         {\r
331             // wait till playlist empties.\r
332         }\r
333         doItemCount();\r
334     }\r
335 }\r
336 \r
337 function updateVolume(deltaVol)\r
338 {\r
339     var vlc = getVLC("vlc");\r
340     if( vlc )\r
341     {\r
342         vlc.audio.volume += deltaVol;\r
343         document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";\r
344     }\r
345 }\r
346 \r
347 function formatTime(timeVal)\r
348 {\r
349     if( typeof timeVal != 'number' )\r
350         return "-:--:--";\r
351 \r
352     var timeHour = Math.round(timeVal / 1000);\r
353     var timeSec = timeHour % 60;\r
354     if( timeSec < 10 )\r
355         timeSec = '0'+timeSec;\r
356     timeHour = (timeHour - timeSec)/60;\r
357     var timeMin = timeHour % 60;\r
358     if( timeMin < 10 )\r
359         timeMin = '0'+timeMin;\r
360     timeHour = (timeHour - timeMin)/60;\r
361     if( timeHour > 0 )\r
362         return timeHour+":"+timeMin+":"+timeSec;\r
363     else\r
364         return timeMin+":"+timeSec;\r
365 }\r
366 \r
367 function doState()\r
368 {\r
369     var vlc = getVLC("vlc");\r
370     var newState = 0;\r
371 \r
372     if( vlc )\r
373         newState = vlc.input.state;\r
374 \r
375     if( newState == 0 )\r
376     {\r
377         // current media has stopped\r
378         onEnd();\r
379     }\r
380     else if( newState == 1 )\r
381     {\r
382         // current media is openning/connecting\r
383         onOpen();\r
384     }\r
385     else if( newState == 2 )\r
386     {\r
387         // current media is buffering data\r
388         onBuffer();\r
389     }\r
390     else if( newState == 3 )\r
391     {\r
392         // current media is now playing\r
393         onPlay();\r
394     }\r
395     else if( newState == 4 )\r
396     {\r
397         // current media is now paused\r
398         onPause();\r
399     }\r
400     else if( newState == 5 )\r
401     {\r
402         // current media has stopped\r
403         onStop();\r
404     }\r
405     else if( newState == 6 )\r
406     {\r
407         // current media has ended\r
408         onEnd();\r
409     }\r
410     else if( newState == 7 )\r
411     {\r
412         // current media encountered error\r
413         onError();\r
414     }\r
415 }\r
416 \r
417 function monitor()\r
418 {\r
419     var vlc = getVLC("vlc");\r
420     var newState = 0;\r
421 \r
422     if( vlc )\r
423     {\r
424         newState = vlc.input.state;\r
425     }\r
426 \r
427     if( prevState != newState )\r
428     {\r
429         if( newState == 0 )\r
430         {\r
431             // current media has stopped\r
432             onEnd();\r
433         }\r
434         else if( newState == 1 )\r
435         {\r
436             // current media is openning/connecting\r
437             onOpen();\r
438         }\r
439         else if( newState == 2 )\r
440         {\r
441             // current media is buffering data\r
442             onBuffer();\r
443         }\r
444         else if( newState == 3 )\r
445         {\r
446             // current media is now playing\r
447             onPlay();\r
448         }\r
449         else if( newState == 4 )\r
450         {\r
451             // current media is now paused\r
452             onPause();\r
453         }\r
454         else if( newState == 5 )\r
455         {\r
456             // current media has stopped\r
457                 onStop();\r
458         }\r
459         else if( newState == 6 )\r
460         {\r
461             // current media has ended\r
462             onEnd();\r
463         }\r
464         else if( newState == 7 )\r
465         {\r
466             // current media encountered error\r
467             onError();\r
468         }\r
469         prevState = newState;\r
470     }\r
471     else if( newState == 3 )\r
472     {\r
473         // current media is playing\r
474         onPlaying();\r
475     }\r
476     if( monitorTimerId == 0 )\r
477     {\r
478         monitorTimerId = setInterval("monitor()", 1000);\r
479     }\r
480 };\r
481 \r
482 /* actions */\r
483 \r
484 function doGo(targetURL)\r
485 {\r
486     var vlc = getVLC("vlc");\r
487 \r
488     if( vlc )\r
489     {\r
490         vlc.playlist.items.clear();\r
491         while( vlc.playlist.items.count > 0 )\r
492         {\r
493             // clear() may return before the playlist has actually been cleared\r
494             // just wait for it to finish its job\r
495         }\r
496         var options = new Array(":rtsp-tcp");\r
497         var itemId = vlc.playlist.add(targetURL,"",options);\r
498         if( itemId != -1 )\r
499         {\r
500             // play MRL\r
501             vlc.playlist.playItem(itemId);\r
502             if( monitorTimerId == 0 )\r
503             {\r
504                 monitor();\r
505             }\r
506         }\r
507         else\r
508         {\r
509             alert("cannot play at the moment !");\r
510         }\r
511         doItemCount();\r
512     }\r
513 }\r
514 \r
515 function doAdd(targetURL)\r
516 {\r
517     var vlc = getVLC("vlc");\r
518     var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");\r
519     if( vlc )\r
520     {\r
521         vlc.playlist.add(targetURL, "", options);\r
522         doItemCount();\r
523     }\r
524 }\r
525 \r
526 function doPlayOrPause()\r
527 {\r
528     var vlc = getVLC("vlc");\r
529     if( vlc )\r
530     {\r
531         if( vlc.playlist.isPlaying )\r
532         {\r
533             vlc.playlist.togglePause();\r
534             monitor();\r
535         }\r
536         else if( vlc.playlist.items.count > 0 )\r
537         {\r
538             vlc.playlist.play();\r
539             monitor();\r
540         }\r
541         else\r
542         {\r
543             alert('nothing to play !');\r
544         }\r
545     }\r
546 }\r
547 \r
548 function doStop()\r
549 {\r
550     var vlc = getVLC("vlc");\r
551 \r
552     if( vlc )\r
553         vlc.playlist.stop();\r
554 \r
555     if( monitorTimerId != 0 )\r
556     {\r
557         clearInterval(monitorTimerId);\r
558         monitorTimerId = 0;\r
559     }\r
560     onStop();\r
561 }\r
562 \r
563 function doPlaySlower()\r
564 {\r
565     var vlc = getVLC("vlc");\r
566     if( vlc )\r
567         vlc.input.rate = vlc.input.rate / 2;\r
568 }\r
569 \r
570 function doPlayFaster()\r
571 {\r
572     var vlc = getVLC("vlc");\r
573     if( vlc )\r
574         vlc.input.rate = vlc.input.rate * 2;\r
575 }\r
576 \r
577 /* events */\r
578 \r
579 function onOpen()\r
580 {\r
581     document.getElementById("state").innerHTML = "Opening...";\r
582     document.getElementById("PlayOrPause").value = "Pause";\r
583 }\r
584 \r
585 function onBuffer()\r
586 {\r
587     document.getElementById("state").innerHTML = "Buffering...";\r
588     document.getElementById("PlayOrPause").value = "Pause";\r
589 }\r
590 \r
591 function onPlay()\r
592 {\r
593     document.getElementById("state").innerHTML = "Playing...";\r
594     document.getElementById("PlayOrPause").value = "Pause";\r
595     onPlaying();\r
596 }\r
597 \r
598 function onEnd()\r
599 {\r
600     document.getElementById("state").innerHTML = "End...";\r
601 }\r
602 \r
603 var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "((  Live  ))");\r
604 var liveFeedRoll = 0;\r
605 \r
606 function onPlaying()\r
607 {\r
608     if( !inputTrackerScrolling )\r
609     {\r
610         var vlc = getVLC("vlc");\r
611         var info = document.getElementById("info");\r
612         if( vlc )\r
613         {\r
614             var mediaLen = vlc.input.length;\r
615             inputTrackerIgnoreChange = true;\r
616             if( mediaLen > 0 )\r
617             {\r
618                 // seekable media\r
619                 if( inputTracker )\r
620                 {\r
621                     if( inputTracker.maxVal == 1.0 )\r
622                     {\r
623                         inputTracker.setDisabled(false);\r
624                         inputTracker.maxVal = 1.0;\r
625                     }\r
626                     inputTracker.setValue(vlc.input.position);\r
627                 }\r
628                 info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);\r
629             }\r
630             else\r
631             {\r
632                 // non-seekable "live" media\r
633                 if( inputTracker )\r
634                 {\r
635                     if( inputTracker.maxVal != 0.0 )\r
636                     {\r
637                         inputTracker.maxVal = 0.0;\r
638                         inputTracker.setValue(0.0);\r
639                         inputTracker.setDisabled(true);\r
640                     }\r
641                 }\r
642                 liveFeedRoll = liveFeedRoll & 3;\r
643                 info.innerHTML = liveFeedText[liveFeedRoll++];\r
644             }\r
645             inputTrackerIgnoreChange  = false;\r
646         }\r
647     }\r
648 }\r
649 \r
650 function onPause()\r
651 {\r
652     document.getElementById("state").innerHTML = "Paused...";\r
653     document.getElementById("PlayOrPause").value = " Play ";\r
654 }\r
655 \r
656 function onStop()\r
657 {\r
658     var vlc = getVLC("vlc");\r
659 \r
660     if( inputTracker )\r
661     {\r
662         if( !inputTracker.disabled )\r
663         {\r
664             inputTracker.setValue(inputTracker.minVal);\r
665             inputTracker.setDisabled(true);\r
666         }\r
667     }\r
668 \r
669     document.getElementById("info").innerHTML = "-:--:--/-:--:--";\r
670     document.getElementById("state").innerHTML = "Stopped...";\r
671     document.getElementById("PlayOrPause").value = " Play ";\r
672 }\r
673 \r
674 function onError()\r
675 {\r
676     var vlc = getVLC("vlc");\r
677 \r
678     document.getElementById("state").innerHTML = "Error...";\r
679 }\r
680 \r
681 function onInputTrackerScrollStart()\r
682 {\r
683     inputTrackerScrolling = true;\r
684 }\r
685 \r
686 function onInputTrackerScrollEnd(inputTracker, value, pos)\r
687 {\r
688     inputTrackerScrolling = false;\r
689 }\r
690 \r
691 function onInputTrackerChange(inputTracker, value, pos)\r
692 {\r
693     if( !inputTrackerIgnoreChange )\r
694     {\r
695         var vlc = getVLC("vlc");\r
696         if( vlc )\r
697         {\r
698             if( (vlc.input.state == 3) && (vlc.input.position != value) )\r
699             {\r
700                 var info = document.getElementById("info");\r
701                 vlc.input.position = value;\r
702                 info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);\r
703             }\r
704         }\r
705     }\r
706 }\r
707 \r
708 //-->\r
709 </SCRIPT>\r
710 </BODY>\r
711 </HTML>\r