/***************************************

  MWS-98  基幹システム
  Javascript   (2007/02/14)

  Copyright 2002-2007 Masahiro Aikawa.
                  All rights reserved.

***************************************/


/* 通信状態の出力
--------------------------------------*/

function out_con_state(state)
{
	var div = id("main");
	var p = document.createElement('p');
	var text = document.createTextNode("通信中..");
	var point = document.createTextNode("..");

	if (!id("con_state"))
	{
		div.appendChild(p);
		p.setAttribute('id', "con_state");
		div.lastChild.appendChild(text);
	}
	else
	{
		div.lastChild.appendChild(point);
	}
}


/* リクエストURIの取得
--------------------------------------*/

function get_req_uri(mode, query_field, query_table)
{
	var req_uri;

	req_uri = location.pathname+"?action="+mode;
	for (var i = 0; i < query_field.elements.length; i++)
	{
		var query = query_field.elements[i].value.replace(/\n/g, "[return]");
		if ((query_field.elements[i].name) && ((query_field.elements[i].type != "radio") || (query_field.elements[i].checked == true)))
		{
			req_uri += "&"+query_field.elements[i].name+"="+query;
		}
	}
	if (query_table)
	{
		req_uri += "&tbl="+query_table;
	}
	return req_uri;
}


/* サーバへの接続
--------------------------------------*/

function con_svr(req_uri)
{
	this.req_uri = req_uri;

	if (window.XMLHttpRequest)
	{
		http_req = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		try
		{
			http_req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			http_req = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	http_req.onreadystatechange = function()
	{
		if (http_req.readyState == 4 && http_req.status == 200)
		{
			get_res(http_req.responseText);
		}
		else
		{
			out_con_state(http_req.readyState);
		}
	}
	http_req.open("GET", req_uri);
	http_req.send("");
}


/* フォーム表示切替
--------------------------------------*/

function chg_view(target_id)
{
	if (id(target_id+"_form").style.display == "none")
	{
		id("cv_"+target_id).removeChild(id("cv_"+target_id).lastChild);
		id("cv_"+target_id).appendChild(document.createTextNode("ー"));
		id(target_id+"_form").style.display = "block";
	}
	else
	{
		id("cv_"+target_id).removeChild(id("cv_"+target_id).lastChild);
		id("cv_"+target_id).appendChild(document.createTextNode("＋"));
		id(target_id+"_form").style.display = "none";
	}
}


/* IDによる要素の取得
--------------------------------------*/

function id(id) {

	return document.getElementById(id);

}


/* タグ名による要素の取得
--------------------------------------*/

function tg(tg, cnt) {

	return document.getElementsByTagName(tg)[cnt];

}


/* 子要素の追加
--------------------------------------*/

function add(child, parent)
{
	return parent.appendChild(child);
}


/* 子要素の削除
--------------------------------------*/

function del(child, parent)
{
	return parent.removeChild(child);
}


/* 属性の設定
--------------------------------------*/

function set_attr(el, name, value)
{
	var isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);
	if (isIE) { if (name == "class") { name = "className"; } }
	return el.setAttribute(name, value);
}


/* 属性の取得
--------------------------------------*/

function get_attr(el, name)
{
	var isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);
	if (isIE) { if (name == "class") { name = "className"; } }
	return el.getAttribute(name);
}


/* 要素の生成
--------------------------------------*/

function element(el)
{
	return document.createElement(el);
}


/* テキストの生成
--------------------------------------*/

function text(text)
{
	return document.createTextNode(text);
}


/* エラーメッセージの表示
--------------------------------------*/

function view_error()
{
	alert("データベースの異常動作により、処理が中断されました。\n不具合が改善されない場合、お手数ですが管理者までお問い合せください。");
}


/* getElementsByClassName
--------------------------------------*/

document.getElementsByClassName = function (className)
{
	var i, j, eltClass;
	var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all;
	var objCN = new Array();
	for (i = 0; i < objAll.length; i++)
	{
		eltClass = objAll[i].className.split(/\s+/);
		for (j = 0; j < eltClass.length; j++)
		{
			if (eltClass[j] == className)
			{
				objCN.push(objAll[i]);
				break;
			}
		}
	}
	return objCN;
}