/******************************************************************************
	初期設定
******************************************************************************/
//本体swf
var bpSWF_GA_Machigai = 'http://www.cocacola.co.jp/blogparts/ga/cp/blogparts.swf';

//もこもこswfのファイル名,幅,高さ
var moco1SWF_GA_Machigai = ['http://www.cocacola.co.jp/blogparts/ga/cp/moco1.swf', 200, 400];
var moco2SWF_GA_Machigai = ['http://www.cocacola.co.jp/blogparts/ga/cp/moco2.swf', 300, 480];
var moco3SWF_GA_Machigai = ['http://www.cocacola.co.jp/blogparts/ga/cp/moco3.swf', 500, 600];
var moco4SWF_GA_Machigai = ['http://www.cocacola.co.jp/blogparts/ga/cp/moco4.swf', 1600, 1300];

//画面ジャック用swf
var gsFloatSwf_GA_Machigai = 'http://www.cocacola.co.jp/blogparts/ga/cp/floating.swf';
var gsFloatingBg_GA_Machigai = "";

var gsFloatId_GA_Machigai = "Floating_GA_Machigai";
var gsFloatBgId_GA_Machigai = "FloatingBg_GA_Machigai";
var gsTickerId_GA_Machigai = "Ticker_GA_Machigai";

var giFloatLeft_GA_Machigai = 0;

// フロートTickerを表示する
var gbShowFlg_GA_Machigai = 0;
var giFloatNum_GA_Machigai = 0;

// MacIEチェックを行う
bMacIeFlg_GA_Machigai = CheckMacIe_GA_Machigai();

/******************************************************************************
	ブログパーツを貼り付け
******************************************************************************/
var bpHtml_GA_Machigai = "";
bpHtml_GA_Machigai += '<div style="width:160px; height:380px;position:relative;">';

bpHtml_GA_Machigai += '<div id="moco4DIV_GA_Machigai" style="width:160px; height:380px;position:absolute;left:0;top:0;">';
bpHtml_GA_Machigai += '</div>';
bpHtml_GA_Machigai += '<div id="moco3DIV_GA_Machigai" style="width:160px; height:380px;position:absolute;left:0;top:0;">';
bpHtml_GA_Machigai += '</div>';
bpHtml_GA_Machigai += '<div id="moco2DIV_GA_Machigai" style="width:160px; height:380px;position:absolute;left:0;top:0;">';
bpHtml_GA_Machigai += '</div>';
bpHtml_GA_Machigai += '<div id="moco1DIV_GA_Machigai" style="width:160px; height:380px;position:absolute;left:0;top:0;">';
bpHtml_GA_Machigai += '</div>';

bpHtml_GA_Machigai += '<div style="width:160px; height:380px;position:absolute;left:0;top:0;">';
bpHtml_GA_Machigai += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="160" height="380" align="middle">';
bpHtml_GA_Machigai += '<param name="allowScriptAccess" value="always" />';
bpHtml_GA_Machigai += '<param name="movie" value="' + bpSWF_GA_Machigai + '" />';
bpHtml_GA_Machigai += '<param name="quality" value="high" />';
bpHtml_GA_Machigai += '<param name="wmode" value="transparent" />';
bpHtml_GA_Machigai += '<param name="salign" value="lt" />';
bpHtml_GA_Machigai += '<param name="SWLIVECONNECT" value="TRUE" />';
bpHtml_GA_Machigai += '<embed SWLIVECONNECT="TRUE" salign="lt" align="middle" src="' + bpSWF_GA_Machigai + '" quality="high" width="160" height="380" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" />';
bpHtml_GA_Machigai += '</object>';
bpHtml_GA_Machigai += '</div>';

bpHtml_GA_Machigai += '</div>';

// ブログパーツを挿入する
document.write(bpHtml_GA_Machigai);

