
/********************************************************************************
	XHTMLセット名	JavaScriptセット
	機能			JavaScriptによるデザイン機能を宣言する
	
	構造
					1. テキストモードとビジュアルモードの切り替え
					2. テーブル背景色の設定
					3. CSS読み込み
********************************************************************************/



/********************************************************************************
	関数名		GetNavigatorData
	機能		ブラウザ情報を取得する
	
	入力		なし
	出力		sNavigatorData		ブラウザ情報 ("Explorer 5.1","Safari 0.85")
********************************************************************************/
function GetNavigatorData(){
	var sNavigatorName = GetNavigatorName();
	var sNavigatorVersion = GetNavigatorVersion();
	var sNavigatorData = sNavigatorName + " " + sNavigatorVersion;
	
	return sNavigatorData;
}
/********************************************************************************
	関数名		GetOsName
	機能		OS情報を取得する
	
	入力		なし
	出力		sOsData		Os情報 ("MacOSX","Windows")
********************************************************************************/
function GetOsName()
{
	var uAgent  = navigator.userAgent.toUpperCase();
	if (uAgent.indexOf("MAC OS X") >= 0) return "MacOSX";
	if (uAgent.indexOf("MAC") >= 0) return "MacOS";
	if (uAgent.indexOf("WIN") >= 0) return "Windows";
	if (uAgent.indexOf("X11") >= 0) return "UNIX";
	return "";
}
function GetNavigatorName(){
	if(navigator.IBM_HPR) return "HomepageReader";
	
	aName  = navigator.userAgent.toUpperCase();
	if (aName.indexOf("SAFARI") >= 0) return "Safari";
	if (aName.indexOf("CHIMERA") >= 0) return "Camino";
	
	aName = navigator.appName.toUpperCase();
	if (aName.indexOf("NETSCAPE") >= 0)  return "Netscape";
	if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
	return "";
}
function GetNavigatorVersion(){
	var browser = GetNavigatorName();
	var version = 0;
	var s = 0;
	var e = 0;
	var appVer  = navigator.appVersion;
	if (browser == "Netscape")
	{
		s = appVer.indexOf(" ",0);
		version = eval(appVer.substring(0,s));
		if (version >= 5){
			version = navigator.vendorSub;
		}
	}
	if (browser == "Explorer"){
		appVer  = navigator.userAgent;
		s = appVer.indexOf("MSIE ",0) + 5;
		e = appVer.indexOf(";",s);
		version = eval(appVer.substring(s,e));
	}
	if (browser == "Safari"){
		s = appVer.indexOf("Safari/",0) + 7;
		version = appVer.slice(s);
	}
	if (browser == "Camino"){
		s = appVer.indexOf(" ",0);
		version = eval(appVer.substring(0,s));
		if (version >= 5){
			version = navigator.vendorSub;
		}
	}
	if (browser == "HomepageReader"){
		return navigator.IBM_WAT_Version;
	}
	return version;
}
/*******************************************************************************
	関数名		ZoomImage
	機能		画像をクリックすると、別ウィンドウに画像を表示する。
	
	入力		sImg		画像ファイル名
				sImgClass	画像に設定するクラス名
*******************************************************************************/
function ZoomImage(sImg, sImgClass){
	aHtmlLines = new Array();
	var iCnt=0;
aHtmlLines[0] = "<html><head><title>ZOOM IN</title>";
aHtmlLines[1] = "<meta http-equiv='Content-Type' content='text/html;charset=Shift_JIS'>";
aHtmlLines[2] = "<link rel='stylesheet' href='../1tools/color_zoom.css' type='text/css'>";
aHtmlLines[3] = "</head><body scroll='auto' topmargin='0' leftmargin='0' marginheight='0' marginwidth='0'>";
aHtmlLines[4] = "<table border='0' cellpadding='0' cellspacing='0' width='100%' height='100%'>";
aHtmlLines[5] = "<tr><td align='center' valign='center' width='100%' height='100%'>";
aHtmlLines[6] = "<table border='0' cellpadding=0 cellspacing=0><tr>";
aHtmlLines[7] = "<td align='center' nowrap><a href='javascript:window.close()' title='ウィンドウを閉じる'><img src='" + sImg + "' class='" + sImgClass + "' border=0></a></td>";
aHtmlLines[8] = "</tr></table></td></tr></table></body></html>";
	
	wImg = window.open('', '_blank');
	for(iCnt=0; iCnt < 9; iCnt++){
		wImg.document.write(aHtmlLines[iCnt]);
	}
}


