var itk_analytics_event = {
    
    destination: "",
    cmmdKey: false,
    
    key_down: function(e){
        if (!e) var e = window.event
        if (itk_browser.OS == "Mac" && e.keyCode == 224) itk_analytics_event.cmmdKey = true;
    },
    
    key_up: function(e){
        if (!e) var e = window.event
        if (itk_browser.OS == "Mac" && e.keyCode == 224) itk_analytics_event.cmmdKey = false;
    },
        
	click: function (e){ 
		if (!e) var e = window.event
        if((itk_browser.OS == "Mac" && itk_analytics_event.cmmdKey && e.which == 1) || (e.which && e.which > 1) || (e.button && e.button > 1)) return;
		itk.browser_dimensions()
		itk.scrolling()
		var targ = itk.get_element(e)
		var ed = itk.id("event[destination]")
		for(i=0;i<targ.attributes.length;i++){
			n = targ.attributes[i].name + ""
			v = targ.attributes[i].value + ""
			t = targ.tagName + ""
			itk_analytics_event.via(n.toLowerCase(), v.toLowerCase(), targ)
			if(ed && ed.value != "") break
		}
		if(ed && ed.value.indexOf(itk_cur_domain) == -1) itk_query.remove("ITKSessionID")
		if(itk_analytics_event.destination != "") itk_analytics_event.save(targ.tagName)
	},

	via: function (name, val, elm){
		var dest = ""
		var how = ""
		if(name == "onclick" && val.indexOf("location.href") > -1){
			var a = val.replace(/ /, '').replace(/'/, '').replace(/"/, '').split("location.href=")
			dest = a[1]
			how = "Javascript Onclick"
		}else if(name == "type" && val == "submit"){
			while(elm.tagName != "FORM"){ elm = elm.parentNode }
			dest = elm.action + ""
			how = "Form Submit"
		}else if(name == "href"){
		    dest = elm.href + ""
		    how = "Anchor Tag"
		    if(dest.indexOf("javascript:") != -1) dest = ""
		}
		if(dest != ""){
			itk_analytics_event.destination = dest
			itk.fv(a, "event[destination]", escape(dest))
			itk.fv(a, "event[left_via]", how)
		}
	},

	save: function (name){
	    var d = new Date()
		var a = "itk_click_form"
		var e = "event"
		//itk.fv(a, e+"[innerHTML]", "") <- no longer supporting this
		itk.fv(a, e+"[element]", escape(name))
		itk.fv(a, e+"[scrolltop]", itk.offset_y)
		itk.fv(a, e+"[scrollleft]", itk.offset_x)
		itk.fv(a, e+"[departed_at]", d)
		itk.fv(a, "page_views[view_time]", itk.i(d.getTime()/1000) - itk.i(itk_arrive_time.getTime()/1000))
		itk.form_submit(itk_tracker_root + "/events/create")
	}
}

var itk_analytics_event_loaded = {}

document.onkeydown = itk_analytics_event.key_down
document.onkeyup = itk_analytics_event.key_up

document.addEventListener ? document.addEventListener('mousedown', itk_analytics_event.click, true) : document.attachEvent('onmousedown', itk_analytics_event.click)