/*
 ****************************************************************************
 * File : prototype.ajax.js
 * Copyright (C) 2005-2008 http://bizcaz.com/ All rights reserved.
 ****************************************************************************
*/

var ajaxloader = ['http://infopreneur.cool-wildduck.net/mt_memo/css/tubes/', 'ajax-loader.gif'].join('');



function safari_escape(text)
{
	if (navigator.appVersion.indexOf("KHTML") > -1) {
		var esc = escape(text);

		if (esc.indexOf("%u") < 0 && esc.indexOf("%") > -1) {
			text = decodeURIComponent(esc);
		}
	}

	return text;
}

function show_ajaxloader(elem, enable)
{
	if (enable) {
		elem.innerHTML        = '';
		elem.style.display    = '';
		elem.style.height     = '100px';
		elem.style.background = 'transparent url('+ajaxloader+') no-repeat center center';
	}
	else {
		elem.style.height     = 'auto';
		elem.style.background = 'none';
	}
}

function clear_block(divId)
{
	new Effect.DropOut($(divId));
}
/* -------------------------------------------------------------------------- */
/* - Related Ajax Comment Post/Preview/Ref									- */
/* -------------------------------------------------------------------------- */
/* - ajaxcomment_reply()													- */
/* - ajaxcomment_post()														- */
/* -------------------------------------------------------------------------- */
var ajaxcomment_divid = 'comment_results';

var ajaxcomment_cgi = ['http://infopreneur.cool-wildduck.net/mtos/', 'mt-comments.cgi'].join('');


function ajaxcomment_reply(parent_id, order_no, author)
{
	var elem = $('comment-text');

	elem.focus();

	if (elem.value == "Type your comment here.") {
		elem.value = '';
	}

	elem.value += ">>" + order_no + " " + author + " さん\n";
	mtReplyCommentOnClick(parent_id, author);
}

function ajaxcomment_post(mode)
{
	show_ajaxloader($(ajaxcomment_divid), true);
	new Effect.ScrollTo($(ajaxcomment_divid));

	var form = document.getElementById('comments-form');

	if ('post' == mode) {
		mtCommentOnSubmit(form);

		form.preview.value = '';

		var pars = Form.serialize('comments-form')+'&post=post';
		new Ajax.Request(ajaxcomment_cgi, {

						method: 'post',
						parameters: pars,
						onComplete: function (req) {
							var txt = safari_escape(req.responseText);

							if (0 < txt.indexOf('DOCTYPE', 0)||'' == txt) {
								if (0 < txt.indexOf('コメントを投稿できませんでした。', 0)) {
									var elem = $(ajaxcomment_divid);
									show_ajaxloader(elem, false);
									elem.innerHTML = '<p style="font-size: 160%;color: #f00;">ショック (＞∀＜　) 投稿時にエラーでたよ。</p>';
								}
								else {
									document.location.reload();
								}
							}
							else {
								if (0 < txt.indexOf('Thank you for commenting', 0)) {
									$('comments-open-content').style.display = 'none';
								}

								var divid = $(ajaxcomment_divid);
								show_ajaxloader(divid, false);
								divid.innerHTML = txt;
							}
						}
					});
	}
	else if ('preview' == mode) {
		form.preview.value = '1';

		var pars = Form.serialize('comments-form')+'&preview=preview';
		new Ajax.Request(ajaxcomment_cgi, {

						method: 'post',
						parameters: pars,
						onComplete: function (req) {
							var elem = $(ajaxcomment_divid);
							show_ajaxloader(elem, false);
							elem.innerHTML = safari_escape(req.responseText);
						}
					});
	}
	return false;
}
/* -------------------------------------------------------------------------- */
/* - Related Ajax Search													- */
/* -------------------------------------------------------------------------- */
/* - ajaxsearch_contents()													- */
/* - ajaxsearch_contents_tag()												- */
/* - ajaxsearch_contents_delay_request()									- */
/* -------------------------------------------------------------------------- */
var ajaxsearch_cgi = ['http://infopreneur.cool-wildduck.net/mtos/', 'mt-search.cgi'].join('');
var ajaxsearch_url = '';

function ajaxsearch_contents_delay_request()
{
	show_ajaxloader($('search_results'), true);
	new Ajax.Request(ajaxsearch_url, {
					method: 'get',
					onComplete: function (req) {
						var elem = $('search_results');
						show_ajaxloader(elem, false);
						elem.innerHTML = safari_escape(req.responseText.replace(/\n/g,''));
					}
				});
}

function ajaxsearch_contents(url, param)
{
	if (undefined == url) {
		if ('' == $('search').value) {
			return;
		}

		url = ajaxsearch_cgi + '?' + Form.serialize('search_form');

	}


	ajaxsearch_url = url;
	new Effect.ScrollTo($('tubes'), { afterFinishInternal: ajaxsearch_contents_delay_request });
}

