﻿var rank_box      = 'rank_viewer'
var rank_progress = 'rank_progress'
var rank_post_url = 'http://bostoncareerforum.usautstudy.com/pagerank/rank_post.php'
var rank_view_url = 'http://bostoncareerforum.usautstudy.com/pagerank/rank_view.php'
/*
 * Cookie有効／無効フラグ(0:無効、1:有効)
 * ※Cookieを無効にすると、ページにアクセスされるたびにカウントアップされます。
 *   また、当然PHPスクリプトはその都度実行されます。
 */
var rank_enable_cookie = 1;

function rank_fix_date(date)
{
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
}

function rank_set_cookie(name, value, expire)
{
    expire = expire.toGMTString();

    var cookieval   = escape(name) + "=" + escape(value) + "; path=/; expires=" + expire;
    document.cookie = cookieval;
}

function rank_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 rank_clear_cookie(name)
{
    if (rank_get_cookie(name))
        document.cookie = escape(name) + "=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function rank_get_datestr(date)
{
    yy  = date.getYear();      if (yy < 1900) yy += 1900;
    mm  = date.getMonth() + 1; if (mm <   10) mm  = "0" + mm;
    dd  = date.getDate();      if (dd <   10) dd  = "0" + dd;
    str = yy + mm + dd;

    return str;
}

function rank_check_cookie(name)
{
    var now = new Date();
    rank_fix_date(now);
    var str = rank_get_datestr(now);

    if ((expires = rank_get_cookie(name)))
    {
        if (expires > str) return false;
    }

    now.setTime(now.getTime() + 1 * 24 * 60 * 60 * 1000);
    rank_set_cookie(name, rank_get_datestr(now), now);

    return true;
}

function ajax_rank_post(blogid, pageurl, pagename)
{
    if (rank_enable_cookie)
    {
        if (!rank_check_cookie(pageurl))
            return false;
    }

/* 2007.02.19
 * どうやらAjaxで実行されたPHPスクリプト内ではリンク元アドレス(REFERER)
 * を取得できないみたいですの。
 * ですので、JavaScriptからリンク元アドレスを送るよう修正しました。
 *
    var pars   = 'blogid='+blogid+'&url='+pageurl+'&title='+pagename;
 */
    var pars   = 'blogid='+blogid+'&url='+encodeURI(pageurl)+'&title='+encodeURIComponent(pagename)+'&referer='+encodeURI(document.referrer);
    var myAjax = new Ajax.Request(rank_post_url,
        { method: 'post', parameters: pars, onComplete: ajax_rank_post_complete });

    return false;
}

function ajax_rank_post_complete(RequestText)
{
/*動作確認用
    document.getElementById(rank_box).innerHTML = RequestText.responseText;
*/
}

function ajax_rank_view(blogid, boxid, progressid)
{
    rank_box      = boxid;
    rank_progress = progressid;

    document.getElementById(rank_progress).style.display = '';
    var pars   = 'blogid='+blogid;
    var myAjax = new Ajax.Updater(rank_box, rank_view_url,
        { method: 'post', parameters: pars, onComplete: ajax_rank_preview_complete });

    return false;
}

function ajax_rank_preview_complete()
{
    document.getElementById(rank_progress).style.display = 'none';
}