/********************************************************************************
	関数名		ShowMocoMoco
	機能		モコモコを表示する
********************************************************************************/
function ShowMocoMoco(level){
	if(level < 5){
		switch(level){
			case 1 :
				var mswf = moco1SWF_GA_Machigai;
				break;
			case 2 :
				var mswf = moco2SWF_GA_Machigai;
				break;
			case 3 :
				var mswf = moco3SWF_GA_Machigai;
				break;
			case 4 :
				var mswf = moco4SWF_GA_Machigai;
				break;
			default:
				break;
		}
		var mdivID = 'moco'+level+'DIV_GA_Machigai';
		var mdiv = document.getElementById(mdivID);
		var mocoSWF_GA_Machigai = mswf[0];
		var mdivW = mswf[1];
		var mdivH = mswf[2];
		var mdivL = (160 - mdivW) / 2;
		var mdivT = (380 - mdivH) / 2;
		
		//メモ
		//160 + Math.pow(2, level) * 30
		//380 + Math.pow(2, level) * 15
		//alert('flashのサイズ = '+ mdivW + '×' + mdivH);
		
		mdiv.style.width = mdivW + 'px';
		mdiv.style.height = mdivH + 'px';
		mdiv.style.left = mdivL + 'px';
		mdiv.style.top = mdivT + 'px';

		var mocoHtml_GA_Machigai = "";
		mocoHtml_GA_Machigai += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + mdivW + '" height="' + mdivH + '" align="middle">';
		mocoHtml_GA_Machigai += '<param name="allowScriptAccess" value="always" />';
		mocoHtml_GA_Machigai += '<param name="movie" value="' + mocoSWF_GA_Machigai + '" />';
		mocoHtml_GA_Machigai += '<param name="quality" value="high" />';
		mocoHtml_GA_Machigai += '<param name="wmode" value="transparent" />';
		mocoHtml_GA_Machigai += '<param name="salign" value="lt" />';
		mocoHtml_GA_Machigai += '<param name="SWLIVECONNECT" value="TRUE" />';
		mocoHtml_GA_Machigai += '<embed SWLIVECONNECT="TRUE" salign="lt" align="middle" src="' + mocoSWF_GA_Machigai + '" quality="high" width="' + mdivW + '" height="' + mdivH + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" />';
		mocoHtml_GA_Machigai += '</object>';
		
		mdiv.innerHTML = mocoHtml_GA_Machigai;
	} else {
		//全画面ジャック
		ShowJackMM(1);
	}
}

/********************************************************************************
	関数名		HideMocoMoco
	機能		モコモコを非表示する
********************************************************************************/
function HideMocoMoco(){
	for(var i=1; i<=4; i++){
		var mdivID = 'moco'+i+'DIV_GA_Machigai';
		var mdiv = document.getElementById(mdivID);
		mdiv.innerHTML = "";
	}
}

