﻿var menuShowing;
var pmenuShowing;
var mmenuShowing;
var amenuShowing;
var whatsShowing;
var mp3no=0;

var preloadImages = {};

// 最初に実行する関数（主に表示を消す関数）
function init() {
	new Tip('thumb01', 'ロトルア温泉湖にて', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb02', '空の写真', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb03', 'ニュージーランド南島', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb04', 'ニュージーランド北島', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb05', '照り返す海の写真', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb06', '森の奥にて', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb07', 'ミンキー', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb08', 'Fijiの子供', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb09', '宿のお風呂', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });
	new Tip('thumb10', '桜', { className: 'sacredtip', delay: 0.2, effect: 'appear', fixed: true, hook:{ target: 'topRight', tip: 'topRight'}, offset:{x:0, y:5}, target:'tooltipDisp' });

	loadSound();
}

function playmp3s(no) {
	for(i=0; i<=mp3no; i++){
		playmp3.stopNo(i);
	}
	playmp3.playNo(no);
}

function loadSound() {
	playmp3.loadNo("../rec/InvisibleStormOfRainyDay.mp3", 0);
	playmp3.loadNo("../rec/redStickyWild.mp3", 1);
	playmp3.loadNo("../rec/WhoWanderWild.mp3", 2);
	playmp3.loadNo("../rec/softLight.mp3", 3);
	playmp3.loadNo("../rec/PlayAloneWhileWaiting.mp3", 4);
	playmp3.loadNo("../rec/TheStoryOfCoast.mp3", 5);
	playmp3.loadNo("../rec/ryuga-oldrec-.mp3", 6);
	playmp3.loadNo("../rec/reason/gote.mp3", 7);
	playmp3.loadNo("../rec/reason/gote2.mp3", 8);
	playmp3.loadNo("../rec/reason/bach_invention01-00.mp3", 9);
	playmp3.loadNo("../rec/reason/bach_invention01-01.mp3", 10);
	playmp3.loadNo("../rec/reason/oil.mp3", 11);
	playmp3.loadNo("../rec/reason/speed.mp3", 12);
	playmp3.loadNo("../rec/reason/TheSun.mp3", 13);
	playmp3.loadNo("../rec/reason/alien.mp3", 14);
	playmp3.loadNo("../rec/reason/gothic.mp3", 15);
	playmp3.loadNo("../rec/wing.mp3", 16);

	mp3no = 16;
}

function preload() {
	preloadImages["forest"] = new Image();
	preloadImages["forest"].src = "../images/bg_forest.jpg";
	preloadImages["field"] = new Image();
	preloadImages["field"].src = "../images/bg_field.jpg";
	preloadImages["sea"] = new Image();
	preloadImages["sea"].src = "../images/bg_sea.jpg";
	preloadImages["cat"] = new Image();
	preloadImages["cat"].src = "../images/bg_cat.jpg";
	preloadImages["bluesky"] = new Image();
	preloadImages["bluesky"].src = "../images/bg_bluesky.jpg";
	preloadImages["deepforest"] = new Image();
	preloadImages["deepforest"].src = "../images/bg_deepforest.jpg";
	preloadImages["kids"] = new Image();
	preloadImages["kids"].src = "../images/bg_kids.jpg";
	preloadImages["bath"] = new Image();
	preloadImages["bath"].src = "../images/bg_bath.jpg";
	preloadImages["cherry"] = new Image();
	preloadImages["cherry"].src = "../images/bg_cherry.jpg";
}

