/*
 * Javascript for Ocean Grid
 *
 * (c) Since2001 Utagoe Inc. All rights Reserved.
 *
 * 注意：新しくOG形式ページを作成するときは、「基本設定」の箇所を変更してください。
 *     ：別途、Cast.installVbUriの場所にcast_install.vbをおいてください。
 *     ：文字コードはUTF-8です。
 */
if (typeof(Cast) == 'undefined') {
	Cast = {};
}

// cast.jsのバージョン
Cast.Version = '1.2.0';

/*--------------------------------------------------------------------------*/
// 基本設定:ここから
// 新しくUG Live形式ページを作成するときはここを変更してください。

// UG Liveクライアントのインストーラの場所(デフォルト：英語版)
Cast.installerUri = 'http://dlpsu.segaonline.jp/downloader/install/setup.exe'; 

// UG Liveクライアントのインストーラの場所(日本語版)
Cast.installerUri_Ja = 'http://dlpsu.segaonline.jp/downloader/install_ja/setup.exe'; 

// IEでのインストールチェック用VBスクリプトの場所
Cast.installVbUri = 'http://dlpsu.segaonline.jp/downloader/og/lib/cast_install.vb';

// UG Live形式動画未サポート時に出す画像（デフォルト：英語版）
Cast.noSupportedImgUri = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_nosupported.jpg'; 

// UG Live形式動画未サポート時に出す画像(ミニサイズ、英語版)
Cast.noSupportedSmallImgUri = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_nosupported_s.jpg'; 

// UG Live形式動画未サポート時に出す画像(日本語版)
Cast.noSupportedImgUri_Ja = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_nosupported_ja.jpg'; 

// UG Live形式動画未サポート時に出す画像(ミニサイズ、日本語版)
Cast.noSupportedSmallImgUri_Ja = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_nosupported_s_ja.jpg'; 

// UG Liveクライアント未インストール時に出す画像（デフォルト：英語版）
Cast.noInstalledImgUri = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_noinstalled.jpg';

// UG Liveクライアント未インストール時に出す画像（ミニサイズ、英語版）
Cast.noInstalledSmallImgUri = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_noinstalled_s.jpg';

// UG Liveクライアント未インストール時に出す画像（日本語版）
Cast.noInstalledImgUri_Ja = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_noinstalled_ja.jpg';

// UG Liveクライアント未インストール時に出す画像（ミニサイズ、日本語版）
Cast.noInstalledSmallImgUri_Ja = 'http://dlpsu.segaonline.jp/downloader/og/cont/img_alert_noinstalled_s_ja.jpg';

// インストール判定するかどうか
Cast.enableInstallCheck = true;

// Firefox用の動画の縦位置微調整用[px]
Cast.hAdjustMarginForMozilla = -2;

// Buffering広告動画の決めうち再生時間。IE以外の場合に使います。
Cast.adWaitingTime = 20000;

// ユニキャストバックアップサーバに強制的にWeb側で切り替える待ち時間のデフォルト
Cast.defaultFRescueWait = 60000;

// 動画表示サイズ縦幅のデフォルト
Cast.defaultHeight = 350;

// 動画表示サイズ横幅のデフォルト
Cast.defaultWidth = 400;

// UG Live形式動画バッファリング中の動画の場所
Cast.adSrcUris = new Array(
	'http://dlpsu.segaonline.jp/downloader/og/cont/buffering.swf');

// バックアップ用メディアサーバにポップアップWMPで接続する場合のバッファリング中動画の場所
Cast.wmpopupSrcUris = new Array(
	'http://dlpsu.segaonline.jp/downloader/og/cont/buffering.swf');

// エラーメッセージ
Cast.msg1 = 'Failed to start the movie.\nPlease wait for a while and reload the page.';
Cast.msg1_Ja = '動画の再生が開始できませんでした。\nしばらくお待ちいただいた後、ページを再読み込みしてください。';

// 基本設定:ここまで 
/*--------------------------------------------------------------------------*/

/*
 * Google Analytics
 */
document.write('<scr' + 'ipt type="text/javascript" src="http://www.google-analytics.com/urchin.js"> </scr' + 'ipt>');
Cast.ut = function(mode) {
	var l=location.href;
	_uacct = 'UA-476256-13';
	urchinTracker('/cast.js/' + mode + '/' + l);
};

