﻿// JavaScript Document

var AreaNavi = new Class({
	
	// PROPERTIES
	///////////////////////////////////////////////////////////////////
	localNavi: null,
	timer: null,
	
	// METHODS
	///////////////////////////////////////////////////////////////////
	initialize: function(areaNavi) {
		var scope = this;
		areaNavi.addEvents({
			"mouseenter": this.showLocalNavi.bind(scope),
			"mouseleave": this.orderHideLocalNavi.bind(scope)
		});
	},
	
	showLocalNavi: function() {
		clearTimeout(this.timer);
		this.localNavi.setStyle("display", "block");
		if(AreaNavi.currentNavi != null && AreaNavi.currentNavi != this) this.hideCurrentLocalNavi();
		AreaNavi.currentNavi = this;
	},
	
	orderHideLocalNavi: function() {
		var scope = this;
		this.timer = setTimeout(this.hideLocalNavi.bind(this), 1000);
	},
	
	hideLocalNavi: function() {
		this.localNavi.setStyle("display", "none");	
	},
	
	hideCurrentLocalNavi: function() {
		AreaNavi.currentNavi.hideLocalNavi();
	},
	
	registLocalNavi: function(localNavi) {
		var scope = this;
		this.localNavi = localNavi;
		this.localNavi.addEvents({
			"mouseenter": this.showLocalNavi.bind(scope),
			"mouseleave": this.orderHideLocalNavi.bind(scope)
		});
	}
});
AreaNavi.currentNavi = null;

function init() {
	var ex = new Array();
	ex.extend($$("#localNaviModel img"));
	ex.extend($$("#localNaviNotice img"));
	
	SwapImageFactory.init(ex);
	ScrollLink.init();
	
	var naviParis = new AreaNavi($("naviParis"));
	naviParis.registLocalNavi($("localNaviParis"));
	
	var naviNice = new AreaNavi($("naviNice"));
	naviNice.registLocalNavi($("localNaviNice"));
	
	var naviReims = new AreaNavi($("naviReims"));
	naviReims.registLocalNavi($("localNaviReims"));
	
	var naviNormandie = new AreaNavi($("naviNormandie"));
	naviNormandie.registLocalNavi($("localNaviNormandie"));
	
	var naviModel = new AreaNavi($("naviModel"));
	naviModel.registLocalNavi($("localNaviModel"));
	
	var naviNotice = new AreaNavi($("naviNotice"));
	naviNotice.registLocalNavi($("localNaviNotice"));
}

// エントリーポイント
window.addEvent("domready", init);