function changeBg(selectID) {

	if(selectID == 'forest') {
		window.setTimeout('changeImage(\'forest\')', 1000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'bluesky') {
		window.setTimeout('changeImage(\'bluesky\')', 1000);
		changeMenuFontColor('#000000');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'coast') {
		window.setTimeout('changeImage(\'coast\')', 1000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'field') {
		window.setTimeout('changeImage(\'field\')', 1000);
		changeMenuFontColor('#222222');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'sea') {
		window.setTimeout('changeImage(\'sea\')', 1000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#333333');
	} else if(selectID == 'deepforest') {
		window.setTimeout('changeImage(\'deepforest\')', 1000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'cat') {
		window.setTimeout('changeImage(\'cat\')', 2000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'kids') {
		window.setTimeout('changeImage(\'kids\')', 2000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'bath') {
		window.setTimeout('changeImage(\'bath\')', 2000);
		changeMenuFontColor('#333333');
		changeClassFontColor('div.menu', '#ffffff');
	} else if(selectID == 'cherry') {
		window.setTimeout('changeImage(\'cherry\')', 2000);
		changeMenuFontColor('#222222');
		changeClassFontColor('div.menu', '#ffffff');
	}

	//new Effect.Fold("base");
	//new Effect.SlideUp("base");
	//new Effect.Squish("base");
	//new Effect.Shrink("base");
	new Effect.SwitchOff("base");
	clearTimeout();
	//document.getElementById("base").style.backgroundImage = "url(../images/bg_"+selectID+".jpg)";
	window.setTimeout('Effect.Appear(\'base\', {duration:.5})', 2000);
}

function changeMenuFontColor(color) {
	changeClassFontColor('div.amenu', color);
	changeClassFontColor('div.pmenu', color);
	changeClassFontColor('div.mmenu', color);
}

function changeClassFontColor(className, fontColor) {
	var css_list = document.styleSheets;
	if (css_list) for (var i = 0; i < css_list.length; i++) {
		var rule_list = (css_list[i].cssRules) ? css_list[i].cssRules : css_list[i].rules;
		for (var ii = 0; ii < rule_list.length; ii++)
			if (rule_list[ii].selectorText.toLowerCase() == className) {
				with (rule_list[ii].style) {
					color = fontColor;
				}
			}
	}
}

function changeImage(ID) {
	document.getElementById("base").style.backgroundImage = "url(../images/bg_"+ID+".jpg)";
}

// タイトルをクリックするとメニューが表示される
function clickTitle() {

	if(menuShowing != "on") {
		displayBlock("menuAbout", "menu");
		displayBlock("menuProfile", "menu");
		displayBlock("menuMusic", "menu");
		displayBlock("menuLanguage", "menu");
		displayBlock("selectBg", "menu");
		menuShowing = "on";
	} else {
		hideBlock("menuAbout");
		hideBlock("menuProfile");
		hideBlock("menuMusic");
		hideBlock("menuLanguage");
		hideBlock("selectBg");
		menuShowing = "off";
		hideBlock(whatsShowing);

		if(mmenuShowing == "on") {
			hideBlock("mmenu00", "menu");
			hideBlock("mmenu01", "menu");
			hideBlock("mmenu02", "menu");
			hideBlock("mmenu03", "menu");
			hideBlock("mmenu04", "menu");
			hideBlock("mmenu05", "menu");
			hideBlock("mmenu06", "menu");
			hideBlock("mmenu07", "menu");
			hideBlock("mmenu08", "menu");
			hideBlock("mmenu09", "menu");
			hideBlock("mmenu10", "menu");
			hideBlock("mmenu11", "menu");
			hideBlock("mmenu12", "menu");
			mmenuShowing = "off";
		}
		if(amenuShowing == "on") {
			hideBlock("amenu00", "menu");
			hideBlock("amenu01", "menu");
			hideBlock("amenu02", "menu");
			amenuShowing = "off";
		}
		if(pmenuShowing == "on") {
			hideBlock("pmenu00", "menu");
			hideBlock("pmenu01", "menu");
			hideBlock("pmenu02", "menu");
			hideBlock("pmenu03", "menu");
			pmenuShowing = "off";
		}
	}
}

// タイトルをクリックするとメニューが表示される
function clickProfileMenu() {
	if(pmenuShowing != "on") {
		hideBlock(whatsShowing);
		displayBlock("pmenu00", "menu");
		displayBlock("pmenu01", "menu");
		displayBlock("pmenu02", "menu");
		displayBlock("pmenu03", "menu");
		pmenuShowing = "on";
		displayBlock("profile");
		whatsShowing = "profile";
	} else {
		hideBlock("pmenu00");
		hideBlock("pmenu01");
		hideBlock("pmenu02");
		hideBlock("pmenu03");
		pmenuShowing = "off";
		hideBlock(whatsShowing);
	}
}

// aboutをクリックするとメニューが表示される
function clickAboutMenu() {
	if(amenuShowing != "on") {
		hideBlock(whatsShowing);
		displayBlock("amenu00", "menu");
		displayBlock("amenu01", "menu");
		displayBlock("amenu02", "menu");
		amenuShowing = "on";
		displayBlock("about");
		whatsShowing = "about";
	} else {
		hideBlock("amenu00");
		hideBlock("amenu01");
		hideBlock("amenu02");
		amenuShowing = "off";
		hideBlock(whatsShowing);
	}
}

// musicをクリックするとメニューが表示される
function clickMusicMenu() {
	if(mmenuShowing != "on") {
		hideBlock(whatsShowing);
		displayBlock("mmenu00", "menu");
		displayBlock("mmenu01", "menu");
		displayBlock("mmenu02", "menu");
		displayBlock("mmenu03", "menu");
		displayBlock("mmenu04", "menu");
		displayBlock("mmenu05", "menu");
		displayBlock("mmenu06", "menu");
		displayBlock("mmenu07", "menu");
		displayBlock("mmenu08", "menu");
		displayBlock("mmenu09", "menu");
		displayBlock("mmenu10", "menu");
		displayBlock("mmenu11", "menu");
		displayBlock("mmenu12", "menu");
		mmenuShowing = "on";
		displayBlock("music00");
		whatsShowing = "music00";
	} else {
		hideBlock("mmenu00");
		hideBlock("mmenu01");
		hideBlock("mmenu02");
		hideBlock("mmenu03");
		hideBlock("mmenu04");
		hideBlock("mmenu05");
		hideBlock("mmenu06");
		hideBlock("mmenu07");
		hideBlock("mmenu08");
		hideBlock("mmenu09");
		hideBlock("mmenu10");
		hideBlock("mmenu11");
		hideBlock("mmenu12");
		mmenuShowing = "off";
		hideBlock(whatsShowing);
	}
}

// ブロックを表示させる関数
// メニューを表示する際には既に表示してあるブロックを隠さない
// それ以外の場合はhideBlockですでに表示してあるブロックを隠す
function displayBlock(displayID, optMenu) {
	if(whatsShowing != displayID) {
		matchObj= new RegExp("music");
		if(!displayID.match(matchObj) && mmenuShowing == "on") {
			hideBlock("mmenu00");
			hideBlock("mmenu01");
			hideBlock("mmenu02");
			hideBlock("mmenu03");
			hideBlock("mmenu04");
			hideBlock("mmenu05");
			hideBlock("mmenu06");
			hideBlock("mmenu07");
			hideBlock("mmenu08");
			hideBlock("mmenu09");
			hideBlock("mmenu10");
			hideBlock("mmenu11");
			hideBlock("mmenu12");
			mmenuShowing = "off";
		}
		if(amenuShowing == "on") {
			if((displayID != "about") && (displayID != "copyright") && (displayID != "attention")) {
				hideBlock("amenu00");
				hideBlock("amenu01");
				hideBlock("amenu02");
				amenuShowing = "off";
			}
		}
		if(pmenuShowing == "on") {
			if((displayID != "profile") && (displayID != "bookmark") && (displayID != "contact") && (displayID != "poem")) {
				hideBlock("pmenu00");
				hideBlock("pmenu01");
				hideBlock("pmenu02");
				hideBlock("pmenu03");
				pmenuShowing = "off";
			}
		}
		if(optMenu != "menu") {
			hideBlock(whatsShowing);
			whatsShowing = displayID;
			alphaDisplay(displayID, 1);
		} else {
			// menuの場合のフェードイン
			hideBlock(whatsShowing);
			alphaDisplay(displayID, 3);
		}
	} else {
		hideBlock(displayID);
		whatsShowing = undefined;
	}
}

// ブロックの表示を隠す関数
function hideBlock(displayID) {
	if(displayID != undefined) {
		fadeOutEffect(displayID);
	}
}


function test() {
/*		divObj = document.getElementsByTagName('div');
		var matchString = 'mmenu';
		matchObj = new RegExp(matchString);
		for(i = 0; i < divObj.length; i++) {
			if(divObj[i].id.match(matchObj)) {
				divObj[i].style.display = "none";
			}
		}*/
}

function alphaDisplay(displayID, durationTime) {
	if(durationTime == "") durationTime = 5;
	new Effect.Appear(displayID, {
		from:0.1, // 開始時透明度
		to:0.7, // 終了時透明度
		delay:0, // 開始までの秒数
		fps:60, // フレームレート
		duration: durationTime, // アニメーションする時間(秒)
		beforeStartInternal: function(effect) {
		//alert('start');
		},
		afterFinishInternal: function(effect) {
		//	alert('end');
		}
	});
}

function fadeInEffect(displayID, durationTime) {
	if(durationTime == "") durationTime = 5;
	new Effect.Appear(displayID, {
		from:0.1, // 開始時透明度
		to:1.0, // 終了時透明度
		delay:0, // 開始までの秒数
		fps:60, // フレームレート
		duration: durationTime, // アニメーションする時間(秒)
		beforeStartInternal: function(effect) {
		//alert('start');
		},
		afterFinishInternal: function(effect) {
		//	alert('end');
		}
	});
}

function fadeOutEffect(displayID) {
	new Effect.Fade(displayID, {
		from:0.7, // 開始時透明度
		to:0.0, // 終了時透明度
		//delay:0, // 開始までの秒数
		fps:60, // フレームレート
		duration: 1 // アニメーションする時間(秒)
	});
}

function getElementsByClass(searchClass) {
	var classElements = new Array();

	if (document.all) {
		var allElements = document.all;
	} else if (document.getElementsByTagName) {
		var allElements = document.getElementsByTagName("*");
	} else {
		return;
	}

	for (i = 0, j = 0; i < allElements.length; i++) {
		if (allElements[i].className == searchClass) {
			classElements[j] = allElements[i];
			j++;
		}
	}

	return classElements;
}