/********************************************************************************
	関数名	SetSelectBox
********************************************************************************/
function SetSelectBox(sSelectName, sSelectData){
	// メンバーの数だけ繰り返す。
	for(iCnt = 0; iCnt < document.engine[sSelectName].length; iCnt++){
		// 対象のセレクトとログデータが等しい場合
		if(document.engine[sSelectName].options[iCnt].value == sSelectData){
			document.engine[sSelectName].options[iCnt].selected = 1;
			return 1;
		}
	}
	return 1;
}


/*******************************************************************************
	関数名		SetDateSelectBox
	機能		日付用セレクトボックスを今日の日付にする。
	
	入力		sSelectName		セレクトボックス名
				sDateMode		日付モード Y:年  M:月  D:日
	
*******************************************************************************/
function SetDateSelectBox(sSelectName, sDateMode){

	var sDataValue = 0;
	
	// 今日の日付を取得する。
	dDate = new Date();
	
	// 年モードの場合
	if( sDateMode == "Y" ){
		sDataValue = dDate.getYear();
		if( sDataValue < 2000 ){
			sDataValue += 1900;
		}

	// 月モードの場合
	} else if ( sDateMode == "M" ){
		sDataValue = dDate.getMonth() + 1;
		if( sDataValue < 10 ){
			sDataValue = "0" + sDataValue;
		}

	// 日モードの場合
	} else if (sDateMode == "D") {
		sDataValue = dDate.getDate();

		if( sDataValue < 10 ){
			sDataValue = "0" + sDataValue;
		}

	} else {
		alert("日付モードに間違いがあります。");
		return false;
	}
	
	// メンバーの数だけ繰り返す。
	for(iCnt = 0; iCnt < document.engine[sSelectName].length; iCnt++){
		// 対象のセレクトとログデータが等しい場合
		if(document.engine[sSelectName].options[iCnt].value == sDataValue){
			document.engine[sSelectName].options[iCnt].selected = 1;
			return 1;
		}
	}
	return 1;
}

/*******************************************************************************
	関数名		SetCgiCustomDate
	機能		日付指定がされているかをチェックし、指定されている場合は、
				CGI_CUSTOM_DATEに指定日を格納する。
	
	入力		sMode	CGIモード (<-WRITE-> or rewrite)
	出力		なし
	
	特殊
				appleの場合は、ソースファイルとフォームファイルが同一なため、
				<-WRITE->モードとrewriteモードの際の処理をわける必要がある。
	
	グローバル入力
				gYear, gMon, gDay
*******************************************************************************/
var gYear;
var gMon;
var gDay;
function SetCgiCustomDate(sMode){
	var sYear = document.engine.cgi_year.value;
	var sMon = document.engine.cgi_mon.value;
	var sDay = document.engine.cgi_day.value;
	var bCustomFlg = 0;
	var sNowYear = 0;
	var sNowMon = 0;
	var sNowDay = 0;
	
	// rewriteモードの場合
	if( sMode == "rewrite" ){
		sNowYear = gYear;
		sNowMon = gMon;
		sNowDay = gDay;
	} else {
		// 午前0時対応

		// 今日の日付を取得する。
		dDate = new Date();
		sNowYear = dDate.getYear();
		if( sNowYear < 2000 ){
			sNowYear += 1900;
		}
		
		sNowMon = dDate.getMonth() + 1;
		if( sNowMon < 10 ){
			sNowMon = "0" + sNowMon;
		}

		sNowDay = dDate.getDate();
		if( sNowDay < 10 ){
				sNowDay = "0" + sNowDay;
		}
	}
	
	// 日付の初期状態と異なるかをチェック
	if( sNowYear != sYear ){
		// 指定フラグをオンにする。
		bCustomFlg = 1;
	} else if ( sNowMon != sMon ){
		bCustomFlg = 1;

	} else if ( sNowDay != sDay ){
		bCustomFlg = 1;
	// 指定がない場合
	} else {
		// 終了する。
		return 1;
	}
	
	// 指定がある場合
	if( bCustomFlg == 1){
		// CGI_CUSTOM_DATEを作成し、フォームに格納する。
		document.engine.CGI_CUSTOM_DATE.value = sYear + "/" + sMon + "/" + sDay;
	}
	
	return 1;
	
}


