FlashCheck 1.1

Скрипт предназначен для проверки версии флэша, поддерживаемой браузером и вставки вместо него картинки, если версия не подходит. Кроме того, версия с переключателем позволяет отключать/включать флэш на странице.
Скрипт в действии
Версия с переключателем в действии
История создания
Changelog + поддерживаемые браузеры

Как прикрутить:

В каждом месте страницы, где необходимо вывести флэш, вставляем такой код:
<script>insFl(5,'fl.swf','img.gif','http://',600,400)</script><noscript><a href="http://"><img src=img.gif border=0></a></noscript>
Значения, выделенные жирным шрифтом оранжевого цвета, наобходимо заменить:
5точная версия flash-ролика (обязательно без кавычек!);
'fl.swf' ссылка на flash-файл;
'img.gif' ссылка на альтернативную картику;
'http://' ссылка, которая выведется для картинки;
600 ширина картинки/ролика в пикселах;
400 высота картинки/ролика в пикселах.
В <head> документа вставляется такой код:
<script>
var ie=0
var f=0
var fz=0
var n=navigator
</script><script language="JScript">
if ((n.platform=='Win32')&&(n.userAgent.indexOf('Opera')== -1)){ie=1
for (var i=3;i<7;i++){if (eval('new ActiveXObject("ShockwaveFlash.ShockwaveFlash.'+i+'")')){f=i}}}
</script><script>
if ((ie==0)&&(n.plugins))
{for (var i=0;i<n.plugins.length;i++){if (n.plugins[i].name.indexOf('Flash')> -1)
{fz=parseInt(n.plugins[i].description.charAt(16))
if (fz>f) f=fz; }}}

function insFl(v,fl,gif,lnk,w,h)
{var d=' width='+w+' height='+h
if (f>=v) {
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+d+'><param name=movie value='+fl+'><embed src='+fl+' quality=high'+d+'></embed></object>')}
else {document.write('<a href='+lnk+'><img src='+gif+d+' border=0></a>')}}
</script>
Для варианта скрипта с переключателем в <head> вместо вышеприведённого кода вставляется такой код:
<script>
var fl=1
var ie=0
var f=0
var fz=0
var n=navigator
var d=document
var t=new Date
t.setTime(t.getTime()+11e10)
var e='expires='+t.toGMTString()
if (d.cookie.indexOf('fl=')<0){d.cookie='fl='+fl;d.cookie=e}
var dc=d.cookie
fl=parseInt(dc.charAt(dc.lastIndexOf('fl=')+3))

function fla(s)
{
d.cookie='fl='+s
d.cookie=e
location.reload()
}
</script><script language="JScript">
if ((n.platform=='Win32')&&(n.userAgent.indexOf('Opera')== -1)){ie=1
for (var i=3;i<7;i++){if (eval('new ActiveXObject("ShockwaveFlash.ShockwaveFlash.'+i+'")')){f=i}}}
</script><script>
if ((ie==0)&&(n.plugins))
{for (var i=0;i<n.plugins.length;i++){if (n.plugins[i].name.indexOf('Flash')> -1)
{fz=parseInt(n.plugins[i].description.charAt(16))
if (fz>f) f=fz; }}}

function insFl(v,fls,gif,lnk,w,h)
{var d=' width='+w+' height='+h
if ((fl!=0)&&(f>=v)) {
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+d+'><param name=movie value='+fls+'><embed src='+fl+' quality=high'+d+'></embed></object>')}
else {document.write('<a href='+lnk+'><img src='+gif+d+' border=0></a>')}}
</script>
Кроме того, в варианте с переключателем необходимо включить в документ код самого переключателя:
<script>d.write('<b>переключить на:</b> <a href="javascript:fla(1)">flash</a> | <a href="javascript:fla(0)">html</a>')</script>

© Svarga
    ######################################################
                       CHANGELOG ;)
    ######################################################

v.1.1
[+] Для браузеров, поддерживающих Netscape-плагины (Opera, Mozilla,
Netscape...), добавлена проверка наиболее новой версии плагина-- теперь
при нескольких установленных плагинах скрипт правильно определяет
поддерживаемую версию флэша-- ранее учитывалась версия лишь одного из
плагинов, причем не обязательно самого нового (заметил эту ошибку
благодаря Opera 7.10b3, подцепившей по нескольким моим Нетскейпам и
Операм плагины трёх версий-- 3, 5, 6, причем скрипт почему-то определял
поддерживаемую версию флэша по плагину третьей версии).

[+] Добавлен вариант скрипта с cookie-переключателем для
отключения/включения на странице флэша.

[~] Незначительные исправления.


v.1.01
[~] Подправил очепятку-- вместо if ((ie==0)&&(document.plugins))
нужно писАть if ((ie==0)&&(n.plugins)), т.к. в первозданном
виде в 3.х браузерах выводило картинку даже если они
поддерживают флэш (заметил и исправил на QNX в тамошнем
Voyager 3).


v. 1.0
First stable version ;D)


    ######################################################
            Рэзультаты тестирования скрипта проверки
               поддерживаемой браузером версии флэша.
               все указанные браузеры, кроме Voyager, 
                             виндозные)
    ######################################################

РАБОТАЕТ КАК НАДО В:

-- MSIE 3.x, 5.0-6.0 (в 4-м-- точно не знаю,-- как поставлю-- напишу)
-- Netscape 3.x-7.x
-- Mozilla 1.x
-- Opera 2.x-7.x
-- 1x Net Browser 1.0
-- Lynx 2.8.1 ;) пишет красивое слово "image" там, где надо ;)
-- AMSD Ariadna 1.3
-- QNX Voyager 2.03b
-- I-View 2.38
-- Arachne 1.7 for DOS :)
-- Amaya 7.2 by w3.org :)


ГЛЮЧИТ В:

1. Большинстве старых не-JavaScript браузеров:
   - MSIE 1.x-2.x
   - Netscape 1.x
   - Mosaic (all)
   - Chello 1.0 (1994 года выпуска)
   и мн. др.
  (отображает содержимое тэгов "
   но при этом, если сам флэш/картинка вставляется в ячейку
   таблицы равную ему/ей по размеру-- в Нетскейпах и Операх
   будет ломаться таблица)

2. Netscape 2
   такое описать невозможно-- бесподобно ;)

3. Hotjava 3.0
   вообще ничего не выводится