﻿var Tracking = {
	
	/*		
	*	######		INITIALISATION		#######
	*/
	setStandardTracking : function(){
		s.server="u.lasoo.com.au";
		s.channel="ulasoo";			
		s.prop1="ulasoo"; //site	
	},	

	initialiseTrackingProperties : function(){			
		s.prop2="";		//sub section
		s.prop3="";		//sub sub section
		s.prop4="";		//Offer title
		s.prop5="";		//--
		s.prop6="";		//Lasoo user id
		s.prop7="";		//Submission Category (Product, Offer etc)
		s.prop8="";		//--
		s.prop9="";		//--
		s.prop10="";	//Search Term entered in search field
		s.prop11="";	//Number of search results, 'none' if 0
		s.prop12="";	//Tag used for search
		s.prop13="";	//Tag added to submission
		s.prop14="";	//Added to User, phase 2
		s.prop15="";	//--
		s.prop16="";	//--
		s.prop17="";	//--
		s.prop18="";	//--
		s.prop19="";	//--
		s.prop20="";	//Gender
		s.prop21="";	//Age
		s.prop22="";	//Retailer
		s.prop23="";	//Page type (e.g. profile, create story etc)
		s.prop24="";	//Price
		s.prop25="";	//Sort By (upcoming)
		s.prop26="";	//New or Repeat visitor
		
		s.campaign="";	//nfi ??
		s.pageType="";	//usually = errorPage for 404
		s.pageName="";	//Page Title
		s.state="";		//--
		s.zip="";		//--
		s.events="";	//Set to name event identifier
		s.purchaseID="";//--		
		s.products="";	//--

		/* Hierarchy Variables */
		s.hier1="";
	},

	setTrackingDuplicates: function(){
		s.eVar1 = (s.prop1 == "") ? s.eVar1 : s.prop1;
		s.eVar2 = (s.prop2 == "") ? s.eVar2 : s.prop2;
		s.eVar3 = (s.prop3 == "") ? s.eVar3 : s.prop3;
		s.eVar4 = (s.prop4 == "") ? s.eVar4 : s.prop4;
		s.eVar5 = (s.prop5 == "") ? s.eVar5 : s.prop5;
		s.eVar6 = (s.prop6 == "") ? s.eVar6 : s.prop6;
		s.eVar7 = (s.prop7 == "") ? s.eVar7 : s.prop7;
		s.eVar8 = (s.prop8 == "") ? s.eVar8 : s.prop8;
		s.eVar9 = (s.prop9 == "") ? s.eVar9 : s.prop9;
		s.eVar10 = (s.prop10 == "") ? s.eVar10 : s.prop10;
		s.eVar11 = (s.prop11 == "") ? s.eVar11 : s.prop11;
		s.eVar12 = (s.prop12 == "") ? s.eVar12 : s.prop12;
		s.eVar13 = (s.prop13 == "") ? s.eVar13 : s.prop13;
		s.eVar14 = (s.prop14 == "") ? s.eVar14 : s.prop14;
		s.eVar15 = (s.prop15 == "") ? s.eVar15 : s.prop15;
		s.eVar16 = (s.prop16 == "") ? s.eVar16 : s.prop16;
		s.eVar17 = (s.prop17 == "") ? s.eVar17 : s.prop17;
		s.eVar18 = (s.prop18 == "") ? s.eVar18 : s.prop18;
		s.eVar19 = (s.prop19 == "") ? s.eVar19 : s.prop19;
		s.eVar20 = (s.prop20 == "") ? s.eVar20 : s.prop20;
		s.eVar21 = (s.prop21 == "") ? s.eVar21 : s.prop21;
		s.eVar22 = (s.prop22 == "") ? s.eVar22 : s.prop22;
		s.eVar23 = (s.prop23 == "") ? s.eVar23 : s.prop23;
		s.eVar24 = (s.prop24 == "") ? s.eVar24 : s.prop24;
		s.eVar25 = (s.prop25 == "") ? s.eVar25 : s.prop25;
		//s.eVar26 = (s.prop26 == "") ? s.eVar26 : s.prop26;
	},
	
	submitLinkTracking: function(linkName){
		s.tl(true, 'o', linkName);
	},
	
	submitPageTracking: function(linkName){
		s.t();
	},
	
	submitLinkTrackingWait: function(obj, linkName){
		s.tl(obj, 'o', linkName);
	},
	
	/*		
	*	######		EVENT TYPES		#######
	*/
	eventType_Searches			    : "event1",
	eventType_Detail			    : "event2",
	eventType_Like				    : "event3",
	eventType_Comment			    : "event4",
	eventType_Registration		    : "event5",
	eventType_Login				    : "event6",
	eventType_ReportAsSpam		    : "event7",
	eventType_Submission		    : "event8",
	eventType_Befriend			    : "event9",
	eventType_TagAddToUser		    : "event10",	
	eventType_DcSubmission		    : "event11",
	eventType_3rdPartySubmission	: "event12",
	
	/*		
	*	######		PAGE TYPES		#######
	*/
	pageType_SearchResults		    : "searchResults",
	pageType_Profile			    : "profile",
	pageType_CreateStory		    : "createStory",
	pageType_Detail				    : "storyDetail",
	
	/*		
	*	######		POST TYPES		#######
	*/
	postType_Standard	            : 1,
	postType_Dc		                : 2,
	postType_3rdParty               : 3,		

	/*		
	*	######		  EVENTS		#######
	*/
	SearchPerformed: function(pageName, subSection, luserId, searchTerm, numResults, searchTag, pageType, sortBy) {
		Tracking.initialiseTrackingProperties();	
		
		s.events	= Tracking.eventType_Searches;
		s.pageName	= pageName;
		s.prop2		= subSection;
		s.prop6		= luserId;
		s.prop10	= searchTerm;
		s.prop11	= numResults;
		s.prop12	= searchTag;
		s.prop23	= pageType;
		s.prop25	= sortBy;

		Tracking.setTrackingDuplicates();
		Tracking.submitPageTracking();
	},
	
	Liked: function(luserId, offerTitle, firstTag) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="prop6,eVar1,events"; 
		s.linkTrackEvents	= Tracking.eventType_Like;
		s.events			= Tracking.eventType_Like;
		s.prop4				= offerTitle;
		s.prop6				= luserId;
		s.prop13			= firstTag;

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTracking("Liked");
	},
	
	SpamReported: function(luserId, offerTitle) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="prop6,eVar1,events"; 
		s.linkTrackEvents	= Tracking.eventType_ReportAsSpam;
		s.events			= Tracking.eventType_ReportAsSpam;
		s.prop2				= "detail";
		s.prop4				= offerTitle;
		s.prop6				= luserId;

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTracking("ReportAsSpam");
	},
	
	CommentMade: function(luserId, offerTitle) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="prop6,eVar1,events"; 
		s.linkTrackEvents	= Tracking.eventType_Comment;
		s.events			= Tracking.eventType_Comment;
		s.prop2				= "detail";
		s.prop4				= offerTitle;
		s.prop6				= luserId;

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTracking("CommentMade");
	},
	
	Registered: function(link, gender, age) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="prop20,prop21,eVar1,events"; 
		s.linkTrackEvents	= Tracking.eventType_Registration;
		s.events			= Tracking.eventType_Registration;		
		s.prop20			= "gender";
		s.prop21			= "age";

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTrackingWait(link, "Registering");
	},
	
	LoginSubmitted: function(link) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="eVar1,events,pageName"; 
		s.linkTrackEvents	= Tracking.eventType_Login;
		s.events			= Tracking.eventType_Login;
		s.prop2				= "login";

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTrackingWait(link, "LoginSubmitted");		
	},
	
	DetailViewed: function(luserId, offerTitle) {
		Tracking.initialiseTrackingProperties();	
		
		s.events	= Tracking.eventType_Detail;
		s.pageName	= 'ulasoo:detail';
		s.prop2		= 'detail';
		s.prop4		= offerTitle;
		s.prop6		= luserId;

		Tracking.setTrackingDuplicates();
		Tracking.submitPageTracking();
	},
	
	StoryPosted: function(link, luserId, price, retailer, firstTag, category, title, postType) {
		Tracking.initialiseTrackingProperties();
		
		var postTypeEvent = Tracking.eventType_Submission;
		if(postType == Tracking.postType_3rdParty){
		    var postTypeEvent = Tracking.eventType_3rdPartySubmission;
		} else if (postType == Tracking.postType_Dc){
		    var postTypeEvent = Tracking.eventType_DcSubmission;
		}
		
		s.linkTrackVars		="prop6,eVar1,events,pageName"; 
		s.linkTrackEvents	= postTypeEvent;
		s.events			= postTypeEvent;
		s.prop2				= "submission";
		s.prop6				= luserId;
		s.prop24			= price;
		s.prop22			= retailer;
		s.prop13			= firstTag;
		s.prop7				= category;
		s.prop4				= title;

		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTrackingWait(link, "StoryPosted");
	},
	
	FriendAdded: function(link, luserId, friendId) {
		Tracking.initialiseTrackingProperties();
		
		s.linkTrackVars		="prop6,eVar1,events,pageName"; 
		s.linkTrackEvents	= Tracking.eventType_Befriend;
		s.events			= Tracking.eventType_Befriend;
		s.prop2				= "profile";
		s.prop6				= luserId;
		s.prop8				= friendId;
 
		Tracking.setTrackingDuplicates();
		Tracking.submitLinkTrackingWait(link, "FriendAdded");
	}
}
