var nowloadingdisp = "nowloadingdisp";
var loadbarimg  = "loadbarimg";
var loadbarwidth = 130;
var loadbarspeed = 50;

chk_OP = window.opera;				// OP
chk_N6 = document.getElementById;	// N6 or IE
chk_IE = document.all;				// IE
chk_N4 = document.layers;			// N4

chk_DoubleCall = false;


//----------------------------------
// OS 取得
//
function getOSType()
{
    var uAgent  = navigator.userAgent.toUpperCase();
    if (uAgent.indexOf("MAC") >= 0) return "MacOS";
    if (uAgent.indexOf("WIN") >= 0) return "Windows";
    if (uAgent.indexOf("X11") >= 0) return "UNIX";
    return "";
}


//----------------------------------
// IDから有効なオブジェクトを返す
//
function getobjectid(id)
{
	if (chk_OP){                          // OP?
		return document.getElementById(id);
	}else if (chk_IE){                    // IE?
		return document.all[id];
	}else if (chk_N6){                    // N6?
		return document.getElementById(id);
	}else if (chk_N4){                    // N4?
		return document[id];
	}
}


//----------------------------------------
// パラメータ初期化
//
function resetParam(form)
{
	chk_DoubleCall = false;
	hideSubmitButton(form, false);
}


//----------------------------------------
// マルチブラウザ対応attachEvent
//
function addEventListener(target, type, func) {
	if(target.attachEvent) {
		target.attachEvent("on" + type, func);
	} else if(target.addEventListener) {
		target.addEventListener(type, func, true);
	} else {
		//イベントリスナが使えない場合は on○○ 属性を上書きで妥協（今時あんまし無いと思うが
		target["on" + type] = func;
	}
}


//----------------------------------
// submitボタン [表示／非表示]
//
function hideSubmitButton(form, showflag)
{
	var elements = form.elements;
	for (var i = 0; i < elements.length; i++) {
		if (elements[i].type == 'submit' || elements[i].type == 'button') {
			elements[i].disabled = showflag;
		}
	}
}


var loadbarct = 0;
//----------------------------------
// ローディングバー伸び伸び
//
function nowloading()
{
	obj = getobjectid(loadbarimg);
	obj.width = loadbarct;
	if (loadbarct < loadbarwidth){
		loadbarct++;
	}else{
		loadbarct = 1;
	}
	setTimeout( "nowloading()" , loadbarspeed );
}


//----------------------------------
// 送信代行
//
function submit_with_loading(form)
{
	// 多重起動防止
	if (chk_DoubleCall == true)
	{
		return false;
	}
	chk_DoubleCall = true;

	// submitボタン非表示
	hideSubmitButton(form, true);

	// デストラクタセット
	//bodyobjs = document.getElementsByTagName("body");
	//addEventListener(bodyobjs[0], 'unload', resetParam);
	closure = function() {resetParam(form)};
	window.onunload = closure;

	// ローディングバー生成
	obj = getobjectid(nowloadingdisp);
	os  = getOSType();
	if ( os == 'MacOS' )	// MAC はダメ。
	{
		return true;
	}
	else if ( chk_OP )
	{
	}
	else if ( chk_IE )
	{
		obj.style.visibility = "visible";
		nowloading();
	}
	else if ( chk_N6 )
	{
	}
	else if ( chk_N4 )
	{
	}
	return true;
}
