function _test(val,id){
	var ttag	= "test";
	if(id)ttag	+= id;
	document.FORM.elements[ttag].value	= val;
}

function _testp(val,id){
	var ttag	= "test";
	if(id)ttag	+= id;
	document.FORM.elements[ttag].value	+= val + "\n";
}

// *******************************************************************************
// 
// *******************************************************************************
function $(el){
	if ($type(el) == 'string') el = document.getElementById(el);
	if ($type(el) == 'element'){
		if (!el.extend){
			Unload.elements.push(el);
			el.extend = Object.extend;
			el.extend(Element.prototype);
		}
		return el;
	} else return false;
}

// *******************************************************************************
// 座標取得
// *******************************************************************************
document.captureEvents(Event.MOUSEMOVE);
disp_len	= 30;
var PosTimer;
var Xpos = 0;
var Ypos = 0;

/* イベントの発生座標取得 */
function _mousemove(evt)
{
	Xpos	= evt.pageX;
	Ypos	= evt.pageY;
	_moveBTN();
}

// *******************************************************************************
// form value 取得
// *******************************************************************************
function _FV(id)
{
	return document.FORM.elements[id].value;
}

// *******************************************************************************
// オンロード処理
// *******************************************************************************
/** オンロード時の処理
  */
function doOnload()
{
	loadPosition();
	loadBTN();
}

/** btn セット
  */
function loadBTN()
{
	var	targetId	= "btn_div";
	var url			= "inner.php?mode=btn";
	var sendForm	= "";
	doAjax(targetId,url,sendForm);
	changeColorStart(targetId);
}

// *******************************************************************************
// ドラッグ移動
// *******************************************************************************

div_X		= 0;
div_Y		= 0;
div_zindex	= 1;
target_id	= "";
down_flag	= 0;
/** ツールチップdown
  */
function div_down(div_id)
{
	target_id		= div_id;
	var obj			= document.getElementById(target_id);
	
	if(obj.style.position!="static"){
		div_X			= Xpos - parseInt(obj.style.left);
		div_Y			= Ypos - parseInt(obj.style.top);
		window.document.addEventListener("mousemove", div_move,true);
		window.document.addEventListener("selectstart", _ref ,true);
		down_flag		= 1;
	}
}

/** ツールチップmove
  */
function div_move()
{
	if(down_flag){
		var obj	= document.getElementById(target_id);
		obj.style.left			= Math.ceil((Xpos - div_X)/10)*10;
		obj.style.top			= Math.ceil((Ypos - div_Y)/10)*10;
	}
}

/** ツールチップup
  */
function div_up()
{
	down_flag	= 0;
	window.document.removeEventListener("mousemove", div_move,false);
	window.document.removeEventListener("selectstart", _ref ,false);
}

/** falseを返す
  */
function _ref()
{
	return false;
}

// *******************************************************************************
// btn用 イベントハンドラ
// *******************************************************************************
var gb_moveBtn_flag	= 0;
var gb_moveBtn_start= 1;
var gb_moveY		= 50;
/** onmousemove で実行
  */
function _moveBTN(){
	if(!down_flag){
	var mouseY	= Ypos;
	if(mouseY<110){
		if(gb_moveBtn_flag){
			gb_moveBtn_flag	= 0;
			_moveYDOWN('btn_div',30);
			
		}
	}
	if(mouseY>200){
		if(!gb_moveBtn_flag){
			gb_moveBtn_flag	= 1;
			_moveYUP('btn_div',-100);
			
		}
	}
	}
	
}

/** Y座標移動
  */
function _moveYUP(target,i)
{
	var stid;
	if(gb_moveBtn_flag && document.getElementById(target)){
		var obj		= document.getElementById(target);
		
		gb_moveY	= eval(gb_moveY) - 20;
		if (gb_moveY < i)
		{
			//タイマー終了
			clearTimeout(stid);
			return;
		}
		else
		{
			obj.style.top	= gb_moveY + "px";
			stid=setTimeout("_moveYUP('"+target+"',"+i+")",100);
		}
	}
}

/** Y座標移動
  */
function _moveYDOWN(target,i)
{
	var stid;
	if(!gb_moveBtn_flag){
		var obj		= document.getElementById(target);
		
		gb_moveY	= eval(gb_moveY) + 20;
		if (gb_moveY > i)
		{
			//タイマー終了
			clearTimeout(stid);
			return;
		}
		else
		{
			obj.style.top	= gb_moveY + "px";
			stid=setTimeout("_moveYDOWN('"+target+"',"+i+")",100);
		}
	}
}

