function Tracking(overrides){this.properties=this.getProperties();if(overrides){this.properties.merge(overrides);}}Tracking.getAccount=function(){if(location.hostname=="www.4music.com"){return"channel4music";}return"channel4musictest";};Tracking.prototype.execute=function(){if(self.s!=null&&this.notInFrame()){Tracking.trackLastEvent();this.setProperties();this.write();}};Tracking.prototype.notInFrame=function(){return window.frameElement==null;};Tracking.fields=["tracking.area","tracking.brand","tracking.subsection","tracking.pagetype","tracking.sortorder","tracking.upload.type","tracking.search.terms","tracking.search.results","tracking.events","keywords","DC.date"];Tracking.prototype.getProperties=function(){var properties=new Map();Tracking.fields.each(function(item){properties.set(item,Meta.getContent(item));});return properties;};Tracking.prototype.setProperties=function(){this.setEvent();this.setUploadType();this.setSearch();this.setTags();this.setPublishedDate();this.setLoggedIn();};Tracking.EventType=new Map().set("Participate",39).set("Comment",26).set("Rate",36).set("Login",35).set("Registration",33).set("Upload",6).set("Newsletter signup",9).set("Report",27).set("Vote",28).set("shareit",47).set("orange",46);Tracking.prototype.setEvent=function(){var eventNames=this.properties.get("tracking.events");self.s.events=(self.s.events)?self.s.events+Tracking.convertToCodes(eventNames):Tracking.convertToCodes(eventNames);self.s.prop26=eventNames;};Tracking.convertToCodes=function(eventNames){var eventCodes=new StringBuilder();eventNames.split(",").each(function(item){var eventType=item.trim();if(eventType!=""){eventCodes.append("event").append(Tracking.EventType.get(eventType));}});return eventCodes.toString();};Tracking.prototype.setUploadType=function(){self.s.prop7=this.properties.get("tracking.upload.type");};Tracking.prototype.setSearch=function(){self.s.prop8=this.properties.get("tracking.search.terms");self.s.prop9=this.properties.get("tracking.search.results");};Tracking.prototype.setTags=function(){self.s.prop13=this.properties.get("keywords").toLowerCase();};Tracking.prototype.setPublishedDate=function(){};Tracking.prototype.setLoggedIn=function(){if(new CookieUser().username){self.s.prop15="Logged in";}};Tracking.prototype.write=function(){var code=self.s.t();if(code){document.write(code);}};Tracking.track=function(doc){var events=Meta.getContent("tracking.events",doc);var uploadType=Meta.getContent("tracking.upload.type",doc);Tracking.trackEvents(events,uploadType);};Tracking.trackEvents=function(eventNames,uploadType,omni_result){self.s=s_gi(Tracking.getAccount());self.s.trackingServer="webstat.4music.com";var propertiesBeingSent=["prop26","eVar26"];if(uploadType!=null||uploadType!=""){}if(eventNames=="Rate"){propertiesBeingSent.add("prop35").add("eVar35");self.s.prop35=omni_result;self.s.eVar35=omni_result;}if(eventNames=="shareit"){propertiesBeingSent.add("prop37").add("eVar37");}propertiesBeingSent.add("events");self.s.linkTrackVars=propertiesBeingSent.join(",");var eventsCodes=Tracking.convertToCodes(eventNames);if(eventNames=="shareit"){self.s.prop37=omni_result;self.s.eVar37=omni_result;}self.s.linkTrackEvents=eventsCodes;self.s.events=eventsCodes;self.s.prop26=eventsCodes;self.s.eVar26=eventsCodes;var trackingLink=Elements.create('<a href="">trackingLink</a>');Elements.addToHead(trackingLink);self.s.pageURL="http://www.4music.com/dummyTrackingLink";try{self.s.tl(trackingLink,"o",eventNames);}catch(e){window.console.error(e);}self.s.events="";self.s.prop26="";self.s.eVar26="";self.s.prop35="";self.s.eVar35="";self.s.prop37="";self.s.eVar37="";self.s.events="";self.s.linkTrackVars="none";self.s.linkTrackEvents="none";};Tracking.CookieKey="4music.tracking.last.event";Tracking.trackLastEvent=function(omni_results){var lastEvent=Tracking.getLastEvent();if(lastEvent&&lastEvent.isNotEmpty()){Tracking.trackEvents(lastEvent,"",omni_results);Tracking.setLastEvent(String.empty);}};Tracking.setLastEvent=function(eventType){new Cookies().set(Tracking.CookieKey,eventType);};Tracking.getLastEvent=function(){return new Cookies().get(Tracking.CookieKey);};function FormTracker(element,eventType){this.element=element;this.eventType=eventType;this.attachEvent();}FormTracker.prototype.attachEvent=function(){var self=this;this.element.addEventListener("submit",function(){self.track();},false);};FormTracker.prototype.track=function(){Tracking.setLastEvent(this.eventType);};