/********************************************************************************
	関数名		ShowJackMM
	機能		Flashレイヤーを表示、非表示する
	
	ポイント	フローティングレイヤーの表示サイズは
				SWFをクリックするたびに再計算する。
				
				フローティングレイヤーの中身を新しいSWFソースで入れ替えることで
				Flashを初期化する。
				
				MacIEの場合のみ、表示、非表示のたびに
				レンダリングしなおすために、スクロール処理を入れる。
	
	入力		sMode	1:表示  0:非表示
	出力		なし
	
	処理概要	
				1. 現在表示されている場合
				 1.0. オブジェクト名を作成する
				 1.1. 表示モードの場合
				  1.1.2. ポジションを移動して終了する
				 1.2. 非表示モードの場合
				  1.2.2. 対象オブジェクトを削除する
				2. 現在表示されていない場合
				 2.1. 表示モードの場合
				  2.1. フロートオブジェクトを作成する
				  2.2. フロートオブジェクトIDを作成する
				  2.3. フロートオブジェクトをbodyに追加する
				 2.2. 非表示モードの場合
				  2.2.1. 何もしない
				3. MacIEの場合
				 3.1. 再レンダリングする
********************************************************************************/
function ShowJackMM(sMode){
	var oLayer;
	var sId;
	var iLayerTop;
	var iLayerWidth;
	var iLayerHeight;


	// 非表示モードの場合
	if(sMode != 1) {
		
		
		location.reload();
		return;
		
		// オブジェクトIDを作成する
		sId = gsFloatId_GA_Machigai;
		oLayer = document.getElementById(sId);
		
		// オブジェクトを削除する
		oLayer.style.display='none';
		oLayer.innerHTML='';

		// オブジェクトIDを作成する
		sId = gsFloatBgId_GA_Machigai;
		oLayer = document.getElementById(sId);
		
		// オブジェクトを削除する
		oLayer.style.display='none';
		oLayer.innerHTML='';
		
		// フラグを更新する
		gbShowFlg_GA_Machigai = 0;
		
		// 自動調整をオフにする
		clearInterval(iIntervalId);
		clearInterval(iIntervalBgId);
		
		return;
	}
	
	
	// 現在表示されている場合
	if(gbShowFlg_GA_Machigai == 1){

		return;
			
		
	// 現在表示されていない場合
	} else {
		
		// 表示モードの場合
		if(sMode == 1){
			// 背景ボックスを作成する ***************************************
			// オブジェクトを作成する
			oLayer = document.createElement('DIV');
			oLayer.id = gsFloatBgId_GA_Machigai;
			oLayer.style.position = "absolute";
			oLayer.style.zIndex = getZIndex_GA_Machigai();
			oLayer.style.display = "block";
			
			// フローティングレイヤーのサイズを算出する
			iLayerWidth = GetWindowSize_GA_Machigai("width");
			iLayerHeight = GetWindowSize_GA_Machigai("height");
			if(CheckBrowserModeForTicker_GA_Machigai()){
				oLayer.style.width = iLayerWidth + "px";
				oLayer.style.height = iLayerHeight + "px";
				oLayer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + gsFloatingBg_GA_Machigai  + ", sizingmethod=scale)";
			} else {
				oLayer.style.width = "100%";
				oLayer.style.height = "100%";
				oLayer.style.backgroundImage = "url('" + gsFloatingBg_GA_Machigai + "')";
			}
			// フローティングレイヤーにスタイルを指定する
			oLayer.style.top = GetScrollPosition_GA_Machigai("top") + "px";
			oLayer.style.left = GetScrollPosition_GA_Machigai("left") + "px";
			// SWFタグを作成する
			var sHtml = "&nbsp;";
			
			// SWFを挿入する
			oLayer.innerHTML = sHtml;
			
			// オブジェクトを追加する
			document.getElementsByTagName('body')[0].appendChild(oLayer);
			iIntervalBgId = setInterval("SetLayPosition_GA_Machigai('" + gsFloatBgId_GA_Machigai + "')", 100);
			
			// Flash表示用レイヤー { ***************************************
			
			// オブジェクトを作成する
			oLayer = document.createElement('DIV');
			oLayer.id = gsFloatId_GA_Machigai;
			oLayer.style.position = "absolute";
			oLayer.style.zIndex = 1000;
			oLayer.style.display = "block";
			
			// フローティングレイヤーのサイズを算出する
			iLayerWidth = GetWindowSize_GA_Machigai("width");
			iLayerHeight = GetWindowSize_GA_Machigai("height");
			if(CheckBrowserModeForTicker_GA_Machigai()){
				oLayer.style.width = iLayerWidth + "px";
				oLayer.style.height = iLayerHeight + "px";
				floatingWidth = iLayerWidth;
				floatingHeight = iLayerHeight;
			} else {
				oLayer.style.width = "100%";
				oLayer.style.height = "100%";
				floatingWidth = iLayerWidth;
				floatingHeight = iLayerHeight;
			}
			// フローティングレイヤーにスタイルを指定する
			oLayer.style.top = GetScrollPosition_GA_Machigai("top") + "px";
			oLayer.style.left = GetScrollPosition_GA_Machigai("left") + "px";
			// SWFタグを作成する
			var sHtml = "";
			sHtml += '<table style="background-color:transparent; border:none; padding:0; margin:0; text-align:center; vertical-align:middle"  border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">';
			sHtml += '<tr><td align="center" valign="middle" style="padding:0; margin:0; border:none; background-color:transparent; text-align:center; vertical-align:middle">';
			sHtml += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+floatingWidth+'" height="'+floatingHeight+'" align="middle" id="object_bp_GA_Machigai">';
			sHtml += '<param name="allowScriptAccess" value="always" />';
			sHtml += '<param name="movie" value="' + gsFloatSwf_GA_Machigai + '" />';
			sHtml += '<param name="quality" value="high" />';
			sHtml += '<param name="wmode" value="transparent" />';
			sHtml += '<param name="salign" value="lt" />';
			sHtml += '<param name="SWLIVECONNECT" value="TRUE" />';
			sHtml += '<embed SWLIVECONNECT="TRUE" salign="lt" align="middle" src="' + gsFloatSwf_GA_Machigai + '" quality="high" width="'+floatingWidth+'" height="'+floatingHeight+'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" id="embed_bp_GA_Machigai"/>';
			sHtml += '</object></td></tr></table>';
			
			
			// SWFを挿入する
			oLayer.innerHTML = sHtml;
			
			// オブジェクトを追加する
			document.getElementsByTagName('body')[0].appendChild(oLayer);
			iIntervalId = setInterval("SetLayPosition_GA_Machigai('" + gsFloatId_GA_Machigai + "')", 100);
			
			
			// フラグを変更する
			gbShowFlg_GA_Machigai = 1;
			
			//ウインドウのリサイズ時
			window.onresize = windowResize_GA_Machigai;
			
			
			
		}
	}
	
	// MacIEの場合
	if(bMacIeFlg_GA_Machigai == 1){
		// 再レンダリングする
		window.scrollBy(0, 1);
	}
}

