//Инициализация пространства имен
if (typeof PPCLogger == 'undefined') {
	PPCLogger = function() {};
}

PPCLogger.Author = 'Starovikov Dmitry (ICQ: 12-53-53); www.starovikov.com';
PPCLogger.Version = '0.11[alpha]';
PPCLogger.Debug = false;

//Инициализация
PPCLogger.initFirst = function() {
	PPCLogger.Transport = PPCLogger.getTransport();
	if (PPCLogger.Transport == null) return false;
	if (document.addEventListener) {
		document.addEventListener('click', PPCLogger.LogClick, false);
	} else if (document.attachEvent) {
		document.detachEvent('onclick', PPCLogger.LogClick);
		document.attachEvent('onclick', PPCLogger.LogClick);
	}
}

PPCLogger.LogClick = function(e) {
	try {
	    var obj = (e.target) ? e.target : window.event.srcElement;
	    if (!obj) return true;

	    var sUrl = 'n/a';
	    var divBlock = 'n/a';

	    var oHref = PPCLogger.FindHref(obj);
	    if (oHref.href.indexOf('.yandex.ru/count')==-1) return true;

        if (oHref.parentNode.parentNode) {
            var spanParent = oHref.parentNode.parentNode;
			var nSpanParentCL = spanParent.childNodes.length;
            for (var i=0; i<nSpanParentCL; i++) {
                var oSpan = spanParent.childNodes[i];
                if (!oSpan.className) continue;
                if ( oSpan.className.toLowerCase()=='url' && oSpan.tagName.toLowerCase()=='span' ) {
                    sUrl = PPCLogger.spanClear(oSpan.innerHTML);
                }
            }
        }
        var divBlock = PPCLogger.FindPPCLBlock(oHref);
        var divBlockId = divBlock.getAttribute("block_id");
        var data = encodeURIComponent(divBlockId+';'+sUrl+";"+oHref.innerHTML+';'+location.href+';');
        PPCLogger.Transport.open("GET", 'http://' + location.host + '/ppclogger/ppclogger.php?data=' + data, true);
        PPCLogger.Transport.send(null);
	} catch(oExpn) {
	}

}

PPCLogger.spanClear = function(sSpan) {
	String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); };
	var re = /<[^<>]+>/gi;
	var re2 = /[^a-z\.\-]+/g;
	var re3 = /\s/g;
	var re4 = /\s[a-z]+\s/g;
	sSpan = sSpan.replace(re, '');
	sSpan = sSpan.replace(re2, ' ');
	sSpan = ' ' + sSpan.replace(re3, '  ') + ' ';
	sSpan = sSpan.replace(re4, ' ');
	return sSpan.trim();
}

PPCLogger.FindHref = function(ele) {
	while(ele.parentNode){
		if (ele.href) return ele;
		ele = ele.parentNode;
	}
	return false;
}

PPCLogger.FindPPCLBlock = function(ele) {
	while(ele.parentNode)
	{
		if (ele.id=="ppclogger_block") return ele;
		ele = ele.parentNode;
	}
	return false;
}

PPCLogger.pickActiveXVersion = function(aVersions) {
    for (var iVn = 0; iVn < aVersions.length; iVn++) {
        try {
            var oDoc = new ActiveXObject(aVersions[iVn]);
            if (oDoc) {
                return aVersions[iVn];
            }
        } catch (oExpn) {};
    }
    return null;
};



PPCLogger.getTransport = function() {
	PPCLogger.XMLHTTP = PPCLogger.pickActiveXVersion([
		'Msxml2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
	]);
	if (typeof ActiveXObject != 'undefined') {
		try {
			return new ActiveXObject(PPCLogger.XMLHTTP);
		} catch (oExpn) {};
	}
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	}
	return null;
}

//Запуск
PPCLogger.initFirst();
