///////
// gaFunctions.js
// Author: Magnet Search Marketing
// Version : 1.0
///////

function getTopPageName() {
		var pathname = location.pathname;
		var lastCharacter = pathname.indexOf('/', 1);
		// If there is not a second slash
		if (lastCharacter == -1)
			lastCharacter = pathname.indexOf('.', 1);
		var topPageName = pathname.substring(1, lastCharacter);
		// Renaming of the variable topPageName
		if (topPageName == '/') topPageName = 'Home Page';
		if (topPageName == 'OffersandPerks') topPageName = 'Offers and Perks';
		if (topPageName == 'ProductPantry') topPageName = 'Product Pantry';
		if (topPageName == 'AdvancedSearch') topPageName = 'Advanced Search';
		if (topPageName == 'AboutGeneralMills') topPageName = 'About Generals Mills';
		if (topPageName == 'AbouttheProgram') topPageName = 'About the Program';
		if (topPageName == 'PrivacyPolicy') topPageName = 'Privacy Policy';
		if (topPageName == 'TermsofUse') topPageName = 'Terms of Use';
		if (topPageName == 'sitemap') topPageName = 'Sitemap';
		return topPageName;
}

function getPageName() {
		var pathname = location.pathname;
		var firstCharacter = eval(pathname.lastIndexOf('/')+1);
		var lastCharacter = pathname.lastIndexOf('.');
		var pageName = pathname.substring(firstCharacter, lastCharacter);
		// Replacement of '_' character by a space
		var pageName = pageName.replace(/_/g, ' ');
		return pageName;
}
 
function getLanguage() {
	var language = 'en';
    if (jQuery.cookie('website#lang') != null) {
        language = jQuery.cookie('website#lang');
    }
	return language;
}

