/*!
 * jQuery hpsrollover plugin: rollover
 * ロールオーバープラグイン
 * [機能]
 * ロールオーバー画像の先読み
 * 
 * version 1.00 (2010-10-07)
 * Requires jQuery v1.3.2 or later
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Author: HomePageShop http://www.hp-shop.co.jp
 */

;(function(jQuery) {
	var loaded = {};

	/**
	 * ロールオーバー画像先読み処理
	 * 
	 * ロールオーバー画像を先読みして、ロードに成功したらロード済みに設定する。
	 * 
	 * @aceess publick
	 */
	var preLoadImage = function(basename, ext, postfix) {
		var regex = new RegExp(postfix + "$");
		if (!basename.match(regex)) {
			var imgObject = new Image;
			imgObject.onload = function() {
				loaded[basename + ext] = 1;
			}
			imgObject.src = basename + postfix + ext;
		}
	};

	jQuery.fn.hpsrollover = function(options) {
		var options = jQuery.extend(
			{},
			jQuery.fn.hpsrollover.defaults, 
			options
		);
		this.each(function(){
			var src = jQuery(this).attr("src");
			if (src.match(/^(.+)(\.(?:jpg|gif|png))$/)) {
    			var basename = RegExp.$1;
    			var ext = RegExp.$2;
				if (options.useImage) {
					preLoadImage(basename, ext, options.postfix);
				}
				jQuery(this).hover(
					function(){
						if (loaded[src] == 1) {
							jQuery(this).attr("src", basename + options.postfix + ext);
						} else {
							jQuery(this).fadeTo(0, options.alpha);
						}
					},
					function(){
						jQuery(this).attr("src", src);
						jQuery(this).fadeTo(0, 1);
					}
				);
			}
		});


	};
	jQuery.fn.hpsrollover.defaults = {
		useImage: true,
		postfix: "_on",
		useAlpha: true,
		alpha: 0.9
	};

 
})(jQuery);

