/**
 * rollover.js
 *
 * @version    1.03
 * @updated    2009-08-05
 * @author     takumi osada <http://groovy-times.com>
 * @copyright  Copyright (c) 2009 GROOVY-TIMES
 * @license    MIT License <http://www.opensource.org/licenses/mit-license.php>
 *
 * @requires   addLoadEvent
 */
 
/* -----------------------------------------------------------------------*/
// rollover
/* -----------------------------------------------------------------------*/

function rollover() {
	if(!document.getElementsByTagName) return false;

	// SETUP ///////////////////////////////////////////////

	/* オーバーさせるボタンのクラス名（初期値：over） */
	var over = new RegExp(/^(.+\s)?(over)(\s.+)?$/);

	/* オーバー時に画像ファイルの末尾に追加する文字 */
	var addOver = '_o';

	////////////////////////////////////////////////////////

	var imgs = document.getElementsByTagName('img');
	var preload = new Array();
	var tempScr;

	for(var i=0; i<imgs.length; i++) {
		if(imgs[i].className.match(over)) {
			var src = imgs[i].getAttribute('src');
			var ext = src.substring(src.lastIndexOf('.'), src.length);
			var osrc = src.replace(ext, addOver + ext);
			
			imgs[i].setAttribute('osrc', osrc);
			
			preload[i] = new Image();
			preload[i].src = osrc;
			
			imgs[i].onmouseover = function() {
				tempSrc = this.getAttribute('src');
				var osrc = this.getAttribute('osrc');
				this.setAttribute('src', osrc);
			}
			imgs[i].onmouseout = function() {
				if(!tempSrc) {
					tempSrc = this.getAttribute('src').replace(addOver + ext, ext);
				} else {
					this.setAttribute('src', tempSrc);
				}
			}
		}
	}
}


/* -----------------------------------------------------------------------*/
// addLoadEvent
/* -----------------------------------------------------------------------*/
addLoadEvent(rollover);
