/*
highlightImages_over * common/js/highlight.js
* Behaviour-abstracted highligher modul
*
* Usage:
* - include in the header of your file
* - set the class of the container to "highlight". The class will have ' over' appended to it on mouseover
* - set the overSrc attribute on any images inside that, if you want them to be changed
*/
/*
* Initialise all items that have a highlight or highlightImages class with the appropriate event handlers
*/
function onload_init_highlight() {
var allElements = getAllElements();
var tester,j,overSrc;
for(var i = 0;i 0) {
overSrc = allImages[j].src;
for(k=0;k<_IMAGE_HIGHLIGHT_REWRITING.length;k++)
overSrc = overSrc.replace(_IMAGE_HIGHLIGHT_REWRITING[k].norm,_IMAGE_HIGHLIGHT_REWRITING[k].over);
if(overSrc != allImages[j].src) {
allImages[j].normSrc = allImages[j].src;
allImages[j].overSrc = overSrc;
}
}
}
}
}
}
}
/*
* Highlight handlers
*/
function highlightImages_over() {
var el = this;
// if(el.id) document.getElementById('SearchField').document.getElementById('SearchField').innerHTML += "Over: " + el.id + "
";
// Reset any timer that may exist
if(el.timer != null) {
clearTimeout(el.timer);
try {
delete el.timer;
} catch(er) {}
}
// Class
if(el) {
addClass(el, 'over');
removeClass(el, 'stale');
if(el.parentNode) {
el.parentNode.highlightedChild = el;
addClass(el.parentNode,'childOver');
}
}
// Images
var allImages = el.getElementsByTagName('img');
for(var j=0;j 0) {
var el = _HIGHLIGHTED_OBJECTS[idx];
delete _HIGHLIGHTED_OBJECTS[idx];
unhighlightDelay = null;
} else {
var el = this;
if(el && el.getAttribute) {
unhighlightDelay = el.getAttribute("unhighlightDelay");
if(unhighlightDelay == null) {
if(_DEFAULT_UNHIGHLIGHT_DELAY[el.parentNode.className]) unhighlightDelay = _DEFAULT_UNHIGHLIGHT_DELAY[el.parentNode.className];
else if(_DEFAULT_UNHIGHLIGHT_DELAY[el.parentNode.id]) unhighlightDelay = _DEFAULT_UNHIGHLIGHT_DELAY[el.parentNode.id];
else if(_DEFAULT_UNHIGHLIGHT_DELAY['default']) unhighlightDelay = _DEFAULT_UNHIGHLIGHT_DELAY['default'];
}
}
}
if(unhighlightDelay) {
nextIdx = _HIGHLIGHTED_OBJECTS.length;
if(nextIdx == 0) nextIdx = 1;
_HIGHLIGHTED_OBJECTS[nextIdx] = el;
el.timer = setTimeout("highlightImages_out(" + nextIdx + ")", unhighlightDelay);
} else {
// Class
if(el) {
removeClass(el, 'over');
removeClass(el, 'stale');
if(el.parentNode) {
if(!el.parentNode.highlightedChild || el == el.parentNode.highlightedChild) {
removeClass(el.parentNode,'childOver');
el.parentNode.highlightedChild = null;
}
}
// Images
var allImages = document.getElementsByTagName('img');
for(var j=0;j 0) {
nextIdx = _HIGHLIGHTED_OBJECTS.length;
_HIGHLIGHTED_OBJECTS[nextIdx] = el;
el.timer = setTimeout("highlightImages_makeStale(" + nextIdx + ")", staleDelay);
}
}
if(el.old_onmouseout) el.old_onmouseout();
}
}
}
// Add the stale class to the given item
function highlightImages_makeStale(idx) {
var el = _HIGHLIGHTED_OBJECTS[idx];
delete _HIGHLIGHTED_OBJECTS[idx];
addClass(el, 'stale');
}
/*
* Preload the given image
*/
var _PRELOADED_IMAGES = Array();
function preload(filename) {
var i = new Image;
i.src = filename;
_PRELOADED_IMAGES[_PRELOADED_IMAGES.length] = i;
}
//go to the specified page.
//Works for nested elements. Always calls the most nested.
//Includes Bubble hack for mozilla
var pagelocation;
function go(url){
if(pagelocation == null){
window.location=url;
pagelocation = url;
}
}
/*
* This function will show or hide a div when you
* pass it a element ID
* Created by sgow added @ 16-09-2004
*/
/* variables needed */
var showDiv;
var oldDiv = 1;
function toggleDiv( el ){
if(oldDiv == 1){
//the first time you call this function
if(showDiv = document.getElementById(el)) {
showDiv.style.display = "block";
oldDiv = showDiv;
}
}
else{
showDiv = document.getElementById(el);
if( showDiv && showDiv == oldDiv ){
if(oldDiv.style.display == "none"){ showDiv.style.display = "block";}
else { showDiv.style.display = "none";}
oldDiv = showDiv;
// if its the same div as before, hide the same div, unless its the first time you use the function
}else{
oldDiv.style.display = "none";
showDiv.style.display = "block";
oldDiv = showDiv;
// if its a different div, hide the first one, and show the second one
}
}
}
var _IMAGE_HIGHLIGHT_REWRITING = Array();
function setImageHighlightRewriting(normVal, overVal) {
_IMAGE_HIGHLIGHT_REWRITING[_IMAGE_HIGHLIGHT_REWRITING.length] = {
'norm' : normVal, 'over' : overVal
}
}
appendLoader(onload_init_highlight);