var Blog = {
	start: function() {
		Blog.comment();
		Blog.pl_smilies();
		Blog.author_balloon();
		Blog.ranking_balloon();
		Blog.konamiCommand();
	},

	comment: function() {
		if (!document.getElementsByTagName) return;

		var textarea = document.getElementById('comment');
		if (textarea) {
			if ("コメントをどうぞ" == textarea.value) {
				textarea.style.color = "#999999";
			}
			textarea.onfocus = function() {
				if ("コメントをどうぞ" == textarea.value) {
					textarea.value = "";
					textarea.style.color = "#000000";
				}
			}
		}
	},

	pl_smilies: function() {
		if (!document.getElementsByTagName) return;
		var textarea = document.getElementById('comment');
		var smilies = document.getElementById('wp-smilies');
		if (!textarea || !smilies) return;

		smilies.style.margin="5px 0";
		smilies.style.width="90%";

		var images = smilies.getElementsByTagName("img");
		for (var i=0; i<images.length; i++) {
			var image = images[i];
			this.alt   = image.getAttribute("alt")
			if (textarea && this.alt && (image.getAttribute('class')||image.getAttribute('className')) == "wp-smiley") {
				image.onclick = function() {
					if ("コメントをどうぞ" === textarea.value) {
						textarea.value  = ' ' + this.alt + ' ';
						textarea.style.color = "#000000";
					} else {
						textarea.value += ' ' + this.alt + ' ';
					}
				}
			}
		}
	},

	author_balloon: function() {
		if (!document.getElementsByTagName) return;
		var author_tab = document.getElementById('author_tab');
		if (!author_tab) return;

		var lis = author_tab.getElementsByTagName("li");
		for (var i=0; i<lis.length; i++) {
			var li = lis[i];
			var span = li.getElementsByTagName("span")[0];
			if (span) {
				span.style.display = "none";
				span.innerHTML += '<span style="width:220px;height:8px;top:-8px;left:1px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:0;left:0;" /></span>';
				span.innerHTML += '<span style="width:220px;height:8px;bottom:-8px;left:1px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:-6px;left:0;" /></span>';
				span.innerHTML += '<span style="width:18px;height:13px;top:0;right:-17px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:0;left:-220px;" /></span>';
				li.onmouseover = function() {
					var span = this.getElementsByTagName("span")[0];
					span.style.display = "block";
				}
				li.onmouseout = function() {
					var span = this.getElementsByTagName("span")[0];
					span.style.display = "none";
				}
			}
		}
	},

	ranking_balloon: function() {
		if (!document.getElementsByTagName) return;
		var ranking = document.getElementById('blogranking');
		if (!ranking) return;

		var span = ranking.getElementsByTagName("span")[0];
		if (span) {
			span.style.display = "none";
			span.innerHTML += '<span style="width:220px;height:8px;top:-8px;left:1px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:0;left:0;" /></span>';
			span.innerHTML += '<span style="width:220px;height:8px;bottom:-8px;left:1px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:-6px;left:0;" /></span>';
			span.innerHTML += '<span style="width:18px;height:13px;top:0;right:-17px;"><img src="/wp-content/themes/mg/images/balloon.gif" style="top:0;left:-220px;" /></span>';
		}

		ranking.onmouseover = function() {
			var imgage = this.getElementsByTagName("img")[0];
			imgage.style.left = "0";

			var span = this.getElementsByTagName("span")[0];
			if (span) span.style.display = "block";
		}
		ranking.onmouseout = function() {
			var imgage = this.getElementsByTagName("img")[0];
			imgage.style.left = "0";

			var span = this.getElementsByTagName("span")[0];
			if (span) span.style.display = "none";
		}
		ranking.onmousedown = function() {
			var imgage = this.getElementsByTagName("img")[0];
			imgage.style.left = "-63px";

			var span = this.getElementsByTagName("span")[0];
			if (span) span.style.display = "none";
		}
		ranking.onmouseup = function() {
			var imgage = this.getElementsByTagName("img")[0];
			imgage.style.left = "0";
		}
	},

	konamiCommand: function() {
		// 上、上、下、下、左、右、左、右、b、a
		// Ctrl、Ctrl、Ctrl、Ctrl、Ctrl
		var lkeys = [17,17,17,17,17];

		var loginview = new KeyCommandProcessor(lkeys, onLoginview);

		document.onkeydown = function(evt) {
			// IE, Firefox 対応
			var event = evt || window.event;

			// Key 処理
			loginview.process(event.keyCode);
		}
	}
}

window.addEvent('domready', Blog.start);

// コナミコマンド
function KeyCommandProcessor(keys, onSuccess) {
	this.keys = keys;
	this.onSuccess = onSuccess;
	this.position = 0;
	this.state = 0;
	
	this.process = function(key) {
		if (this.position < this.keys.length) {
			if (this.keys[this.position] == key) {
				this.position += 1;
				if (this.position == this.keys.length) {
					if (this.state) {
						this.state = 0;
					} else {
						this.state = 1;
					}
					this.onSuccess(this.state);
					this.position = 0;
				}
			}
			else {
				this.position = 0;
			}
		}
	}
}

function onLoginview(state) {
	if (state){
		document.getElementById("loginview").style.display = "block";
	}else{
		document.getElementById("loginview").style.display = "none";
	}
}

