/*====================
-- Cookie reader/writer
=====================*/

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name, "", -1);
}


/*====================
-- Parse query string
====================*/
function parseQuery(query) {
	var Params = {};

	if (!query) { return Params; } // return empty object

	query = query.substring(query.indexOf('?') + 1);
	var Pairs = query.split(/[;&]/);
	for (var i = 0; i < Pairs.length; i++) {
		//var KeyVal = Pairs[i].split('=');
		var KeyVal = new Array();
		KeyVal[0] = Pairs[i].substring(0, Pairs[i].indexOf('='));
		KeyVal[1] = Pairs[i].substring(Pairs[i].indexOf('=') + 1);
		if (!KeyVal || KeyVal.length != 2) { continue; }
		var key = unescape(KeyVal[0]);
		var val = unescape(KeyVal[1]);
		val = val.replace(/\+/g, ' ');
		Params[key] = val;
	}
	return Params;
}
/*====================
-- end parse query string
====================*/

function newWin(link) {
    window.open(link, 'newwin', 'width=780,height=780,resize=1,scrollbars=1');
    return false;
}


function useLink() {
	var querys = "";
	var site = "";
	querys = parseQuery(location.href);
	site = querys['site'];
	if (document.all)
		createCookie("ovationsharerefresh", "1", "1");
	
	_gaq.push(["_trackEvent", "Exit Links", "Exit", removeQuery(site)]);
	if (site.match(/lundbeck.com\/.+/gi)) _gaq.push(["_trackPageview", "/outboundlinks" + GaPageview + removeQuery(site) + "/"]);
	
	return site;
}

function thickboxFix() {
	var refreshPage = readCookie("ovationsharerefresh");
	if (refreshPage == 1) {
		createCookie("ovationsharerefresh", "0", "1");
		window.location.reload(true);
	}
}

function trackLink()
{
	return;
    clearLinks();
    if (arguments.length < 3)
    {
        alert("Error: Not enough arguments to TrackLink()");
        return;
    }

    var linkTest = arguments[0];

    var link;

    if (linkTest.href == undefined)
    {
        link = document.createElement('a');
        link.href = linkTest;
    }

    else
    {
        link = linkTest;
    }

    var name = arguments[1];

    var linkType = arguments[2];

    var options;

    if (arguments.length > 3)
    {
        options = arguments[3];
    }

    var linkTrackVars = 'channel'; //override to always track the channel
    var linkTrackEvents = '';

    var suppressTracking = false;

    if (options != undefined)
    {
        if (options.prop != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += options.prop;

            s[options.prop] = options.prop;
        }

        if (options.event != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += "events";

            linkTrackEvents += options.event;

            s.events = options.event;
        }
        
        if (options.evars != undefined)
        {
            for(var i in options.evars)
            {
                var evar = options.evars[i];
                
                if (linkTrackVars.length > 0)
                {
                    linkTrackVars += ",";
                }
                
                linkTrackVars += evar.name;
                
                s[evar.name] = evar.value;
            }
        }

        if (options.supress != undefined)
        {
            suppressTracking = options.supress;
        }
    }

    s.linkTrackVars = linkTrackVars;
    s.linkTrackEvents = linkTrackEvents;

    if (!suppressTracking)
    {
        s.tl(link, linkType, name);
    }
    clearLinks();
}

function clearLinks()
{
    s.prop1="";
    s.prop2="";
    s.prop3="";
    s.prop4="";
    s.prop5="";
    /* E-commerce Variables */
    s.campaign="";
    s.state="";
    s.zip="";
    s.events="";
    s.products="";
    s.purchaseID="";
    s.eVar1="";
    s.eVar2="";
    s.eVar3="";
    s.eVar4="";
    s.eVar5="";
    s.linkTrackVars = "";
    s.linkTrackEvents = "";
}

function trackPage()
{
    if (arguments.length < 1)
    {
        alert("Error: Not enough arguments to trackPage()");
        return;
    }

    s.pageName = arguments[0];

    var options;
    
    if (arguments.length > 1)
    {
        options = arguments[1];
    }

    var linkTrackVars = 'channel'; //override to always track the channel
    var linkTrackEvents = '';

    var suppressTracking = false;

    if (options != undefined)
    {
        if (options.prop != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += options.prop;

            s[options.prop] = options.prop;
        }

        if (options.event != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }

            linkTrackVars += "events";

            linkTrackEvents += options.event;

            s.events = options.event;
        }
        
        if (options.evar != undefined)
        {
            if (linkTrackVars.length > 0)
            {
                linkTrackVars += ",";
            }
            
            linkTrackVars += options.evar.name;
            
            s[options.evar.name] = options.evar.value;
        }

        if (options.supress != undefined)
        {
            suppressTracking = options.supress;
        }
    }

    s.linkTrackVars = linkTrackVars;
    s.linkTrackEvents = linkTrackEvents;

    if (!suppressTracking)
    {
        s.t();
    }
}

function removeQuery(Href) {
	var NewHref = Href.replace(/\?.*/gi, "");
	return NewHref;
}

$(function () {
	$("a").each(function(ElemIndex, Elem) {
				var re = new RegExp("(http(s?)://)?" + window.location.host, "gi");
				var IsExitLink = false;
				if (Elem.href.match(/http(s?):\/\//ig) && !Elem.href.match(re)) {
					$(Elem).bind("click", function () {
								_gaq.push(["_trackEvent", "Exit Links", "Exit", removeQuery(this.href)]);
								if (this.href.match(/lundbeck.com\/.+/gi)) _gaq.push(["_trackPageview", "/outboundlinks" + GaPageview + removeQuery(this.href) + "/"]);
								return true;
							});
					IsExitLink = true;
				}
				if (Elem.href.match(/mailto:/ig)) {
					$(Elem).bind("click", function () {
								_gaq.push(["_trackEvent", "Mailto Links", "Mailto", this.href.replace("mailto:", "")]);
								return true;
							});
				}
				if (Elem.href.match(/\.(pdf|doc|xls)$/ig)) {
					$(Elem).bind("click", function () {
								if (IsExitLink) _gaq.push(["_trackEvent", "Exit Links", "File Download", this.href]);
								else _gaq.push(["_trackPageview", "/downloads" + GaPageview + this.href + "/"]);
								return true;
							});
				}
				if (Elem.href.match(/#/ig) && !IsExitLink) {
					$(Elem).bind("click", function () {
								_gaq.push(['_trackEvent', 'Jump To Link', GaPageview, this.innerHTML]);
								return true;
							});
				}
				if (Elem.href.match(/(sabril.net)|(seizureresources.com)/ig)) {
					Elem.href = Elem.href + (Elem.href.indexOf("?") >= 0 ? "&" : "?") + "utm_medium=Links&utm_source=" + window.location.host + "&utm_content=" + GaPageview;
				}
			});
	if (typeof(WebForm_OnSubmit) == "function") {
		var tempWebForm_OnSubmit = WebForm_OnSubmit;
		WebForm_OnSubmit = function () {
			var ValidForm = tempWebForm_OnSubmit();
			if (!ValidForm) {
				_gaq.push(["_trackPageview", GaPageview + "tryagain/"]);
			}
			return ValidForm;
		};
	}
});
