//-------------------------------------------------------------------------------------------------
//
// ファイル概要 : 共通仕様関数群
//
//
//
// @package   cocobreeze
// @license   http://www.wiseknot.co.jp/
// @copyright copyright &copy; 2004, wiseknot, inc.
// @author    ryosuke tomita <r-tomita@wiseknot.co.jp>
// @access    public
// @charset   euc-jp
// @modified  2004/03/16
// @version   1.0
// @remark
//
//-------------------------------------------------------------------------------------------------




















//-------------------------------------------------------------------------------------------------
// 概要 : ブラウザ別スタイルシート振り分け処理
//
// 解説 : アクセス時にOS・ブラウザを判定し、各指定のCSSファイルを書き出す。
//
// 対象 : すべて
//
// @param [g_aryCss] : [オブジェクト型] . 環境別CSSタグ定義用配列
//-------------------------------------------------------------------------------------------------
g_aryCss = new Array();

g_aryCss['MacIE'] = '<link rel="stylesheet" type="text/css" media="screen,print" href="/cmn/css/import/mac_ie.css">';
g_aryCss['MacNS'] = '<link rel="stylesheet" type="text/css" href="/cmn/css/import/mac_ns.css">';
g_aryCss['WinIE'] = '<link rel="stylesheet" type="text/css" href="/cmn/css/import/win_ie.css">';
g_aryCss['WinNS'] = '<link rel="stylesheet" type="text/css" href="/cmn/css/import/win_ns.css">';


// Macの場合
if ( navigator.platform.indexOf('Mac') > -1 )
{
	// IEの場合
	if ( navigator.appName.indexOf('Microsoft') > -1 )
	{
		// スタイルシート書き出し
		document.write( g_aryCss['MacIE'] );
	}
	// IE以外の場合
	else
	{
		// スタイルシート書き出し
		document.write( g_aryCss['MacNS'] );
	}
}
// Windows または Unixの場合
else
{
	// IEの場合
	if(navigator.userAgent.indexOf("MSIE")!=-1 && navigator.userAgent.indexOf("Trident")==-1)
	{ //IE6,7
		// スタイルシート書き出し
		document.write( g_aryCss['WinIE'] );
	}else if( navigator.userAgent.indexOf("Trident")!=-1)
	{ //IE8以降
		// スタイルシート書き出し
		document.write( g_aryCss['WinNS'] );
	}
  // IE以外の場合
	else
	{
		// スタイルシート書き出し
		document.write( g_aryCss['WinNS'] );
	}
}












//-------------------------------------------------------------------------------------------------
// 概要 : 日付オブジェクト定義(年)
//
// 対象 : すべて
//
// @param [g_strDate] : [オブジェクト型] . 日付オブジェクト格納用グローバル変数
//-------------------------------------------------------------------------------------------------
// 日付オブジェクト定義
objDate = new Date();
var yy = objDate.getYear();

// 2000年問題対応
if ( yy < 2000 ) { yy += 1900; }

// 年の取得
var g_strDate = yy;


//-------------------------------------------------------------------------------------------------
// 概要 : イメージのランダム表示処理モジュール
//
// 外部ファイル : [/cmn/images.js]
//
// @param [objId]    : [オブジェクト型] . イメージオブジェクト名
// @param [g_aryImg] : [オブジェクト型] . ランダム表示イメージ生成用配列
//-------------------------------------------------------------------------------------------------
function fncRandomPictModule( objId )
{
	// イメージオブジェクト生成
	g_aryImg = new Array();

	// イメージオブジェクトに格納
	for( i=0; i < g_aryPict.length; i++ )
	{
		g_aryImg[i]     = new Image( 122 , 84 );
		g_aryImg[i].src = g_aryPict[i];
	}

	// 乱数の設定
	var i = Math.floor( Math.random() * g_aryImg.length );

	// IE の場合
	if( navigator.appName.indexOf( 'Microsoft' ) > -1 )
	{
		// イメージのランダム表示
		document.all( objId ).src = g_aryImg[i].src;
	}

	// Netscape の場合
	else if( navigator.appName.indexOf( 'Netscape' ) > -1 )
	{
		// イメージのランダム表示
		document.getElementById( objId ).src = g_aryImg[i].src;
	}

	return false;
}


//-------------------------------------------------------------------------------------------------
// 概要 : 各ぺージ共通オブジェクト書き出し関数
//
// 解説 : ページヘッダにロゴイメージと
//        ページフッターにコピーライトを書き出す。
//
// 対象 : すべて
//
// 外部関数 : [fncRandomPictModule] イメージのランダム表示処理モジュール
//
// 外部ファイル : [/cmn/images.js]
//
// @param [g_strDate]   : [オブジェクト型] . 定義済日付オブジェクト格納用グローバル変数
// @param [g_srtCopy]   : [文字列型]       . コピーライト文字列形成用グローバル変数
// @param [objId]       : [オブジェクト型] . 書き出し対象オブジェクト
// @param [g_aryMenu]   : [オブジェクト型] . 定義済みイメージソース格納用配列
//
// @event [onload] : body
//-------------------------------------------------------------------------------------------------
var g_srtCopy = g_strDate;

