﻿var imgkw=new Image();
//var hostkw="http://demo.kaidown.com:8080";
var hostkw="http://stat.kaidown.com";
var path="/tracking/stat.php";
var pathClick="/tracking/statclick.php";

function update(){
    var param="";
    var rf=""; // Referrer
    var rfHost=""; // Search Engine Domain
    var kwParam=""; // Keyword in query string of search engine
    var kw = ""; // Keyword

    if (typeof _kwid == 'undefined')
        return "";
    if (typeof _page == 'undefined')
        _page="";
    
    if (document.referrer != null){
        // Get Referrer
        rf = document.referrer;
        
        // Get Referrer Domain
        rfHost = rf.replace("http://", "");
        rfHost = rfHost.replace("https://", "");
        if (rfHost.indexOf("/")!=-1)
            rfHost = rfHost.substring(0, rfHost.indexOf("/"));
        if (rfHost.indexOf(":")!=-1)
            rfHost = rfHost.substring(0, rfHost.indexOf(":"));
    }
    if (rfHost.toLowerCase().indexOf("google")!=-1)
        kwParam = "q";
	else if (rfHost.toLowerCase().indexOf("yahoo")!=-1)
        kwParam = "p";
	else if (rfHost.toLowerCase().indexOf("bing")!=-1)
        kwParam = "q";
	else if (rfHost.toLowerCase().indexOf("kaidown")!=-1)
        kwParam = "q";
    
    // Set parameter
    param += "?id="+_kwid;
    param += "&rf="+escape(rf);
    param += "&rfh="+rfHost;
    param += "&p="+_page;
    param += "&lc="+escape(document.location);
    param += "&kw="+getParam(rf, kwParam);
    param += "&ggp="+getParam(rf, "cd");
    param += "&r="+Math.random();

    var statUrl=hostkw+path+param;
    document.write('<img src="'+statUrl+'" style="width:0px;height:0px;display:none" />');
}
function getParam(url,name){
    if (url.indexOf("?") != -1){
        data=url.split('?');
        hu = data[1];
        gy = hu.split("&");
        for (i=0;i<gy.length;i++){
            ft = gy[i].split("=");
            if (ft[0].toLowerCase() == name)
                return ft[1];
        }
    }
    return "";
}
function trackClick(e){
    //if (document.domain.toLowerCase().indexOf("keyword.in.th")==-1)return;
    var source;
    var msx=0;
    var msy=0;
    
    if (typeof _kwid == 'undefined')
        return "";
    if (typeof page == 'undefined')
        _page="";
    if (typeof e == 'undefined')var e = window.event;
    if (typeof e.target != 'undefined')source = e.target;
    else if (typeof e.srcElement != 'undefined')source = e.srcElement;
    if (source.nodeType == 3)source = source.parentNode;
    
    var linkId="";
    var linkUrl="";
    var pageUrl="";
    var linkText="";
    var elementType="";
    var linkType="";
    if(source.tagName.toLowerCase() == "img"){
        if(source.parentNode.tagName.toLowerCase() == "a"){
            linkId = source.parentNode.getAttribute('id');
            linkUrl = source.parentNode.getAttribute('href');
            linkText = source.getAttribute('src');
            elementType = 2;
        }
    }else if(source.tagName.toLowerCase() == "a"){
        linkId = source.getAttribute('id');
        linkUrl = source.getAttribute('href');
        linkText = source.innerHTML;
        elementType = 1;
	} else if(source.parentNode.tagName.toLowerCase() == "a"){
	{
		linkId = source.parentNode.getAttribute('id');
        linkUrl = source.parentNode.getAttribute('href');
        linkText = source.parentNode.innerHTML;
        elementType = 1;
	}
    }else // Unknown
        elementType = 0;

    pageUrl = document.location.href;
    if(!linkId)linkId="";
    if(!linkUrl)linkUrl="";
    if(!linkText)linkText="";
    if(!pageUrl)pageUrl="";
    if(navigator.appName.toLowerCase() == "netscape"){msx=e.pageX;msy=e.pageY;}
    else{msx=event.clientX+document.body.scrollLeft;msy=event.clientY+document.body.scrollTop;}
    
    var param="?id="+_kwid+"&mx="+msx+"&my="+msy+"&url="+encode(pageUrl)+"&lid="+encode(linkId)+"&lurl="+encode(linkUrl)+"&ltext="+encode(linkText)+"&etype="+elementType+"&ltype="+linkType+"&host="+document.domain+"&r="+Math.random();
    var clickurl=hostkw+pathClick+param;
    if (elementType != 0)
        imgkw.src=clickurl;
}
function encode(text){
    return escape(utf8_encode(text));
}
function utf8_encode(string){
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
    for (var n = 0; n < string.length; n++){
        var c = string.charCodeAt(n);
        if(c < 128)utftext += String.fromCharCode(c);
        else if((c > 127) && (c < 2048)){
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else{
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
    return utftext;
}

window.document.onmousedown=trackClick;
update();