// *******************************************************************************
// 読み込み
// *******************************************************************************

/** Ajaxによるテンプレートの挿入
  * @param	target	: 表示先のid
  * @param	url		: url
  * @return	なし
  */
function doAjax(targetId,url,sendForm) {
		var xmlhttp = new XMLHttpRequest();
		if (xmlhttp) {
			xmlhttp.onreadystatechange = function(){
				if(document.getElementById(targetId)){
					if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						
						document.getElementById(targetId).innerHTML = xmlhttp.responseText;
						
					}else{
//						document.getElementById(targetId).innerHTML = "しばらくお待ちください";
					}
				}
			}
			xmlhttp.open('POST',url,true);
			xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xmlhttp.send(sendForm);
		}
		
	
}

/******************************************************************
タグ作成　innerセット　フェードイン
******************************************************************/

/** inner にセット
  */
function loadInner(url,left,top)
{
	new_id++;
	div_zindex++;
	var sendForm	= "";
	var	targetId	= "div_" + new_id;
	var cName		= "box1";
	
	createTag(targetId,cName);
	doAjax(targetId,url,sendForm);
//	changeColorStart(targetId);
	moveTag(targetId,left,top);
	if(_f5InnerFlag(url))_f5Inner(url);
}

/** inner 定期更新
  */
function _f5Inner(url)
{
	var	targetId	= "div_" + new_id;
	_f5InnerStart(targetId,url);
}

/** inner 定期更新
  */
function _f5InnerStart(targetId,url)
{
	var f5id;
	var sendForm	= "";
	if(document.getElementById(targetId)){
		if(document.getElementById(targetId).childNodes[2]){
			if(document.getElementById(targetId).childNodes[2].childNodes[1].childNodes[2].style.display!="none"){
				doAjax(targetId,url,sendForm);
			}
		}
		f5id	= setTimeout("_f5InnerStart('"+targetId+"','"+url+"')",60*10*1000);
	}else{
		clearTimeout(f5id);
	}
}

/** inner 定期更新 flag
  */
function _f5InnerFlag(url)
{
	var flag	= 0;
	type	= url.substr(url.indexOf("type=",0)+5);
	switch(type){
		case	"1b"			:	flag	= 1;
									break;
		case	"1d"			:	flag	= 1;
									break;
		case	"neugoki1"		:	flag	= 1;
									break;
		case	"neugoki2"		:	flag	= 1;
									break;
		case	"kaizan1"		:	flag	= 1;
									break;
		case	"kaizan2"		:	flag	= 1;
									break;
		case	"urizan1"		:	flag	= 1;
									break;
		case	"urizan2"		:	flag	= 1;
									break;
		
		
		default					:	break;
	}
	return flag;
}

/** 座標移動
  */
function moveTag(div_id,left,top)
{
	if(!left)	left	= Xpos;
	if(!top)	top		= Ypos;
	document.getElementById(div_id).style.left	= left;
	document.getElementById(div_id).style.top	= top;
}

/** 最小化処理
  */
function smallTag()
{
	var div_id	= "div_"+new_id;
	document.getElementById(div_id).style.position	= 'static';
}

new_id	= 0;
/** タグ生成
  */
function createTag(div_id,cName)
{
	var obj_base			= document.getElementById("makeupSpace");
	var obj_box				= document.createElement('div');
	obj_box.style.zIndex	= div_zindex;
	obj_box.className		= cName;
	obj_box.id				= div_id;
	obj_base.appendChild(obj_box);
	
}

var tid;
var aObj		= new Array();
var aValue		= new Array();
var nTransMax = 100;	//透明度の最大値
/** フェードイン
  */
function changeColorStart(div_id)
{
	aValue[div_id]	= 20;
	var obj		= document.getElementById(div_id);
	changeColor(div_id,obj);
}

/** フェードイン
  */
function changeColor(div_id,obj)
{
	if(obj)aObj[div_id]	= obj;
	
	aValue[div_id]		= parseInt(aValue[div_id]) + 20;
	
	if (aValue[div_id] > nTransMax)
	{
		//タイマー終了
		clearTimeout(tid);
		delete aValue;
		return;
	}
	else
	{
//		aObj[div_id].style.-moz-opacity = 0.25;
		
		tid=setTimeout("changeColor('"+div_id+"')",100);
	}
}

/******************************************************************
タグ操作
******************************************************************/

/** box をクリックした場合の動作
  */
function clickBox(obj)
{
	div_zindex+=1;
	obj.parentNode.style.zIndex=div_zindex;
	
}

