﻿/*
	-------------------------------------
	F(ocus)S(ound)F(or)S(wf).js
	-------------------------------------
	サウンドのフェードをフォーカスで制御する。
	FULLFLASHじゃないとできないかも(FX)。
*/
(function(){
fsfs = {

	// Fla FILE INFO
	swfInfo : {id:"external_flashcontent"},
	bt : undefined,
	flg : undefined,

	// WINDOW からの フォーカス アウト
	doOnBlur : function(){
		switch(fsfs.bt){
			case "FX":
			case "SF":
			case "VB":
			case "CM":
				// SF 新規タブ時、無理。
				fsfs.callFlash("setVolume",{str:"-"});
			break;
			default:
				fsfs.callFlash("setVolume",{str:"-"});
			break;
		}
	},
	// WINDOW からの フォーカス イン
	doOnFocus : function(){
		switch(fsfs.bt){
			case "FX":
				fsfs.$O(fsfs.swfInfo.id).focus();	// FOCUSをFLASHに移す。
			break;
			case "SF":
			case "VB":
			case "CM":
				fsfs.callFlash("setVolume",{str:"+"});
			break;
			default:
				fsfs.callFlash("setVolume",{str:"+"});
			break;
		}
	},

	// FLASH からの フォーカス アウト
	doOnBlurFL : function(){
		switch(fsfs.bt){
			case "FX":
				fsfs.callFlash("setVolume",{str:"-"});
			break;
			case "SF":
			case "VB":
			case "CM":
				// なし。あたらない。
			break;
			default:
				fsfs.callFlash("setVolume",{str:"-"});
			break;
		}
	},
	// FLASH からの フォーカス イン
	doOnFocusFL : function(){
		switch(fsfs.bt){
			case "FX":
				fsfs.callFlash("setVolume",{str:"+"});
			break;
			case "SF":
			case "CM":
				// なし。あたらない。
			break;
			case "VB":
				window.focus();
			break;
			default:
				fsfs.callFlash("setVolume",{str:"+"});
			break;
		}
	},
	// FLASH エリア からの アウト
	doOnMouseOutFL : function(){},

	// GET ID OBJECT
	$O : function(ID){
		return (document.getElementById(ID)) ? document.getElementById(ID) : undefined;
	},

	// TO FLASH FUNCTION
	callFlash : function(func,obj){
		if(fsfs.getObjectName(fsfs.swfInfo.id)[func]){
		fsfs.getObjectName(fsfs.swfInfo.id)[func](obj.str);
		}
	},

	// --------------------------------------------------------------

	// GET BROWSER TYPE
	getBrowser : function(){
		var mAge = navigator.userAgent;
		var mRet = "ETC";
		if( mAge.indexOf("MSIE") >= 0 ){ mRet = "VB"; }		// IE
		if( mAge.indexOf("Firefox") >= 0 ){ mRet = "FX"; }	// FOX
		if( mAge.indexOf("Opera") >= 0 ){ mRet = "OP"; }	// OPERA
		if( mAge.indexOf("Safari") >= 0 ){ mRet = "SF"; }	// Safari
		if( mAge.indexOf("Chrome") >= 0 ){ mRet = "CM"; }	// Chrome(Safari文字列あり。判別はSafariの下。)
		return mRet;
	},

	// GET OS TYPE
	getOS : function(){
		var str = navigator.platform.toUpperCase();
		if (str.indexOf("MAC") >= 0) return "M";
		if (str.indexOf("WIN") >= 0) return "W";
		return "O";
	},

	// FLASH OBJECT no NAME GET.
	getObjectName : function(objname){
		if(navigator.appName.indexOf("Microsoft") != -1){
			return window[objname];
		}else{
			return document[objname];
		}
	},

	// コンストラクタ
	constructor : function(){
		// ブラウザタイプ定義
		fsfs.bt = fsfs.getBrowser();
		// イベント情報
		//window.onmouseout = fsfs.doOnMouseOutFL;
		fsfs.$O(fsfs.swfInfo.id).onblur = fsfs.doOnBlurFL;
		fsfs.$O(fsfs.swfInfo.id).onfocus = fsfs.doOnFocusFL;
		window.onfocus = fsfs.doOnFocus;
		window.onblur  = fsfs.doOnBlur;
	},

	end : ""
}
})();



function doOnLoad(){
	// 起動
	fsfs.constructor();
}
window.onload  = doOnLoad;
