// #require mootools.js
if (window.addEvent) {
	window.addEvent('domready', function () {
		var imgButtons = (function (srcs) {
			var result = {
				'extend': {
					'normal': new Image,
					'rover': new Image
				},
				'fold': {
					'normal': new Image,
					'rover': new Image
				}
			};
			result.extend.normal.src = srcs[0];
			result.extend.rover.src = srcs[1];
			result.fold.normal.src = srcs[2];
			result.fold.rover.src = srcs[3];
			return result;
		})([
			'./image/button-top_extend.gif',
			'./image/button-top_extend-on.gif',
			'./image/button-top_fold.gif',
			'./image/button-top_fold-on.gif'
		]);
		$$([
			'top-renewal',	// 更新情報
			'top-schedule',	// スケジュール
			'top-topics',	// トピックス
			'top-official_blog',	// オフィシャルブログ
			'top-farm',	// ファーム情報
			'top-camera_blog'	// カメラブログ
		]).each(function (box) {
			var body = box.getElement('div.content-box-body');
			var buttonArea = box.getElement('div.content-box-foot-buttons');
			if (!buttonArea) {
				buttonArea = new Element('div', {
					'class': 'content-box-foot-buttons'
				}).injectTop(box.getElement('div.content-box-foot'));
			}
			var optFx = {duration: 800, transition: Fx.Transitions.Back.easeInOut};
			var fx;
			if (window.ie6) {
				var bodyInner = body.getElement('div.content-box-inner');
				fx = new Fx.Elements([body, bodyInner], optFx);
			} else {
				fx = new Fx.Styles(body, optFx);
			}
			var height = body.getStyle('height').toInt();
//			var optExtend = {'height': height + 231};
			var optExtend = {'height': height + 206};
			var optFold = {'height': height};
			if (window.ie6) {
				optExtend = {'0': optExtend, '1': optExtend};
				optFold = {'0': optFold, '1': optFold};
				fx.set(optFold);
			}
			var imgExtend = new Element('img', {
				'src': imgButtons.extend.normal.src,
				'width': '11',
				'hight': '11',
				'class': 'pre-icon',
				'alt': '\u2193'
			});
			var imgFold = new Element('img', {
				'src': imgButtons.fold.normal.src,
				'width': '11',
				'hight': '11',
				'class': 'pre-icon',
				'alt': '\u2191'
			});
			var btnExtend = new Element('span', {
				'styles': {
					'cursor': 'pointer',
					'display': 'inline'
				}
			}).adopt(imgExtend)
			.appendText('\u3082\u3063\u3068\u898b\u308b')	// もっと見る
			.inject(buttonArea.empty());
			var btnFold = new Element('span', {
				'styles': {
					'cursor': 'pointer',
					'color': '#ff6600',
					'display': 'none'
				}
			}).adopt(imgFold)
			.appendText('\u5143\u306b\u623b\u3059')	// 元に戻す
			.inject(buttonArea);
			btnExtend.addEvent('mouseenter', function () {
				imgExtend.src = imgButtons.extend.rover.src;
			}).addEvent('mouseleave', function () {
				imgExtend.src = imgButtons.extend.normal.src;
			}).addEvent('click', function (event) {
				event = new Event(event).stop;
				fx.start(optExtend).chain(function () {
					btnExtend.setStyle('display', 'none');
					btnFold.setStyle('display', 'inline');
				});
			});
			btnFold.addEvent('mouseenter', function () {
				imgFold.src = imgButtons.fold.rover.src;
			}).addEvent('mouseleave', function () {
				imgFold.src = imgButtons.fold.normal.src;
			}).addEvent('click', function (event) {
				event = new Event(event).stop;
				fx.start(optFold).chain(function () {
					btnFold.setStyle('display', 'none');
					btnExtend.setStyle('display', 'inline');
				});
			});
		});
		$$([
			'top-ticket_day'	// ナゴヤドームチケット情報（当日券）
		]).each(function (box) {
			var body = box.getElement('div.content-box-body');
			var bodyInner = body.getElement('div.date-info-box');
			var buttonArea = box.getElement('div.content-box-foot-buttons');
			if (!buttonArea) {
				buttonArea = new Element('div', {
					'class': 'content-box-foot-buttons'
				}).injectTop(box.getElement('div.content-box-foot'));
			}
			if (bodyInner.getElements('table.day-ticket').length <= 1) {
				// 明日以降の当日券情報がない場合はなにもしない
				buttonArea.empty();
				return;
			}
			var optFx = {duration: 800, transition: Fx.Transitions.Back.easeInOut};
			var fx = new Fx.Elements([body, bodyInner], optFx);
			var height1 = body.getStyle('height').toInt();
			var height2 = bodyInner.getStyle('height').toInt();
			var height2a = bodyInner.getElement('div').offsetHeight + 4;
			var optExtend = {
				'0': {'height': height1 + height2a - height2},
				'1': {'height': height2a}
			};
			var optFold = {
				'0': {'height': height1},
				'1': {'height': height2}
			};
			var imgExtend = new Element('img', {
				'src': imgButtons.extend.normal.src,
				'width': '11',
				'hight': '11',
				'class': 'pre-icon',
				'alt': '\u2193'
			});
			var imgFold = new Element('img', {
				'src': imgButtons.fold.normal.src,
				'width': '11',
				'hight': '11',
				'class': 'pre-icon',
				'alt': '\u2191'
			});
			var btnExtend = new Element('span', {
				'styles': {
					'cursor': 'pointer',
					'display': 'inline'
				}
			}).adopt(imgExtend)
			.appendText('\u660e\u65e5\u4ee5\u964d\u306e\u5f53\u65e5\u5238\u60c5\u5831')	// 明日以降の当日券情報
			.inject(buttonArea.empty());
			var btnFold = new Element('span', {
				'styles': {
					'cursor': 'pointer',
					'color': '#ff6600',
					'display': 'none'
				}
			}).adopt(imgFold)
			.appendText('\u5143\u306b\u623b\u3059')	// 元に戻す
			.inject(buttonArea);
			// for OMAKE
			var behindbg = $('top-content');
			if (bodyInner.getElements('table.day-ticket').length == 2) {
				// 明日以降の当日券情報が1件だけの場合→背景画像をちょっと上に上げる
				behindbg.setStyle('background-position', '96px 307px');
			}
			// end for
			btnExtend.addEvent('mouseenter', function () {
				imgExtend.src = imgButtons.extend.rover.src;
			}).addEvent('mouseleave', function () {
				imgExtend.src = imgButtons.extend.normal.src;
			}).addEvent('click', function (event) {
				event = new Event(event).stop;
				// for OMAKE
//				if ($random(0, 3)) {	// for DEBUG
				if ($random(0, 29)) {
					behindbg.removeClass('dd');
				} else {
					// 30回に1回（DEBUG時は4回に1回）の割合で特別BG
					behindbg.addClass('dd');
				}
				// end for
				fx.start(optExtend).chain(function () {
					btnExtend.setStyle('display', 'none');
					btnFold.setStyle('display', 'inline');
				});
			});
			btnFold.addEvent('mouseenter', function () {
				imgFold.src = imgButtons.fold.rover.src;
			}).addEvent('mouseleave', function () {
				imgFold.src = imgButtons.fold.normal.src;
			}).addEvent('click', function (event) {
				event = new Event(event).stop;
				fx.start(optFold).chain(function () {
					btnFold.setStyle('display', 'none');
					btnExtend.setStyle('display', 'inline');
				});
			});
		});
	});
}

