//-- MoonRay Tracking Module

// Settings
var _mri="",_mrq="",_mrsess_="",_mr_cid="";
var _mrd=document,_mrl=_mrd.location.host + _mrd.location.pathname,_mrct=new Date();
var _mr_ex="expires=Sun, 18 Jan 2038 00:00:00 GMT";
var _linktrack = "/trackThrough.php";
var _mr_title = document.title;

function mrtracking(){
	_mrq='mid=' + _mri + "&llc=" + _escapeT(document.location.href);;
	_mrlv = gC('lastvisit');
	_mrref = gC('ref_');
	_mrafft_ = gC('afft_');
	_mrsess_ = gC('sess_');
	_mr_gets = parseGetVars();
	_mr_ctime = (_mrct.getTime()-_mrct.getMilliseconds())/1000;
	

	
	if (!_mrsess_){
		_mrsess_ = genmrSess(15);
		_mrd.cookie = 'sess_=' + _mrsess_ + ';' + _mr_ex + ';' + "path=/";
	}
	
	_mrq = _mrq + "&s=" + _mrsess_ + "&l=" + _mrl + "&ti="  +  _mr_title;
	
	
	if (_mrref && !_mr_gets['sig']){
		if ((_mrlv + 3600) < _mr_ctime){
			_mrq = _mrq + "&" + "t=" + _mrref;
		} else {
			_mrq = _mrq + "&" + "r=1&t=" + _mrref;
		}
	}
	
	
	if (_mr_cid = gC('contact_id')){
		_mrq = _mrq + "&c=" + _mr_cid;
	}
	
	if ((parseInt(_mrlv) + 3600) > _mr_ctime){
		if (_mr_vid = gC('vid')){
			_mrq = _mrq + "&vid=" + _mr_vid;
		}
	} else {
		_mrd.cookie = 'vid'+'='+ "" + ';' + _mr_ex + ';' + "path=/";
	}
	
	
	if (_mr_gets['sig']){
		_mrd.cookie = 'ref_' + '=' + _mr_gets['sig'] + ';' + _mr_ex + ';' + "path=/";
		if (_mrlv){
			if ((parseInt(_mrlv) + 3600) < _mr_ctime){
				_mrq = _mrq + "&" + "t=" + _mr_gets['sig'];
			} else {
				_mrq = _mrq + "&" + "t=" + _mr_gets['sig'] + "&r=1";
			}
		} else {
			_mrq = _mrq + "&" + "t=" + _mr_gets['sig'];
		}
	}
	
	var mrHost = (("https:" == document.location.protocol) ? "https://" : "http://");
	
	var sc=document.createElement('script');
	if (("https:" == document.location.protocol)){
		sc.src= 'https://moonraymarketing.com/analytics/track.php?' + _mrq;
	} else {
		sc.src= 'http://tracking.moonraymarketing.com/track.php?' + _mrq;
	}
	
	
	
	if (window.addEventListener) {
		window.addEventListener("load",function(){document.getElementsByTagName('head')[0].appendChild(sc);},true);
 	} else {
		window.attachEvent("onload",function(){document.getElementsByTagName('head')[0].appendChild(sc);});
	}
	//Set cookie for lastvisit to the current time
	_mrd.cookie = 'lastvisit'+'='+ _mr_ctime + ';' + _mr_ex + ';' + "path=/";
}

function gC( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function parseGetVars()
{
var qString = unescape(top.location.search.substring(1));
var mr_dv = new Array();
var pairs = qString.split(/\&/);

for (var i in pairs)
{
	if (pairs != ''){
		var nameVal = pairs[i].split(/\=/);
		mr_dv[nameVal[0]] = nameVal[1];
	}
}

return mr_dv;
}

function genmrSess(length){
	session = '';
	
	possible = '0123456789bcdfghjkmnpqrstvwxyz';
	i = 0;
	
	while (i < length){
		mychar = possible.substr(Math.random() * (possible.length -1),1);    
	    session += mychar;i++;
	}
	
	return session;
	
}
function _escapeT(str) {
			return escape(str).replace(/\+/g,"%2B");
	}
function _mrGetLinkTo(Item) {
		if (Item.href != null) 
			return Item.href
		else if(Item.getAttribute("type") == "submit")  
			return (Item.form.action == "http://moon-ray.com/form_processor.php")?"moonrayform:" + this.form.uid.value:this.form.action;
		else 
			return Item.attributes.getNamedItem("onclick").value;
}
function _sanitizeMrLink(link)
{
	if(link.substr(0,7).toLowerCase() == "http://")
		link = link.substr(7);
	if(link.substr(0,8).toLowerCase() == "https://")
		link = link.substr(8);
	if(link.substr(0,4).toLowerCase() == "www.")
		link = link.substr(4);
	return link;
}

function _mrScanLinks() {
	var Items = document.getElementsByTagName("*");
	var LinkId,LinkAlias;
	var linkCount=0;
	for (var i = 0; i < Items.length; i++) {
		if ((Items[i].href == null || Items[i].getAttribute("href",2) == "") && Items[i].onclick == null  && Items[i].getAttribute("type")!="submit")
				continue;
		linkCount++;
		LinkId = -1;
		LinkAlias = "";
		
		if (Items[i].getAttribute("mtrack",2))
		{
			LinkAlias = Items[i].getAttribute("mtrack",2);
		}
		else if (_mrTrackLinks[linkCount] != null) 
		{	
			if (_sanitizeMrLink(_mrGetLinkTo(Items[i])) == _sanitizeMrLink(_mrTrackLinks[linkCount].link))
				LinkId = _mrTrackLinks[linkCount].id;
        }
		if (LinkId != -1 || LinkAlias != "") {
				if (Items[i].addEventListener) {
					Items[i].addEventListener("click",_mrTrackLink,false);
				} else {
					Items[i].attachEvent("onclick",_mrTrackLink);
				}
				Items[i].linkTrackId = (LinkId != -1)?LinkId:"";
		}
	}
}
function _mrTrackLink(event) {
	if (event.target) {
			var SrcObj = event.target;
		} else {
			var SrcObj = event.srcElement;
		}
		while (SrcObj.linkTrackId == null && !SrcObj.getAttribute("mtrack",2))
			SrcObj = SrcObj.parentNode;
		
		var clickTrack = _linktrack+
										"?lid=" + _escapeT(SrcObj.linkTrackId) +
										"&contact_id=" + _mr_cid +
										"&session_id=" + _mrsess_ +
										"&mri="+ _mri +
										((SrcObj.getAttribute("mtrack",2))?"&mtrack=" + _escapeT(SrcObj.getAttribute("mtrack",2)) + "&uri=" + _escapeT(document.location.href):"");
		var Ajaxor = _mrReturnXmlHttpObject();
		Ajaxor.open("GET",clickTrack,true);
		Ajaxor.send(null);
}
function _mrReturnXmlHttpObject() {
				var xmlhttp=false;
				/*@cc_on @*/
				/*@if (@_jscript_version >= 5)
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
				try	 {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
				xmlhttp = false;
				}
				}
				@end @*/
				if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
					try {
						xmlhttp = new XMLHttpRequest();
					}	 catch (e) {
						xmlhttp=false;
					}
				}
				if (!xmlhttp && window.createRequest) {
					try {
						xmlhttp = window.createRequest();
					} catch (e) {
						xmlhttp=false;
					}
				}
				if (!xmlhttp) {
				}
				return xmlhttp;
			}
