var containerStyle = { };
var playerMaximized = false;
var scrollStop = false;

function maximizePlayer() {
	$("PAGEHEADER", "WATCHHEADER", "WATCHFOOTER", "PAGEFOOTER").invoke("hide");
	var container = $("flvplayer_container");
	["width", "height", "margin", "padding"].each(function (k) { containerStyle[k] = container.getStyle(k); });
	[container].concat(container.ancestors()).invoke("setStyle", { margin: "0", padding: "0", width: "100%", height: "100%" });
	fitPlayerToWindow();
	Event.observe(window, "resize", fitPlayerToWindow, false);
	if (typeof rotationAdvertisement != "undefined")
		rotationAdvertisement.pause();
}

function fitPlayerToWindow() {
	$("flvplayer").setStyle({ width: "100%", height: "100%" });
}

function restorePlayer() {
	Event.stopObserving(window, "resize", fitPlayerToWindow, false);
	$("flvplayer").setStyle({ width: "", height: "" });
	setTimeout(function () {
		var container = $("flvplayer_container");
		[container].concat(container.ancestors()).invoke("setStyle", { margin: "", padding: "", width: "", height: "" });
		container.setStyle(containerStyle);
		$("PAGEHEADER", "WATCHHEADER", "WATCHFOOTER", "PAGEFOOTER").invoke("show");
		Element.scrollTo($("flvplayer_container"));
		if (typeof rotationAdvertisement != "undefined")
			rotationAdvertisement.resume();
	}, 0);
}

function toggleMaximizePlayer() {
	if (playerMaximized) {
		restorePlayer();
	} else {
		maximizePlayer();
	}
	playerMaximized = !playerMaximized;
}

function setMymemoryParameters(from, num, date) {
	var ranges;
	if (date !== undefined) {
		if (from > 0 && num > 0 && date > 0) {
			ranges = {'main': {'from': from, 'num': num}};
		}
	} else {
		ranges = from;
		date = num;
	}

	if (typeof ranges == "object" && date > 0) {
		var form = $("mymemory_add_form");

		for (var type in ranges) {
			var range = ranges[type];
			for (var key in range) {
				var name = "ranges[" + type + "][" + key + "]";
				var field = form[name];
				if (!field) {
					field = document.createElement("input");
					field.type = "hidden";
					field.name = name;
					form.appendChild(field);
				}
				field.value = range[key];
			}
		}

		form["date"].value = date;
		$("mymemory_add_submit").enable().value = "指定日時の保存";
	} else {
		$("mymemory_add_submit").disable().value = "保存できません";
	}
}

function resetMymemoryParameters() {
	$("mymemory_add_form").getInputs("hidden").each(function (field) {
		field.value = "";
	});
	$("mymemory_add_submit").enable().value = "マイメモリー保存";
}


function handleOnWheel(e){
	if(scrollStop == true){
		Event.stop(e || window.event);
	}
}

function scrollBlock(value){
	scrollStop = value;
}

var deflistAddMessages = {
	EXIST: '<a href="/my/mylist" style="color:#FFF;">この動画はすでに「とりあえずマイリスト」に登録されています。</a>',
	NOAUTH: 'ログインしてください。',
	MAINTENANCE: 'メンテナンス中です。',
	EXPIRETOKEN: '画面の有効期限が切れました。お手数ですが画面を再読込してください。',
	INVALIDVIDEO: 'この動画は登録できません',
	INTERNALERROR: '登録中にエラーが発生しました'
};

var addVideoToDeflistAdding = false;
function addVideoToDeflist(item_id, token) {
	if (addVideoToDeflistAdding) return;
	addVideoToDeflistAdding = true;
	$("MSG_deflist_success", "MSG_deflist_error").invoke("hide");
	$("MSG_deflist_loading", "MSG_deflist").invoke("show");
	new Ajax.Request("/api/deflist/add", {
		parameters: { item_id: item_id, token: token },
		onComplete: function (res) {
			$("MSG_deflist_loading").hide();
			var data = res.responseText.evalJSON();
			if (data.status == "ok") {
				$("MSG_deflist_success").show();
			} else if (data.error && deflistAddMessages[data.error.code]) {
				$("MSG_deflist_error").update(deflistAddMessages[data.error.code]).show();
			} else {
				$("MSG_deflist_error").update(deflistAddMessages.INTERNALERROR).show();
			}
			setTimeout(function () {
				$("MSG_deflist").hide();
				addVideoToDeflistAdding = false;
			}, 3000);
		}
	});
}