function fncCommonObject( objLogo , objMT , objCopy )
{
	// IE の場合
	if( navigator.appName.indexOf( 'Microsoft' ) > -1 )
	{
		if( objLogo )
		{
			// ロゴイメージ書き出し
			document.all( objLogo ).src = g_imgLogo.src;
		}

		if( objMT )
		{
			// MTイメージ書き出し
			fncRandomPictModule( objMT );
		}

		if( objCopy )
		{
			// コピーライト書き出し
			document.all( objCopy ).innerHTML = g_srtCopy;
		}
	}

	// Netscape の場合
	else if( navigator.appName.indexOf( 'Netscape' ) > -1 )
	{
		if( objLogo )
		{
			// ロゴイメージ書き出し
			document.getElementById( objLogo ).src = g_imgLogo.src;
		}

		if( objMT )
		{
			// MTイメージ書き出し
			fncRandomPictModule( objMT );
		}

		if( objCopy )
		{
			// コピーライト書き出し
			document.getElementById( objCopy ).innerHTML = g_srtCopy;
		}
	}

	return false;
}










//-------------------------------------------------------------------------------------------------
// 概要 : 汎用ロケーション関数
//
// 対象 : 対象オブジェクト
//
// @param [strURL] : [文字列型] . URL文字列
//
// @event [onclick] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncLocationUrl( strURL )
{
	location.href = strURL;
	return false;
}










//-------------------------------------------------------------------------------------------------
// 概要 : サブメニュー表示モジュール
//
// 対象 : 対象オブジェクト
//
// 外部関数 : [fncShowSubMenu] サブメニュー表示関数
//
// @param [g_arySubMenu] : [オブジェクト型] . サブメニューレイヤーID格納用配列
// @param [lngNum]       : [数値型]         . サブメニューレイヤーID格納配列番号
//-------------------------------------------------------------------------------------------------
g_arySubMenu    = new Array();

g_arySubMenu[0] = 'DefaultSubNav'; // 初期表示サブメニュー
g_arySubMenu[1] = 'ManageSubNav';  // マネジメントサブメニュー


function fncSubMenuModule( lngNum )
{
	// IE の場合
	if( navigator.appName.indexOf( 'Microsoft' ) > -1 )
	{
		// サブメニュー表示
		document.all( g_arySubMenu[lngNum] ).style.display = 'block';

		for( i=0 ; i < g_arySubMenu.length ; i++ )
		{
			// [lngNum]以外の配列
			if( i != lngNum )
			{
				// サブメニュー非表示
				document.all( g_arySubMenu[i] ).style.display = 'none';
			}
		}
	}
	// Netscape の場合
	else if( navigator.appName.indexOf( 'Netscape' ) > -1 )
	{
		// サブメニュー表示
		document.getElementById( g_arySubMenu[lngNum] ).style.display = 'block';

		for( i=0 ; i < g_arySubMenu.length ; i++ )
		{
			// [lngNum]以外の配列
			if( i != lngNum )
			{
				// サブメニュー非表示
				document.getElementById( g_arySubMenu[i] ).style.display = 'none';
			}
		}
	}

	return false;
}


//-------------------------------------------------------------------------------------------------
// 概要 : サブメニュー表示関数
//
// 対象 : 対象オブジェクト
//
// 外部関数 : [fncSubMenuModule] サブメニュー表示モジュール
//
// @param [strMode] : [文字列型] . 処理モード文字列
//
// @event [onmouseover] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncShowSubMenu( strMode )
{

	switch( strMode )
	{
		case 'manage':
			fncSubMenuModule( 1 );
			break;

		default:
			break;
	}

}


//-------------------------------------------------------------------------------------------------
// 概要 : サブメニュー非表示関数
//
// 対象 : 対象オブジェクト
//
// 外部関数 : [fncSubMenuModule] サブメニュー表示モジュール
//
// @event [onmouseout] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncHideSubMenu()
{
	fncSubMenuModule( 0 );
}










//-------------------------------------------------------------------------------------------------
// 概要 : メインメニューイメージファイル処理関数
//
// 対象 : 対象オブジェクト
//
// 外部ファイル : [/cmn/images.js]
//
// @param [objId]        : [オブジェクト型] . オブジェクト名
// @param [strMode]      : [文字列型]       . 定義済みイメージソース格納配列名
//
// @event [onmouseover],[onmouseout] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncMenuButton( objId , strMode )
{
	objId.src = g_aryMenu[strMode];
	return false;
}










