var gsLocal = window.location.protocol + "//" + window.location.host;
var gsFloatBg = "/img/overlay.png";

var gsFloatId = "Floating";
var gsFloatBgId = "FloatingBg";
var gsTickerId = "Ticker";
var gbShowFlg = 0;

var gsImage;		// 画像データ格納場所

var iTimeoutId;
var iTimeoutBgId;
var iIntervalId;
var iIntervalBgId;
var appGradientId;
var appGradientBgId;

var counta = 0;

function ansWidth_atOnce(elem) {
	elem.style.width = ((getImageWidth('FloatImage') > getImageHeight('FloatImage')) ? "800px" : "auto");
}

function ansHeight_atOnce(elem) {
	elem.style.Height = ((getImageHeight('FloatImage') > getImageWidth('FloatImage')) ? "600px" : "auto");
}

function getImageWidth(myid) {
	
	var newImg = new Image();
	newImg.src = document.getElementById(myid).src;
	var width = newImg.width;
	return width;
}

function getImageHeight(myid) {
	
	var newImg = new Image();
	newImg.src = document.getElementById(myid).src;
	var height = newImg.height;
	return height;
}

/***************************************************************************/
//  関数名    : ShowFloat
//  機 能     : フローティングパーツを表示する
//  引 数     : psMon : 月
//  戻ﾘ値     : 正常=true､その他=false
//  作成者    : 中村　一成
//  作成日    : 2011/06/16
//  修正履歴  :
/***************************************************************************/
function ShowFloat(sMode){

	var oLayer;
	var sId;
	var userAgent1 = navigator.userAgent.toUpperCase();
	var userAgent2 = navigator.appName.toUpperCase();
	var iLayerW;
	var iLayerH;
	var iWin;

	// 非表示モードの場合
	if(sMode < 1) {
		
		// オブジェクトIDを作成する
		sId = gsFloatId;
		oLayer = document.getElementById(sId);

		// オブジェクトを削除する
		oLayer.style.display='none';
		oLayer.innerHTML='';
		document.getElementsByTagName('body')[0].removeChild(oLayer);

		// オブジェクトIDを作成する
		sId = gsFloatBgId;
		oLayer = document.getElementById(sId);

		// オブジェクトを削除する
		oLayer.style.display='none';
		oLayer.innerHTML='';
		document.getElementsByTagName('body')[0].removeChild(oLayer);
		
		// フラグを更新する
		gbShowFlg = 0;

		// 自動調整をオフにする
		clearInterval(iIntervalId);
		clearInterval(iIntervalBgId);

		return;
		
	}

	// 現在表示されている場合
	if(gbShowFlg == 1){

		return;
			
	} else {

		// レイヤー背景部分作成
		// オブジェクトを作成する
		oLayer = document.createElement('DIV');
		oLayer.id = gsFloatBgId;

		oLayer.style.position = "absolute";
		oLayer.style.zIndex = 999;
		oLayer.style.display = "block";

		iLayerW = GetWindowSize("w");
		iLayerH = GetWindowSize("h");

		iWin = 0;
		if(userAgent1.indexOf("WIN") >= 0){
			iWin = 1;
		}
		if(userAgent2.indexOf("MICROSOFT") >= 0){
			iWin = 1;
		}
		
		// フローティングレイヤーのサイズ
		if(iWin){
			oLayer.style.width = iLayerW + "px";
			oLayer.style.height = iLayerH + "px";
			oLayer.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + gsLocal + gsFloatBg  + ", sizingmethod=scale)";
		} else {
			oLayer.style.width = "100%";
			oLayer.style.height = "100%";
			oLayer.style.backgroundImage = "url('" + gsLocal + gsFloatBg + "')";
		}

		// フローティングレイヤーにスタイルを指定する
		oLayer.style.top = GetScrollPos("t") + "px";
		oLayer.style.left = GetScrollPos("l") + "px";

		// HTML作成
		var sHtml = "";

		// HTMLを挿入する
		oLayer.innerHTML = sHtml;

		// オブジェクトを追加する
		document.getElementsByTagName('body')[0].appendChild(oLayer);

		iIntervalBgId = setInterval("SetLayPos('" + gsFloatBgId + "', " + iWin + ")", 20);

		// レイヤー表示部分作成
		// オブジェクトを作成する
		oLayer = document.createElement('DIV');
		oLayer.id = gsFloatId;

		oLayer.style.position = "absolute";
		oLayer.style.zIndex = 999;
		oLayer.style.display = "block";
		oLayer.style.filter = "alpha(style=0, opacity=0);";

		// フローティングレイヤーのサイズ
		if(iWin){
			oLayer.style.width = iLayerW + "px";
			oLayer.style.height = iLayerH + "px";
		} else {
			oLayer.style.width = "100%";
			oLayer.style.height = "100%";
		}
		
		// フローティングレイヤーにスタイルを指定する
		oLayer.style.top = GetScrollPos("t") + "px";
		oLayer.style.left = GetScrollPos("l") + "px";

		// HTML作成
		var sHtml = "";

		sHtml += '<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">';
		sHtml += '<tr><td align="center" valign="middle">';
		sHtml += '<img src="' + gsImage + '" border="0" alt="「クリック」で閉じる" id="FloatImage" class="Float" onClick="javascript: ShowFloat(0);" onLoad="javascript: ansWidth_atOnce(this); ansHeight_atOnce(this);">';
		sHtml += '</td></tr></table>';

		// HTMLを挿入する
		oLayer.innerHTML = sHtml;

		// オブジェクトを追加する
		document.getElementsByTagName('body')[0].appendChild(oLayer);

		iIntervalId = setInterval("SetLayPos('" + gsFloatId + "', " + iWin + ")", 20);
		iTimeoutId = setTimeout("appGradient('" + gsFloatId + "')", 200);

		// フラグを変更する
		gbShowFlg = 1;

	}
}

