/* -------- Версия 2.5 -------- -------- Вызыв файла -------- Константы, пустышки и т.п. isNS - Нетскейп. ver4 - Версия >= 4. isIE4 - Эксплорер >= 4. ok - Можно подменять картинки. VoidTrue() - ничего не делает и возвращает True. :) VoidFalse() Pause(mSec) - Задержка 'mSec' миллисикунд. GetTop(cookie, getTo) - Переход на "getTo"(URL), с записью в кукиес "cookie" URL себя. Refresh() - Перезагрузка страницы -------- Подмена и увеличилка картинок SetImg(img,ref,txt) - Заменяет картинку 'img' на 'ref' и в статусе высвечивает 'txt'. SetImg2(img1,ref1,img2,ref2,txt) - Заменяет 2 картинки и в статусе высвечивает 'txt'. SetImgStyle(theStyle) - Устанавливает стиль картинке (только IE4). пример: варианнты: alpha blendTrans blur chroma dropShadow flipH flipV glow gray invert light mask redirect revealTrans shadow wave xray LoadImgs(ref) - Загружет картинки в кеш. примеры: Viewer(img,text,width,height) - Запускает внешний просматриватель картинок. -------- Окошки WinOpen(url,name,params) - открывает новое окошко и возвращает ук. на него если url или name пустые делает по умолчанию params либо стандартный либо 'full' - обычный но в плдный экран, 'fullmax' - еще и без прокруток меню и т.п.; WinFav() - окно с Фаворитками WinHelp(keywords) - окно с Хелпом по ключевомым словам WinMail(rcpt) - окно с формой отправки почты WinReg() - окно с регистрацией WinLect(num) - окно с лекцией NUM. Вызов: WinLectE(num) - окно с редактированием лекции NUM -------- Прокрутка ScrollIt(ScrollTimeOut, ScrollLength) - Прокрутка и позиционирование текущего окна. ScrollTimeOut - Время между шагами прокрутки. ScrollLength - Общая длинна прокручиваемого фрагмента. ScrollIt() - Без параметров останавливает прокрутку. ScrollIt(0) - На самый верх. ScrollIt(1000) - На самый вниз. Примеры: StopIT goTop -------- Кукиесы setCookie(name, value, expires) - Записывает кукиес. name Название value Значение expires Устаревание в минутах ("-1" - 2 года) getCookie(name) - Возвращает кукиес. Примеры: url = getCookie('MRurl'); if ( url == '' ) { setCookie('MRurl','.',60*24*7); } else if ( (url != '.') && (url != null) ) { setCookie('MRurl','.',60*24*7); // location.replace(url); window.location.href = url; } -------- Формы SelectedOptionIndex(list,frm) - Номер выбранного из списка формы. SelectedOptionText(list,frm) - Текст из списка SelectedOptionValue(list,frm) - Значение из списка формат1: list - указатель на список, например 'onChange="alert(SelectedOptionText(this)"' примечание: 'frm' должен отсутствовать! формат2: list,frm - имя списка и имя формы (текст), например 'onMouseOver="alert(SelectedOptionText('SomeList','SomeForm')"' deleteAnItem(list,itemNo) - Удалить из 'list' (указатель), пункт с номером 'itemNo' (число). -------- Фаворитки AddFav(Lang) - добавляет фаворитку (Lang 1=Русс, 2=Англ, 0=без сообщения(по умодчанию)) ShowFav(instcode,aftercode) - показывает список фавориток (...+aftercode) ClearFav(Lang) - очищает список фавориток. (Lang 1=Русс(по умодчанию), 2=Англ) -------- Плавующая подсказка Вызов: определить текстовую строку hint (по любому событию) Убрать с задержкой: назначить минус hint='-'; мгновенно: Chint(); Вы можете назначать сл. параметры для каждой страницы: HintRefresh - скрость регенерации подсказки (по умолчанию = 2000) htmlPre - HTML код до текста подсказки (по умолчению табличка) htmlPost - HTML код после текста подсказки ( -"- ) Пример: Подсказка исчезнет через HintRefresh секунд Исчезнет мгновенно */ function VoidTrue() { return true; } function VoidFalse() { return false; } window.onerror = VoidTrue; isNS = (navigator.appName == "Netscape"); isIE4 = (navigator.appName == "Microsoft Internet Explorer") && parseInt(navigator.appVersion) >= 4; ver4 = parseInt(navigator.appVersion) >= 4; ok = document.images != null; function Refresh() { location.reload() // window.location.href=window.location.href; // location.href=location.href; // window.Refresh(); } function Pause(mSec) { clock = new Date(); justMinute = clock.getTime(); while (true) { just = new Date(); if (just.getTime() - justMinute > mSec) break; } } /* --------------------- set images */ function SetImg(img,ref,txt) { if (ok) document.images[img].src = ref; if (txt != null) window.status = ' ' + txt; return ok; } function SetImg2(img1,ref1,img2,ref2,txt) { if (ok) { document.images[img1].src = ref1; document.images[img2].src = ref2; } if (txt != null) window.status = ' ' + txt; return ok; } function SetImgStyle(theStyle) { if (isIE4 && event.srcElement.tagName=="IMG") event.srcElement.style.filter = theStyle; } function LoadImgs(ref) { ref = ref+','; for ( i=1; true; i++ ) { t = ref.indexOf(','); eval('var t'+i+' = new Image(); t'+i+'.src = "'+ref.substring(0,t)+'"'); ref = ref.substring(t+1,ref.length); if ( ref.length < 2 ) break; } } function Viewer(i,t,w,h) { if ( w == null || h == null ) if (isIE4) { var im = new Image(); im.src = i; w = im.width; h = im.height; } else return false; if ( t != null ) h = h + '&t=' + t; WinOpen('http://'+self.location.host+'/inc/viewer.asp?i='+i+'&w='+w+'&h='+h,'VIEWER','fullmax'); return false; } /* --------------------- Windows */ function WinOpen(url,name,params) { var wp = null; if (typeof url == 'undefined') url = 'about:blank'; if (typeof name == 'undefined') name = 'window'; if (typeof params != 'undefined') { if (params == 'full') params = 'width='+screen.width+',height='+screen.height+',top=0,left=0'; if (params == 'fullmax') params = 'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width='+screen.width+',height='+screen.height+',top=0,left=0'; } wp = window.open(url,name,params); wp.opener = window; wp.focus(); return wp; } function WinFav() { WinOpen('http://www.museum.ru/fav.asp','Fav','menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=350,height=400'); return false; } function WinHelp(keywords) { if (typeof keywords != 'undefined') WinOpen('http://www.museum.ru/edu/hint.asp?KeyWord='+keywords,'Help','menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=350,height=400'); return false; } function WinMail(rcpt) { if (typeof rcpt != 'undefined') rcpt = '?to='+rcpt; else rcpt = ''; WinOpen('http://www.museum.ru/mail.asp'+rcpt,'Mail','menubar=no,location=no,resizable=yes,scrollbars=no,status=no,width=420,height=400'); return false; } function WinReg() { /* WinOpen('http://www.museum.ru/reg.asp','reg','menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=680,heght=600');*/ WinOpen('http://www.museum.ru/reg.asp','_top','menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=680,heght=600'); return false; } function WinLect(num) { WinOpen('http://www.museum.ru/edu/view.asp?LECT='+num,'Lect'+num,'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=680,height=600'); return false; } function WinLectE(num) { WinOpen('edit.asp?LECT='+num,'Lect'+num,'menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width=680,height=600'); return false; } /* --------------------- scrool */ var ScrollY = 0; var ScrollTimeOut = 0; function ScrollIt(delay, len) { if (delay == null) { clearTimeout(ScrollTimeOut); return; } if (len == null) { window.scroll(delay); return; } if (window.scrollBy) window.scrollBy(0,1); ScrollY++; if (ScrollY >= len) { ScrollY = 1; window.scroll(0, 0); } eval("ScrollTimeOut = setTimeout('ScrollIt('+delay+','+len+')', delay)"); } /* --------------------- cookies */ function setCookie(name, value, expires) { var today = new Date(); var expire = new Date(); if (expires == null) { document.cookie = name + "=" + escape(value); } else { if (expires == -1) expires = 60*24*365*2; expire.setTime(today.getTime() + 1000*60*expires); document.cookie = name + "=" + escape(value) + "; expires=" + expire.toGMTString() + "; path=/" } } function getCookie(name) { var search = name + "="; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search); if (offset != -1) { offset += search.length; end = document.cookie.indexOf(";", offset); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(offset, end)); } else return null; } } /* --------------------- Goto the getTo page and save the cooke */ function GetTop(cookie, getTo) { if (top == self) { s = top.window.location.href; for(i=s.length;0 0 && len > itemNo) { list.options[itemNo] = null; len--; if (len > 0) { if (len == itemNo) list.options[itemNo-1].selected=true; else list.options[itemNo].selected=true; } } else return false; return true; } /* --------------------- Favorites */ function AddFav(Lang) { FavName = ''; if (isIE4) FavName = document.selection.createRange().text; if (FavName == '') FavName = document.title; for (i=FavName.length; i>0; i--) { s = FavName.substring(i-1,i); if ( s!=null && s!=' ' && escape(s)!='%A0' && escape(s)!='%0A' && escape(s)!='%0D') break; } FavName = FavName.substring(0,i); if (typeof Lang == 'undefined') Lang = 1; if (Lang==2) FavName = prompt('Enter the name of this page:',FavName); else FavName = prompt('Введите название вашего линка:',FavName); if (FavName != '' && FavName != null) { FavCnt = getCookie('FavCnt')*1; if (FavCnt == null || FavCnt == '') FavCnt = 1; else FavCnt++; setCookie('FavCnt', FavCnt, -1); setCookie('Fav'+FavCnt, window.location+'">'+FavName, -1); if (Lang==2) alert('Added:\n\t name: \t '+FavName+'\n\t url: \t\t '+window.location+'\n\t total: \t '+FavCnt); else alert('Добавлено:\n\t название: \t '+FavName+'\n\t адрес: \t\t '+window.location+'\n\t всего ссылок: \t '+FavCnt); Refresh(); } } function WriteChangedFav(n) { eval('sU = document.FAV.u'+n+'.value;'); eval('sN = document.FAV.n'+n+'.value;'); setCookie('Fav'+n, sU+'">'+sN, -1); } function ShowFav(instcode,aftercode) { FavCnt = getCookie('FavCnt')*1; if (FavCnt == null || FavCnt == '' || FavCnt < 1) return; chkfav = getCookie('checkFav') == 'true'; if (typeof instcode == 'undefined') instcode = ''; if (typeof aftercode == 'undefined') aftercode = '
'; if (chkfav) document.writeln('
'); s = (isNS)? 23:40; for (i = 1; i <= FavCnt; i++) { fav = getCookie('Fav'+i); if (fav != '' && fav != 'null' && fav != null) { if (chkfav) { document.writeln('
'+i+''); document.writeln(''); document.writeln('
'); } else document.writeln('
'); setCookie('checkFav',null, -1); } } function EditFav() { setCookie('checkFav','true', 10); Refresh(); } function KillAllFav(Lang) { if(Lang==2 && confirm('Clear list of favorites?')) { setCookie('FavCnt', 0, -1); Refresh(); } else if(confirm('Очистить список отобранных ссылок?')) { setCookie('FavCnt', 0, -1); Refresh(); } } function KillSelected(Lang) { FavCnt = getCookie('FavCnt')*1; if (FavCnt == null || FavCnt == '' || FavCnt < 1) return; if(Lang==2 && !confirm('Delete selected favorites?')) return; else if(!confirm('Удалить отмеченные ссылки?')) return; // alert('FavCnt='+FavCnt); for (i = 1; i <= FavCnt; i++) { // alert('Fav='+i); eval('b = document.FAV.c'+i+'.checked'); if(b) { setCookie('Fav'+i,'null', -1); // alert('Fav'+i+'null'); } } for (i = 1; i <= FavCnt; i++) { fav = getCookie('Fav'+i); if (fav == '' || fav == 'null' || fav == null) { for (m = i+1; m <= FavCnt; m++) { fav = getCookie('Fav'+m); if (fav != '' && fav != 'null' && fav != null) { setCookie('Fav'+i,fav, -1); setCookie('Fav'+m,'null', -1); break; } } if (m > FavCnt) { FavCnt = i-1; break; } } } setCookie('FavCnt',FavCnt,-1); Refresh(); } /* --------------------- Hint */ function MoveHandler(evnt) { x = Xpos; y = Ypos; if (isNS) { Xpos = evnt.pageX; Ypos = evnt.pageY; } else { Xpos = event.clientX; Ypos = event.clientY; } oldpos = (x==Xpos) && (y==Ypos); // window.status = Xpos+ ' - ' +Ypos + ' ' + hint; } function PositionHint(){ if(oldpos) return; if (isNS) { document.layers.layerHint.left= Xpos + sX; document.layers.layerHint.top = Ypos + sY; // + top.pageYOffset } else { document.all.spanHint.style.pixelLeft = document.body.scrollLeft + Xpos + sX; document.all.spanHint.style.pixelTop = document.body.scrollTop + Ypos + sY; } if (hint != oldhint && hint != '') { if (hint == '-') {hint = ''; txt = ''; } else { txt = htmlPre + hint+ htmlPost; } if (isNS) { ptr = document.layers['layerHint'].document; ptr.write(txt); ptr.close(); ptr.visibility = (hint != '')? "show":"hide"; } else { document.all['spanHint'].innerHTML = txt; document.all['spanHint'].style.display = (hint != '')? "":"none"; } window.status = hint; oldhint = hint; } oldpos = true; } function Chint() { hint = '-'; oldpos = false; PositionHint(); } if (ver4){ Xpos = 0; Ypos = 0; sX = 10; sY = 20; hint = ''; oldhint = '-'; oldpos = false; if (typeof HintRefresh == 'undefined') HintRefresh = 500; if (HintRefresh < 1) HintRefresh = 1; // if (typeof HintPopUp == 'undefined') HintPopUp = 1000; // if (HintPopUp < 1) HintPopUp = 1; if (typeof htmlPre == 'undefined') htmlPre = '
'; if (typeof htmlPost == 'undefined') htmlPost= '
'; if (isNS) { document.write(''); document.captureEvents(Event.MOUSEMOVE); } else { document.write(''); } document.onmousemove = MoveHandler; setInterval("PositionHint()", HintRefresh); } /* // Disable RightMouse PopUpMenu function MouseRight(e) { if (isNS && (e.which == 3 || e.which == 2)) return false; else if (isIE4 && (event.button == 2 || event.button == 3)) { alert (window.location.href); return false; } return true; } document.onmousedown=MouseRight; if (document.layers) window.captureEvents(Event.MOUSEDOWN); window.onmousedown=MouseRight; */