function ajaxsearch_contents_tag(url, params)
{
	new Effect.ScrollTo($('tubes'), { afterFinishInternal: ajaxsearch_contents_delay_request });

	if (undefined == url || '' == url) {

		ajaxsearch_url = ajaxsearch_cgi + '?' + params;

	}
}
/* -------------------------------------------------------------------------- */
/* - Related Ajax Load Contents 											- */
/* -------------------------------------------------------------------------- */
/* - ajaxload_content()														- */
/* -------------------------------------------------------------------------- */
var ajaxload_divid = '';

function ajaxload_content(url, pars, divId)
{
	ajaxload_divid = divId;
	show_ajaxloader($(ajaxload_divid), true);

	new Ajax.Request(url, {
					method: 'get',
					parameters: pars,
					onComplete: function(req) {
						var elem = $(ajaxload_divid);
						show_ajaxloader(elem, false);
						elem.innerHTML = safari_escape(req.responseText);
					}
				});
	return false;
}
/* -------------------------------------------------------------------------- */
/* - Related Access Page Ranking											- */
/* -------------------------------------------------------------------------- */
/* - pagerank_fix_date()													- */
/* - pagerank_set_cookie()													- */
/* - pagerank_get_cookie()													- */
/* - pagerank_clear_cookie()												- */
/* - pagerank_get_datestr() 												- */
/* - pagerank_check_cookie()												- */
/* - pagerank_view()														- */
/* -------------------------------------------------------------------------- */
/*
 * Cookie有効／無効フラグ(0:無効、1:有効)
 * ※Cookieを無効にすると、ページにアクセスされるたびにカウントアップされます。
 *	 また、当然PHPスクリプトはその都度実行されます。
 */
var pagerank_enable_cookie = 1;
/*
 * アクセスログを取りたいブログID
 */
var pagerank_blogid = 2;
/*
 * アクセスランキングを表示するIDタグ名称
 */
var pagerank_view_box = 'pagerank_viewer';
/*
 * ブログ URL(index.html がある場所)／アップロード先相対パス
 */
var pagerank_blog_url = 'http://infopreneur.cool-wildduck.net/';
/*
 * アクセスログ保存／表示スクリプト
 */
var pagerank_post_url = ['http://infopreneur.cool-wildduck.net/mt_memo/js/prototype/', 'pagerank/rank_post.php'].join('');
var pagerank_view_url = ['http://infopreneur.cool-wildduck.net/mt_memo/js/prototype/', 'pagerank/rank_view.php'].join('');
/*
 * 任意ページ除外フラグ(0:カウント、1:除外)
 */
var pagerank_exclude = 0;
/*
 * ランキング表示数
 * ※上位何位まで表示するか設定します。0を指定するとすべて表示します。
 */
var pagerank_ranking_max = 15;
/*
 * ランキング表示形式(0:非表示、1:カウンタ表示、2:パーセンテージ表示)
 * ※カウンタの表示／非表示を設定します。
 */
var pagerank_ranking_type = 1;

function pagerank_fix_date(date)
{
	date.setHours(0);
	date.setMinutes(0);
	date.setSeconds(0);
}

function pagerank_set_cookie(name, value, expire)
{
	expire = expire.toGMTString();

	var cookieval   = escape(name) + '=' + escape(value) + '; path=/; expires=' + expire;
	document.cookie = cookieval;
}

