//-------------ブラウザ判別の内部関数。--------------------
//参考サイト：http://www.publicroots.com/fmt/archives/000136.html
//参考サイト：http://mobagitukai.xrea.jp/blognplus/index.php?e=523
//参考サイト：http://winofsql.jp/VA003334/infoboard.php?mid=sjscript&id=070828100942&pid=3

function get_browzer()
{
	var VarUsrAgt = navigator.userAgent.toLowerCase();			//小文字
	var appVersion = window.navigator.appVersion.toLowerCase();

	var isMac = (navigator.appVersion.indexOf("Mac") != -1);
	var isWin = (navigator.appVersion.indexOf("Win") != -1);
	var isX11 = (navigator.appVersion.indexOf("x11") != -1);
	
	var isNS4 = (document.layers) ? 1 : 0;
	var isNS6 = VarUsrAgt.indexOf("netscape6") != -1;
	var isNS7 = VarUsrAgt.indexOf("netscape/7.") != -1;
	var isIE  = VarUsrAgt.indexOf("msie") != -1;
	var isOP  = VarUsrAgt.indexOf("opera") != -1
	var isMZ1 = navigator.appName.indexOf("Netscape") != -1 && navigator.appVersion.charAt(0)   == 5;
	var isFF  = VarUsrAgt.indexOf("firefox") != -1;
	var isSF  = VarUsrAgt.indexOf("safari") != -1;
	
	var type = "UK";			//初期値はunknown

	if (navigator.userAgent.match("Chrome"))
	{
		type = "CH";
	} else if (isIE) {
		if (appVersion.indexOf("msie 6.0") > -1) {
			type = "IE6";
		}
		else if (appVersion.indexOf("msie 7.0") > -1) {
			type = "IE7";
		}
		else if (appVersion.indexOf("msie 8.0") > -1) {
			type = "IE8";
		}
		else {
			type = "IE";
		}

	} else if (isFF) {
		type = "FF";
	} else if (isOP) {
		type = "OP";
	} else if (isNS4 || isNS6 || isNS7) {
		type = "NN";
	} else if (isSF) {
		type = "SF";
	} else {
		type = "UK";
	}
	
	return type;
}

//--------------画像のフェードイン・フェードアウト---------------------------
// オリジナルはIE非対応だったが、全ブラウザに対応させた。
// 対応ブラウザ：最新のFF, IE, NN, SF, OP, CH @2010/1/10
// 参考 http://javascript.eweb-design.com/0814_fio.html
// 参考 http://www.codeproject.com/KB/scripting/opacity.aspx

var fdInOut =
{
	//外部から設定する変数（id以外はデフォルト値あり）
	id: undefined,		// 制御対象画像のid
	spd:100,			// 透過量を変化させる時間間隔（ミリ秒単位 ）
	min:0,				// 透過量の最小値（0～100）
	max:100,			// 透過量の最大値（0～100）
	stp:10,				// 時間間隔毎の透過量変化ステップ（0～100）
	
	//内部変数
	obj:undefined,		// 制御対象画像オブジェクト
	min2:undefined,		// 透過量の最小値
	max2:undefined,		// 透過量の最大値
	stp2:undefined,		// 時間間隔毎の透過量変化ステップ
	cnt:undefined,		// 透過量の瞬時値
	brz:undefined,		// ブラウザタイプ
	fst:1,				// 制御初回は1、制御中は0
	
	//初期設定関数（変数設定後に呼び出す）
	conf:function()
	{
		fdInOut.obj = document.getElementById(fdInOut.id);
		//alert(fdInOut.obj);
		fdInOut.brz = get_browzer();
		if (fdInOut.brz == "IE")
		{
			fdInOut.min2 = fdInOut.min;
			fdInOut.max2 = fdInOut.max;
			fdInOut.stp2 = fdInOut.stp;
		}
		else
		{
			fdInOut.min2 = fdInOut.min / 100;
			fdInOut.max2 = fdInOut.max / 100;
			fdInOut.stp2 = fdInOut.stp / 100;
		}
	},

	//フェードイン関数（初期設定後に呼び出す）
	fdIn:function()
	{
		if (fdInOut.fst)
		{
			fdInOut.cnt = fdInOut.min2;
			fdInOut.fst = 0;
		}
		if (fdInOut.brz == "IE")
		{
			fdInOut.cnt += fdInOut.stp2;
			//fdInOut.cnt = Math.round(fdInOut.cnt);
			fdInOut.obj.filters['alpha'].opacity = fdInOut.cnt;
		}
		else
		{
			fdInOut.cnt += fdInOut.stp2;
			//fdInOut.cnt = Math.round(fdInOut.cnt * 100) / 100;
			fdInOut.obj.style.MozOpacity = fdInOut.cnt;
			fdInOut.obj.style.opacity = fdInOut.cnt;
		}
		if(fdInOut.cnt >= fdInOut.max2)
		{
			fdInOut.fst = 1;
			return;
		}
		setTimeout("fdInOut.fdIn()",fdInOut.spd);
	},
	
	//フェードアウト関数（初期設定後に呼び出す）
	fdOut:function()
	{
		if (fdInOut.fst)
		{
			fdInOut.cnt = fdInOut.max2;
			fdInOut.fst = 0;
		}
		if (fdInOut.brz == "IE")
		{
			fdInOut.cnt -= fdInOut.stp2;
			//fdInOut.cnt = Math.round(fdInOut.cnt);
			fdInOut.obj.filters['alpha'].opacity = fdInOut.cnt;
		}
		else
		{
			fdInOut.cnt -= fdInOut.stp2;
			//fdInOut.cnt = Math.round(fdInOut.cnt * 100) / 100;
			fdInOut.obj.style.MozOpacity = fdInOut.cnt;
			fdInOut.obj.style.opacity = fdInOut.cnt;
		}
		if(fdInOut.cnt <= fdInOut.min2)
		{
			fdInOut.fst = 1;
			return;
		}
		setTimeout("fdInOut.fdOut()",fdInOut.spd);
	}
}

