//
// java script support standard library
// Copyright (C) bko 2001,10
//
// [注] このファイルは、シフトJISで書かれています。
// シフトJIS以外のcharsetで書かれたHTMLファイルから呼び出すときは、
// 文字コードを変換して下さい。
// HTMLの文字コードと一致しないと、古いバージョンのブラウザでは
// スクリプトの解釈が正しく実行されない場合があります。

ie4 = 0; ie5 = 0; ie6 = 0; ie7 = 0;
nn4 = 0; nn5 = 0; nn6 = 0; nn7 = 0;
ff1 = 0; ff2 = 0; ff3 = 0;
op9 = 0;
sf3 = 0;

// browser identify
var browser_ver = navigator.appVersion.substr(0,3);
var browser_name = navigator.appName.substr(0,1);
var user_agent = navigator.userAgent;
var _ver;
if (browser_name == "M") {
	if (browser_ver >= 4.0) ie4 = parseFloat(browser_ver);
	_ver = navigator.appVersion;
	var i = _ver.indexOf("MSIE ");
	if (i != -1) {
		_ver = _ver.substr(i+5,3);
		if (_ver >= 5.0) {ie5 = parseFloat(_ver); ie4 = ie5;}
		if (_ver >= 6.0) ie6 = parseFloat(_ver);
		if (_ver >= 7.0) ie7 = parseFloat(_ver);
	}
}
else if (browser_name == "N") {
	var i = user_agent.indexOf("Firefox/");
	var j = user_agent.indexOf("Safari/");
	if (i != -1) {
		_ver = user_agent.substr(i+8,3);
		if (_ver >= 1.0) ff1 = parseFloat(_ver);
		if (_ver >= 2.0) ff2 = parseFloat(_ver);
		if (_ver >= 3.0) ff3 = parseFloat(_ver);
	}
	else if (j != -1) {
		j = user_agent.indexOf("Version/");
		_ver = user_agent.substr(j+8,3);
		sf3 = parseFloat(_ver);
	}
	else if (browser_ver >= 5.0) {
		nn5 = parseFloat(browser_ver);
		i = user_agent.search("Netscape[67]?/");
		if (i != -1) {
			_ver = user_agent.substr(i+9,3);
			if (_ver.substr(0,1) == "/") {
				_ver = user_agent.substr(i+10,3);
			}
			if (_ver >= 6.0) {nn6 = parseFloat(_ver); nn5 = nn6;}
			if (_ver >= 7.0) nn7 = parseFloat(_ver);
		}
	}
	else if (browser_ver >= 4.0) nn4 = parseFloat(browser_ver);
}
else if (browser_name == "O") {
	op9 = parseFloat(browser_ver);
	if (op9 >= 10) {
		browser_ver = navigator.appVersion.substring(0,4);
	}
}

// Browser Despendence String
if (nn4) {
	HIDDEN = "hide";
	VISIBLE = "show";
}
else {
	HIDDEN = "hidden";
	VISIBLE = "visible";
}

// Firefox で window.event をエミュレートする
// "mousedown", "mouseover", "mouseout", "mousedrag", "click", "dblclick"
if (ff2) {
	(function(){
		for (var property in Event.prototype){
			if(property.match(/MOUSE|CLICK/)){
				window.addEventListener(property.toLowerCase(), function(e){
					window.event = e;}, true);
			}
		}
	}());
}

function GetScreenSize() {
	ax = screen.availWidth;
	ay = screen.availHeight;
}

function GetScreenXSize() {
	return screen.availWidth;
}

function GetScreenYSize() {
	return screen.availHeight;
}

function GetFrameSize() {
	wx = GetFrameXSize();
	wy = GetFrameYSize();
}

function GetFrameXSize() {
	var wx = null;

	if (ie4 && (! ie6)) {			// 〜IE5
		wx = document.body.clientWidth;
	}
	else if (nn4 || nn5) {			// Netscape
		wx = window.innerWidth;
	}
	else if (document.compatMode == "CSS1Compat") {		// 標準モード
		if (ie6 || ff1 || (op9 >= 9.5) || sf3) {
			wx = document.documentElement.clientWidth;
		}
		else if (op9) {
			wx = document.body.clientWidth;
		}
	}
	else if (document.compatMode == "BackCompat") {		// compatible
		if (ie6 || op9) {
			wx = document.body.clientWidth;
		}
		else if (ff1 || sf3) {
			wx = window.innerWidth;
		}
	}
	return wx;
}

function GetFrameYSize() {
	var wy = null;

	if (ie4 && (! ie6)) {			// 〜IE5
		wy = document.body.clientHeight;
	}
	else if (nn4 || nn5) {			// Netscape
		wy = window.innerHeight;
	}
	else if (document.compatMode == "CSS1Compat") {		// 標準モード
		if (ie6 || ff1 || (op9 >= 9.5) || sf3) {
			wy = document.documentElement.clientHeight;
		}
		else if (op9) {
			wy = document.body.clientHeight;
		}
	}
	else if (document.compatMode == "BackCompat") {		// 互換モード
		if (ie6 || op9) {
			wy = document.body.clientHeight;
		}
		else if (ff1 || sf3) {
			wy = window.innerHeight;
		}
	}
	return wy;
}

