/*-----------------------------------------------------------------------------

  ファイル概要 : 共通仕様関数群


  @package   hotmark
  @license   HotMark Co., Ltd.
  @copyright HotMark Co., Ltd.
  @author    AOI, Inc. <info@a-oi.jp>
  @access    public
  @charset   utf-8
  @modified  2006/01
  @version   1.0
  @remark

-----------------------------------------------------------------------------*/



	//-------------------------------------------------------------------------
	// 概要 : トリム関数
	//
	// 対象 : すべて
	//-------------------------------------------------------------------------
	function trim( str )
	{
		var strTemp, strRet, strFinal;

		strTemp = str;

		//LTRIM
		strRet = LTrim( strTemp );

		//RTRIM
		strFinal = RTrim( strRet );

		return strFinal;
	}
	function RTrim( strTemp )
	{
		var nLoop     = 0;
		var strReturn = strTemp;

		while (nLoop < strTemp.length)
		{
			if( ( strReturn.substring( strReturn.length - 1, strReturn.length ) == " " ) ||
				( strReturn.substring( strReturn.length - 1, strReturn.length ) == "　" ) )
			{
				strReturn = strTemp.substring( 0, strTemp.length - ( nLoop + 1 ) );
			}
			else
			{
				break;
			}

			nLoop++;
		}

		return strReturn;
	}
	function LTrim( strTemp )
	{
		var nLoop     = 0;
		var strReturn = strTemp;

		while( nLoop < strTemp.length )
		{
			if( ( strReturn.substring( 0, 1 ) == " " ) ||
				( strReturn.substring( 0, 1 ) == "　" ) )
			{
				strReturn = strTemp.substring( nLoop + 1, strTemp.length );
			}
			else
			{
				break;
			}

			nLoop++;
		}

		return strReturn;
	}




	//-------------------------------------------------------------------------
	// 概要 : フォーム必須項目エラー箇所背景色変更
	//
	// 対象 : フォームオブジェクト
	//
	// @param  Array  [aryError]     : 必須項目オブジェクトID
	// @param  String [strBgColor]   : カラム背景色
	// @param  String [strFontColor] : テキスト色
	//
	// @event [onload]
	//-------------------------------------------------------------------------
	function fncError( aryError, strBgColor, strFontColor )
	{
		var i, lngErrorCnt;

		lngErrorCnt	= aryError.length;

		// エラーが存在しない場合
		if ( !lngErrorCnt ) return false;

		// エラーが存在する場合、対象オブジェクトの背景色を変更
		for ( i = 0; i < aryError.length; i++ )
		{
			document.getElementById( aryError[i] ).style.backgroundColor	= strBgColor;
			document.getElementById( aryError[i] ).style.color				= strFontColor;
		}

		return false;
	}


	//-------------------------------------------------------------------------
	// 概要 : フォーム必須項目チェック処理関数
	//
	// 対象 : フォームオブジェクト
	//
	// 外部関数 [fncEmailCheckModule] : Email型チェックモジュール
	//          [fncQueryModule]      : クエリー処理モジュール
	//
	// @param  Object  [objFrm]   : フォームオブジェクトName
	// @param  Object  [objEmail] : Email入力欄オブジェクトID
	// @param  Array   [aryObj]   : 必須項目オブジェクトID
	//
	// @event [onclick] : 対象オブジェクト
	//-------------------------------------------------------------------------
	function fncCommonCheckFormElements( objFrm , objEmail , aryObj )
	{
		for( i in aryObj )
		{
			if( trim( document.getElementById( aryObj[i] ).value ) == "" )
			{
				fncCommonQueryModule( 'Error' );
				return false;
			}
		}

		// 空欄が存在しない場合、Email型チェックへ
		fncCommonEmailCheckModule( objFrm , objEmail );

		return false;
	}
	//-------------------------------------------------------------------------
	// 概要 : ラジオボタン項目チェック処理モジュール
	//
	// @param Object [obj] : ラジオボタンオブジェクト
	//
	// @return Boolean
	//-------------------------------------------------------------------------
	function fncCheckRadioBtn( obj )
	{
		var i;
		var blnCheck = false;

		// 選択肢が複数ある場合
		if( obj.length )
		{
			for( i = 0; i < obj.length; i ++ )
			{
				if( obj[i].checked )
				{
					blnCheck = true;
					break;
				}
			}
		}
		// 選択肢が1つだけの場合
		else
		{
			if( obj.checked ) blnCheck = true;
		}

		return blnCheck;
	}
	//-------------------------------------------------------------------------
	// 概要 : Email型チェックモジュール
	//
	// 外部関数 : [fncCommonQueryModule] クエリーモジュール
	//
	// @param  Object  [objFrm]   : フォームオブジェクトName
	// @param  Object  [objEmail] : Email入力欄オブジェクトID
	//
	// @event [onclick] : 対象オブジェクト
	//-------------------------------------------------------------------------
	function fncCommonEmailCheckModule( objFrm , objEmail )
	{
		var strEmailAddr; // Email文字列取得用変数

		strEmailAddr = document.getElementById( objEmail ).value;


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

		return false;
	}
	//-------------------------------------------------------------------------
	// 概要 : クエリー処理モジュール
	//
	// 外部関数 [fncCommonCheckFormElements] : フォーム必須項目チェック処理関数
	//
	// @param  Object  [strMode] : 処理モード文字列
	// @param  Object  [objFrm]  : フォームオブジェクトName
	//-------------------------------------------------------------------------
	function fncCommonQueryModule( strMode , objFrm )
	{
		switch( strMode )
		{
			case 'Submit':
				if( g_strUserAgent.indexOf( 'FIREFOX' ) > -1 )
				{
					document.getElementById( "hiddenSubmitBtn" ).click();
				}
				else
				{
					objFrm.submit();
				}
				break;

			case 'Reset':
				objFrm.reset();
				break;

			case 'EmailError':
				alert( 'メールアドレスの形式が不正です。正しく入力してください。' );
				break;

			case 'Error':
				alert( '必須項目を入力してください。' );
				break;

			default:
				break;
		}

		return false;
	}


	//-------------------------------------------------------------------------
	// 概要 : ウィンドウオープン関数
	//
	// 対象 : 対象オブジェクト
	//
	// 外部関数 : [fncCommonPopupWindowModule] . ウィンドウオープンモジュール
	//
	// @param  String  [strURL]     : URL文字列
	// @param  String  [strWidth]   : Width値文字列
	// @param  String  [strHeight]  : Height値文字列
	// @param  String  [strXpos]    : X座標値文字列
	// @param  String  [strYpos]    : Y座標値文字列
	// @param  String  [strWinName] : ウィンドウ名文字列
	// @param  String  [strScroll]  : スクロールバー可否文字列
	//
	// @event [onclick] : 対象オブジェクト
	//-------------------------------------------------------------------------
	function fncCommonPopupWindow( strURL, strWidth, strHeight, strXpos, strYpos, strWinName, strScroll )
	{
		// Safariの場合
		if( navigator.userAgent.indexOf( 'Safari' ) > -1 )
		{
			// 文字列を数値に変換
			var lngWidth  = Number( strWidth )  + 2;
			var lngHeight = Number( strHeight ) + 2;

			// 数値を文字列に変換
			strNewWidth  = String( lngWidth );
			strNewHeight = String( lngHeight );

			fncCommonPopupWindowModule( strURL, strNewWidth, strNewHeight, strXpos, strYpos, strWinName, strScroll );
		}
		else
		{
			fncCommonPopupWindowModule( strURL, strWidth, strHeight, strXpos, strYpos, strWinName, strScroll );
		}

		return false;
	}
	//-------------------------------------------------------------------------
	// 概要 : ウィンドウオープン・パラメータ設定関数
	//
	// 外部関数 : [fncCommonPopupWindow] . ウィンドウオープン関数
	//
	// @param  String  [strURL]         : URL文字列
	// @param  String  [strWidth]       : Width値文字列
	// @param  String  [strHeight]      : Height値文字列
	// @param  String  [strXpos]        : X座標値文字列
	// @param  String  [strYpos]        : Y座標値文字列
	// @param  String  [strWinName]     : ウィンドウ名文字列
	// @param  String  [strScroll]      : スクロールバー可否文字列
	// @param  Object  [strWindowStyle] : ウィンドウスタイル定義用変数
	//-------------------------------------------------------------------------
	function fncCommonPopupWindowModule( strURL, strWidth, strHeight, strXpos, strYpos, strWinName, strScroll )
	{
		var strWindowStyle = '';

		strWindowStyle += 'top=' + strXpos + ' , ';
		strWindowStyle += 'left=' + strYpos + ' , ';
		strWindowStyle += 'width='  + strWidth + ' , ';
		strWindowStyle += 'height=' + strHeight + ' , ';
		strWindowStyle += 'scrollbars=' + strScroll;

		// デバッグ
		//alert( strWindowStyle );

		newW = window.open( strURL , strWinName , strWindowStyle );

		return false;
	}





	//-------------------------------------------------------------------------
	// 概要 : 汎用イメージ変更処理
	//
	// @param  String  [strID]   : <img>タグID
	// @param  String  [strPath] : イメージパス
	//-------------------------------------------------------------------------
	function fncChangeImage( strID, strPath )
	{
		document.getElementById( strID ).src = strPath;

		return false;
	}

