//====================================================================
//	ブラウザ判定クラス スクリプト
//====================================================================

/*
'------------------------------------------------------------------------------
' 関数名	:CBrowser
' 機能		:ブラウザ判定クラスコンストラクタ
' 返り値	:なし
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser() {
	var userAgent, appName, appVersion;
	var verSPos, verEPos;

	this.m_ostype = "Unkown OS";
	this.m_browsername = "Unknown Browser";
	userAgent = navigator.userAgent.toUpperCase();
	if (userAgent.indexOf("WIN") >= 0) { this.m_ostype = "Windows"; }
	if (userAgent.indexOf("MAC") >= 0) { this.m_ostype = "Macintosh"; }
	if (userAgent.indexOf("X11") >= 0) { this.m_ostype = "Unix"; }
	appName = navigator.appName.toUpperCase();
	appVersion = navigator.appVersion;
	this.m_nn = (appName.indexOf("NETSCAPE") != -1);
	this.m_ie = (appName.indexOf("MICROSOFT") != -1);
	if (this.m_nn) {
		verEPos = appVersion.indexOf(" ", 0);
		this.m_version = eval(appVersion.substring(0, verEPos));
		if (this.m_version >= 5) { this.m_version++; }
		if (this.m_version >= 6 && userAgent.indexOf("NETSCAPE/7") >= 0) { this.m_version++; }
		this.m_browsername = "Netscape";
	}
	if (this.m_ie) {
		verSPos = appVersion.indexOf("MSIE", 0) + 5;
		verEPos = appVersion.indexOf(";", verSPos);
		this.m_version = eval(appVersion.substring(verSPos, verEPos));
		this.m_browsername = "Explorer";
	}
	//公開メソッド
	this.Name = CBrowser_Name;
	this.OSType = CBrowser_OSType;
	this.Version = CBrowser_Version;
	this.IsNN = CBrowser_IsNN;
	this.IsIE = CBrowser_IsIE;
	this.IsWindows = CBrowser_IsWindows;
	this.IsMacintosh = CBrowser_IsMacintosh;
	this.IsUnix = CBrowser_IsUnix;
}
/*
'------------------------------------------------------------------------------
' 関数名	:Name
' 機能		:ブラウザ名称取得
' 返り値	:ブラウザ名称
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_Name() {
	return(this.m_browsername);
}
/*
'------------------------------------------------------------------------------
' 関数名	:OSType
' 機能		:ＯＳ種別取得
' 返り値	:ＯＳ種別
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_OSType() {
	return(this.m_osttype);
}
/*
'------------------------------------------------------------------------------
' 関数名	:Version
' 機能		:バージョン取得
' 返り値	:バージョン
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_Version() {
	return(this.m_version);
}
/*
'------------------------------------------------------------------------------
' 関数名	:IsNN
' 機能		:ブラウザがNetscapeか判定する
' 返り値	:true : Netscape  false : Netscape以外または、バージョンが古い
' 引き数	:ver - (入)バージョン番号
' 機能説明:バージョン番号を指定した場合は、バージョン番号以上かも判定する
' 備考		:なし
*/
function CBrowser_IsNN(ver) {
	if (this.m_nn) {
		if (arguments.length != 0) {
			return(this.m_version >= parseFloat(ver));
		}
		return true;
	}
	return false;
}
/*
'------------------------------------------------------------------------------
' 関数名	:IsIE
' 機能		:ブラウザがIEか判定する
' 返り値	:true : IE  false : IE以外または、バージョンが古い
' 引き数	:ver - (入)バージョン番号
' 機能説明:バージョン番号を指定した場合は、バージョン番号以上かも判定する
' 備考		:なし
*/
function CBrowser_IsIE(ver) {
	if (this.m_ie) {
		if (arguments.length != 0) {
			return(this.m_version >= parseFloat(ver));
		}
		return true;
	}
	return false;
}
/*
'------------------------------------------------------------------------------
' 関数名	:IsWindows
' 機能		:ＯＳ種別がWindowsか判定する
' 返り値	:true : Windows  false : Windows以外
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_IsWindows() {
	return(this.m_ostype == "Windows");
}
/*
'------------------------------------------------------------------------------
' 関数名	:IsMacintosh
' 機能		:ＯＳ種別がWindowsか判定する
' 返り値	:true : Windows  false : Macintosh以外
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_IsMacintosh() {
	return(this.m_ostype == "Macintosh");
}
/*
'------------------------------------------------------------------------------
' 関数名	:IsUnix
' 機能		:ＯＳ種別がUnixか判定する
' 返り値	:true : Unix  false : Unix以外
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function CBrowser_IsUnix() {
	return(this.m_ostype == "Unix");
}

var bws = new CBrowser();

/*
'------------------------------------------------------------------------------
' 関数名	:IsSupportedBrowser
' 機能		:動作可能なブラウザか判定します
' 返り値	:true : 動作可  false : 動作不可
' 引き数	:なし
' 機能説明:なし
' 備考		:なし
*/
function IsSupportedBrowser() {
	if (bws.IsWindows()) {
		if (bws.IsIE(5)) { return true; }
		if (bws.IsNN(6)) { return true; }
		alert("サポートしていないブラウザです。\nIE5.0以上かNN6以上を使用してください。");
	} else {
		alert("サポートしていないＯＳです。\nWindowsでのみ動作します。");
	}
	return false;
}
/*
'------------------------------------------------------------------------------
' 関数名	:MakeStyleSheetHTML
' 機能		:ブラウザ種別を判定してスタイルシート指定ＨＴＭＬを生成する
' 返り値	:ＨＴＭＬ文字列
' 引き数	:スタイルシート名
' 機能説明:なし
' 備考		:なし
*/
function MakeStyleSheetHTML(css) {
	var html;

	html = "<link rel='stylesheet' href='style/";
	if (bws.IsIE(5)) { html += "IE5"; }
	else if (bws.IsNN(6)) { html += "NN6"; }
	html += "/" + css + "' type='text/css' />";
	return html;
}
/*
'------------------------------------------------------------------------------
' 関数名	:onContextMenu
' 機能		:コンテキストメニュー表示イベント
' 返り値	:false
' 引き数	:イベント
' 機能説明:oncontextmenueイベントで使用
' 備考		:なし
*/
function onContextMenu(ev) {
	return true;
}
//------<< EOF >>------

