// ヘルプの表示
//function popUpcom(id, event) {
function popUpcom(id, obj) {
//debugger;
/*
	var x;
	var y;
	if (window.createPopup) {
		x = event.x + (document.body.scrollLeft + 10 || document.documentElement.scrollLeft + 10); // 表示するx座標（適度に調整してください）
		y = event.y + (document.body.scrollTop +10 || document.documentElement.scrollTop + 10); // 表示するy座標（適度に調整してください）
	}
	else {
		x = event.pageX + 10; // 表示するx座標（適度に調整してください）
		y = event.pageY + 10; // 表示するy座標（適度に調整してください）
	}
*/
//	var teimg = document.getElementById(id + "_IMGID");
	var te = document.getElementById(id + "_ID");
//debugger;
//	var pos = getElementSizePos(obj);

//	var x = teimg.offsetLeft;
//	var y = teimg.offsetTop;
//	var x = pos[3];
//	var y = pos[4];

	var posPop = new Array(getElementSizePos(obj));
	if (!document.all) {
		appendX =0; appendY =0;
	} else {
		appendX = document.body.scrollLeft;
		appendY = document.body.scrollTop;
	}
	te.style.top = posPop[0] + posPop[2] + appendY +"px";
	te.style.left = posPop[1] + appendX +"px";


//	te.style.left = x + "px";
//	te.style.top = y + "px";
	te.style.width = "120px";
	te.style.visibility = "visible";
	te.style.display = "block";
}

// ヘルプの非表示
function hidePopcom(id) {
	var te = document.getElementById(id + "_ID");

	te.style.visibility = "hidden";
	te.style.display = "none";
}

function getElementSizePos(which){
	if (!document.all) {
	var values = new Array(
		which.tagName,	//i=0
		absX,			//i=1
		absY,			//p.width p.height
		which.offsetWidth,
		which.offsetHeight,
		which.offsetParent.tagName,
		(which.offsetParent.id) ? which.offsetParent.id : "未定義",		//FFではbodyで未定義
		which.offsetLeft,
		which.offsetTop	//i=8
	);
	} else {
	var values = new Array(
		which.tagName,	//i=0
		absX,			//i=1
		absY,			//p.width p.height
		which.offsetWidth,
		which.offsetHeight,
		which.offsetParent.tagName,
		which.offsetParent.id,		//IE：column1_block
		which.offsetLeft,
		which.offsetTop,	//i=8

		which.offsetParent.offsetParent.tagName,
		which.offsetParent.offsetParent.id,		//←container
		which.offsetLeft + which.offsetParent.offsetLeft,
		which.offsetTop + which.offsetParent.offsetTop,

		which.offsetParent.offsetParent.offsetParent.tagName,	//body
		(which.offsetParent.offsetParent.offsetParent.id) ? which.offsetParent.offsetParent.offsetParent.id : "未定義",
		which.offsetLeft + which.offsetParent.offsetLeft + which.offsetParent.offsetParent.offsetLeft,
		which.offsetTop + which.offsetParent.offsetTop + which.offsetParent.offsetParent.offsetTop
	);
	}
	return values;
}

	//サイズ等の表示
function dispSizePos(obj) {
	if (!window.loaded) return;
	var pos = [];
	pos = getElementSizePos(obj);
	for (i=0; i< pos.length ; i++) {
		if (i < 9 && (pos[i] == null || pos[i] == undefined)) pos[i] = "";
		document.forms[0].elements[i].value = pos[i];
	}
}


//popup
function showPop(obj,str,wide){
	posPop = new Array(getElementSizePos(obj));
//	posPop = getElementSizePos(obj);
	if (!document.all) {
		appendX =0; appendY =0;
	} else {
		appendX = document.body.scrollLeft;
		appendY = document.body.scrollTop;
	}
	which.style.top = posPop[0] + posPop[2] + appendY +"px";
	which.style.left = posPop[1] + appendX +"px";
	which.style.width = wide + "px";
	document.getElementById("pup").style.display = "block";
}

//
function hidePop(obj) {
	 if (srcEle.tagName == "div") document.getElementById("pup").style.display = "none";
}




/*+++++++++++++++++++++++++++++++++++++++++
** global変数定義、ブラウザ判別変数定義 **
+++++++++++++++++++++++++++++++++++++++++*/
var absX,absY,cltX,cltY,scrlX,scrlY,srcEle,fromEle,toEle;
var agt,is_major,is_minor,is_ie,ie_ie7,is_compat;
var opacityValue = 0 ; //不透明度を保持する変数 100で不透明、0で透明
var opacityElm ; //不透明度を設定する要素

agt=navigator.userAgent.toLowerCase(); // 間違いのないように全文字列を小文字に変換

