/*
 * rollOver - jQuery Plugin
 *
 * Copyright (c) DESIGN inc. All Rights Reserved.
 * http://www.design-inc.jp/
 *
 */

(function($){
	$.fn.rollOver = function(options){
		
		var settings = $.extend({
			selectorFade: '.ro-fade img, .ro-fade input',	// フェードクラス
			selectorReFade: '.ro-xfade img, .ro-xfade input',	// フェードクラス（通常時が半透明）
			selectorSwitch: '.ro-switch img, .ro-switch input',	// 画像切替クラス
			selectorFadeswitch: '.ro-fswitch img, .ro-fswitch input',	// フェード画像切替クラス
			attachStr: '-on',	// ロールオーバー画像の名前
			animateTime: 300,	// アニメーションの時間
			fadeOpacity: 0.7,	// フェードのパーセンテージ
			easing: 'easeOutCubic'	//イージング
		}, options);
		
		// フェード
		$(settings.selectorFade).each(function(){
			$(this).hover(function(){
				$(this).animate({'opacity': settings.fadeOpacity}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			}, function(){
				$(this).animate({'opacity': 1}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			});
		});
		
		// フェード（通常時が半透明）
		$(settings.selectorReFade).css({'opacity': settings.fadeOpacity});
		$(settings.selectorReFade).each(function(){
			$(this).hover(function(){
				$(this).animate({'opacity': 1}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			}, function(){
				$(this).animate({'opacity': settings.fadeOpacity}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			});
		});
		
		// 画像切替
		$(settings.selectorSwitch).not('[src*="' + settings.attachStr + '."]').each(function(){
			overImgSrc = $(this).attr('src').replace(new RegExp('(\.gif|\.jpg|\.png)$'), settings.attachStr + '$1');
			$(this).parent().css({'background-image': 'url("'+overImgSrc+'")'});
			$(this).hover(function(){
				$(this).css({'opacity': 0});
			}, function(){
				$(this).css({'opacity': 1});
			});
		});
		
		// フェード画像切替
		$(settings.selectorFadeswitch).not('[src*="' + settings.attachStr + '."]').each(function(){
			overImgSrc = $(this).attr('src').replace(new RegExp('(\.gif|\.jpg|\.png)$'), settings.attachStr + '$1');
			$(this).parent().css({'background-image': 'url("'+overImgSrc+'")'});
			$(this).hover(function(){
				$(this).animate({'opacity': 0}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			}, function(){
				$(this).animate({'opacity': 1}, {'duration': settings.animateTime, 'easing': settings.easing, 'queue': false});
			});
		});
		
		return this;
	};
})(jQuery);
