/**
 *  CODE EXAMPLE:
 * 
 * 	var omnitureVars = {'event': 22, 'eVar40': $('dr_betabar_intStarRating').value, 'eVar41': $('dr_betabar_strMessage').value};
 *	var linkObj 	 = $('dr_betabar_sendbtn');
 *	var linkName 	 = "Send";
 *	var eventType	 = "o";
 *
 *	Omniture.trackLink(linkObj, linkName, eventType, omnitureVars);
 *
 */

Omniture = {
	trackLink: function(linkObject, linkName, eventType, omnitureVars) {
		if(Omniture.detectOmniture()) {
			var arTrackVars    = [];
			var arTrackEvents  = [];
			var arTrackProps   = [];
			
			//fill prop11 with the page name
			omnitureVars['prop11'] = s.pageName;
			
			for (var key in omnitureVars) {
				var value = omnitureVars[key];
				if(key == "event") {
					if(value instanceof Array) {
						//multiple events passed in...
						for(i = 0; i < value.length; i++) {
							var eventNum = value[i];
							arTrackEvents.push("event" + eventNum);
						}
					}else{
						arTrackEvents.push("event" + value);
					}
				}
				
				if(key.indexOf('eVar') == 0 || key.indexOf('prop') == 0) {
					arTrackVars.push(key);
					
					//replace potential "bad" characters that might break the eval statement
					value    = value.replace( /"/gi, '\\"' );
					value	 = value.replace(/\n/gi, "\\n");
					
					var code = 's.' + key + ' = "'+ value +'";';
					eval(code);
				}
			}

			if(arTrackEvents.length > 0) {
				arTrackVars.push("events");
			}

			s.linkTrackVars = arTrackVars.join(",");
			s.linkTrackEvents = arTrackEvents.join(",");
			s.events = arTrackEvents.join(",");
			s.tl(linkObject,eventType,linkName);
		
		}else{
			//hmm, fail gracefully
		}			
	},
	
	detectOmniture: function() {
		if(typeof(s_gi) == "function" && typeof(s_account) != "undefined"  && typeof(s) != "undefined") {
			return true;
		}else{
			return false;
		}
	}
}