Rollovers = new Object ();

Rollovers.initialize = function (dir, key, ovrPost, ext) {
	if (dir == "") dir = "./";
	else if (dir.charAt (dir.length - 1) != "/") dir += "/";
	
	var elements = new Array ();
	for (var i = 0; i < document.images.length; i++) {
		elements.push (document.images [i]);
	}
	var inputs = document.getElementsByTagName ("input");
	for (var i = 0; i < inputs.length; i++) {
		if (inputs [i].type == "image") {
			elements.push (inputs [i]);
		}
	}
	
	for (var i = 0; i < elements.length; i++) {
		var element = elements [i];
		var fNameSplit = (elements [i].src).split ("/");
		var imgName = fNameSplit [fNameSplit.length - 1].split (".");
		var imgExt = imgName.pop ();
		imgName = imgName.join (".");
		var imgDir = (fNameSplit.length > 1 ? fNameSplit [fNameSplit.length - 2] : ".") + "/";
		
		if (imgName.indexOf (key) > -1 && imgDir == dir && imgExt == ext) {
			var wkObj = new Object ();
			
			wkObj.ovr = new Image ();
			wkObj.ovr.src = dir + imgName.replace (key, ovrPost) + "." + ext;
			
			wkObj.out = new Image ();
			wkObj.out.src = elements [i].src;
			
			Rollovers [imgName] = wkObj;
			
			if (element.onmouseover) {
				element.onmouseover2 = element.onmouseover;
			}
			if (element.onmouseout) {
				element.onmouseout2 = element.onmouseout;
			}
			
			element.name = imgName;
			element.onmouseover = new Function ("Rollovers.mouseOver (this); if (this.onmouseover2) this.onmouseover2 ();");
			element.onmouseout = new Function ("Rollovers.mouseOut (this); if (this.onmouseout2) this.onmouseout2 ();");
			if (element.form) {
				if (element.onfocus) {
					element.onfocus2 = element.onfocus;
				}
				if (element.onblur) {
					element.onblur2 = element.onblur;
				}
				element.onfocus = new Function ("Rollovers.mouseOver (this); if (this.onfocus2) this.onfocus2 ();");
				element.onblur = new Function ("Rollovers.mouseOut (this); if (this.onblur2) this.onblur2 ();");
			}
		}
	}
}

Rollovers.mouseOver = function (elm) {
	elm.src = Rollovers [elm.name].ovr.src;
}

Rollovers.mouseOut = function (elm) {
	elm.src = Rollovers [elm.name].out.src;
}

