/** 背景 */
var popup_base = null;
/** メイン表示 */
var popup_box = null;
/* selectのzindexバグ回避用 */
var frame = null;

/**
 *	関数設定
 */
function func_popup_base( triger, func ) {
	if( !popup_base ) {
		return;
	}

	//var com = "popup_base." + triger + " = " + func;
	var com = "popup_base." + triger + " = function(e) { " + func + "(e); }";
	eval( com );
}

/**
 *	関数設定
 */
function func_popup_box( triger, func ) {
	if( !popup_box ) {
		return;
	}

	//var com = "popup_box." + triger + " = " + func;
	var com = "popup_box." + triger + " = function(e) { " + func + "(e); }";
	eval( com );
}

/**
 *	透明背景の作成
 */

function init_popup_base() {
	popup_base = document.createElement( "div" );
	popup_base.id = "popup_base";
	popup_base.style.display = "none";

	//各種スタイル設定
	popup_base.style.position = "absolute";
	popup_base.style.zIndex = 99;

	popup_base.style.margin = "0px";
	popup_base.style.padding = "0px";
	popup_base.style.top = "0px";
	popup_base.style.left = "0px";

	popup_base.style.height = document.body.clientHeight + "px";
	popup_base.style.width = document.body.clientWidth + "px"

	popup_base.style.backgroundColor = "#FFFFFF";

	//初期状態は完全透明
	popup_base.style.filter = "Alpha(opacity=0)";
	popup_base.style.opacity = 0;

	document.body.appendChild( popup_base );


	popup_box = document.createElement( "div" );
	popup_box.style.display = "none";

	popup_box.style.position = "absolute";
	popup_box.style.zIndex = 100;

	document.body.appendChild( popup_box );

	if( typeof document.body.style.maxHeight != "undefined" ) {
	// IE 7, mozilla, safari, opera 9 
	}
	else {
	// IE6, older browsers 
		//selectのzindexバグ回避用
		frame = document.createElement( "iframe" );
		frame.style.display = "none";
		frame.style.zIndex = 10;
		frame.style.position = "absolute";

		document.body.appendChild( frame );
	}
}

/**
 *	透明度設定
 */
function opacity_popup_base( opacity ) {
	if( !popup_base ) {
		return;
	}

	if( 0 <= opacity && opacity <= 1 ) {
		popup_base.style.filter = "Alpha(opacity=" + (opacity*100) + ")";
		popup_base.style.opacity = opacity;
	}
}

/**
 *	背景色設定
 */
function bgcolor_popup_base( bgcolor ) {
	if( !popup_base ) {
		return;
	}

	popup_base.style.backgroundColor = bgcolor;
}

/**
 *
 */
function fade_popup_base() {
	if( !popup_base ) {
		return;
	}

	if( !fade_timer ) {
		//開始
		fade_timer = setInterval( "fade_popup_base()", fade_interval );
	}
	else {
		cur_opacity += fade_span;

		popup_base.style.filter = "Alpha(opacity=" + (cur_opacity*100) + ")";
		popup_base.style.opacity = cur_opacity;

		if( cur_opacity >= max_opacity || cur_opacity <= 0 ) {
			clearInterval( fade_timer );
			fade_timer = 0;

			if( fade_span < 0 ) {
				popup_base.style.display = "none";
			}
		}
	}
}

/**
 *	表示設定
 */
function display_popup_base( display ) {
	if( !popup_base ) {
		return;
	}

	popup_base.style.display = display;
}

/**
 *
 */
function display_popup( popup, display, top, left ) {
	if( !popup_base ) {
		return;
	}

	//初期化
	popup_box.id = "";

	var hide_id = "_hide";

	var inner = document.getElementById( popup ) || document.getElementById( popup + hide_id );
	if( inner ) {
		if( display == "block" ) {
			//HTMLコピー
			popup_box.innerHTML = inner.innerHTML;

			//スタイル用ID設定
			inner.style.display = "none";
			inner.id = popup + hide_id;

			popup_box.id = popup;
		}
		else {
			popup_box.innerHTML = "";

			//ID設定を戻す
			inner.style.display = "none";
			inner.id = popup;
		}

		//位置設定
		if( top ) {
			popup_box.style.top = top + "px";
		}
		if( left ) {
			popup_box.style.left = left + "px";
		}

		//表示設定
		popup_base.style.display = display;
		popup_box.style.display = display;

		if( frame ) {
			if( display == "block" ) {
				//カレンダー部の幅等を取得する為、表示後に設定
				frame.style.left = popup_box.style.left;
				frame.style.top = popup_box.style.top;
				frame.style.width = popup_box.offsetWidth;
				frame.style.height = popup_box.offsetHeight;
				frame.style.border = "none";
				frame.style.display = "block";
			}
			else {
				frame.style.display = "none";
			}
		}
	}
}