function GetWindowEventX() {
	var wpos = 0;

	if (ie6) {
		if (document.compatMode == "CSS1Compat") {		// 標準モード
			wpos = window.event.clientX + document.documentElement.scrollLeft;
		}
		else if (document.compatMode == "BackCompat") {		// 互換モード
			wpos = window.event.clientX + document.body.scrollLeft;
		}
	}
	else if (ie5) {			// 〜IE5
		wpos = window.event.clientX + document.body.scrollLeft;
	}
	else if (nn4 || nn5) {
		return null;		// no longer support to these browsers
	}
	else if (ff1 || sf3 || op9) {
		wpos = window.event.pageX;
	}
	return wpos;
}

function GetWindowEventY() {
	var wpos = 0;

	if (ie6) {
		if (document.compatMode == "CSS1Compat") {		// 標準モード
			wpos = window.event.clientY + document.documentElement.scrollTop;
		}
		else if (document.compatMode == "BackCompat") {		// 互換モード
			wpos = window.event.clientY + document.body.scrollTop;
		}
	}
	else if (ie5) {			// 〜IE5
		wpos = window.event.clientY + document.body.scrollTop;
	}
	else if (nn4 || nn5) {
		return null;		// no longer support to these browsers
	}
	else if (ff1 || sf3 || op9) {
		wpos = window.event.pageY;
	}
	return wpos;
}

function GetScrollX() {
	var ofs = 0;

	if (ie6 || ff1 || op9) {
		if (document.compatMode == "CSS1Compat") {		// 標準モード
			ofs = document.documentElement.scrollLeft;
		}
		else if (document.compatMode == "BackCompat") {		// 互換モード
			ofs = document.body.scrollLeft;
		}
	}
	else if (ie5 || sf3 || nn5) {
		ofs = document.body.scrollLeft;
	}
	else if (nn4) {
		return null;		// no longer support to this browser
	}
	return ofs;
}

function GetScrollY() {
	var ofs = 0;

	if (ie6 || ff1 || op9) {
		if (document.compatMode == "CSS1Compat") {		// 標準モード
			ofs = document.documentElement.scrollTop;
		}
		else if (document.compatMode == "BackCompat") {		// 互換モード
			ofs = document.body.scrollTop;
		}
	}
	else if (ie5 || sf3 || nn5) {
		ofs = document.body.scrollTop;
	}
	else if (nn4) {
		return null;		// no longer support to this browser
	}
	return ofs;
}

function elm(name) {
	var obj = elmobj(name);
	if (obj == null) return null;
	if (nn4) return obj;
	return obj.style;
}

function elmobj(name) {
	var obj = null;
	if (ie4 || op9) obj = document.all[name];
	else if (nn5 || ff1 || sf3) obj = document.getElementById(name);
	else if (nn4) obj = eval("document." + name);
	return obj;
}

function pxtoint(px) {
	if (nn4) return px;
	var i = px.indexOf("px");
	if (i == -1) i = px.indexOf("pt");
	if (i == -1) return parseInt(px);
	var v = px.substring(0,i);
	return parseInt(v);
}

function inttopx(sx) {
	return sx + "px";
}

function parseCookie() {
	myCookie = new Array();
	var cook = document.cookie.split("; ");
	for (var i = 0; i < cook.length; ++i) {
		var c = cook[i].split("=");
		myCookie[c[0]] = unescape(c[1]);
	}
}

function parseQuery() {
	myQuery = new Array();
	var q = window.location.search;
	if (q.substr(0,1) != "?") return;
	q = q.substr(1);
	var query = q.split("&");
	for (var i = 0; i < query.length; ++i) {
		var qq = query[i].split("=");
		myQuery[unescape(qq[0])] = unescape(qq[1]);
	}
}

// argument "expires" require Date object
// expires = new Date( );
// expires.setDate(expires.getDate( ) + 50); // after 50 days
// expires.setMonth(expires.getMonth( ) + 6); // after 6 months
// expires.setFullYear(expires.getFullYear( ) + 10); // after 10years
function setCookie(name,value,domain,path,expires) {
	if ((name == null) || (name == "")) return;
	if (value == null) {
		expires = new Date();
		expires.setDate(expires.getDate( ) - 1);
		value = "null";
	}
	var c = name + "=" + escape(value);
	if (domain != null) {
		c = c + "; domain=" + domain;
	}
	if (path != null) {
		c = c + "; path=" + path;
	}
	if (expires != null) {
		c = c + "; expires=" + expires.toGMTString( );
	}
	document.cookie = c;
}

function addEvent(object,func,type) {
	if (ie5) {
		object.attachEvent(func,"on"+type);
	}
	else if (ie4) {
	}
	else {
		object.addEventListener(type,func,false);
	}
}

function removeEvent(object,func,type) {
	if (ie5) {
		object.detachEvent(func,"on"+type);
	}
	else if (ie4) {
	}
	else {
		object.removeEventListener(type,func,false);
	}
}