function pagerank_get_cookie(name)
{
	var prefix           = escape(name) + '=';
	var c                = document.cookie;
	var nullstring       = '';
	var cookieStartIndex = c.indexOf(prefix);

	if (-1 == cookieStartIndex) {
		return nullstring;
	}

	var cookieEndIndex = c.indexOf(';', cookieStartIndex + prefix.length);

	if (-1 == cookieEndIndex) {
		cookieEndIndex = c.length;
	}

	return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function pagerank_clear_cookie(name)
{
	if (pagerank_get_cookie(name)) {
		document.cookie = escape(name) + '=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT';
	}
}

function pagerank_get_datestr(date)
{
	var yy  = date.getYear();      if (yy < 1900) { yy += 1900;     }
	var mm  = date.getMonth() + 1; if (mm <   10) { mm  = '0' + mm; }
	var dd  = date.getDate();      if (dd <   10) { dd  = '0' + dd; }
	var str = yy + mm + dd;

	return str;
}

function pagerank_check_cookie(name)
{
	var now = new Date();
	pagerank_fix_date(now);

	var str     = pagerank_get_datestr(now);
	var expires = pagerank_get_cookie(name);

	if (expires) {
		if (expires > str) {
			return false;
		}
	}

	now.setTime(now.getTime() + 1 * 24 * 60 * 60 * 1000);
	pagerank_set_cookie(name, pagerank_get_datestr(now), now);

	return true;
}

function pagerank_view()
{
	show_ajaxloader($(pagerank_view_box), true);

	var pars = 'blogid='+pagerank_blogid+'&max='+pagerank_ranking_max+'&type='+pagerank_ranking_type;

// for Safari Browser
	new Ajax.Request(pagerank_view_url, {
					method: 'post',
					parameters: pars,
					onComplete: function(req) {
						var elem = $(pagerank_view_box);
						show_ajaxloader(elem, false);
						elem.innerHTML = safari_escape(req.responseText);
					}
				});
// for Otherwise
//	new Ajax.Updater(pagerank_view_box, pagerank_view_url, {
//					method: 'post',
//					parameters: pars,
//					onComplete: function() {
//						show_ajaxloader($(pagerank_view_box), false);
//					}
//				});

	return false;
}

function pagerank_post(id, title, uri, desc)
{
	if (pagerank_exclude) {
		return false;
	}

	var location = encodeURI(document.location.href).replace(/#.*/,'');

	if (pagerank_blog_url == location || 0 <= location.indexOf(pagerank_blog_url+'index')) {
		return false;
	}

	if (pagerank_enable_cookie) {
		if (!pagerank_check_cookie(location)) {
			return false;
		}
	}

	var pars = 'blogid='+pagerank_blogid+'&url='+location+'&title='+title+'&referer='+encodeURI(document.referrer);

	new Ajax.Request(pagerank_post_url, {
					method: 'post',
					parameters: pars,
					onComplete: function(req) {
// 確認用
//						$(pagerank_view_box).innerHTML = safari_escape(req.responseText);
					}
				});

	return false;
}

Event.observe(window, 'load', function() {
	var title = document.title.replace('アフィリエイト見聞録 - ', '');

	pagerank_post(pagerank_blogid, title, pagerank_blog_url, '');
});
/* -------------------------------------------------------------------------- */
/* - Related Five Star Rating												- */
/* -------------------------------------------------------------------------- */
/* - rating_showloader()													- */
/* - rating_post()															- */
/* - rating_view()															- */
/* -------------------------------------------------------------------------- */
var Starboxes_imageSource = 'http://infopreneur.cool-wildduck.net/mt_memo/css/tubes/';
var rating_obj    = new Array();
var rating_script = ['http://infopreneur.cool-wildduck.net/mt_memo/js/prototype/', 'starbox/starbox.post.php'].join('');
var rating_loader = ['http://infopreneur.cool-wildduck.net/mt_memo/css/tubes/', 'starbox-loader.gif'].join('');

function rating_showloader(element, enable)
{
	if (enable) {
		element.innerHTML        = '';
		element.style.height     = '16px';
		element.style.background = 'transparent url('+rating_loader+') no-repeat left center';
	}
	else {
		element.style.height     = 'auto';
		element.style.background = 'none';
	}
}

function rating_post(element, info) {
	var obj  = rating_obj[element.id];
	var pars = 'mode=0&blogid='+obj.blogid+'&entryid='+obj.options.identity+'&boxid='+element.id+'&avr='+obj.average+'&total='+obj.options.total;

	new Ajax.Request(rating_script, {
					method: 'post',
					parameters: pars,
					onComplete: function(req) {
						var result = req.responseText.split(':');

						if ('ok' == result[0]) {
							var element = rating_obj[result[1]];
							element.options.locked = true;
						}
					}
				});

	return false;
}

function rating_view(blogid, boxid, ids) {

	var pars = 'mode=1&blogid='+blogid+'&entryid='+ids+'&boxid='+boxid;

	$(boxid).up('.asset_rating').setAttribute('style', 'background-image: none;');

	rating_showloader($(boxid), true);

	new Ajax.Request(rating_script, {
					method: 'post',
					parameters: pars,
					onComplete: function(req) {
						var locked = true;
						var result = req.responseText.split(':');

						rating_showloader($(result[1]), false);

						if ('ok' == result[0]) {
							locked = false;
						}

						rating_obj[result[1]] = new Starbox(
							result[1],				// Box ID
							result[2], {			// 現在のアベレージ
							color: '#4a488e',		// 星の前景
							background: '#edd3a1',	// 星の背景
							hoverColor: '#a22041',	// ホバーの色
							overlay: 'default.png',	// オーバレイ画像指定
							stars: 5,				// 星の表示数
							max: 5,					// 最大アベレージ
							buttons: 10,			// stars を何分割にするか設定
													// たとえば、stars×２とすると１つ星が２分割される
							total: result[3],		// 総投票数
							identity: ids,			// ID
													// インディケータ表示
							indicator: ' [#{average} rating from #{total} votes]',
							onRate: rating_post,	// クリック時の処理
							inverse: false,			// 表示方向設定 false(左⇒右)/true(右⇒左)
							lockOnRate: true,		// 投票後ロック設定 false(なし)/true(ロック)
							locked: locked			// 投票不可設定 false(可)/true(不可)
						});

						rating_obj[result[1]].blogid = blogid;
					}
	});
}


