var cookieName = 'EM-Cookie';
var domainName = 'e-moxie.com';
function isnull(val) {
	return(val==null);
}

function cookieSet(name, expDays){
	var details = new Array(5);
		if(document.referrer == ''){
			details[0] = "None";
		} else {
			details[0] = document.referrer;
		}
		
		details[1] = window.location;

		if(isnull(referrerKeywords())){
			details[2] = "None";
		} else {
			details[2] = referrerKeywords();
		}
		
		if(isnull(isPPC())){
			details[3] = "None";		
		} else {
			details[3] = isPPC();
		}
		details[4] = new Date();
		
	var cookie_string = name + "=" + escape ( details.toString() );

	if (expDays){
		var cookie_date = new Date();
			cookie_date.setTime(cookie_date.getTime() + (365 * 24 * 60 * 60 * 1000));
		cookie_string += "; expires=" + cookie_date;
	}

	cookie_string += "; path=" + escape ('/');
	cookie_string += "; domain=" + escape ('.' + domainName);
	document.cookie = cookie_string;
}

function cookieDecode(cookie, num){
	var decode = cookieGet(cookie).split(',');
	return decode[num];
}

function cookieGet(cookie_name){
	var results = document.cookie.match ('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
	if (results){
		return (unescape(results[2]));
	} else {
		return null;
	}
}
function cookieCheck() {
	if (isnull(cookieGet(cookieName))) {
		cookieSet(cookieName, 365);
	}
}
function isPPC() {
	var refer = (document.referrer);
	if(refer.search("utm_medium=cpc") > 0){
		return "Pay-Per-Click";
	} else if (refer.search("gclid=") > 0){
		return "Pay-Per-Click";
	} else {
		return "Organic";
	}
}

function referrerKeywords(){
	var search_engines = [
	    ['google\\.', 'q'],                             // Google
	    ['search\\.yahoo\\.', 'p'],                     // Yahoo
	    ['search\\.msn\\.', 'q'],                       // MSN
	    ['search\\.live\\.', 'query'],                  // MSN Live
	    ['search\\.aol\\.', 'userQuery'],               // AOL
	    ['ask\\.com', 'q'],                             // Ask.com
	    ['altavista\\.', 'q'],                          // AltaVista
	    ['feedster\\.', 'q'],                           // Feedster
	    ['search\\.lycos\\.', 'q'],                     // Lycos
	    ['alltheweb\\.', 'q'],                          // AllTheWeb
	    ['technorati\\.com/search/([^\\?/]+)', 1],      // Technorati
	    ['dogpile\\.com/info\\.dogpl/search/web/([^\\?/]+)', 1, true] // DogPile
	];
    var referrer = document.referrer;
    var query = null;
    var regex = new RegExp('');

    for (var i = 0; i < search_engines.length; i ++) {
        var se = search_engines[i];
        regex.compile('^http://(www\\.)?' + se[0], 'i');
        var match = referrer.match(regex);
        if (match) {
            var result;
            if (isNaN(se[1])) {
                result = decodeReferrerQS(referrer, se[1]);
            } else {
                result = match[se[1] + 1];
            }
            if (result) {
                result = decodeURIComponent(result);
                if (se.length > 2 && se[2])
                    result = decodeURIComponent(result);
                result = result.replace(/\'|"/g, ':::');
                return result;
            }
            break;
        }
    }
    return null;
};

function decodeReferrerQS(referrer, match) {
    var idx = referrer.indexOf('?');
    var idx2;
    if (idx >= 0) {
        var qs = new String(referrer.substring(idx + 1));
        idx  = 0;
        idx2 = 0;
        while ((idx >= 0) && ((idx2 = qs.indexOf('=', idx)) >= 0)) {
            var key, val;
            key = qs.substring(idx, idx2);
            idx = qs.indexOf('&', idx2) + 1;
            if (key == match) {
                if (idx <= 0) {
                    return qs.substring(idx2+1);
                } else {
                    return qs.substring(idx2+1, idx - 1);
                }
            }
        }
    }
    return null;
};

cookieCheck();
