fillzero = function(text, num) {
	text = text.toString();
	while( text.length < num ) {
		text = "0" + text;
	}

	return text;
}

minus9hour = function(t) {
	var year = t.substr(0, 4);
	var month = t.substr(5, 2);
	var date = t.substr(8, 2);

	var hour = t.substr(11, 2);
	var min = t.substr(14, 2);
	var sec = t.substr(17, 2);

	var d = new Date(year, month - 1, date, hour - 9, min, sec);
	return fillzero(d.getFullYear(), 4) + "-" + fillzero(d.getMonth() + 1, 2) + "-" + fillzero(d.getDate(), 2) + " " + fillzero(d.getHours(), 2) + ":" + fillzero(d.getMinutes(), 2) + ":" + fillzero(d.getSeconds(), 2) + "Z";
}

ReadPosts = {
	read: function(id, reg_time, refer) {
		ReadPosts.refer = refer;
		//alert(reg_time);
		if( parseInt(reg_time.substr(0, 4), 10) >= 2008 && parseInt(reg_time.substr(5, 2), 10) * 100 + parseInt(reg_time.substr(8, 2), 10) >= 806 ) {
			reg_time = minus9hour(reg_time);
		}
		var from = reg_time;
		var to = reg_time.substr(17, 2);
		to = (to.substr(0, 1) == '0') ? parseInt(to.substr(1, 1)) + 1 : parseInt(to) + 1;
		to = (to >= 10) ? to + 'Z' : '0' + to + 'Z';
		to = reg_time.substr(0, 17) + to;

		var url = "http://me2day.net/api/get_posts/" + id + ".json?callback=ReadPosts.handleJson" +
				  "&me2_application_key=7308b5ebd98dd87888dc7e6c0f0daa4d" +
				  "&from=" + from + 
				  "&to=" + to; 

		var js = new JSONscriptRequest(url);
		js.buildScriptTag();
		js.addScriptTag();
	},

	handleJson: function(json) {
		if( !json ) {
			return;
		}

		ReadPosts.afterRead(json);
	},

	afterRead: function(json) {
	}
};

ReadComments = {
	read: function(permalink) {
		var url = "http://me2day.net/api/get_comments.json?callback=ReadComments.handleJson" + 
				  "&me2_application_key=7308b5ebd98dd87888dc7e6c0f0daa4d" +
				  "&post_id=" + escape(permalink);

		var js = new JSONscriptRequest(url);
		js.buildScriptTag();
		js.addScriptTag();
	},

	handleJson: function(json) {
		if( !json ) {
			return;
		}

		ReadComments.afterRead(json);
	},

	afterRead: function(json) {
	}
};

ReadFriends = {
	read: function(id) {
		var url = "http://me2day.net/api/get_friends/" + id + ".json?callback=ReadFriends.handleJson" + 
				  "&me2_application_key=7308b5ebd98dd87888dc7e6c0f0daa4d";

		var js = new JSONscriptRequest(url);
		js.buildScriptTag();
		js.addScriptTag();
	},

	handleJson: function(json) {
		if( !json ) {
			return;
		}

		ReadFriends.afterRead(json.friends);
	},

	afterRead: function(json) {
	}
};

ViewComment = {
	showComments: function() {
		if( YAHOO.util.Dom.getStyle("me2day_comment_read", "display") == "block" ) {
			ViewComment.hideComments();
			return;
		}

		YAHOO.util.Dom.get("me2day_comment_read").innerHTML = "";
		YAHOO.util.Dom.get("me2day_comment_edt").value = "";

		ReadComments.afterRead = function(json) {
			YAHOO.util.Dom.get("me2day_info_comment").innerHTML = json.comments.length;
			for( var i = 0; i < json.comments.length; i++ ) {
				ViewComment.addComment(json.comments[i].author.id, json.comments[i].author.nickname, json.comments[i].body);
			}
		}
		ReadComments.read(YAHOO.ME2MAP.permalink);
		
		YAHOO.util.Dom.setStyle("me2day_comment_read", "display", "block");
		YAHOO.util.Dom.setStyle("me2day_comment_write", "display", "block");
		ViewComment.onShowComments();
	},

	onShowComments: function() {
	},

	hideComments: function() {
		YAHOO.util.Dom.setStyle("me2day_comment_read", "display", "none");
		YAHOO.util.Dom.setStyle("me2day_comment_write", "display", "none");
	},

	addComment: function(id, nickname, comment) {
		YAHOO.util.Dom.get("me2day_comment_read").innerHTML += "<span class='nickname'><a href='http://me2day.net/" + id + "' style='color: #E65802'>" + nickname + "</a></span>";
		YAHOO.util.Dom.get("me2day_comment_read").innerHTML += "<span class='comment'>" + comment + "</span><br>";
	}
};

