//////////////////////////////////////////////////////////////////////////
//
// ロールオーバー
//
//////////////////////////////////////////////////////////////////////////
(function(){
	function rollover(){
		var targetClassName = "rollImg";
		var suffix = "_o";

		var overReg = new RegExp("^(.+)(\\.[a-z]+)$");
		var outReg = new RegExp("^(.+)" + suffix + "(\\.[a-z]+)$");

		var preload = new Array();
		var images = document.getElementsByTagName("img");
		var submitBtn = document.getElementsByTagName("input");

		for (var i = 0, il = images.length; i < il; i++) {
			var classStr = images[i].getAttribute("class") || images[i].className;
			var classNames = classStr.split(/\s+/);
			for(var j = 0, cl = classNames.length; j < cl; j++){
				if(classNames[j] == targetClassName){

					//preload
					preload[i] = new Image();
					
					if (images[i].getAttribute("src").indexOf("_o") == -1) {
						preload[i].src = images[i].getAttribute("src").replace(overReg, "$1" + suffix + "$2");
					} else {
						preload[i].src = images[i].getAttribute("src");
					}
					
					//mouseover
					images[i].onmouseover = function() {
						if (this.getAttribute("src").indexOf("_o") == -1) {
							this.src = this.getAttribute("src").replace(overReg, "$1" + suffix + "$2");
						} else {
							this.src = this.getAttribute("src");
						}
					}

					//mouseout
					images[i].onmouseout = function() {
						this.src = this.getAttribute("src").replace(outReg, "$1$2");
					}
				}
			}
		}
		for (var i = 0, il = submitBtn.length; i < il; i++) {
			var classStr = submitBtn[i].getAttribute("class") || submitBtn[i].className;
			var classNames = classStr.split(/\s+/);
			for(var j = 0, cl = classNames.length; j < cl; j++){
				if(classNames[j] == targetClassName){

					//preload
					preload[i] = new Image();
					
					if (submitBtn[i].getAttribute("src").indexOf("_o") == -1) {
						preload[i].src = submitBtn[i].getAttribute("src").replace(overReg, "$1" + suffix + "$2");
					} else {
						preload[i].src = submitBtn[i].getAttribute("src");
					}
					
					//mouseover
					submitBtn[i].onmouseover = function() {
						if (this.getAttribute("src").indexOf("_o") == -1) {
							this.src = this.getAttribute("src").replace(overReg, "$1" + suffix + "$2");
						} else {
							this.src = this.getAttribute("src");
						}
					}

					//mouseout
					submitBtn[i].onmouseout = function() {
						this.src = this.getAttribute("src").replace(outReg, "$1$2");
					}
				}
			}
		}
	}

	function addEvent(elem,event,func){
		if(elem.addEventListener) {
			elem.addEventListener(event, func, false);
		}else if(elem.attachEvent) {
			elem.attachEvent("on" + event, func);
		}
	}
	addEvent(window,"load",rollover);
	addEvent(window,"unload",rollover);
})();


