window.Aagon = window.Aagon || {};

/**
 * Ensures that the given namespace is declared.
 * @param string|array namespace 
 */
Aagon.ensureNamespace = function(namespace) {
	if(typeof namespace == 'string') {
		namespace = namespace.split('.');
	}
	
	var pointer = window;
	for(var i in namespace)
	{
		pointer[namespace[i]] = (pointer[namespace[i]] || {});
		pointer = pointer[namespace[i]];
	}
};


Aagon.ensureNamespace('Aagon.Tracker');

Aagon.Tracker.triggerGoalOnUriString = function(expectedUri,goalId)
{
	if(expectedUri === undefined){ return; }
	if(goalId === undefined){ return; }
		
	if(window.location.href.indexOf(expectedUri) > 0){  
		Aagon.Tracker.triggerGoal(goalId);
	}
};

Aagon.Tracker.triggerGoalOnVariables = function(onCampaign, onKeyword, goalId)
{
	if(onCampaign === undefined){ return; }
	if(onKeyword === undefined){ return; }
	if(goalId === undefined){ return; }
	
	var campaign = Aagon.Tracker.getUrlVars()['campaign'];
	var pk_campaign = Aagon.Tracker.getUrlVars()['pk_campaign'];
	var keyword = Aagon.Tracker.getUrlVars()['keyword'];
	var pk_keyword = Aagon.Tracker.getUrlVars()['pk_keyword'];
	
	if(!(campaign || pk_campaign)) { return; }
	if(!(keyword || pk_keyword)) { return; }
	
	if(((campaign === onCampaign) && (keyword===onKeyword)) ||
	   ((pk_campaign === onCampaign) && (pk_keyword===onKeyword))
	)
	{
		Aagon.Tracker.triggerGoal(goalId);
		return;
	}
};

Aagon.Tracker.triggerGoal = function(goalId)
{
	if(goalId === undefined){ return; }
	
	var pkBaseURL = "http://www.aagon.de/piwik/";
	try 
	{    
		var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1); 
		piwikTracker.setRequestMethod('POST');
		piwikTracker.trackPageView();
		piwikTracker.enableLinkTracking();		
		piwikTracker.trackGoal(goalId);
	} 
	catch(err){}
};

Aagon.Tracker.triggerGoalOnDivExists = function(element)
{
	if(element)
	{
		var goalId = element.attr('data-goalid');
		Aagon.Tracker.triggerGoal(goalId);
	}
}

Aagon.Tracker.getUrlVars = function()
{
	var vars = [];
	var pair;
	var pairs = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	for(var i = 0; i < pairs.length; i++)
	{
		pair = pairs[i].split('=');
		vars.push(pair[0]);
		vars[pair[0]] = pair[1];
	}
	return vars;
};