// ブラウザージョン番号:
is_major = parseInt(navigator.appVersion);
is_minor = parseFloat(navigator.appVersion);

//IEかどうか
is_ie  = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

//IE７かどうか
is_ie7 = (is_ie && (is_major == 4) && (agt.indexOf("msie 7.")!=-1) );

var is_gecko = (agt.indexOf('gecko') != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
var is_safari = (agt.indexOf("safari") != -1);

//互換モードかどうか？ true:標準、false：後方互換
is_compat = (document.compatMode && document.compatMode.indexOf("CSS1") >=0 );

//ブラウザ判別、イベントハンドラー設定
if (is_gecko || is_opera || is_safari){ // N6,FF.opera,safari
	window.addEventListener("mousemove",myMove,true); //document.onmousemove = myMove でも可
} else if (is_ie){     // IE
	document.onmousemove = myMoveIE;
} else if (document.layers){   // N4
	window.captureEvents(Event.MOUSEMOVE);
	window.onmousemove = myMoveN4;
} else {     // others
	window.addEventListener("mousemove",myMove,true);
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++
** マウス移動時のマウス移動元位置（absX,absY）取得 **
++++++++++++++++++++++++++++++++++++++++++++++++++++*/
// FF、Opera、safariなどW3C勧告に従っているbrowserの場合
function myMove(e){  // N6,FF,Opera,Safariでマウスが動いた
	cltX = e.clientX; //Window内の位置
	cltY = e.clientY; //Window内の位置
	scrlX = window.pageXOffset;  //横方向スクロール距離
	scrlY = window.pageYOffset;  //縦方向スクロール距離
	absX = e.pageX ; //絶対位置
	absY = e.pageY;  //絶対位置
	srcEle = e.target;
}//---End Function

// IEの場合
function myMoveIE(){
    absX = window.event.clientX
        + (document.body.scrollLeft || document.documentElement.scrollLeft)
        - window.document.body.clientLeft;
    absY = window.event.clientY
        + (document.body.scrollTop || document.documentElement.scrollTop)
        - window.document.body.clientTop;
    cltX = window.event.clientX;
    cltY = window.event.clientY;
    scrlX = (document.body.scrollLeft || document.documentElement.scrollLeft);
    scrlY = (document.body.scrollTop || document.documentElement.scrollTop);
    srcEle = event.srcElement;
}





/*****************************************
**  Windowサイズとオブジェクト を取得  **
*****************************************/
function getWinSize() {
	if (is_gecko || is_opera){  //Opera又はFFにおいて
		var scrWidth = window.innerWidth;
		var scrHeight = window.innerHeight;
		if (is_opera && document.body.offsetHeight>window.innerHeight) scrWidth-=18;
		if (is_gecko && document.height>window.innerHeight) scrWidth-=17;
	} else if (is_ie) {    //IEにおいて
		var scrWidth = (is_compat) ? document.documentElement.clientWidth : document.body.clientWidth;
		//20061220変更 そして縁配置に成功！！！
		var scrHeight = (is_compat) ? document.documentElement.clientHeight : document.body.clientHeight;
		//20061220変更 そして縁配置に成功！！！
	} else if (document.layers){ //N4において
		var scrWidth = window.innerWidth;
		var scrHeight = window.innerHeight;
	} else {       //safariなど。-16に根拠なし
		var scrWidth = window.innerWidth;
		var scrHeight = window.innerHeight;
		if (document.body.offsetHeight>window.innerHeight) scrWidth-=16;
	}
	return [scrWidth,scrHeight];
}
/***************************
**   balloonポップアップ  **
***************************/
function bpop(that,txt,blnwidth,blnheight,xLeft,yTop,blnPadding,blnBorder,textColor,bgColor,borderColor){
	// if (!window.loaded) return;
	var targetElem = that;
	//balloon スタイル値設定
	var blnWidth = (!blnwidth) ? 300 : blnwidth ;   //deflaut 300
	var blnPadding = (!blnPadding) ? 2 : blnPadding ; //deflaut 4
	var blnBorder = (!blnBorder) ? 2 : blnBorder ;   //deflaut 2
	var blnTextColor = (!textColor) ? "#112222" : textColor ; //deflaut #112222
	var blnBgColor = (!bgColor) ? "#fffffc" : bgColor ;   //deflaut #eeeeee
	var blnBorderColor = (!borderColor) ? "#ddeeff" : borderColor ;   //deflaut #ddeeff
	var xLeft =(!xLeft) ? 4 : xLeft; //deflaut 4
	var yTop =(!yTop) ? 16 : yTop;   //deflaut 16

	//balloon & screenWidth取得 & テキスト挿入
	var bln = document.getElementById("balloon") ;
	var scrWidth = getWinSize()[0];
	var scrHeight = getWinSize()[1];
	//balloonのコンテンツ設定とinner高さ設定
	if (txt !="" || txt != null) {
		/*
		if (txt =="Appendix") {
			txt = document.getElementById(targetElem.innerHTML).innerHTML;
		}
		bln.innerHTML = txt;
		*/
		var te = document.getElementById(txt + "_ID");
		bln.innerHTML = te.innerHTML;

	} //else return "";

	//balloonの外幅、外高さ取得
	var blnOuterWidth = blnWidth+(blnPadding+blnBorder)*2; //＝bln.offsetWidth;
	if (blnheight) {
		var blnOuterHeight = blnheight+(blnPadding+blnBorder)*2;
	} else {
		var blnOuterHeight = getOuterHeightOfPosElm(bln,txt,blnWidth);
	}

	//表示位置（absX）
	// もしも内容が文字で、右側にはみ出しそうならば、
	// クライアント領域の右側にpopup窓の右端を合わせる。
	// もしも内容が画像で、右側にはみ出しそうならば、マウスカーソル位置の左側に表示する。
	if (document.layer) {
		var blnLeft = (scrWidth < cltX + xLeft + blnOuterWidth) ?
		( (txt.match(/<img.+src.*=/i) == null) ? (scrlX + scrWidth - blnOuterWidth) : (absX - xLeft - blnOuterWidth) ) : (absX + xLeft);
	} else {
		var blnLeft = (scrWidth < cltX + xLeft + blnOuterWidth ) ?
		( (txt.match(/<img.+src.*=/i) == null) ? (scrlX + scrWidth - blnOuterWidth +"px") : (absX - xLeft - blnOuterWidth +"px") ) : (absX + xLeft +"px");
	}

	//表示位置（absY）
	//もしも、下にはみ出していたらクライアント領域の下辺にpopup窓の下端を合わせる。
	if (scrHeight && blnOuterHeight) {
		if (document.layer) {
			var blnTop = (scrHeight < cltY + blnOuterHeight ) ? (scrlY + scrHeight - blnOuterHeight) : (absY + yTop);
		} else {
			var blnTop = (scrHeight < cltY + blnOuterHeight ) ? (scrlY + scrHeight - blnOuterHeight + "px") : (absY + yTop + "px");
		}
	}

	//balloonのスタイル設定（表示共）
	var blnStyle = (document.layers) ? bln : bln.style ;
	with (blnStyle){
		position = "absolute" ;
		left = blnLeft;
		top = blnTop;
		margin = 0 ;
		lineHeight = 1.1 ;
		textAlign = "left";
		color = blnTextColor;
		backgroundColor = blnBgColor;
		width = (document.layers) ? blnWidth : blnWidth +"px";
		padding = (document.layers) ? blnPadding : blnPadding + "px";
		borderColor = blnBorderColor;
		borderWidth = (document.layers) ? blnBorder : blnBorder + "px"; 
		borderStyle = "outset";
		zIndex = 10000 ;       //最上層に表示させる。
		visibility = "visible";      //popupする
	}

	//漸次不透明化処理
	opacityValue = 10; opacityElm = bln;
	setOpacityTo100();
	targetElem.onmouseout = hideballoon;
}

function getOuterHeightOfPosElm(obj,txt,width) {
	var targetWidth = width || 400;

	//obj.innerHTML = txt;
	var te = document.getElementById(txt + "_ID");
	obj.innerHTML = te.innerHTML;

	with (obj.style){
		top = 0 + "px";
		left = 0 + "px";
		width = targetWidth + "px";
	}
	setOpacity(obj,0);
	obj.style.visibility = "visible";
	obj.style.visibility = "hidden";
	setOpacity(obj,100);
	return obj.offsetHeight;
}



function setOpacity(obj,num) {
	if (!obj || !num) return;
	if (is_ie) obj.style.filter = 'alpha(opacity=' + num + ')';
	else obj.style.opacity = num / 100;
}
function setOpacityZero() {
	if (opacityValue > 0) {
		opacityValue -= 2;
		setOpacity(opacityElm,opacityValue);
		setTimeout('setOpacityZero()',20);
	}
}
function setOpacityTo100() {
	if (opacityValue <=100) {
		opacityValue += 12;
		setOpacity(opacityElm,opacityValue);
		setTimeout("setOpacityTo100()",5);
	}
}
function exchange(repTarget,aStr,bStr) {
	while (repTarget.indexOf(aStr, 0) >= 0) {
		repTarget = repTarget.replace(aStr,bStr);
	}
	return false;
}



function hideballoon() {
	var temp = document.getElementById("balloon");
	if (temp) temp.style.visibility = "hidden";
	return false ;
}