/***************************************************************************/
//  関数名    : SetLayPos
//  機 能     : フローティングレイヤーの表示部分
//  引 数     : sId, piWin
//  戻ﾘ値     : なし
//  作成者    : 中村　一成
//  作成日    : 2011/11/20
//  修正履歴  :
/***************************************************************************/
function SetLayPos(sId, piWin){
	
	var oTarget = document.getElementById(sId);

	if(piWin){
		oTarget.style.width = GetWindowSize("w") + "px";
		oTarget.style.height = GetWindowSize("h") + "px";
	}
	
	oTarget.style.top = GetScrollPos("t") + "px";
	oTarget.style.left = GetScrollPos("l") + "px";

}

/***************************************************************************/
//  関数名    : appGradient
//  機 能     : グラデーション表示、消去
//  引 数     : sId, Flg
//  戻ﾘ値     : なし
//  作成者    : 中村　一成
//  作成日    : 2011/12/04
//  修正履歴  :
/***************************************************************************/
function appGradient(sId){

	// アニメーションオブジェクト
	var easeOutCubic = JSTweener.easingFunctions.easeOutCubic;
	var begin = new Date() - 0;
	var from = 0;			// 初期値
	var distance = 100;		// 変動値
	var duration = 1000;	// 継続時間

	var oTarget = document.getElementById(sId);

	appGradientId = setInterval(function(){
		var time = new Date() - begin; // 経過時間
		var current = easeOutCubic(time, from, distance, duration);

		if (time > duration){
			clearInterval(appGradientId);
			current = from + distance;
		}
		oTarget.style.filter = "alpha(style=0, opacity=" + current + ");";
	}, 20);

}

/***************************************************************************/
//  関数名    : GetScrollPos
//  機 能     : スクロール位置を算出する
//  引 数     : sMode : l, t
//  戻ﾘ値     : サイズ
//  作成者    : 中村　一成
//  作成日    : 2011/06/16
//  修正履歴  :
/***************************************************************************/
function GetScrollPos(sMode){

	var iScrollPos;

	if(sMode == "l"){
		
		if(self.pageXOffset){
			iScrollPos = self.pageXOffset;
		} else if(document.documentElement && document.documentElement.scrollLeft){
			iScrollPos = document.documentElement.scrollLeft;
		} else if(document.body){
			iScrollPos = document.body.scrollLeft;
		}
	} else {

		if(self.pageYOffset){
			iScrollPos = self.pageYOffset;
		} else if(document.documentElement && document.documentElement.scrollTop){
			iScrollPos = document.documentElement.scrollTop;
		} else if(document.body){
			iScrollPos = document.body.scrollTop;
		}
	}
	
	return iScrollPos;
}

/***************************************************************************/
//  関数名    : GetWindowSize
//  機 能     : 現在のウィンドウサイズを取得する
//              現在の日付以前は選択できないようにする
//  引 数     : sMode : h, w
//  戻ﾘ値     : サイズ
//  作成者    : 中村　一成
//  作成日    : 2011/06/16
//  修正履歴  :
/***************************************************************************/
function GetWindowSize(sMode){
	
	var iWinW, iWinH;
	
	if(self.innerHeight){
		iWinW = self.innerWidth;
		iWinH = self.innerHeight;
	}else if(document.documentElement && document.documentElement.clientHeight){
		iWinW = document.documentElement.clientWidth;
		iWinH = document.documentElement.clientHeight;
	}else if(document.body){
		iWinW = document.body.clientWidth;
		iWinH = document.body.clientHeight;
	}
	
	if(sMode == "w"){
		return (iWinW);
	} else if(sMode == "h"){
		return (iWinH);
	}
}

/***************************************************************************/
//  関数名    : doHiddenSubmit
//  機 能     : 共通hidden項目を送信する
//  引 数     : pslinkAddress : リンク先URL
//  戻ﾘ値     : 正常=true､その他=false
//  作成者    : 中村　一成
//  作成日    : 2003/09/26
//  修正履歴  :
/***************************************************************************/
function doHiddenSubmit(pslinkAddress)
{
	try {
		window.document.form1.action = pslinkAddress;
		window.document.form1.target = "";
		window.document.form1.submit();
		return true;
	} catch(e) {
		cShowErrMsg("doHiddenSubmit", e);
		return false;
	}

}

