// Copyright (C) 2005-2008 Ilya S. Lyubinskiy. All rights reserved.
// Technical support: http://www.php-development.ru/
//
// YOU MAY NOT
// (1) Remove or modify this copyright notice.
// (2) Re-distribute this code or any part of it.
//     Instead, you may link to the homepage of this code:
//     http://www.php-development.ru/php-scripts/click-tracker.php
// (3) Use this code as part of another product.
//
// YOU MAY
// (1) Use this code on your website.
//
// NO WARRANTY
// This code is provided "as is" without warranty of any kind.
// You expressly acknowledge and agree that use of this code is at your own risk.


// ***** Aux *******************************************************************

   var clicktracker_url        = "click_track2.html";
   var clicktracker_domains    = Array("", "voip-info.org", "www.voip-info.org");
   var clicktracker_extensions = Array("doc", "exe", "rar", "zip");



// ***** clicktracker_inarray *****

function clicktracker_inarray(arr, val)
{
  for (var i in arr) if (arr[i] == val) return true;
  return false;
}

// ***** clicktracker_innerText *****

function clicktracker_innerText(str)
{
  str = str.replace(/<[^>]*>/g, ' ');
  str = str.replace(/&nbsp;/g,  ' ');
  str = str.replace(/^\s+/g, '');
  str = str.replace(/\s+$/g, '');
  return str;
}


// ***** URL *******************************************************************

var clicktracker_re_scheme  = "^.html\\w+://";
var clicktracker_re_folder  = "((?:-|\\w|\\.)*)";
var clicktracker_re_domain  = clicktracker_re_scheme+       clicktracker_re_folder;
var clicktracker_re_folders = clicktracker_re_domain+"(?:/"+clicktracker_re_folder+')*';


// ***** clicktracker_domain *****

function clicktracker_domain(url)
{
  var reg   = new RegExp(clicktracker_re_domain);
  var match = reg.exec(url);
  if (!match) return "";
  match = match[match.length-1];
  return match;
}

// ***** clicktracker_extension *****

function clicktracker_extension(url)
{
  var reg   = new RegExp(clicktracker_re_folders);
  var match = reg.exec(url);
  if (!match) return "";
  match = match[match.length-1].split(".");
  return (match.length >= 2) ? match[match.length-1] : "";
}


// ***** Track *****************************************************************

// ***** clicktracker_aux *****

function clicktracker_aux(url, n, v)
{
//alert("name=" + n);
  var img = new Image();
  img.src = clicktracker_url+"?url="+url+"&name="+n+"&value="+v+"&rand="+Math.random();
}

// ***** clicktracker *****

function clicktracker(e)
{
  var ie  = navigator.appName == "Microsoft Internet Explorer";
  var src = ie ? window.event.srcElement : e.target;
//alert (src.tagName + ": " + src.name + " = " + src.value);
//alert("Name: " + src.tagName + " Name: " + src.name + " InnerHTML: " +src.innerHTML);
  var tag = (src.tagName.toLowerCase() != "input") ? src.firstChild : src;
  if (!tag || tag.tagName.toLowerCase() != "input") return;

//  alert("TagName: " + tag.tagName + " Name: " + tag.name + " InnerHTML: " +tag.innerHTML);
//alert("TagName: " + tag.tagName + " Name: " + tag.name + " Value: " + tag.value + " InnerHTML: " + tag.innerHTML);

//  domain    = clicktracker_domain   (tag.href);
//  extension = clicktracker_extension(tag.href);

//  if ( tag.href.indexOf("adserver_click.php") == -1 &&
//	clicktracker_inarray(clicktracker_domains, domain) &&
//      !clicktracker_inarray(clicktracker_extensions, extension)) return;

  var url   = '';
  var title = '';

  url   = escape(url  .substr(0, 150));
  namei = escape( tag.name.substr(0, 150));
  valuei = escape( tag.value.substr(0, 150));

//alert("value=" + valuei);

  if (namei) setTimeout("clicktracker_aux('" + url + "', '" + namei + "','" + valuei + "')", 10);

  return;
}


// ***** Attach Events *********************************************************

if (navigator.appName == "Microsoft Internet Explorer")
     document.attachEvent   ('onclick', clicktracker);
else document.addEventListener('click', clicktracker, false);


