
// clicktrack.js
//
// $Id: clicktrack.js,v 1.08 2005/04/18 22:27:58 yoshi Exp $
//
// Description: JavaScript for Tracking a event of click links
// Author: IKARASHI Yoshinori <yoosee@init.org>
// Lisence: GPLv2
//
// このScriptは IKARASHI Yoshinori さんが作成されたものを
// りょーちが一部修正したものです。
// IKARASHI Yoshinori さんのサイトは下記になります。
// http://yoosee.net/
// 参考にした記事は下記になります。
// http://yoosee.net/d/archives/2005/04/12/003.html
// IKARASHI Yoshinori さんのオリジナルのスクリプトは下記になります。
// http://test.yoosee.net/clicktrack/clicktrack.js
// 

function onclick_track(t) {
    var target = null;
    if(t) {target = t.target}
    else { target = window.event.srcElement; }
    link_track(target);
}

function link_track(t) {
  var target;
  if(t && t.nodeName.toLowerCase() == 'a') {
    target = t;
  } else {
    for(var i=0; i<20; i++) { // 10 is meaningless, just a limit
      if(t && t.nodeName.toLowerCase() == 'a') {
        target = t;
      } else if (t) {
        t = t.parentNode;
      }
    }
  }
  if (!target) { return null; }
  var link = target.href;
  var label = encodeURIComponent(target.innerHTML);
  var post_uri = tracker_uri + '?id=' + id + '&ref=' + caller_uri + '&label=' + label + '&link=' + link;
  try {
    var img = new Image();
    img.src = post_uri;
    msleep(500);
  }catch(e){}
}

function msleep(msec) {
  var begin = new Date();
  var end = begin.getTime() + msec;
  var now;
  while(true){
    now = new Date();
    if(now.getTime() > end){ return; }
  }
}

function onload_track() {
  var post_uri = tracker_uri + '?id=' + id + '&ref=' + caller_uri + '&pv=1';
  var img = new Image();
  img.src = post_uri;
}

/* main function */
var tracker_uri = 'http://www.usamimi.info/~ryouchi/clicktrack/createlog.php';

var id = 'yopi';

var caller_uri = encodeURIComponent(document.location.href);

/* click counter */
if(document.body) {
  document.body.onclick = onclick_track;
  document.body.oncontextmenu = onclick_track;
} else if(document) {
  document.onclick = onclick_track;
  document.oncontextmenu = onclick_track;
} else {
}

/* access counter */
onload_track(); 
