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

/****************************************************************************
 * Cookie有効／無効フラグ(0:無効、1:有効)
 * ※Cookieを無効にすると、ページにアクセスされるたびにカウントアップされます。
 *   また、当然PHPスクリプトはその都度実行されます。
 ****************************************************************************/
var pagerank_enable_cookie = 1;

/****************************************************************************
 * アクセスログを取りたいブログID
 * ※複数のブログの集計を行いたい場合には 0 を指定してください。
 *   0 というブログ ID は存在しませんので。
 ****************************************************************************/
var pagerank_blogid = 2;

/****************************************************************************
 * アクセスランキングを表示するIDタグ名称
 ****************************************************************************/
var pagerank_view_box = 'pagerank_viewer';

/****************************************************************************
 * ブログ URL(index.html がある場所)／アップロード先相対パス
 * ※pagerank_blog_url: トップページ(index.html)のURL
 * ※pagerank_home_url: アップロード先をトップページからの相対パス
 ****************************************************************************/
var pagerank_blog_url = 'http://www.pjl.co.jp/';
var pagerank_home_url = 'js/pagerank/';

/****************************************************************************
 * アクセスログ保存／表示スクリプト／ローダーイメージ
 ****************************************************************************/
var pagerank_post_url = [pagerank_blog_url, pagerank_home_url, 'rank_post.php'].join('');
var pagerank_view_url = [pagerank_blog_url, pagerank_home_url, 'rank_view.php'].join('');
var pagerank_loader   = [pagerank_blog_url, pagerank_home_url, 'ajax-loader.gif'].join('');

/****************************************************************************
 * トップページ除外フラグ(0:カウント、1:除外)
 ****************************************************************************/
var pagerank_exclude_top = 1;

/****************************************************************************
 * 任意ページ除外フラグ(0:カウント、1:除外)
 ****************************************************************************/
var pagerank_exclude = 0;

/****************************************************************************
 * ランキング表示数
 * ※上位何位まで表示するか設定します。0を指定するとすべて表示します。
 ****************************************************************************/
var pagerank_ranking_max = 10;

/****************************************************************************
 * ランキング表示形式(0:非表示、1:カウンタ表示、2:パーセンテージ表示)
 * ※カウンタの表示／非表示を設定します。
 ****************************************************************************/
var pagerank_ranking_type = 0;


/* -------------------------------------------------------------------------- */
/* - Related Access Page Ranking- */
/* -------------------------------------------------------------------------- */
/* - pagerank_safari_escape() - */
/* - pagerank_espace() - */
/* - pagerank_show_ajaxloader() - */
/* - pagerank_fix_date()- */
/* - pagerank_set_cookie()- */
/* - pagerank_get_cookie()- */
/* - pagerank_clear_cookie()- */
/* - pagerank_get_datestr() - */
/* - pagerank_check_cookie()- */
/* - pagerank_view()- */
/* -------------------------------------------------------------------------- */
function pagerank_safari_escape(req)
{
var text = req.responseText;

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

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

return text;
}

function pagerank_espace(str)
{
str = str.split("&").join("&amp;");
str = str.split("<").join("&lt;");
str = str.split(">").join("&gt;");
str = str.split('"').join("&quot;");
str = str.split("{").join("&#123;");
str = str.split("}").join("&#125;");
str = str.split("'").join("&#039;");
return str;
}

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

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()
{
pagerank_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);
pagerank_show_ajaxloader(elem, false);
elem.innerHTML = pagerank_safari_escape(req);
}
});

// for Otherwise
//new Ajax.Updater(pagerank_view_box, pagerank_view_url, {
//method: 'post',
//parameters: pars,
//onComplete: function() {
//pagerank_show_ajaxloader($(pagerank_view_box), false);
//}
//});

return false;
}

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

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

location  = location.replace(/index.*$/,'');
if (pagerank_exclude_top && uri == location) return;

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

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

if ('' != desc) {
pars += '&desc='+encodeURIComponent(pagerank_espace(desc));
}

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

return;
}

Event.observe(window, 'load', function() {
var name_split = document.title.split('#');
var str = document.title;
var str = str.replace('｜PJ web news【印刷ジャーナル】', '');
var str = str.replace('ニュース：', '');
var title = encodeURIComponent(str);

pagerank_post(pagerank_blogid, title, pagerank_blog_url, '');
});

