function storeGAParamsInCookie (cookieDomain)
{
    var campaign = getUrlParamValue(document.location.href, 'utm_campaign');
    var medium = getUrlParamValue(document.location.href, 'utm_medium');
    var term = getUrlParamValue(document.location.href, 'utm_term');
    var content = getUrlParamValue(document.location.href, 'utm_content');

    if (campaign == '' && medium == '' && term == '' && content == '')
        return;

    var name = 'PFGA';
    var value = '';
    var domain = (cookieDomain ? cookieDomain : '.phonefactor.net');
    var expires = new Date();
    expires.setHours(expires.getHours() + 1);

    value = value + '?utm_campaign=' + campaign + '&utm_medium=' + medium +
        '&utm_term=' + term + '&utm_content=' + content;

    document.cookie =
        name + '=' + value + '; expires=' + expires.toGMTString() + '; domain=' + domain + ';';
}

function getGAParamsFromCookie ()
{
	var cookie = getCookieValue('PFGA');

	if (cookie == '')
		return '';
	
	var campaign = getUrlParamValue(cookie, 'utm_campaign');
	var medium = getUrlParamValue(cookie, 'utm_medium');
	var term = getUrlParamValue(cookie, 'utm_term');
	var content = getUrlParamValue(cookie, 'utm_content');

	var campaignElement = document.getElementById('campaign');
	var mediumElement = document.getElementById('medium');
	var termElement = document.getElementById('term');
	var contentElement = document.getElementById('content');

	if (campaign != '' && campaignElement)
		campaignElement.value = campaign;
	if (medium != '' && mediumElement)
		mediumElement.value = medium;
	if (term != '' && termElement)
		termElement.value = term;
	if (content != '' && contentElement)
		contentElement.value = content;
}

function getUrlParamValue (url, param)
{
    if (!url || url == '' || !param || param == '')
        return '';

    var regex = new RegExp('[\\?&]' + param + '=([^&#]*)');
    var res = regex.exec(url);

    if (res == null || res[1] == null)
        return '';
    else
        return res[1];
}

function getCookieValue (name)
{
	var nameRe = new RegExp('^\\W*' + name + '=(.*)$')
	var cookies = document.cookie.split(';');

	for (var i = 0; i < cookies.length; i++)
	{
		var cookie = cookies[i];
		var res = nameRe.exec(cookie);

		if (res != null && res[1] != null)
			return res[1];
	}

	return '';
}
