//------------------------------------------------------------------------------
var dataPath = 'data/';
var targetId = 'mouseOverContents';
var offset = 15;
var xmouse = 0;
var ymouse = 0;
var targetElement = false;
var flg = false;
var debug = false;
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
function detailSrcOpen(fN){
document.onmousemove = function(e){
	getMousePos(e);
	setPosition();
}
if(!targetElement){
	targetElement = getElement();
}
	var xmlhttp = xmlHTTP_Create();
	if (xmlhttp) {
		//alert(dataPath + fN);
		xmlhttp.open('GET', dataPath + fN + '?' + addQuery());
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				flg= true;
				setInnerHTML(xmlhttp.responseText);
				//alert(xmlhttp.responseText);
			}
		}
	xmlhttp.send('');
	}
}
//------------------------------------------------------------------------------
function detailSrcClose(){
	flg = false;
	setDisplay('none');
}
//------------------------------------------------------------------------------
function getElement(){
	return document.getElementById(targetId);
}
//------------------------------------------------------------------------------
function setPosition(){
	if(flg){
		if('none' == targetElement.style.display){
			setDisplay('block');
		}
		var doc = getDocumentSize();
		var layer = getLayerSize();
		if(0 != layer.h && 0 != layer.w){
			if(((doc.h/2) + doc.scrollTop) > ymouse){
				targetElement.style.top = ymouse + offset + 'px';
			}else{
				targetElement.style.top = ymouse - (layer.h + offset) + 'px';
			}
			if(((doc.w/2) + doc.scrollLeft) > xmouse){
				targetElement.style.left = xmouse + offset + 'px';
			}else{
				targetElement.style.left = xmouse - (layer.w + offset) + 'px';
			}
		}
		
		if(debug){
			dumpD(targetElement.style.top, targetElement.style.left);
		}
	}
}
//------------------------------------------------------------------------------
function getLayerSize(){
var Obj = new Object();
	Obj.w = targetElement.clientWidth || targetElement.offsetWidth || targetElement.innerWidth;
	Obj.h = targetElement.clientHeight || targetElement.offsetHeight || targetElement.innerHeight;

	if(debug){
		dumpC(Obj.w, Obj.h, targetElement.style.top, targetElement.style.left);
	}
	return Obj;
}
//------------------------------------------------------------------------------
function setDisplay(v){
	if(targetElement){
		targetElement.style.display = v;
	}
}
//------------------------------------------------------------------------------
function setInnerHTML(v){
	targetElement.innerHTML = v;
}
//------------------------------------------------------------------------------
function xmlHTTP_Create(){
var Obj = false;
  try {
    Obj = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {
    Obj = false;
  }
  if (!Obj && typeof XMLHttpRequest!='undefined') {
    Obj = new XMLHttpRequest();
  }
  return Obj;
}
//------------------------------------------------------------------------------
function addQuery(){
	var now = new Date();
	return "addtion="+ now.getSeconds() + now.getMilliseconds();
}


//------------------------------------------------------------------------------
function getDocumentSize(){
var Obj = new Object();
	//document.body.clientWidth
	//document.body.clientHeight
	Obj.w = window.innerWidth || document.documentElement.clientWidth;
	Obj.h = window.innerHeight || document.documentElement.clientHeight;
	Obj.scrollTop = ansScrollTop();
	Obj.scrollLeft = ansScrollLeft();
	if(debug){
		dumpB(Obj.w, Obj.h, Obj.scrollTop, Obj.scrollLeft);
	}
	
	return Obj;
}
function ansScrollTop(){
	return document.body.scrollTop || document.documentElement.scrollTop;
}
function ansScrollLeft(){
	return document.body.scrollLeft || document.documentElement.scrollLeft;
}
function getMousePos(e){
	if(!e){
		var e = window.event;
	}
	if(!e.pageX){
		e.pageX = xmouse = e.clientX + document.documentElement.scrollLeft;
	}
	if(!e.pageY){
		e.pageY = ymouse = e.clientY + document.documentElement.scrollTop;
	}
	
	xmouse = e.pageX;
	ymouse = e.pageY;
	
	if(debug){
		dumpA(e.pageX , e.pageY);
		dumpE(flg);
	}
}








function dumpA(a, b){
	// マウス座標の取得時
	document.getElementById('debug').xm.value= a;
	document.getElementById('debug').ym.value= b;
}
function dumpB(a, b, c, d){
	// ドキュメントサイズの取得時
	document.getElementById('debug').cw.value= a;
	document.getElementById('debug').ch.value= b;
	document.getElementById('debug').st.value= c;
	document.getElementById('debug').sl.value= d;
}
function dumpC(a, b){
	// レイヤーサイズの取得時
	document.getElementById('debug').lw.value= a;
	document.getElementById('debug').lh.value= b;
}
function dumpD(a, b){
	// レイヤー移動時
	document.getElementById('debug').lx.value= b;
	document.getElementById('debug').ly.value= a;
}
function dumpE(a){
	// マウス座標取得時
	document.getElementById('debug').flg.value= a;
}
function dumpF(a, b, c, d){
	document.getElementById('debug').aw.value= a;
	document.getElementById('debug').ah.value= b;
	document.getElementById('debug').at.value= c;
	document.getElementById('debug').al.value= d;
}
