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


//---- globals ----
var ADD_ROLL_OVER	= "_f2";
var 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(){
		$(target).attr( 'src', src_f2 );
	});
	$(target).mouseout(function(){
		$(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	= ADD_THIS_PAGE + ex;
	roll_over_str	= ADD_ROLL_OVER + ex;
	
	
	// 既にf3の場合は何もしない(f2の場合も)
	if( str.indexOf( this_page_str ) > 0
		|| base.indexOf( roll_over_str ) > 0 )
	{
		//alert('何もしない');
		return;	
	}
	
	// 処理
	return( base + ADD_ROLL_OVER + ex );
}

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


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


