var TinyFloatingManager = new Class({
	
	closebuttonContainer: null,
	closebuttonId: "mbCloseLink",
	
	closebuttonContainerReId: "mbImage",
	
	closebutton: null,
	closebuttonPath: "common/img/floating/floating_close.png",
	
	minFloatingHeight: 400,
	windowHeight: null,
	invokerList: null,
	
	// Windowサイズが変更された際に、高さを再登録する
	resizeListener: function() {
		this.windowHeight = window.getHeight();
		var h = this.windowHeight * 0.8;
		h = (h < this.minFloatingHeight)? this.minFloatingHeight : h;
		Cookie.write("tinyHeight", h);
		var imax = this.invokerList.length;
		for(var i=0; i<imax; i++){
			var invoker = this.invokerList[i];
			invoker.set("rel", "lightbox[set 855 "+ h +"]");
		}
	},
	
	// 呼び出し元エレメントを登録
	setBoxInvoker: function(invokerList) {
		var imax = invokerList.length;
		for(var i=0; i<imax; i++){
			var invoker = invokerList[i];
			invoker.addEvent("mousedown", this.clickListener.bindWithEvent(this));
		}
		this.invokerList = invokerList;
	},
	
	// クリックされた時のリスナ
	clickListener: function() {
		if(this.closebutton != null) return;
		this.closebutton = this.createClosebutton();
	},
	
	// クローズボタンを生成する
	createClosebutton: function() {
		
		// クローズボタン生成
		var closebutton = new Element("img", {
			src: this.closebuttonPath,
			"class": "iepngfix"
		});
		
		// クローズボタンのコンテナを取得、プロパティ設定
		var dummyClosebuttonContainer = $(this.closebuttonId);
		dummyClosebuttonContainer.setStyles({
			position: "absolute",
			top: -10,
			right: -10,
			height: 47 + "px",
			zIndex: 9999
		});
		
		// クローズボタンの親ノードを変更する
		closebutton.inject(dummyClosebuttonContainer);
		var closebuttonContainer = dummyClosebuttonContainer.dispose();
		closebuttonContainer.inject("mbCenter");
		
		// 閉じるボタンを表示するためにプロパティを設定しなおす
		$("mbCenter").setStyles({overflow: "visible"});
		$("mbBottom").setStyles({display: "none"});;
		
		// mbBottonはいらないから隠しておく
		$("mbBottom").setStyles({
			overflow: "hidden",
			height: 0,
			fontSize: 0,
			lineHeight: 1
		});

		return closebutton;
	}
	
});

// エントリーポイント
function tinyFloatingManagerInit() {

	// プライバシーポリシーの呼び出し設定
	var privacyFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxPrivacy");
	privacyFloatingManager.setBoxInvoker(linkAnalysisList);
	privacyFloatingManager.resizeListener();
	window.addEvent("resize", privacyFloatingManager.resizeListener.bindWithEvent(privacyFloatingManager));

	// お問い合わせーの呼び出し設定
	var contactFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxContact");
	contactFloatingManager.setBoxInvoker(linkAnalysisList);
	contactFloatingManager.resizeListener();
	window.addEvent("resize", contactFloatingManager.resizeListener.bindWithEvent(contactFloatingManager));
	
	// 17則の呼び出し設定
	var about17FloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxAbout17");
	about17FloatingManager.setBoxInvoker(linkAnalysisList);
//	about17FloatingManager.resizeListener();
//	window.addEvent("resize", about17FloatingManager.resizeListener.bindWithEvent(about17FloatingManager));
	
	// クラッチの強みの呼び出し設定
	var strongFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxStrong");
	strongFloatingManager.setBoxInvoker(linkAnalysisList);
	strongFloatingManager.resizeListener();
	window.addEvent("resize", strongFloatingManager.resizeListener.bindWithEvent(strongFloatingManager));
	
	// プロモーションの呼び出し設定
	var promotionFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxPromotion");
	promotionFloatingManager.setBoxInvoker(linkAnalysisList);
	promotionFloatingManager.resizeListener();
	window.addEvent("resize", promotionFloatingManager.resizeListener.bindWithEvent(promotionFloatingManager));
	
	// 制作の呼び出し設定
	var productionFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxProduction");
	productionFloatingManager.setBoxInvoker(linkAnalysisList);
	productionFloatingManager.resizeListener();
	window.addEvent("resize", productionFloatingManager.resizeListener.bindWithEvent(productionFloatingManager));
	
	// ブライダルの呼び出し設定
	var bridalFloatingManager = new TinyFloatingManager();
	var linkBridalList = $$(".linkboxBridal");
	bridalFloatingManager.setBoxInvoker(linkBridalList);
	bridalFloatingManager.resizeListener();
	window.addEvent("resize", bridalFloatingManager.resizeListener.bindWithEvent(bridalFloatingManager));
	
	// コンサルティング事業の呼び出し設定
	var consultingFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxConsulting");
	consultingFloatingManager.setBoxInvoker(linkAnalysisList);
	consultingFloatingManager.resizeListener();
	window.addEvent("resize", consultingFloatingManager.resizeListener.bindWithEvent(consultingFloatingManager));
	
	// 会社概要の呼び出し設定
	var companyFloatingManager = new TinyFloatingManager();
	var linkAnalysisList = $$(".linkboxCompany");
	companyFloatingManager.setBoxInvoker(linkAnalysisList);
	companyFloatingManager.resizeListener();
	window.addEvent("resize", companyFloatingManager.resizeListener.bindWithEvent(companyFloatingManager));
	
}

window.addEvent("load", tinyFloatingManagerInit);