/********************************************************************************
	関数名		getZIndex_GA_Machigai
	機能		最大のz-indexを取得
********************************************************************************/
function getZIndex_GA_Machigai(){
	var largestZIndex = 0; 
	var defaultView = document.defaultView;
	var func = function(tagname){
		var elems = document.getElementsByTagName(tagname), len=elems.length;
		for(var i=0; i<len; i++){
			var elem = elems[i];
			var zIndex = elem.style.zIndex;
			if (!zIndex) {
				var css = elem.currentStyle || defaultView.getComputedStyle(elem,null);
				zIndex = css ? css.zIndex : 0;
			}
			zIndex -= 0;
			if(largestZIndex < zIndex) largestZIndex=zIndex;
		}
	};
	if(arguments.length == 0) func('*');
	else for(var i=0; i<arguments.length; i++) func(arguments[i]);
	return largestZIndex;
}
/********************************************************************************
	関数名		windowResize_GA_Machigai
	機能		Flashエリアをリサイズ
********************************************************************************/
function windowResize_GA_Machigai(){
	document.getElementById("object_bp_GA_Machigai").style.width = GetWindowSize_GA_Machigai("width")+"px";
	document.getElementById("object_bp_GA_Machigai").style.height = GetWindowSize_GA_Machigai("height")+"px";
	document.getElementById("embed_bp_GA_Machigai").style.width = GetWindowSize_GA_Machigai("width")+"px";
	document.getElementById("embed_bp_GA_Machigai").style.height = GetWindowSize_GA_Machigai("height")+"px";
}

function SetLayPosition_GA_Machigai(sId){
	var oTarget = document.getElementById(sId);

	if(CheckBrowserModeForTicker_GA_Machigai()){
		oTarget.style.width = GetWindowSize_GA_Machigai("width") + "px";
		oTarget.style.height = GetWindowSize_GA_Machigai("height") + "px";
	}
	
	oTarget.style.top = GetScrollPosition_GA_Machigai("top") + "px";
	oTarget.style.left = GetScrollPosition_GA_Machigai("left") + "px";
}

/********************************************************************************
	関数名		GetMiddlePosition
	機能		現在のスクロール位置でのミドルポジションを取得する
	
	入力		sMode			top / left
	出力		iPositionX		X座標
				iPositionY		Y座標
	
	処理概要	1. Windowサイズを取得する
				2. スクロール位置を取得する
				3. ミドルポジションを算出する
				4. ミドルポジションを返して終了する
********************************************************************************/
function GetMiddlePosition_GA_Machigai(sMode){
	
	// Windowサイズを取得する
	var iWindowWidth, iWindowHeight;
	iWindowWidth = GetWindowSize_GA_Machigai('width');
	iWindowHeight = GetWindowSize_GA_Machigai('height');
	
	// スクロール位置を取得する
	var iScrollTop, iScrollLeft;
	iScrollTop = GetScrollPosition_GA_Machigai('top');
	iScrollLeft = GetScrollPosition_GA_Machigai('left');
	
	// ミドルポジションを算出する
	var iMiddleTop = iWindowHeight / 2 + iScrollTop;
	var iMiddleLeft = iWindowWidth / 2 + iScrollLeft;
	
	// topを返す場合
	if(sMode == "top"){
		return iMiddleTop;
	} else {
		return iMiddleLeft;
	}
	
}