TagCloud = {
	done: false,

	read: function() {
		if( TagCloud.done ) {
			if( YAHOO.util.Dom.getStyle("panel_tag_cloud", "display") == "block" ) {
				TagCloud.hide();
			}
			else {
				TagCloud.show();
			}
			return;
		}

		var url = "php/getTagCloud.php?callback=TagCloud.handleJson";
		YAHOO.util.Connect.asyncRequest("GET", url, TagCloud.callback, null);
	},

	handleSuccess: function(o) {
		if( o.responseText.match("<span><a href=") ) {
			YAHOO.util.Dom.get("tag_cloud").innerHTML = o.responseText;
			TagCloud.show();
			TagCloud.done = true;
		}
		else {
			alert(o.responseText);
		}
	},

	handleFailure: function(o) {
	},

	show: function() {
		YAHOO.util.Dom.setStyle("panel_tag_cloud", "display", "block");
	},
	
	hide: function() {
		YAHOO.util.Dom.setStyle("panel_tag_cloud", "display", "none");
	}
};

TagCloud.callback = {
	success: TagCloud.handleSuccess,
	failure: TagCloud.handleFailure,
	scope: TagCloud
};

ReadDB = {
	obj: null,

	url: "",

	clear: function() {
		ReadDB.url = "";
	},

	readDate: function() {
		if( ReadDB.obj ) {
			//YAHOO.util.Connect.abort(ReadDB.obj, ReadDB.callback, false);
		}

		var zoom = Me2Map.getZoom();
		var x = Me2Map.getCenter().x;
		var y = Me2Map.getCenter().y;
		var today = Me2Date.getDisplayDate();
		var url = 'php/readDate.php?callback=ReadDB.handleJson&x=' + x + '&y=' + y + '&zoom=' + zoom + "&today=" + today;

		if( !zoom || !today ) { //|| ReadDB.url == url ) {
			return false;
		}

		ReadDB.url = url;
		ReadDB.obj = YAHOO.util.Connect.asyncRequest("GET", url, ReadDB.callback, null);
		return true;
	},

	readID: function() {
		if( ReadDB.obj ) {
			//YAHOO.util.Connect.abort(ReadDB.obj, ReadDB.callback, false);
		}

		var zoom = Me2Map.getZoom();
		var x = Me2Map.getCenter().x;
		var y = Me2Map.getCenter().y;
		var id = YAHOO.ME2MAP.id;
		var url = 'php/readID.php?callback=ReadDB.handleJson&x=' + x + '&y=' + y + '&zoom=' + zoom + "&id=" + id;

		if( !zoom || !id ) { //|| ReadDB.url == url ) {
			return false;
		}

		ReadDB.url = url;
		ReadDB.obj = YAHOO.util.Connect.asyncRequest("GET", url, ReadDB.callback, null);
		return true;
	},

	readTag: function() {
		if( ReadDB.obj ) {
			//YAHOO.util.Connect.abort(ReadDB.obj, ReadDB.callback, false);
		}

		var zoom = Me2Map.getZoom();
		var x = Me2Map.getCenter().x;
		var y = Me2Map.getCenter().y;
		var tag = encodeURI(YAHOO.ME2MAP.tag);
		var url = 'php/readTag.php?callback=ReadDB.handleJson&x=' + x + '&y=' + y + '&zoom=' + zoom + "&tag=" + tag;

		if( !zoom || !tag ) { //|| ReadDB.url == url ) {
			return false;
		}

		ReadDB.url = url;
		ReadDB.obj = YAHOO.util.Connect.asyncRequest("GET", url, ReadDB.callback, null);
		return true;
	},

	handleSuccess: function(o) {
		if( o.responseText.match("ReadDB.handleJson") ) {
			eval(o.responseText);
		}
		else {
			alert(o.responseText);
		}
	},

	handleFailure: function(o) {
	},

	handleJson: function(json) {
		if( !json ) {
			return;
		}

		ReadDB.afterRead(json);
	},

	afterRead: function(json) {
	}
};

ReadDB.callback = {
	success: ReadDB.handleSuccess,
	failure: ReadDB.handleFailure,
	scope: ReadDB
};

