//----------------------------------------
// set_fx4jq
//					written by k
//						2010.09.25
//
// 使い方：
// ボタンimgにpage属性を記述。
// その属性値(文字列)をidとする要素を
// 対象ページに記述。
// (そのidは処理するメニューが表示される
//	ページ群でユニーク値とする)
//
//----------------------------------------


//---- globals ----
var FX4_ADD_ROLL_OVER	= "_f2";
var FX4_ADD_THIS_PAGE	= "_f3";



//------------------------
//	init_set_fx
//------------------------
function init_set_fx(target_selecter)
{	

	$(target_selecter).each(function(){
		_set_fx_event( this );
	});
}




function _set_fx_event( target )
{
	var src_f1	= "";
	var src_f2	= "";
	var src_f3	= "";
	
	var page_id	= "";
	
	// ---- this_page処理(f3) ----
	//
	src_f1	= $(target).attr('src');
	src_f3	= _add_this_page_str( src_f1 );
	
	// メニューのimgからpage属性を取得
	page_id = $(target).attr( 'page' );
	// id文字列化
	page_id = "#" + page_id;

	//alert(page_id + ":" + $(page_id).length);
	
	// 現ページがそのそのidを持つ場合
	if( $(page_id).length > 0 )
	{
		$(target).attr( 'src', src_f3 );	
	}
	
	
	// ---- イベント登録(f2) ----
	//
	src_f1	= $(target).attr('src');
	src_f2	= _add_roll_over_str( src_f1 );
	
	$(target).mouseover(function(){
		var src		= $(target).attr( 'src' );
		// (パス＋ファイル名)と拡張子の分離
		var len		= src.length;
		var pos		= src.lastIndexOf('.');
		var base	= src.substring( 0, pos );
		var ex		= src.substring( pos );
		
		var this_page_str	= FX4_ADD_THIS_PAGE + ex;
		var roll_over_str	= FX4_ADD_ROLL_OVER + ex;
		
		// f3以外の場合のみ処理
		if( src.indexOf( this_page_str ) < 0 )
		{
			$(target).attr( 'src', src_f2 );
		}
		
	});
	$(target).mouseout(function(){
		var src		= $(target).attr( 'src' );

		// (パス＋ファイル名)と拡張子の分離
		var len		= src.length;
		var pos		= src.lastIndexOf('.');
		var base	= src.substring( 0, pos );
		var ex		= src.substring( pos );
		
		var this_page_str	= FX4_ADD_THIS_PAGE + ex;
		var roll_over_str	= FX4_ADD_ROLL_OVER + ex;
		
		
		if( src.indexOf( this_page_str ) < 0 )
		{
			$(target).attr( 'src', src_f1 );
		}
	
	});
}


// rolloverファイル名に置き換え
function _add_roll_over_str(str)
{
	var param			= "";
	var len				= 0;
	var pos				= 0;
	var base			= "";
	var ex				= "";
	var this_page_str	= "";
	var roll_over_str	= "";
	
	// パラメータ等の退避(省略)
	
	// (パス＋ファイル名)と拡張子の分離
	len		= str.length;
	pos		= str.lastIndexOf('.');
	base	= str.substring( 0, pos );
	ex		= str.substring( pos );
	
	this_page_str	= FX4_ADD_THIS_PAGE + ex;
	roll_over_str	= FX4_ADD_ROLL_OVER + ex;
	
	// 既にf3の場合は何もしない(f2の場合も)
	if( str.indexOf( this_page_str ) > 0
		|| str.indexOf( roll_over_str ) > 0 )
	{
		//alert('何もしない');
		return;	
	}
	
	// 処理
	return( base + FX4_ADD_ROLL_OVER + ex );
}

// FX4_ADD_THIS_PAGEファイル名に置き換え
function _add_this_page_str(str)
{
	var param	= "";
	var len		= 0;
	var pos		= 0;
	var base	= "";
	var ex		= "";
	var FX4_ADD_THIS_PAGE_pos	= 0;
	var FX4_ADD_ROLL_OVER_pos	= 0;
	
	
	// パラメータ等の退避(省略)
	
	// (パス＋ファイル名)と拡張子の分離
	len		= str.length;
	pos		= str.lastIndexOf('.');
	base	= str.substring( 0, pos );
	ex		= str.substring( pos );
	
	// 既にf3の場合は何もしない(f2の場合も)
	FX4_ADD_THIS_PAGE_pos	= base.length - FX4_ADD_THIS_PAGE.length;
	if( base.lastIndexOf( FX4_ADD_THIS_PAGE ) == FX4_ADD_THIS_PAGE_pos )
	{
		return;	
	}
	// 既にf2の場合はFX4_ADD_ROLL_OVER+exを置き換え
	FX4_ADD_ROLL_OVER_pos	= base.length - FX4_ADD_ROLL_OVER.length;
	if( base.lastIndexOf( FX4_ADD_ROLL_OVER ) == FX4_ADD_ROLL_OVER_pos )
	{
		base = str.replace( FX4_ADD_ROLL_OVER+ex, FX4_ADD_THIS_PAGE+ex );
		return( base );
	}
	
	// 処理
	return( base + FX4_ADD_THIS_PAGE + ex );
}


// 指定idをもつ要素のsrcをfxに
function set_f2( className )
{
	var cn = '#' + className;
	
	var src_f1	= $(cn).attr('src');
	var src_f2	= _add_roll_over_str( src_f1 );
	
	$(cn).attr( 'src', src_f2 );
}
// 指定idをもつ要素のsrcをfxに
function set_f3( className )
{
	var cn = '#' + className;
	
	var src_f1	= $(cn).attr('src');
	var src_f3	= _add_this_page_str( src_f1 );
	
	$(cn).attr( 'src', src_f3 );
}	

// 指定classをもつ要素すべてのsrcをf1に
function unset_fx( className, str_fx )
{
	var cn = '.' + className;
	
	$(cn).each(function(){
		// (パス＋ファイル名)と拡張子の分離
		var str		= $(this).attr('src');
		var len		= str.length;
		var pos		= str.lastIndexOf('.');
		var base	= str.substring( 0, pos );
		var ex		= str.substring( pos );
		str = str.replace( str_fx+ex, ex );
		$(this).attr( 'src', str );
	});
}


//--------------------------------
// onload
//--------------------------------
$(function()
{
	//init_set_fx('.gm');
	init_set_fx('.fs');
	//init_set_fx('.btn_lang');
});