/********************************************************************************
	関数名		GetScrollPosition_GA_Machigai
	機能		スクロール位置を算出する
	
	入力		sMode		top / left
	出力		iPosition
********************************************************************************/
function GetScrollPosition_GA_Machigai(sMode){

	var iScrollPosition;

	if(sMode == "left"){
		if(self.pageXOffset){
			iScrollPosition = self.pageXOffset;
		// Explorer 6 Strict
		}else if(document.documentElement && document.documentElement.scrollLeft){
			iScrollPosition = document.documentElement.scrollLeft;
		// all other Explorers
		}else if(document.body){
			iScrollPosition = document.body.scrollLeft;
		}
	} else {

		if(self.pageYOffset){
			iScrollPosition = self.pageYOffset;
		// Explorer 6 Strict
		}else if(document.documentElement && document.documentElement.scrollTop){
			iScrollPosition = document.documentElement.scrollTop;
		// all other Explorers
		}else if(document.body){
			iScrollPosition = document.body.scrollTop;
		}
	}
	
	return iScrollPosition;
}

/********************************************************************************
	関数名		GetWindowSize_GA_Machigai
	機能		ウィンドウサイズを取得する
	
	入力		sMode		"width" | "height"
*********************************************************************************/
function GetWindowSize_GA_Machigai(sMode){
	var iWindowWidth, iWindowHeight;
	
	// all except Explorer
	if(self.innerHeight){
		iWindowWidth = self.innerWidth;
		iWindowHeight = self.innerHeight;
	// Explorer 6 Strict Mode
	}else if(document.documentElement && document.documentElement.clientHeight){
		iWindowWidth = document.documentElement.clientWidth;
		iWindowHeight = document.documentElement.clientHeight;
	// other Explorers
	}else if(document.body){
		iWindowWidth = document.body.clientWidth;
		iWindowHeight = document.body.clientHeight;
	}
	
	if(sMode == "width"){
		return (iWindowWidth);
	} else {
		return (iWindowHeight);
	}
}
	

/********************************************************************************
	関数名		CheckMacIe_GA_Machigai
	機能		MacIEであることをチェックする
********************************************************************************/
function CheckMacIe_GA_Machigai(){
	var sOs = GetOsName_GA_Machigai();
	var sNavigator = GetNavigatorName_GA_Machigai();
	
	if((sOs == "MacOSX" || sOs == "MacOS") && sNavigator == "Explorer"){
		return true;
	} else {
		return false;
	}
}

/********************************************************************************
	関数名		CheckBrowserModeForTicker_GA_Machigai
				GetOsName_GA_Machigai
				GetNavigatorName_GA_Machigai
	
	機能		ブラウザチェック
*********************************************************************************/
function CheckBrowserModeForTicker_GA_Machigai(){
	var sOs = GetOsName_GA_Machigai();
	var sBrowser = GetNavigatorName_GA_Machigai();

	if(sOs == "Windows" && sBrowser == "Explorer"){
		return true;
	}
	return false;
}


	
/********************************************************************************
	関数名		GetOsName_GA_Machigai
	機能		OS情報を取得する
	
	入力		なし
	出力		sOsData		Os情報 ("MacOSX","Windows")
********************************************************************************/
function GetOsName_GA_Machigai()
{
	var uAgent  = navigator.userAgent.toUpperCase();
	if (uAgent.indexOf("MAC OS X") >= 0) return "MacOSX";
	if (uAgent.indexOf("MAC") >= 0) return "MacOS";
	if (uAgent.indexOf("WIN") >= 0) return "Windows";
	if (uAgent.indexOf("X11") >= 0) return "UNIX";
	return "";
}
function GetNavigatorName_GA_Machigai(){
	if(navigator.IBM_HPR) return "HomepageReader";
	
	aName  = navigator.userAgent.toUpperCase();
	if (aName.indexOf("SAFARI") >= 0) return "Safari";
	if (aName.indexOf("CHIMERA") >= 0) return "Camino";
	if (aName.indexOf("OPERA") >= 0) return "Opera";
	
	aName = navigator.appName.toUpperCase();
	if (aName.indexOf("NETSCAPE") >= 0)  return "Netscape";
	if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
	return "";
}

