// This function loops through every image and input tag
// looking for the class "rollover", if found it then preloads
// the rollover image and attaches mouse events for the rollover

// User Defined Variables
var erClassName = "rollover";
var overImageSuffix = "_over";

function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null)
    node = document;
  if (tag == null)
    tag = '*';
  var els = document.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

function overImageName(oldName) {
	var overName = oldName.substring(0, oldName.length-4) + overImageSuffix + oldName.substring(oldName.length-4);
	return overName;
}

function oldImageName(curName) {
	var re = new RegExp (overImageSuffix, 'gi');
	var oldName = curName.replace(re, '');
	return oldName;
}

function attachRollovers(){
	var btnsTemp = new Array();
	var origSrc = new Array();
	var overSrc = new Array();
	var btnsImage = getElementsByClass(erClassName,'img'); // for images
	var btnsInput = getElementsByClass(erClassName,'input'); // for inputs
	var btns = btnsImage.concat(btnsInput); // combine into one array

	for (var i=0; i<btns.length; i++){
		origSrc[i] = btns[i].src;
		overSrc[i] = overImageName(origSrc[i]);
		btnsTemp[i] = new Image();
		btnsTemp[i].src = overSrc[i];
		btns[i].onmouseover = function() {
			var overSrcString = overImageName(this.src);
			this.setAttribute('src',overSrcString)
		}
		btns[i].onmouseout = function() {
			var oldSrcString = oldImageName(this.src);
			this.setAttribute('src',oldSrcString)
		}
	}
}

window.onload = attachRollovers;