/*
  コンポーネントをフェードイン/フェードアウトさせる

  [使い方]
   @フェードしたいオブジェクト名にIDを振り、filterを定義
   <tag1 id="〜〜〜" style="filter:Alpha(opacity=100);">
   Aタグ名、タグのID、フェード情報(待ち時間など)を引数に渡す。
   fadein("tag1","〜〜〜",300);

*/

//タグ名毎のオブジェクトを格納する配列
var objlist = new Array();

//フェードイン
function fadein(tagname,id,timespan){

	var objlist_bytag = objlist[tagname];
	if( objlist_bytag == null || objlist_bytag == undefined ){
		//IEの実装：id→objでマッピングされている
		objlist_bytag = document.getElementsByTagName(tagname);
		objlist[tagname] = objlist_bytag;
	}

	_fadein(tagname,id,timespan,0,100,10,-10);

}

function fadein2(tagname,id,timespan,initopacity,endopacity,step){

	var objlist_bytag = objlist[tagname];
	if( objlist_bytag == null || objlist_bytag == undefined ){
		//IEの実装：id→objでマッピングされている
		objlist_bytag = document.getElementsByTagName(tagname);
		objlist[tagname] = objlist_bytag;
	}

	var _opacity = Math.round((endopacity-initopacity)/step) * (-1);

	_fadein(tagname,id,timespan,initopacity,endopacity,step,_opacity);

}

//フェードアウト
function fadeout(tagname,id,timespan){

	var objlist_bytag = objlist[tagname];
	if( objlist_bytag == null || objlist_bytag == undefined ){
		objlist = document.getElementsByTagName(tagname);
		objlist[tagname] = objlist_bytag;
	}

	_fadeout(tagname,id,timespan,100,0,10,110);
}

function fadeout2(tagname,id,timespan,initopacity,endopacity,step){

	var objlist_bytag = objlist[tagname];
	if( objlist_bytag == null || objlist_bytag == undefined ){
		//IEの実装：id→objでマッピングされている
		objlist_bytag = document.getElementsByTagName(tagname);
		objlist[tagname] = objlist_bytag;
	}

	var _opacity = 100 - Math.round((endopacity-initopacity)/step);

	_fadeout(tagname,id,timespan,initopacity,endopacity,step,_opacity);

}

//実処理
function _fadein(tagname,id,timespan,initopacity,endopacity,step,opacity){
	opacity += Math.round((endopacity-initopacity)/step);
	if (opacity > endopacity){
		return;
	}
	var obj=objlist[tagname][id];
	obj.filters['alpha'].opacity = opacity;
	setTimeout("_fadein('" + tagname + "','" + id + "'," + timespan + "," + initopacity + "," + endopacity + "," + step + "," + opacity + ")",timespan);
}

function _fadeout(tagname,id,timespan,initopacity,endopacity,step,opacity){
	opacity += Math.round((endopacity-initopacity)/step);
	if (opacity < endopacity){
		return;
	}
	var obj=objlist[tagname][id];
	obj.filters['alpha'].opacity = opacity;
	setTimeout("_fadeout('" + tagname + "','" + id + "'," + timespan + "," + initopacity + "," + endopacity + "," + step + "," + opacity + ")",timespan);
}