/** × をクリックした場合の動作
  */
function closeBox(obj)
{
	obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode);
}

/** - をクリックした場合の動作
  */
function smallBox(obj)
{
	obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.position='static';
	obj.parentNode.parentNode.parentNode.parentNode.childNodes[2].style.display='none';
	obj.parentNode.style.width='170px';
	
	obj.parentNode.childNodes[3].style.display='none';
	obj.parentNode.childNodes[5].style.display='';
}

/** + をクリックした場合の動作
  */
function bigBox(obj)
{
	obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.style.position='absolute';
	obj.parentNode.parentNode.parentNode.parentNode.childNodes[2].style.display='';
	obj.parentNode.style.width='300px';
	
	obj.parentNode.childNodes[5].style.display='none';
	obj.parentNode.childNodes[3].style.display='';
}

/******************************************************************
inner用url作成
******************************************************************/
/** image にセット
  * 2006-10-23	srcに&が含まれると正常に動作しないのでsendForm無し
  * 
  */
function setImage(src)
{
	var url			= "inner.php";
	url				= url + "?mode=image&image_src=" + src;
	
	return url;
}

/** 自社株価チャート セット
  */
function setChart(code)
{
	var url			= "inner.php?";
	url				+= "mode=chart&chart_code=" + code;
	
	return url;
}

/** 自社業績チャート セット
  */
function setGChart(code)
{
	var url			= "inner.php?";
	url				+= "mode=gyoseki&gyoseki_code=" + code;
	
	return url;
}

/** yahooチャート
  */
function setYchart(code,type)
{
	var url			= "inner.php?";
	url				+= "mode=ychart&ychart_code=" + code + "&type=" + type;
	
	return url;
}

/******************************************************************
お気に入り
******************************************************************/
/** title取得
  */
function getBench(obj,src)
{
	if(!src)return;
	var targetid	= "bench_get";
	var url			= "inner.php?";
	url				+= "mode=bench&type=get&bench_src=" + src;
	
	doAjax(targetid,url);
}

/** ベンチマーク追加
  */
function setBench(obj,title,src)
{
	var targetid	= obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
	var url			= "inner.php";
	var sendForm	= "mode=bench&type=add&bench_title=" + title + "&bench_src=" + src;
	
	doAjax(targetid,url,sendForm);
}

/** ベンチマーク削除
  */
function delBench(obj,seq)
{
	var targetid	= obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
	var url			= "inner.php?";
	url				+= "mode=bench&type=del&bench_seq=" + seq;
	
	doAjax(targetid,url);
}

/******************************************************************
save
******************************************************************/

/** save
  */
function savePosition()
{
	var url			= "save.php?";
	var sendForm	= "";
	var obj			= document.getElementsByTagName("div");
	var len			= obj.length;
	for(i=0 ; i<len ; i++){
		var div_id	= obj[i].id;
		
		if(div_id){
			
			if(div_id.match(/div_/i)){
				url	+= "|";
				url	+= obj[i].style.left + ",";
				url	+= obj[i].style.top + ",";
				url	+= obj[i].style.position + ",";
				url	+= obj[i].firstChild.value;
				
			}
		}
	}
	
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open('POST',url,true);
	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlhttp.send(sendForm);
	
}

/******************************************************************
load
******************************************************************/
var strLoadPosition;
/** load
  */
function loadPosition()
{
	var url			= "load.php";
	var sendForm	= "";
	var xmlhttp = new XMLHttpRequest();
	if (xmlhttp) {
		xmlhttp.onreadystatechange = function(){
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				
				strLoadPosition = xmlhttp.responseText;
				deletePositionAll();
				setPosition();
				
			}
			
		}
		xmlhttp.open('POST',url,true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlhttp.send(sendForm);
	}
	
}


/** set
  * left,top,position,url
  */
function setPosition()
{
	var aryLoadPosition = new Array();
	if(strLoadPosition){
		aryLoadPosition	= strLoadPosition.split("|");
		var len	= aryLoadPosition.length;
		
		for( i=0;i<len;i++ ){
			var data	= aryLoadPosition[i].split(",");
			var url		= "inner.php?";
			if(data[2]=="static")	url	+= "position=static&";
			url			+= data[3];
			
			loadInner(url,data[0],data[1]);
			if(data[2]=="static")smallTag();
		}
	}
}

/** delete
  */
function deletePositionAll()
{
	document.getElementById("makeupSpace").innerHTML="";
	new_id	= 0;
}

