function PreloadImages() { // Preload images and create objects based on argument list of: // object name, over image filename, out/original image filename if (!document.images) return; var args = PreloadImages.arguments; var i = 0; while (i < args.length) { eval(args[i] + '_over = new Image()'); eval(args[i] + '_over.src = "' + args[i + 1] + '"'); eval(args[i] + '_out = new Image()'); eval(args[i] + '_out.src = "' + args[i + 2] + '"'); i = i + 3; } } function SwapImage() { // Changes given image objects with given sources: // filename -> loads that file // over, out, up, down -> uses preloaded image object // nothing -> uses image object of opposite state if (!document.images) return; var imgName, imageObj, swapName, dotSpot; var args = SwapImage.arguments; var i = 0; while (i < args.length) { imgName = args[i]; swapName = args[i + 1]; imageObj = getImageObject(imgName); if (!swapName) { // If no swapName used, switch between over and out if (eval(imgName + '_over.src') == imageObj.src) imageObj.src = eval(imgName + '_out.src'); else imageObj.src = eval(imgName + '_over.src'); } else if ((dotSpot = swapName.lastIndexOf('.')) > 0) { // Filename given (with 3 or 4 character file type) if ((swapName.length - dotSpot >= 4) && (swapName.length - dotSpot <= 5)) imageObj.src = swapName; // File name } else // Uses preloaded image object imageObj.src = eval(imgName + '_' + swapName.toLowerCase() + '.src'); i = i + 2; } } function getImageObject(imgName) { // Find image object if (document.all) return eval('document.all.' + imgName); // IE4+ if (document.images[imgName]) return document.images[imgName]; // W3C, NS if (document.layers) return findImage(imgName, document); // NS4 w/layers return null; } function findImage(name, doc) { // Recurse through layers in NS4 to find image if (doc.images[name]) return doc.images[name]; var i, img; for (i = 0; i < doc.layers.length; i++) if ((img = findImage(name, doc.layers[i].document)) != null) { img.container = doc.layers[i]; return img; } return null; }