//-------------------------------------------------------------------------------------------------
// 概要 : Emailチェック関数
//
// 外部関数 : [fncQueryModule] クエリーモジュール
//
// @param [objId]   : [オブジェクト型] . Email入力欄オブジェクト名
//        [objFrm]  : [オブジェクト型] . フォームオブジェクト名
//        [lngMode] : [オブジェクト型] . 処理モード値
//
// @event [onclick] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncQueryCheck( objId , objFrm , lngMode )
{
	var strEmailAddr; // Email文字列取得用変数

	// IE の場合
	if( navigator.appName.indexOf( 'Microsoft' ) > -1 )
	{
		// Email文字列取得
		strEmailAddr = document.all( objId ).value;
	}
	// Netscape の場合
	else if( navigator.appName.indexOf( 'Netscape' ) > -1 )
	{
		// Email文字列取得
		strEmailAddr = document.getElementById( objId ).value;
	}


	// EmailAddressの形式が正しい場合
	if( strEmailAddr.match(/.*@.*\..*/i) )
	{
		fncQueryModule( 0 , objFrm );
	}
	// EmailAddressの形式が不正な場合
	else
	{
		fncQueryModule( 1 , objFrm );
	}

	return false;
}


//-------------------------------------------------------------------------------------------------
// 概要 : クエリーモジュール
//
// @param [lngMode] : [数値型]         . 処理モード値
//        [objFrm]  : [オブジェクト型] . フォームオブジェクト名
//-------------------------------------------------------------------------------------------------
function fncQueryModule( lngMode , objFrm )
{
	switch( lngMode )
	{
		case 0:
			objFrm.submit();
			break;

		case 1:
			alert( 'メールアドレスを正しく入力してください。' );
			break;

		default:
			break;
	}

	return false;
}


//-------------------------------------------------------------------------------------------------
// 概要 : クエリー処理関数
//
// 解説 : クエリーの各処理を設定。
//
// 対象 : クエリーボタンオブジェクト
//
// CASE : [1] サブミット処理
//        [2] リセット処理
//
// @param [objFrm]  : [オブジェクト型] . フォームオブジェクト名
// @param [lngType] : [数値型]         . 処理モード値
//
// @event [onclick] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncQuery( objFrm , lngType )
{

	switch( lngType )
	{

		case 1:
			objFrm.submit();
			break;

		case 2:
			objFrm.reset();
			break;

		default:
			break;

	}

}















//-------------------------------------------------------------------------------------------------
// 概要 : IME制御関数
//
// 解説 : オブジェクトフォーカス時に、IMEを無効化する。
//
// 対象 : 入力フィールド
//
// @param [obj]      : [オブジェクト型] . 対象オブジェクト名
// @param [strMode]  : [文字列型]       . 処理モード文字列( disabled )
//
// @event [onfocus] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncSetIME( obj , strMode )
{
	obj.style.imeMode = strMode;
}













//-------------------------------------------------------------------------------------------------
// 概要 : フォーカス時背景色変更処理関数
//
// 解説 : オブジェクトフォーカス時に背景色を変更し、
//        もし入力済みのテキストがあれば、全選択状態にする。
//
// 対象 : 入力フィールド
//
// @param [obj]  : [オブジェクト型] . 対象オブジェクト名
//
// @event [onfocus],[onblur] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncChangeFocusColor( lngMode , obj , strColor )
{
	obj.style.background = strColor;

	if( lngMode == 1 )
	{
		// 入力済みのテキストがあれば、全選択状態にする
		obj.select();
	}
}










//-------------------------------------------------------------------------------------------------
// 概要 : 印刷用地図ウィンドウオープン関数(Redirect)
//
// 対象 : 対象オブジェクト
//
// @param [strURL] : [文字列型] . URL文字列
//
// @event [location],[onclick] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncRedirectPrintWindow( strURL )
{

	mapWin = window.open( strURL , 'map_win' , ' width=550 , height=600 , status=no , scrollbars=yes , directories=no , menubar=yes , resizable=no , location=no , toolbar=no , left=10 , top=10 ' );

}


//-------------------------------------------------------------------------------------------------
// 概要 : 印刷関数
//
// 対象 : 対象オブジェクト
//
// @event [onload] : 対象オブジェクト
//-------------------------------------------------------------------------------------------------
function fncPrint()
{
	var strMessage = 'お客様のブラウザでプリントアウトされる場合は、ファイルメニューの「印刷」オプションを使って出力するか、次のショートカットキーで印刷できます。Windows：「Ctrlキーを押しながらP」　Mac：「Commandキーを押しながらP」';

	// [print()]関数が有効な場合
	if( window.print )
	{
		window.print();
	}
	// [print()]関数が有効でない場合
	else
	{
		alert( strMessage );
	}

	return false;
}
