roll = new ubRoll("_on","_off"); // primary object function ubRoll(overSuffix, outSuffix){ this.overSuffix = overSuffix; this.outSuffix= outSuffix; this.images = new Object() this.initialized = false; } // out and over methods ubRoll.prototype.over = ubRollOver; function ubRollOver(imgName){ if(this.initialized){ this.images[imgName].over(); } } ubRoll.prototype.out = ubRollOut; function ubRollOut(imgName){ if(this.initialized){ this.images[imgName].out(); } } // initialize roll object by mapping named images ubRoll.prototype.init = ubRollInit; function ubRollInit(){ if(document.layers){ for(var i = 0; i < document.images.length; i++){ this.mapImage(document.images[i]); } for(var i = 0; i < document.layers.length; i++){ this.map(document.layers[i]); } } else if(document.getElementById){ var imgs = document.getElementsByTagName("img"); for(var i = 0; i < imgs.length; i++){ this.mapImage(imgs[i]); } } else if(document.all){ for(var i = 0; i < document.images.length; i++){ this.mapImage(document.images[i]); } } this.initialized = true; } // map images ubRoll.prototype.mapImage = ubRollMapImage; function ubRollMapImage(img){ if(img.name.indexOf("_ROLL") != -1){ //alert(img.name); //alert(img.name.substr(0,img.name.lastIndexOf("_"))); this.images[img.name.substr(0,img.name.lastIndexOf("_"))] = new ubRollImage(img, this.overSuffix, this.outSuffix); } } ubRoll.prototype.map = ubRollMap; function ubRollMap(div){ if(document.layers){ for (var i =0; i < div.document.images.length; i++){ this.mapImage(div.document.images[i]) } for (var i =0; i < div.document.layers.length; i++){ this.map(div.document.layers[i]) } } } function ubRollImage(img,overSuffix, outSuffix){ this.img = img; var lastDotPos = this.img.src.lastIndexOf("."); this.baseSuffix = this.img.src.substr(lastDotPos); var baseSrc = this.img.src.substr(0,this.img.src.lastIndexOf("_")); this.overSrc = baseSrc + overSuffix + this.baseSuffix; this.outSrc = baseSrc + outSuffix + this.baseSuffix; //alert(this.overSrc + " : over \r" + this.outSrc + " : out"); // : nice debug tool var preload = new Image(); preload.src = this.overSrc; var preloadOut = new Image(); preloadOut.src = this.outSrc; } ubRollImage.prototype.over = ubRollImageOver; function ubRollImageOver(){ this.img.src = this.overSrc; } ubRollImage.prototype.out = ubRollImageOut; function ubRollImageOut(){ this.img.src = this.outSrc; }