/*
 * 各種環境判定
 */
// 日本語環境かそれ以外かを自動判定。日本語以外の場合は英語になります。
// この値はCast.showMovie()で言語指定されていない場合に利用されます。
Cast.lang = 'en';
if(document.all){ // IE
	if(navigator.browserLanguage=='ja'){
		Cast.lang = 'ja';
	} else {
		Cast.lang = 'en';
	}
} else if(document.layers){ // NN4
	if(navigator.language=='ja'){
		Cast.lang = 'ja';
	} else {
		Cast.lang = 'en';
	}
} else { // Firefox, Safari
	if(navigator.language.substr(0,2)=='ja'){
		Cast.lang = 'ja';
	} else {
		Cast.lang = 'en';
	}
}

// サポートOS（Win)かどうか
Cast.isSupportedOS = (navigator.userAgent.indexOf('Win') > -1) ? true : false;

// ブラウザ判定
Cast.myBrowser = (function() {
	if(window.opera){
		//return 'OPERA';
		return 'OTHER';
	}else if(navigator.mimeTypes && navigator.mimeTypes.length){
		//return 'MOZILLA';
		return 'OTHER';
	}else if(document.all){
		return 'MSIE';
	} else {
		return 'OTHER';
	}
})();

/*
 * id名 -> element変換関数
 * prototype.jsの$関数のようなもの
 */
Cast.id2Elem = function() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
	var element = arguments[i];
	if (typeof element == 'string')
	  element = document.getElementById(element);
	if (arguments.length == 1)
	  return element;
	elements.push(element);
	}
	return elements;
};

/*
 * Listener登録 
 */
Cast.addListener = function(elem, eventType, func, cap) {
	if(elem.addEventListener){
		elem.addEventListener(eventType, func, cap);
	} else if(elem.attachEvent){
		elem.attachEvent('on'+eventType, func);
	} else {
		return false;
	}
};

/*
 * OGクライアントのインストール判定
 */
//IEでのインストールチェックvbスクリプト用グローバル変数
var Cast_isInstalledForVB = false;

// IEでのインストール判定
// ※cast.jsをインクルードしたscriptタグを抜けてからでないと、ここは有効にならないので注意
document.write('<scr'+'ipt language="VBScript" src="'+Cast.installVbUri+'"></scr'+'ipt>'),

//全体のインストール判定
Cast.checkInstalled = function() {
	if (Cast.myBrowser=='MSIE'){
		if(Cast_isInstalledForVB){ //既インストール
			return true;
		}else{	//未インストール
			return false;
		}
	} else if(Cast.myBrowser=='MOZILLA'){
		if(navigator.mimeTypes['application/x-castinggrid']){ //既インストール
			return true;
		}else{	//未インストール
			return false;
		}
	} else {
		return false;
	}
}

/*
 * インストール判別をするための関数
 */
Cast.getEnv = function() {
	var ret;
	// 未サポートOSの場合は画像だけの表示
	if(!Cast.isSupportedOS || Cast.myBrowser == 'OTHER'){
		ret='NO_SUPPORTED';
	} else if(!Cast.enableInstallCheck || Cast.checkInstalled()==true){//インストールチェックしない場合、強制的にインストール済みとする
		ret='INSTALLED';
	}else{
		ret='NO_INSTALLED';
	}
	return ret;
}

/*
 * OG形式の動画を埋め込む関数
 */
