﻿var IE = document.all?true:false;
var HeatMapPath;
var LogClicks = true;
var browser_name="";
var browser_version="";
var pageWidth=0;
//if (!IE) document.captureEvents(Event.MOUSEMOVE);

//document.onmousemove = getMouseXY;

if (LogClicks) {
    document.onclick = getMouseClick;
    //window.onresize = setUpPage();
}

var cw;
var ch;
var widest;
var margin;
var tempX = 0;
var tempY = 0;
var ClickOverlay;
var overlayPath="";

function setUpPage() {
    // browser width & height
    cw = document.body.clientWidth;
    ch = document.body.clientHeight;

    getBrowserinfo();
     //widest is the widest element on the page   
    widest = getWidestElement();
    margin = 0;

    if (cw <= widest) {
        //browser is not as wide as page
        margin = 0;
    }
    else {
        //browser is wider than page
        margin = Math.round((cw - widest) /2);
    }
    setUpOverlay();
}

function setUpOverlay(path) {
    var start_dt, end_dt;
    
    start_dt = document.getElementById("hm_start_dt").value;
    end_dt = document.getElementById("hm_end_dt").value;
    ClickOverlay = document.getElementById("ClickOverlay");

    var str = encodeURIComponent(window.location.href);
    //ClickOverlay.src = path + "?margin=" + margin + "&browser_name=" + browser_name + "&browser_version=" + browser_version.toString() + "&cw=" + cw + "&pg=" + str + "&start_dt=" + start_dt + "&end_dt=" + end_dt;
    overlayPath = HeatMapPath + "?margin=" + margin + "&browser_name=" + browser_name + "&browser_version=" + browser_version.toString() + "&cw=" + cw + "&pg=" + str + "&start_dt=" + start_dt + "&end_dt=" + end_dt;
    
}

function getMouseClick(e) {
    var clickSpot = 0;
	var posx = 0;
	var posy = 0;
	setUpPage();
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}

//alert(margin);
    clickSpot = posx- margin;
    if (LogClicks) {
        HeatMapClicker.RegisterClicks.ClickIt(window.location.href, browser_name, browser_version.toString(), cw, ch, clickSpot, posy, ClickIt_callback);
    }

	return true;
}

function ClickIt_callback(res){
    if (res.value) {
        //alert(res.value);
    }
}

function hideOverlay() {
    if (ClickOverlay.style.display == "none") {
        reloadImg("ClickOverlay");
        ClickOverlay.style.display = "";
    }
    else {
        ClickOverlay.style.display = "none";
    }
    return false;
}
function getWidestElement() {
//    if (document.body.all) {
//        var i;
//        var cnt = document.body.all.length;
//        var widest=0, cur_width = 0;
//        for(i=0; i<cnt; i++)
//        {
//            cur_width = document.body.all[i].style.width.toString();
//            cur_width = cur_width.replace(/\D+/, "");
//            if (cur_width > widest)
//                widest = cur_width;
//        }
//    }
//    else {
//        var el = document.getElementsByTagName('*');
//        var inBody = false;
//        var cnt = el.length;
//        var widest=0, cur_width = 0;
//        var curName;
//        
//        for(i=0; i<cnt; i++)
//        {
//            curName = el[i].tagName;
//            if (!inBody && curName.match(/Body/gi)) {
//                inBody = true;
//                el[i].tagName;
//            }
//            else if (inBody) {
//                cur_width = el[i].style.width.toString();//document.body.all[i].style.width.toString();
//                cur_width = cur_width.replace(/\D+/, "");
//                if (cur_width > widest)
//                    widest = cur_width;
//            }
//        }
//    }
    return pageWidth;//widest;
}

function reloadImg(id) {
   var start_dt, end_dt;
   var obj = document.getElementById(id);
   start_dt = document.getElementById("hm_start_dt").value;
   end_dt = document.getElementById("hm_end_dt").value;
   
   var src = overlayPath;//obj.src;
   src = src.replace(/start_dt=.*(&)?/gi, "start_dt=" + start_dt);
   src = src.replace(/end_dt=.*(&)?/gi, "end_dt=" + end_dt);
   
   var date = new Date();
   
   obj.src = src + '&v=' + date.getTime();
   return false;
}

function getBrowserinfo() {
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
        browser_name = "IE";
        var ieversion=new Number(RegExp.$1); // capture x.x portion and store as a number
        browser_version = ieversion;
    }
    else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
        var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
        browser_name = "FF";
        browser_version = ffversion;
    }
    
}
