// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};

function getCurrentPage(cur_name)
{
	var ret = 0;
	if($.cookie('current_page')) {
		var cookie_str = $.cookie('current_page');
		var file_array = cookie_str.split(',');
		for(var f in file_array) {
			var f_array = file_array[f].split("=");
			if(f_array[0] == cur_name) {
				ret = parseInt(f_array[1]);
			}
		}
	}
	return ret;
}

function setCurrentPage(cur_name, cur_page)
{
	var name_array = {};
	if($.cookie('current_page')) {
		var cookie_str = $.cookie('current_page');
		var file_array = cookie_str.split(',');
		for(var f in file_array) {
			var f_array = file_array[f].split("=");
			name_array[f_array[0]] = f_array[1];
		}
	}
	var found = false;
	for(var n in name_array) {
		if(n == cur_name) {
			name_array[n] = cur_page;
			found = true;
			break;
		}
	}
	if(!found) {
		name_array[cur_name] = cur_page;
	}
	var cookie_str = "";
	for(var n in name_array) {
		if(cookie_str != "") { cookie_str += ","; }
		cookie_str += n + "=" + name_array[n];
	}
	$.cookie('current_page', cookie_str, { "expire" : "" });
}

function getRequest() {
	if(location.search.length > 1) {
		var get = new Object();
		var ret = location.search.substr(1).split("&");
		for(var i = 0; i < ret.length; i++) {
			var r = ret[i].split("=");
			get[r[0]] = r[1];
		}
		return get;
	}
	else {
		return false;
	}
}

function initPagination(id_str, num_entries, cur_page, page_rows) {
		$(id_str).pagination(num_entries, {
		current_page: cur_page,
		num_edge_entries: 2,
		num_display_entries: 5,
		callback: paginationCallback,
		items_per_page: page_rows
	});
}

function paginationCallback(page_index, jq) {
	var params = { "mode": "1", "offset": "0" };
	params["offset"] = page_index * this.items_per_page;
	params["rows"] = 20;
	$.getJSON("http://www.heiansaiten.com/heian-kobe/json_topics.php?callback=?", params, function(data, status) {
		var pager = false;
		$("#news_container .news").remove();
		if($("#bottom_pagination").size() > 0) {
			$("#bottom_pagination").remove();
			pager = true;
		}
		setCurrentPage(current_filename, page_index);
		$.each(data.news_topics, function(i, row) {
			$("#news_container").append($("<div>").addClass("news").attr("id", row.id));
			$.each(row.cols, function(i, col) {
				$("#" + row.id).append(
					$("<div>").addClass(col.class_name).html(base64.decode(col.value, 1))
				);
			});
		});
		if(pager) {
			$("#news_container").append($("<div>").addClass("pagination news_page").attr("id", "bottom_pagination"));
			$("#pagination").contents().clone(true).prependTo("#bottom_pagination");
		}
		if($("#snbox").size() > 0) {
			$("#snbox").css("top", "0px");
			$("#snbox_parent").height($("#snbox").outerHeight(true));
		}
		if($("#maincolumn").size() > 0) {
			$("#maincolumn").resize();
		}
	});
	return false;
}

var parsed_url = new parseUri(location.href);
var url_file_array = parsed_url.file.split(".");
var current_filename = url_file_array[0];

var base_url = "http://www.heian-kobe.co.jp";
var img_base_url = "http://www.heiansaiten.com/heian-kobe";

$(function() {
	var params = { "mode": "1", "rows": "20" };
	var cur_page = getCurrentPage(current_filename);
	var pager = 1;
	var container = "news_container";
	if($("#news").data("newslist") !== undefined) {
		params['rows'] = 5;
		pager = 0;
		container = "news";
	}
	else {
		params['offset'] = cur_page * 20;
		params['rows'] = 20;
	}
	$.getJSON("http://www.heiansaiten.com/heian-kobe/json_topics.php?callback=?", params, function(data, status) {
		if(pager == 1 && parseInt(data.news_topics_total) > parseInt(data.news_topics_page_rows)) {
			var cur_page = 0;
			if($.cookie('current_page')) {
				cur_page = getCurrentPage(current_filename);
			}
			$("#" + container).append($("<div>").addClass("news_page pagination").attr("id", "pagination").hide());
			initPagination("#pagination", parseInt(data.news_topics_total), cur_page, parseInt(data.news_topics_page_rows));
		}
		$.each(data.news_topics, function(i, row) {
			$("#" + container).append($("<div>").addClass("news").attr("id", row.id));
			$.each(row.cols, function(i, col) {
				$("#" + row.id).append(
					$("<div>").addClass(col.class_name).html(base64.decode(col.value, 1))
				);
			});
		});
		if(pager == 1 && parseInt(data.news_topics_total) > parseInt(data.news_topics_page_rows)) {
			$("#" + container).append($("<div>").addClass("news_page pagination").attr("id", "bottom_pagination"));
			$("#pagination").contents().clone(true).prependTo("#bottom_pagination");
		}
		if($("#snbox").size() > 0) {
			$("#snbox").css("top", "0px");
			$("#snbox_parent").height($("#snbox").outerHeight(true));
		}
		if($("#maincolumn").size() > 0) {
			$("#maincolumn").resize();
		}
	});
});