Cast.showMovie = function(args) {
	// urchinTracker
	Cast.ut('load');
	
	//動画のobjectタグにつけたidの重複回避用シーケンスナンバー
	if (typeof(Cast.movieSeq) == 'undefined') {
		Cast.movieSeq = 0;
	}

	//動画情報の管理用
	if (typeof(Cast.movieMgr) == 'undefined') {
		Cast.movieMgr = new Object();
	}

	// 環境の違いによる動画位置微調整用数値
	var hAdjustMargin = (Cast.myBrowser == 'MOZILLA') ? Cast.hAdjustMarginForMozilla : 0;	
	
	/*
	 * showMovie全体で使うパラメータ設定
	 */
	var w = (typeof(args.w) != 'undefined' && args.w != '') ? args.w : Cast.defaultWidth; //動画の縦幅
	var h = (typeof(args.h) != 'undefined' && args.h != '') ? args.h : Cast.defaultHeight; //動画の横幅
	
	var objId = 'Cast_movie_' + Cast.movieSeq++;	// OG動画のobjectタグにつけるidの値
	var divId = objId + '_div';							//OG動画のobjectタグの親要素のdivタグにつけるidの値
	var embId = objId + '_emb';						// OG動画のobjectタグの子要素のembedタグにつけるidの値
	var divStyles = 'margin-top:' + hAdjustMargin + 'px;';// OG動画のobjectタグの親要素のdivタグのstyle属性値
	var objStyles = '';									// OG動画のobjectタグのstyle属性値
	var embStyles = 'margin-top:3px';					// OG動画のembedタグのstyle属性値
	
	var objIdOfAd = objId + '_ad';							//待ちうけ用動画のobjectタグにつけるidの値
	var divIdOfAd = objId + '_ad_div'						//待ちうけ用動画のobjectタグの親要素のdivタグにつけるidの値
	var embIdOfAd = objId + '_ad_emb'					//待ちうけ用動画のobjectタグの子要素のembedタグにつけるidの値
	var divStylesOfAd = 'margin-top:-' + (h-hAdjustMargin) + 'px;';
	var objStylesOfAd = '';
	var embStylesOfAd = 'margin-top:3px;';
	
	var fRescueURI = '';// 強制的にWeb側で切り替える形式のユニキャストバックアップサーバ用URL
	var fRescueWait = Cast.defaultFRescueWait;// ユニキャストバックアップサーバに強制的にWeb側で切り替える待ち時間
	
	if(typeof(args.options) != 'undefined') {
		
		// 動画のタグのid属性値設定
		if(typeof(args.options.mainMovie) != 'undefined') {
			if(typeof(args.options.mainMovie.objectId) != 'undefined' && args.options.mainMovie.objectId != '') {
				objId = args.options.mainMovie.objectId;
			}
			if(typeof(args.options.mainMovie.divId) != 'undefined' && args.options.mainMovie.divId != '') {
				divId = args.options.mainMovie.divId;
			}
			if(typeof(args.options.mainMovie.embedId) != 'undefined' && args.options.mainMovie.embedId != '') {
				embId = args.options.mainMovie.embedId;
			}
			if(typeof(args.options.mainMovie.divStyles) != 'undefined' && args.options.mainMovie.divStyles != '') {
				divStyles = args.options.mainMovie.divStyles;
			}
			if(typeof(args.options.mainMovie.objectStyles) != 'undefined' && args.options.mainMovie.objectStyles != '') {
				objStyles = args.options.mainMovie.objectStyles;
			}
			if(typeof(args.options.mainMovie.embedStyles) != 'undefined' && args.options.mainMovie.embedStyles != '') {
				embStyles = args.options.mainMovie.embedStyles;
			}
		}
		
		if(typeof(args.options.adMovie) != 'undefined') {
			if(typeof(args.options.adMovie.objectId) != 'undefined' && args.options.adMovie.objectId != '') {
				objIdOfAd = args.options.adMovie.objectId;
			}
			if(typeof(args.options.adMovie.divId) != 'undefined' && args.options.adMovie.divId != '') {
				divIdOfAd = args.options.adMovie.divId;
			}
			if(typeof(args.options.adMovie.embedId) != 'undefined' && args.options.adMovie.embedId != '') {
				embIdOfAd = args.options.adMovie.embedId;
			}
			if(typeof(args.options.adMovie.divStyles) != 'undefined' && args.options.adMovie.divStyles != '') {
				divStylesOfAd = args.options.adMovie.divStyles;
			}
			if(typeof(args.options.adMovie.objectStyles) != 'undefined' && args.options.adMovie.objectStyles != '') {
				objStylesOfAd = args.options.adMovie.objectStyles;
			}
			if(typeof(args.options.adMovie.embedStyles) != 'undefined' && args.options.adMovie.embedStyles != '') {
				embStylesOfAd = args.options.adMovie.embedStyles;
			}
		}
		
		if(typeof(args.options.fRescue) != 'undefined') {
			if(typeof(args.options.fRescue.uri) != 'undefined' && args.options.fRescue.uri != '') {
				fRescueURI = args.options.fRescue.uri;
			}
			if(typeof(args.options.fRescue.wait) != 'undefined' && args.options.fRescue.wait != '') {
				fRescueWait = args.options.fRescue.wait;
			}
		}
		
		// 日本語版か英語版か、ここで確定
		if (typeof(args.options.lang) != 'undefined') {
			if (args.options.lang == 'ja') {
				Cast.lang = 'ja';
			} else {
				Cast.lang = 'en';
			}
		}

	}		
	if(Cast.lang == 'ja') { //デフォルトは英語			
		// OG形式動画未サポート時に出す画像
		Cast.noSupportedImgUri = Cast.noSupportedImgUri_Ja; 
		Cast.noSupportedSmallImgUri = Cast.noSupportedSmallImgUri_Ja; 

		// OGクライアント未インストール時に出す画像
		Cast.noInstalledImgUri = Cast.noInstalledImgUri_Ja;
		Cast.noInstalledSmallImgUri = Cast.noInstalledSmallImgUri_Ja;
		
		// OGクライアントインストーラ
		Cast.installerUri = Cast.installerUri_Ja; 
		
		Cast.msg1 = Cast.msg1_Ja;
	}
	
	
	// 表示領域により画像サイズを変更
	var noSupportedImgUri = (w < 400 || h < 300) ? Cast.noSupportedSmallImgUri : Cast.noSupportedImgUri;
	var noInstalledImgUri = (w < 400 || h < 300) ? Cast.noInstalledSmallImgUri : Cast.noInstalledImgUri;
	
	// 環境取得
	var env = Cast.getEnv();
	
	if(env == 'INSTALLED'){
		try{
			/*
			 * パラメータ設定
			 * 指定されていない場合はデフォルト値を設定
			 */
			// castキック用			
			var castOpts = {
				//ch: '0',
				port: (17013 + Math.floor(Math.random() * 1000)),
				wm: 'off',
				name: 'main',
				rs: 'on',
				castVer: Cast.Version
				//bua: '"'+navigator.userAgent+'"' //INFO: castコマンド文字列長が256を超える可能性がある
			};
			
			if (args.wm != 'undefined' && args.wm == 'on') {
				// popup形式の場合、fRescueしない
				Cast.adSrcUris = Cast.wmpopupSrcUris;
				fRescueWait = -1;
				castOpts.rescue = fRescueURI;
			} else {
				if(Cast.myBrowser == 'MSIE'){
					// IEのときのみ、ブラウザ側でrescueする
					castOpts.fRescueURI = fRescueURI;
					castOpts.fRescueWait = fRescueWait;
				} else {
					// IE以外はPlayState取得できないため、rescueはjava側に任せる
					castOpts.rescue = fRescueURI;
				}
			}
			
			var castUri = 'cast://';//castキック用URI			
			for(var k in args){
				if (k == 'w' || k == 'h' || k == 'options') continue;
				castOpts[k] = args[k];
			}
			
			for (var k in castOpts) {
				castUri += k + '=' + castOpts[k] + '&';
			}
			castUri = castUri.substring(0,castUri.length-1);//余分に付いた最後の'&'を削除
									
			// メイン動画用
			var mainMovType = 'WM';// TODO: WM以外の形式も対応したとき用
			var mainMovOpts = {
				AutoStart: '1', 
				ShowStatusBar: '1', 
				ShowCaptioning: '0', 
				ShowPositionControls: '0', 
				ShowTracker: '0', 
				EnableContextMenu: '0'
				//Volume: '-10000'
			};
			var mainMovParamStr = '';
			var mainMovEmbedStr = '';
			var mainMovObjectStr = '';
			
			// バッファリング動画用
			var adMovType = 'Flash';// NOTE: Flash以外の形式も対応したとき用
			var adMovOpts = {
				src: Cast.adSrcUris[(Math.floor(Math.random() * Cast.adSrcUris.length))],
				allowScriptAccess: 'sameDomain',
				menu: 'false',
				quality: 'high',
				bgcolor: '#ffffff'
			};			
			var adMovParamStr = '';
			var adMovEmbedStr = '';
			var adMovObjectStr = '';
			
			if(typeof(args.options) != 'undefined') {
				if(typeof(args.options.mainMovie) != 'undefined') {
					if(typeof(args.options.mainMovie.WM) != 'undefined') {
						mainMovType = 'WM';
						for(var k in args.options.mainMovie.WM){
							mainMovOpts[k] = args.options.mainMovie.WM[k];
						}
					}
				}
				if(typeof(args.options.adMovie) != 'undefined') {
					if(args.options.adMovie == 'None') {
						adMovType = 'None';
					} else if(typeof(args.options.adMovie.Flash) != 'undefined') {
						adMovType = 'Flash';
						for(var k in args.options.adMovie.Flash){
							adMovOpts[k] = args.options.adMovie.Flash[k];
						}
					} else {
						adMovOpts.scale = 'noscale';
					}
				}
			}
			for(var k in mainMovOpts) {
				mainMovParamStr += '<param name="' + k + '" value="'+ mainMovOpts[k] +'" />';
				mainMovEmbedStr += ' ' + k + '="' + mainMovOpts[k] + '" ';
			}
			for(var k in adMovOpts) {
				adMovParamStr += '<param name="' + k + '" value="'+ adMovOpts[k] +'" />';
				adMovEmbedStr += ' ' + k + '="' + adMovOpts[k] + '" ';
			}
			
			Cast.movieMgr[objId] = new Object();
			Cast.movieMgr[objId].objId = objId;
			Cast.movieMgr[objId].divId = divId;
			Cast.movieMgr[objId].divIdOfAd = divIdOfAd;
			Cast.movieMgr[objId].isStarted = false;
			Cast.movieMgr[objId].isFirst = true; //初めてcheckState()するときのチェック用フラグ(IE7+WMP11用)
			Cast.movieMgr[objId].startTime = new Date().getTime();  
			Cast.movieMgr[objId].fRescueURI = fRescueURI;
			Cast.movieMgr[objId].fRescueWait = fRescueWait;
			Cast.movieMgr[objId].isFRescued = false;
			
			// Buffering広告動画をランダムに設定
			var adSrcUri = Cast.adSrcUris[(Math.floor(Math.random() * Cast.adSrcUris.length))];

			//OG形式動画書き出し
			if(mainMovType == 'WM') {
				document.write(
					'<div id="'+divId+'" style="' + divStyles + '">'+ //TODO: hAdjustMarginがここだけうまくきいてない
					//'<div id="'+divId+'" style="margin-top:-2px;">'+
						'<object '+
							'id="'+objId+'" '+
							'width="'+w+'px" '+
							'height="'+h+'px" '+
							'classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" '+
							'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" '+
							'standby="Now loading Windows Media Player component..." '+
							'type="application/x-oleobject" '+
							'style="' + objStyles + '"'+
						'>'+
							'<param name="Filename" value="mms://localhost:'+castOpts.port+'" />'+ //NOTE: http://だと、パラメータがきかなくなった（IE6+wmp10で再現）
							mainMovParamStr +
							'<embed '+
								'id="'+embId+'" '+
								'width="'+w+'px" '+
								'height="'+h+'px" '+
								'src="mms://localhost:'+castOpts.port+'" '+
								'type="application/x-mplayer2" '+
								'pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" '+
								'style="' + embStyles + '" '+
								mainMovEmbedStr +
							'/>'+
						'</object>'+
					'</div>'+
				//	'<iframe src="'+ castUri +'" width="1" height="0" name="Cast_kick" id="Cast_kick" style="visibility:hidden"></iframe>'
					'<iframe width="1" height="0" name="Cast_kick" id="Cast_kick" style="visibility:hidden"></iframe>'
				);
			}
			//NOTE: document.writeだと、ブラウザリロードしたときに、（&以降についてキャッシュ的なものが残って？）前のcastキックをしてしまった（IE6で再現。Fx2では再現なし）
			Cast.id2Elem('Cast_kick').src=castUri; 
			
			//待ちうけ動画のタグ書き出し
			if(adMovType == 'Flash') {
				document.write(
					'<div id="'+divIdOfAd+'" style="' + divStylesOfAd + '">'+
					//'<div id="'+divIdOfAd+'">'+
						'<object '+
							'id="'+objIdOfAd+'" '+
							'width="'+w+'px" '+
							'height="'+h+'px" '+
							'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '+
							'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" '+
							'style="' + objStylesOfAd + '"'+
						'>'+
							adMovParamStr +
							'<embed '+
								'id="'+embIdOfAd+'" '+
								'name="'+embIdOfAd+'" '+
								'width="'+w+'px" '+
								'height="'+h+'px" '+
								'type="application/x-shockwave-flash" '+
								'pluginspage="http://www.macromedia.com/go/getflashplayer" '+
								'style="margin-top:-2px;" '+
								adMovEmbedStr +
							'/>'+
						'</object>'+
					'</div>'
				);
			}
			/*
			console.debug('castUri:'+castUri);
			console.debug('mainMovEmbedStr:'+mainMovEmbedStr);
			console.debug('mainMovParamStr:'+mainMovParamStr);
			console.debug('adMovEmbedStr:'+adMovEmbedStr);
			console.debug('adMovParamStr:'+adMovParamStr);
			*/
			// urchinTracker
			Cast.ut('play');
			
			//Cast動画は初めは隠しておく
			//objectタグIdのほうを隠すとWMPのボタンが押せない問題が発生したので、
			//divタグidの方を隠したり出したりするようにした
			if(adMovType != 'None') {
				Cast.id2Elem(divId).style.visibility='hidden';
			} else {
				Cast.id2Elem(divIdOfAd).style.display='none';
			}
			
			//状態チェック（IEのみ）＋後で待ち受け動画差し替え
			if(castOpts.wm != 'on') {
				if(Cast.myBrowser == 'MSIE'){
					Cast.intervalEvent=setInterval('Cast.checkState()', 3000);
				}else{
					Cast.intervalEvent=setInterval('Cast.checkState()', Cast.adWaitingTime);
				}
			} else {
				//do nothing
			}
			
			// Listener登録
			//addListener(body, 'oncontextmenu', function(){return false;}, false);
		} catch(ex){
			console.debug(ex);
		}
	}else if(env == 'NO_SUPPORTED'){
		document.write('<div id="'+divId+'" style="margin-top:'+hAdjustMargin+'px;width:'+w+'px;height:'+h+'px;padding:0px;position:relative;"><table width='+w+'px height='+h+'><tr><td align="center"><img src="'+noSupportedImgUri+'" border="0" /></td></tr></table></div>');
	}else if(env == 'NO_INSTALLED'){
		if(typeof(args.options) == 'undefined' || typeof(args.options.noInstalledMovie == 'undefined')) {
			//未インストール画像（noInstalledImgUri）表示（デフォルトはこちら）
			document.write('<div id="'+divId+'" style="margin-top:'+hAdjustMargin+'px;width:'+w+'px;height:'+h+'px;padding:0px;position:relative;"><table width='+w+'px height='+h+'><tr><td align="center"><a href="'+Cast.installerUri+'" onClick="javascript:Cast.ut(\'download\');"><img src="'+noInstalledImgUri+'" border="0" /></td></tr></table></div>');
		} else {
			//未インストール時にFlashを出す場合
			if(typeof(args.options.noInstalledMovie.Flash) != 'undefined') {
				var adMovOpts = {
					src: args.options.noInstalledMovie.Flash.src,
					allowScriptAccess: 'sameDomain',
					menu: 'false',
					quality: 'high',
					bgcolor: '#ffffff',
					FlashVars: args.options.noInstalledMovie.Flash.FlashVars
				};
				
				for(var k in args.options.noInstalledMovie.Flash){
					adMovOpts[k] = args.options.noInstalledMovie.Flash[k];
				}
				var adMovParamStr = '';
				var adMovEmbedStr = '';
				for(var k in adMovOpts) {
					adMovParamStr += '<param name="' + k + '" value="'+ adMovOpts[k] +'">';
					adMovEmbedStr += ' ' + k + '="' + adMovOpts[k] + '" ';
				}
				document.write(
					'<div id="'+divId+'" style="width:'+w+'px;height:'+h+'px;padding:0px;position:relative;text-align:center;">'+
						'<object '+
							'width="'+w+'px" '+
							'height="'+h+'px" '+
							'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '+
							'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" '+
						'>'+
							adMovParamStr +
							'<embed '+
								'width="'+w+'px" '+
								'height="'+h+'px" '+
								'type="application/x-shockwave-flash" '+
								'pluginspage="http://www.macromedia.com/go/getflashplayer" '+
								'style="margin-top:-2px;" '+
								adMovEmbedStr +
							'/>'+
						'</object>'+
					'</div>'
				);
			}
		}
	}

}