/********************************************************************************
	関数名	SwapImage
********************************************************************************/
function SwapImage(sId, sImage) {
	
	document.getElementById(sId).src = sImage;
	
	return;
	
}

/********************************************************************************
	関数名	CheckData
********************************************************************************/
// 必須データの変数名リストを追加する。
DataNames = new Array();
DataSetsumeis = new Array();
BoxNames = new Array();
BoxSetsumeis = new Array();
SelectNames = new Array();
SelectSetsumeis = new Array();

function CheckData(sFormName){
	
	// 必須データリストに対して繰り返す。（入力項目）
	for( iDataCnt = 0; iDataCnt < DataNames.length; iDataCnt++){
		
		// 対象のデータが空の場合
		if(document.forms[sFormName][DataNames[iDataCnt]].value == "" || document.forms[sFormName][DataNames[iDataCnt]].value == "http://"){
			Message = DataSetsumeis[iDataCnt] + "は必ずご記入ください。";
			alert(Message);
			document.forms[sFormName][DataNames[iDataCnt]].focus();
			return(false);
		}
	}

	// 必須データリストに対して繰り返す。（ラジオボックス項目）
	for( iDataCnt = 0; iDataCnt < BoxNames.length; iDataCnt++){
		
		var bCheckedFlg = 0;
		
		// 対象ボックスがラジオボックスの場合
		if(document.forms[sFormName][BoxNames[iDataCnt]].length){
			var iBoxCnt = 0;
			// ラジオボックスのリストに対して繰り返す。
			for(iBoxCnt = 0; iBoxCnt < document.forms[sFormName][BoxNames[iDataCnt]].length; iBoxCnt++){

				// 対象のラジオボックスがチェックされている場合
				if (document.forms[sFormName][BoxNames[iDataCnt]][iBoxCnt].checked) {

					// チェック済みフラグをオンにする。
					bCheckedFlg = 1;
					
					// ラジオボックスのチェックを終了する。
					break;
				}
			}
		// チェックボックスの場合
		} else {
			
			// 対象のチェックボックスがチェックされている場合
			if(document.forms[sFormName][BoxNames[iDataCnt]].checked == 1){
				
				// チェック済みフラグをオンにする。
				bCheckedFlg = 1;
			}
		}
		
		// チェックされていない場合
		if(bCheckedFlg == 0){
			Message = BoxSetsumeis[iDataCnt] + "は必ずご選択ください。";
			alert(Message);
			document.forms[sFormName][BoxNames[iDataCnt]][0].focus();
			return(false);
		}
	}
	
	// 必須データリストに対して繰り返す。（セレクトボックス項目）
	for( iDataCnt = 0; iDataCnt < SelectNames.length; iDataCnt++){
		
		iSelectIndex = document.forms[sFormName][SelectNames[iDataCnt]].selectedIndex;
		
		// 対象のデータが空の場合
		if(document.forms[sFormName][SelectNames[iDataCnt]].options[iSelectIndex].value == ""){
			Message = SelectSetsumeis[iDataCnt] + "は必ずご記入ください。";
			alert(Message);
			document.forms[sFormName][SelectNames[iDataCnt]].focus();
			return(false);
		}
	}
	
	return(true);

}




