// <script>

// Copyright (C) 2005 Ilya S. Lyubinskiy. All rights reserved.

// Technical support: http://www.php-development.ru/
//
// YOU MAY NOT
// (1) Remove or modify this copyright notice.
// (2) Distribute this code, any part or any modified version of it.
//     Instead, you can link to the homepage of this code:
//     http://www.php-development.ru/php-scripts/click-tracker.php
// (3) Use this code as a part of another product.
//     If you want to do so you should receive my permission.
//
// YOU MAY
// (1) Use this code on your website.
//
// NO WARRANTY
// This code is provided "as is" without warranty of any kind, either
// expressed or implied, including, but not limited to, the implied warranties
// of merchantability and fitness for a particular purpose. You expressly
// acknowledge and agree that use of this code is at your own risk.


// If you find this script useful, you can support my site in the following
// ways:
// 1. Vote for the script at HotScripts.com (you can do it on my site)
// 2. Link to the homepage of this script or to the homepage of my site:
//    http://www.php-development.ru/php-scripts/click-tracker.php
//    http://www.php-development.ru/
//    You will get 50% commission on all orders made by your referrals.
//    More information can be found here:
//    http://www.php-development.ru/affiliates.php


// ----- Click Tracker ---------------------------------------------------------

var clicktracker_prev = document.onclick;

function clicktracker_domain(url)
{
  reg   = new RegExp("^\\w+://((-|\\w)+(\\.(-|\\w)+)*)");
  match = reg.exec(url);
  return match ? match[1] : "";
}

function clicktracker_extension(url)
{
  reg   = new RegExp("^\\w+://(?:(?:-|\\w|\\.)+/)+((?:-|\\w|\\.)*)");
  match = reg.exec(url);

  if (!match) return "";

  match = match[1].split(".");

  return (match.length >= 2) ? match[match.length-1] : "";
}

function clicktracker_inarray(arr, val)
{
  for (var i in arr) if (arr[i] == val) return true;
  return false;
}

function clicktracker_track(url)
{
  imgs     = new Image();
  imgs.src = clicktracker_url+"?url="+escape(url);
}

function clicktracker(e)
{
  ie      = navigator.appName == "Microsoft Internet Explorer";
  tag     = ie ? window.event.srcElement : e.target;

  if (tag.tagName != "A")
    return clicktracker_prev ? clicktracker_prev() : true;

  domain    = clicktracker_domain   (tag.href);
  extension = clicktracker_extension(tag.href);

  if (clicktracker_inarray(clicktracker_domains, domain))
    if (!clicktracker_inarray(clicktracker_extensions, extension))
      return clicktracker_prev ? clicktracker_prev() : true;

  setTimeout("clicktracker_track('"+tag.href+"')", 100);
  return clicktracker_prev ? clicktracker_prev() : true;
}

document.onclick = clicktracker;
