/* -------------------------------------------------------------------------- */
/*
	Script Name: common.js
	Script Description: Common Script Libraries

	Copyright (c) 2007 Yasuhiro Hamaguchi
	Licensed under the MIT License:
	http://www.opensource.org/licenses/mit-license.php

	Since: 2007-12-07
	Modified: 2008-01-08
 */
/* -------------------------------------------------------------------------- */


/* ======== Common Preparations ======== */

/* ---- Function: addLoadEvent ---- */

function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/* ---- Function: getElementsByClassName ---- */

function getElementsByClassName(name){
	if(!document.getElementsByTagName) return false;
	var elements = [];
	var allElements = document.getElementsByTagName('*');
	for (var i=0, len=allElements.length; i<len; i++) {
		if(allElements[i].className == name){
			elements.push(allElements[i]);
		}
	}
	return elements;
}


/* ======== Rollover Image ======== */

/* ---- Function: rollovers ---- */

function rollovers() {
	if(!document.getElementsByTagName) return false;
	var conf = {
		className : 'imgover',
		postfix : '_on'
	};
	var imgNodeList = document.getElementsByTagName('img');
	var node;
	for (var i=0, len=imgNodeList.length; i<len; i++) {
		if(imgNodeList[i].className.match(conf.className)) {
			node = imgNodeList[i];
			node.originalSrc = node.src;
			node.rolloverSrc = node.originalSrc.replace(/(\.gif|\.jpg|\.png)/, conf.postfix+"$1");
			preloadImage(node.rolloverSrc);
			node.onmouseover = function() {
				this.src = this.rolloverSrc;
			};
			node.onmouseout = function() {
				this.src = this.originalSrc;
			};
		}
	}
}
addLoadEvent(rollovers);

/* ---- Function: preloadImage ---- */

preloadedImages = [];
function preloadImage(url) {
	var p = preloadedImages;
	var l = p.length;
	p[l] = new Image();
	p[l].src = url;
}