/*******************************************************************************
	関数名	SearchPage
	機能	ログを検索する
	
	入力	sDomainName
	出力	ページ移動
	
	処理概要
			1. PageエンジンのURLを作成する
			2. 対象のURLにジャンプする
*******************************************************************************/
function SearchPage(sDomainName, sCallDir, sSearchWord) {
	
	
	// URLを作成する
	var sUrl = "../_page/page.cgi?mode=show&e_dir=../_page&call_dir=../" + sCallDir + "&search_mode=1&search_domain=" + sDomainName + "&search_word=" + sSearchWord;
	
	// 対象ページにジャンプする
	location.href = sUrl;
	
	return;
}

/*******************************************************************************
	関数名	GoUrl
	機能	url.cgiへジャンプする。
	
	入力	iUrl		URL番号
			sData		送信データ（カンマ区切り）
	出力	なし
*******************************************************************************/
function GoToUrl(iUrl, sData) {
	var sUrl = "../_page/url.cgi?url=" + iUrl + "&data=" + sData;
	
	// 対象ページにジャンプする
	location.href = sUrl;
	
	return;
	
}

/*******************************************************************************
	関数名	SetPhotoNavi
	機能	Projectsページのメイン画像のナビゲーションを設定する
	
	入力		iNowPage	現在表示されている写真番号
	G入力		gaImg		写真配列
	出力		なし
	
	処理概要	1. 画像の保存数を算出する
				2. 現在のページが最後のページでない場合
				 2.1. NEXTボタンを表示する
				3. 現在のページが1ページでない場合
				 3.1. BACKボタンを表示する
*******************************************************************************/
function SetPhotoNavi(iNowPage){
	
	var iPhotoNum = 0;
	var iCnt=0;
	
	// 画像配列に対して繰り返す
	for(iCnt=1; iCnt < gaImg.length; iCnt++){
		
		// 対象の配列が空の場合
		if(gaImg[iCnt] == "" && iPhotoNum == 0){
			
			// 写真枚数を格納する
			iPhotoNum = iCnt - 1;
		}
	}
	
	if(iPhotoNum == 0){
		iPhotoNum = 5;
	}
	
	// ページ番号が1でない場合
	if(iNowPage > 1){
		// 戻るボタンを表示する
		//$("#NaviBack").show();
		$("#NaviBack").attr('src', '../img/../img/ArrowLeft_on.gif');
	} else {
		// 戻るボタンを非表示する
		$("#NaviBack").attr('src', '../img/../img/ArrowLeft.gif');
		//$("#NaviBack").hide();
	}

	// ページ番号が最後でない場合
	if(iNowPage < iPhotoNum){
		// 次へボタンを表示する
		$("#NaviNext").attr('src', '../img/../img/ArrowRight_on.gif');
	} else {
		// 次へボタンを非表示する
		$("#NaviNext").attr('src', '../img/../img/ArrowRight.gif');
		//$("#NaviNext").hide();
	}
	
	// 写真の番号を表示する
	$("#NaviNum").text(iNowPage + " / " + iPhotoNum);
	//$("#NaviNum").text('TEST');
	
	return;
	
}


/*******************************************************************************
	関数名	ChangeImg
	機能	Projectsのメイン画像を差し替えて、ナビの状態も更新する。
	
	入力	iMode		進む戻るモード（-1:戻る  1:進む）
	G入力	giNowPage	現在の写真番号
			gaImg		画像ファイル名リスト
	出力	なし
*******************************************************************************/
function ChangeImg(iMode) {
	
	// 次の画像番号を作成する
	var iNextNum = giNowPage + iMode;
	
	// 対象の画像が存在することを念のため確認する
	if ( gaImg[iNextNum] != "" && gaImg[iNextNum] != undefined){
		// メイン画像を差し替える
		$("#MainImg").attr("src", gaImg[iNextNum]);
		
		giNowPage = iNextNum;
	}
	
	// ナビを更新する
	SetPhotoNavi(giNowPage);
	
	return;
}

