/*------------------------------------------------------------

	jquery.imgUtil.js
	Copyright (c) 2008 Naoki Ueno
	Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
	and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
	Date: 7/11/2008

	@howto
		jQuery('selectors').imgHover({ suffix : '_o' });

	@howto
		jQuery('selectors').imgHover({ suffix : '_o' }).imgStay({ bodyClass : 'gStay_' , suffixStay : '_s' });

------------------------------------------------------------*/
(function($){
$.extend({
	combineSuffix: function(imgpath, suffix) {
		var dot = imgpath.lastIndexOf('.');
		return imgpath.substr(0, dot) + suffix + imgpath.substr(dot);
	}
});
})(jQueryBase);

/*------------------------------------------------------------
	Image Hover 
------------------------------------------------------------*/
(function($){
$.fn.extend({
	imgHover : function() {
		var setting = $.extend({
			suffix : '_o'
		}, $.makeArray(arguments).shift());
		this.suffix = setting.suffix;
		return this.each(function() {
			var imgsrc = this.src;
			var imgsrc_on = $.combineSuffix(imgsrc, setting.suffix);
			new Image().src = imgsrc_on;
			$(this).hover(
				function() { this.src = imgsrc_on; },
				function() { this.src = imgsrc; }
			);
		});
	}
});
})(jQueryBase);

/*------------------------------------------------------------
	Image Stay 
------------------------------------------------------------*/
(function($){
$.fn.extend({
	imgStay : function() {
		var setting = $.extend({
			bodyClass : 'gStay_',
			prefixClass: '',
			suffixStay : '_s'
		}, $.makeArray(arguments).shift());
		this.bodyClass = setting.bodyClass;
		this.suffixStay = setting.suffixStay;

		var classArray = $('body').attr('class').split(' ');
		$.each(classArray, function(index, value){
			if(value.search('^'+setting.bodyClass) != -1){
				var targetClass = value.substr(setting.bodyClass.length);
				var targetImg = $('img.' + setting.prefixClass + targetClass).unbind().get(0);
				targetImg.src = $.combineSuffix(targetImg.src, setting.suffixStay);
			}
		});
		return this;
	}
});
})(jQueryBase);