/*
 * 3秒に1回再生できているかどうか確認する＋待ち受け動画差し替え関数
 * 再生できていないオブジェクトは強制的に再生させる
 */
Cast.checkState = function() {
	//try{
		for(var objId in Cast.movieMgr){
			var playerCtrl=Cast.id2Elem(Cast.movieMgr[objId].objId);
			var divElm=Cast.id2Elem(Cast.movieMgr[objId].divId);
			var divElmAd=Cast.id2Elem(Cast.movieMgr[objId].divIdOfAd);
			var fRescueURI = Cast.movieMgr[objId].fRescueURI;
			var fRescueWait = Cast.movieMgr[objId].fRescueWait;
			var fRescueStartTime = Cast.movieMgr[objId].startTime + fRescueWait;
			
			if (Cast.myBrowser == 'MSIE') {//IEの場合、状態を見つつcast動画だす
				if(fRescueWait >= 0 && new Date().getTime() > fRescueStartTime
						&&Cast.movieMgr[objId].isStarted == false 
						&& Cast.movieMgr[objId].isFRescued == false) {
					if(fRescueURI == '') {
						window.alert(Cast.msg1);
						//playerCtrl.stop();
						//playerCtrl.FileName = '';
						//playerCtrl.play();
					} else {
						playerCtrl.stop();
						playerCtrl.BufferingTime = 5;
						playerCtrl.FileName = fRescueURI;
						playerCtrl.play();
						divElmAd.style.display='none';
						divElm.style.visibility='visible';
					}
					Cast.movieMgr[objId].isFRescued = true;
					continue;
				}
				
				if(Cast.movieMgr[objId].isFirst){// add
					playerCtrl.BufferingTime = 0;
					playerCtrl.stop();
					Cast.movieMgr[objId].isFirst = false;
				}
				
				if(playerCtrl.PlayState!=2&&playerCtrl.PlayState!=3){//2:Paused, 3:Playing
					playerCtrl.stop();// add
					playerCtrl.play();
				}else{
					playerCtrl.play(); // add
					if(!Cast.movieMgr[objId].isStarted&&playerCtrl.BufferingCount>0){
						divElmAd.style.display='none';
						divElm.style.visibility='visible';
						Cast.movieMgr[objId].isStarted=true;
					}
					/*if(checkStateHash[objId]!=null&&checkStateHash[objId]!=""){
						clearInterval(checkStateHash[objId]);
						checkStateHash[objId]=null;
					}*/
				}
			} else {//IE以外の場合、一定時間後決めうちでcast動画だす
				divElmAd.style.display='none';
				divElm.style.visibility='visible';
				divElm.style.display='inline';
				Cast.movieMgr[objId].isStarted=true;
			}
		}
		
		//IE以外は定期的状態チェックしない
		if(Cast.myBrowser != 'MSIE'){
			if(Cast.intervalEvent!=null){
				clearInterval(Cast.intervalEvent);
			}
		}
	/*} catch(ex) {
		//ignore
		//MediaPlayerを埋め込んだページでonUnloadの瞬間にState取得をすると
		//Scriptエラーが発生するのでそれを無視するための例外処理
		//console.debug(ex);
		window.alert(ex);
	}*/
	
}

//IE用
if (typeof(console) == 'undefined') {
	console = {};
	if (typeof(console.log) == 'undefined') {
		console.log = function() {};
	}
	if (typeof(console.debug) == 'undefined') {
		console.debug = function() {};
	}
}