/***********************************************************
	関数名	ScrollToTop
***********************************************************/
function ScrollToTop() {

    if(navigator.appName == "Microsoft Internet Explorer" && document.compatMode == "CSS1Compat") {
        sctop = document.body.parentNode.scrollTop;
    }else if(window.pageYOffset){
        sctop = window.pageYOffset;
    } else {
        sctop = document.body.scrollTop;
    }

    if(sctop){
        scup = Math.ceil(sctop*.2);
        scrollBy(0,-scup);
        if (sctop-scup) setTimeout("ScrollToTop()",15);
    }
}

/*******************************************************************************
	関数名	ShowNewsArticle
	機能	NEWSトップページでマウスオーバーしたときに
			対象のDIVオブジェクトを表示する
	
	入力	sId			DIV ID (#News1)
			bMode		表示モード 1:表示 0:非表示
	出力
	
*******************************************************************************/
function ShowNewsArticle(sId, bMode){
	
	// 表示モードの場合
	if(bMode == 1){
//		alert("on");
//		$(sId).show('slow');
		$(sId).css('visibility','visible');
	} else {
//		$(sId).hide();
		$(sId).css('visibility','hidden');
	}
}

/***********************************************************
 	関数名	Menu
 	機能	メニューのマウスオーバー状態を設定する
************************************************************/
var aUrl = [".",
			"news",
			"projects",
			"brands",
			"company",
			"contact",
			"blog"];
var aMenu = [".",
			"News",
			"Projects",
			"Brands",
			"Company",
			"Contact",
			"Blog"];
function Menu(iMenuNum, bMode){
	// メニュー名と対象ページのURLを取得する
	var sUrl = aUrl[iMenuNum];
	var sMenu = aMenu[iMenuNum];
	var sId = "Menu" + sMenu;
	
	// 画像名を作成する
	var sImageOn = "../img/Menu" + sMenu + "_on.gif";
	var sImageOff = "../img/Menu" + sMenu + ".gif";
	
	// 現在のページURLを取得する
	var sNowUrl = location.href;
	
	// 現在のページとメニューが一致する場合
	if(sNowUrl.indexOf(sUrl) >= 0){
		// 何もしない
		return;
	}
	
	// マウスオーバーモードの場合
	if(bMode == 1){
		document.getElementById(sId).src = sImageOn;
		
	// マウスアウトモードの場合
	} else {
		document.getElementById(sId).src = sImageOff;
	}
	
	return;	
}

/*******************************************************************************
	関数名	InitActiveMenu
	機能	現在のページのメニューボタンをアクティブ状態にする
	
	入力	なし
	出力	なし
*******************************************************************************/
function InitActiveMenu(){
	var iCnt;
	var sUrl = location.href;
	var sId;
	var sImage;
	
	// URLリストに対して繰り返す
	for(iCnt=1; iCnt<aUrl.length; iCnt++){
		
		// 対象のURLがマッチした場合
		if(sUrl.indexOf(aUrl[iCnt])>=0){
			sId = "Menu" + aMenu[iCnt];
			sImage = "../img/Menu" + aMenu[iCnt] + "_on.gif";
			
			document.getElementById(sId).src = sImage;
		}
	}
	
	return;
}

function ShowTwitterFacebook(){
	
	var sUrl = location.href;
	
	// URLにCGI_DATEが含まれない場合
	if(sUrl.indexOf("CGI_DATE")<0){
		
		// TwitterとFacebookのボタンを表示する
		document.getElementById("TwitterFacebook").style.display = "block";
	}
	
}