function gaTrack(parameter1, parameter2) {
	
	///////
	// Header
	///////
	
	// 2.4.2 Step one: tracking the beginning of the subscription process
	if (parameter1 == 'createProfile') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Header', 'Click on the link create a profile');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	if (parameter1 == 'stepsImage') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Header', 'Click on the steps image');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	if (parameter1 == 'joinNowButtonOfAboutTheProgramPage') {
		var language = getLanguage();
		if (language) {
			pageTracker._trackEvent('About the Program', 'Body', 'Click on the button join now');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	///////
	// Registration process
	///////
	
	// 2.4.3 Step 2: tracking of the registration form and 2.4.4 Step 3: tracking of the registration agreement form
	if (parameter1 == 'joinButtonFormRegistration') {
		var language = getLanguage();
		if (language)
			pageTracker._trackPageview('/'+language+'/virtual/click-join-button-form-registration/');
	}
	
	if (parameter1 == 'joinButtonFormRegistrationAgreement') {
		var language = getLanguage();
		if (language)
			pageTracker._trackPageview('/'+language+'/virtual/click-join-button-form-registration-agreement/');
	}
	
	///////
	// Right column
	///////
	
	// 2.4.2 Step one: tracking the beginning of the subscription process
	if (parameter1 == 'joinNowLinkSignInForm') {
		var language = getLanguage();
		var topPageName = getTopPageName();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Right column of unregistered user', 'Click on the link join now of the sign in form');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	// 2.3.1 Bloc â€œAll your recipes. One place. Create your own recipe box.â€ 
	if (parameter1 == 'startNow') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Right column of unregistered user', 'Click on the button start now');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	// 2.3.2 Bloc â€œJoin life made delicious nowâ€
	if (parameter1 == 'joinNow') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Right column of unregistered user', 'Click on the button join now');
			pageTracker._trackPageview('/'+language+'/virtual/click-begin-registration/');
		}
	}
	
	// 2.3.3 Bloc â€œMy recipe boxâ€
	if (parameter1 == 'viewFullRecipeBox') {
		var topPageName = getTopPageName();
		if (topPageName)
			pageTracker._trackEvent(topPageName, 'Right column of registered user', 'Click on the link to view full recipe box');
	}
	
	if (parameter1 == 'createNewFolder') {
		var language = getLanguage();
		if (language)
			pageTracker._trackPageview('/'+language+'/virtual/click-create-new-folder/');
	}
	
	if (parameter1 == 'saveNewFolder') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Right column of registered user', 'Create a new folder');
			pageTracker._trackPageview('/'+language+'/virtual/click-create-folder-button/');
		}
	}
	
	///////
	// Footer, product icons
	///////
	
	// 2.5 Tracking of product icons
	if (parameter1 == 'productIcon')
	{
	    try
	    {
	        if (parameter2)
	        {
	            var topPageName = getTopPageName();
	            if (topPageName)
	                pageTracker._trackEvent(topPageName, 'Footer', 'Click on product icon: ' + document.getElementById(parameter2).innerHTML);
	        }
	    }
	    catch (err)
	    {
	    }
	}
	
	// 2.9 Tracking of the feedback form
	if (parameter1 == 'feedbackLinkFooter') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Footer', 'Click on the link feedback');
			pageTracker._trackPageview('/'+language+'/virtual/click-link-feedback/');
		}
	}
	
	if (parameter1 == 'sendFeedback') {
		var topPageName = getTopPageName();
		var language = getLanguage();
		if (topPageName && language) {
			pageTracker._trackEvent(topPageName, 'Footer', 'Real sending of a feedback');
			pageTracker._trackPageview('/'+language+'/virtual/send-feedback/');
		}
	}
	
	///////
	// Tips and Ideas page
	///////
	
	// 2.6.1 Tracking of bookmark, print article and share with a friend link
	if (parameter1 == 'bookmarkArticle') {
		var tipAndIdea = getPageName();
		var language = getLanguage();
		if (tipAndIdea && language) {
			pageTracker._trackEvent('Tips and ideas', tipAndIdea, 'Bookmark the tip and idea');
			pageTracker._trackPageview('/'+language+'/virtual/click-bookmark-tip-and-idea/');
		}
	}
	
	if (parameter1 == 'printArticle') {
		var tipAndIdea = getPageName();
		var language = getLanguage();
		if (tipAndIdea && language) {
			pageTracker._trackEvent('Tips and ideas', tipAndIdea, 'Print the tip and idea');
			pageTracker._trackPageview('/'+language+'/virtual/click-print-article/');
		}
	}
	
	if (parameter1 == 'shareArticleWithFriend') {
		var tipAndIdea = getPageName();
		var language = getLanguage();
		if (tipAndIdea && language) {
			pageTracker._trackEvent('Tips and ideas', tipAndIdea, 'Click on the link share with a friend');
			pageTracker._trackPageview('/'+language+'/virtual/click-share-with-a-friend/');
		}
	}
	
	if (parameter1 == 'sendArticleToFriend') {
		var tipAndIdea = getPageName();
		var language = getLanguage();
		if (tipAndIdea && language) {
			pageTracker._trackEvent('Tips and ideas', tipAndIdea, 'Real sending of a message to a friend');
			pageTracker._trackPageview('/'+language+'/virtual/send-tip-and-idea-to-friend/');
		}
	}
	
	// 2.6.2 Tracking of comments
	if (parameter1 == 'submitCommentTipAndIdea') {
		var tipAndIdea = getPageName();
		var language = getLanguage();
		if (tipAndIdea && language) {
			pageTracker._trackEvent('Tips and ideas', tipAndIdea, 'Submit a comment to the tip and idea');
			pageTracker._trackPageview('/'+language+'/virtual/submit-comment-tip-and-idea/');
		}
	}
	
	///////
	// Recipe page
	///////
	
	// 2.7.1 Links on the right of recipe image
	if (parameter1 == 'voteOnThisRecipe') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link vote on this recipe');
			pageTracker._trackPageview('/'+language+'/virtual/click-on-vote-on-this-recipe/');
		}
	}
	
	if (parameter1 == 'voteThumbsUp') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Vote Thumbs Up');
			pageTracker._trackPageview('/'+language+'/virtual/vote-thumbs-up/');
		}
	}
	
	if (parameter1 == 'voteThumbsDown') {
		var recipe = getPageName();
		if (recipe)
			pageTracker._trackEvent('Recipe', recipe, 'Vote Thumbs Down');
	}
	
	if (parameter1 == 'addToRecipeBox') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link add to recipe box');
			pageTracker._trackPageview('/'+language+'/virtual/add-to-recipe-box/');
		}
	}
	
	if (parameter1 == 'saveThisRecipeToYourRecipeBox') {
		var language = getLanguage();
		var recipe = getPageName();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Real saving of the recipe in the recipe box');
			pageTracker._trackPageview('/'+language+'/virtual/save-this-recipe-in-recipe-box/');
		}
	}
	
	if (parameter1 == 'removeFromRecipeBox') {
		var recipe = getPageName();
		if (recipe)
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link remove from recipe box');
	}
	
	if (parameter1 == 'printRecipe') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link print recipe');
			pageTracker._trackPageview('/'+language+'/virtual/print-recipe/');
		}
	}
	
	if (parameter1 == 'emailRecipe') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link email recipe');
			pageTracker._trackPageview('/'+language+'/virtual/email-recipe/');
		}
	}
	
	if (parameter1 == 'sendEmailRecipe') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Real sending of a message to a friend');
			pageTracker._trackPageview('/'+language+'/virtual/send-email-recipe/');
		}
	}
	
	if (parameter1 == 'addRecipeNote') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Click on the link add a recipe note');
			pageTracker._trackPageview('/'+language+'/virtual/add-recipe-note/');
		}
	}
	
	if (parameter1 == 'saveRecipeNote') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Real adding of a note to the recipe');
			pageTracker._trackPageview('/'+language+'/virtual/save-recipe-note/');
		}
	}
	
	// 2.7.2 Tabs below recipe image
	if (parameter1 == 'clickOnRecipeTab') {
		var recipe = getPageName();
		if (recipe)
			pageTracker._trackEvent('Recipe', recipe, 'Click on the recipe tab');
	}
	
	if (parameter1 == 'clickOnCommentsTab') {
		var recipe = getPageName();
		if (recipe)
			pageTracker._trackEvent('Recipe', recipe, 'Click on the comments tab');
	}
	
	if (parameter1 == 'clickOnNotesTab') {
		var recipe = getPageName();
		if (recipe)
			pageTracker._trackEvent('Recipe', recipe, 'Click on the notes tab');
	}
	
	if (parameter1 == 'clickProductUsedInTheRecipe') {
		var recipe = getPageName();
		if (recipe && parameter2)
			pageTracker._trackEvent('Recipe', recipe, 'Click on the product needed for the recipe: '+document.getElementById(parameter2).innerHTML);
	}
	
	// 2.7.3 Tracking of comments
	if (parameter1 == 'submitCommentRecipe') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Submit a comment to the recipe');
			pageTracker._trackPageview('/'+language+'/virtual/submit-comment-recipe/');
		}
	}
	
	///////
    // Video page
    ///////
    
    // Links on the right of video page
    if (parameter1 == 'voteOnThisVideo') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Click on the link vote on this video');
            pageTracker._trackPageview('/'+language+'/virtual/click-on-vote-on-this-video/');
        }
    }
    
    if (parameter1 == 'voteThumbsUpVideo') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Vote Thumbs Up');
            pageTracker._trackPageview('/'+language+'/virtual/vote-thumbs-up-video/');
        }
    }
    
    if (parameter1 == 'voteThumbsDownVideo') {
        var video = getPageName();
        if (video)
            pageTracker._trackEvent('Video', video, 'Vote Thumbs Down');
    }
    
    
    if (parameter1 == 'emailVideo') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Click on the link email video');
            pageTracker._trackPageview('/'+language+'/virtual/email-video/');
        }
    }
    
    if (parameter1 == 'sendEmailVideo') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Real sending of a message to a friend');
            pageTracker._trackPageview('/'+language+'/virtual/send-email-video/');
        }
    }
    
    if (parameter1 == 'shareVideoOnFacebook') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Share on Facebook');
            pageTracker._trackPageview('/'+language+'/virtual/share-on-facebook/');
        }
    }
    
    if (parameter1 == 'likeVideoOnFacebook') {
        var video = getPageName();
        var language = getLanguage();
        if (video && language) {
            pageTracker._trackEvent('Video', video, 'Like on Facebook');
            pageTracker._trackPageview('/'+language+'/virtual/like-on-facebook/');
        }
    }
	
	///////
	// Offers and Perks
	///////
	
	// 2.8 Tracking of offers and perks page
	if (parameter1 == 'offersAndPerks') {
		if (parameter2)
			pageTracker._trackEvent('Offers and Perks', 'Offers and Perks calls to action', 'Click on '+document.getElementById(parameter2).innerHTML);
	}
	
	if (parameter1 == 'click-ad') {
        var language = getLanguage();
        if (language)
            pageTracker._trackPageview('/'+language+'/virtual/click-ad/');
	}
	
	if (parameter1 == 'sharefacebook') {
		var recipe = getPageName();
		var language = getLanguage();
		if (recipe && language) {
			pageTracker._trackEvent('Recipe', recipe, 'Share on Facebook');
			pageTracker._trackPageview('/'+language+'/virtual/share-facebook/');
        }			
	}
}

