YAHOO.namespace("tracking");
YAHOO.tracking.Omniture = function () {
	this.extensions = [];
	this.extension_index = {};
	this.pages = {};
  	this.page_events = {
		"Cruise Search":                  ["event1"],
		"Cruise Details":                 ["prodView", "event2"],
		"Get Started":                    ["event3"],
		"Choose Category":                ["event4"],
		"Choose Stateroom":               ["event5"],
		"Guest Information":              ["event6"],
		"Travel Choices":                 ["event7"],
		"Pay for cruise":                 ["scCheckout", "event45"],
		"Confirmation":                   ["purchase", "event30", "event40", "event41", "event42", "event43", "event44", "event46"],
		"Courtesy Hold":                  ["event11", "event40", "event41", "event42", "event43", "event44"],
		"Hold Confirm":                   ["purchase", "event12", "event30"],
		"Order Brochure":                 ["event27"],
		"Order Brochure/Receive Email":   ["event27", "event29"],
		"SignIn":                         ["event26"],
		"Update Profile":                 ["event28"],
		"Update Cruise Preferences":      ["event28"],
		"Registration":                   ["event13"],
		"Repeat Payment":                 ["purchase", "event30"]
	};  
	
	// Set default tracking values
  this.server  = document.location.host;
  this.url = document.location.href;
  this.document_title = document.title;
  this.account = ('www.ncl.com' == this.server) ? 'nclcom' : 'ncldevelopment';
  this.guests = 0;
  this.products = [];
  this.productEvents = [];
  this.packageId = "";
  this.productAmtPaid = "";
	  
  this.reset_proxy(); // The proxy object is the Omniture s_code object  
  this.proxy.pageName = this.document_title;
  
  this.proxy.trackDownloadLinks = true;
  this.proxy.trackExternalLinks = true;
  this.proxy.trackInlineStats = true;
	
  this.proxy.linkDownloadFileTypes = "exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls";
  this.proxy.linkInternalFilters = "javascript:,ncl.com"
  this.proxy.linkLeaveQueryString = false;
	
  // These must be changed for Ajax tracking
  this.proxy.linkTrackVars = "None";
  this.proxy.linkTrackEvents = "None";
        
  this.proxy.usePlugins = true;

  this.proxy.doPlugins = function (s) {
	  s.campaign = s.campaign || s.getQueryParam('cid,ET_CID,YSSPC,promo,d_cid,s_kwcid,kwcid',':');	
	  s.campaign = s.getValOnce(s.campaign, "cname", 0);		
	  s.setupFormAnalysis();

	  var temphr 	= s.getTimeParting('h','-5',new Date().getFullYear()); 
	  var tempday	= s.getTimeParting('d','-5',new Date().getFullYear());
	  var tempweek	= s.getTimeParting('w','-5',new Date().getFullYear());
	  if (temphr) { s.prop20 = s.eVar31 = tempweek + " : " + tempday + " : " + temphr; }
	  
	  s.eVar35 = s.getQueryParam("ET_RID"); //Captures ExactTarget Visitor ID
  };
  
	this.init_plugins();
	this.init_forms();
}

YAHOO.lang.augmentObject(YAHOO.tracking.Omniture, {	alias_method_chain: function (fn_name, ext) {
	this.prototype[fn_name + "_without_" + ext] = this.prototype[fn_name];
	this.prototype[fn_name] = this.prototype[fn_name + "_with_" + ext];
}});

YAHOO.lang.augmentObject(YAHOO.tracking.Omniture.prototype, {	init_hierarchy: function (breadcrumbs_id) {
	this.proxy.hier1 = (function(parentEl) {
		if (!parentEl) { return; }
		var crumbs = [];
		YAHOO.util.Dom.getElementsBy(function (child) {
			return (child.tagName == 'A' || child.tagName == 'STRONG')	  
		}, null, parentEl, function (item) { crumbs.push(item.innerText || item.textContent); });
		return crumbs.join(':');
	})(YAHOO.util.Dom.get(breadcrumbs_id));  
  },
  
  // This still relies on some scraping / parsing
  check_for_errors: function () {    
    var page_url 	  = document.location.href.match(/(\w+)\.html/)[1];
    var pageTitleText = YAHOO.util.Dom.get("pageTitleText");
    var errorDiv      = YAHOO.util.Dom.getElementsBy(function (el) { return YAHOO.util.Dom.hasClass('error', el); }, 'DIV');
          
    if (/^error$/i.test(page_url) || (pageTitleText && /Error/i.test(pageTitleText.innerHTML))) {
      this.proxy.pageName = "Error Page";
      this.proxy.pageType = "errorPage";      
    } else if (pageTitleText && /Page Not Found/i.test(pageTitleText.innerHTML)) {
	    this.proxy.pageName = "Page Not Found";
      this.proxy.pageType = "errorPage";
    }
    
    if (errorDiv && 0 < errorDiv.length && !Dom.hasClass('no_display', errorDiv[0])) { 
      this.proxy.prop21 = errorDiv.innerHTML.replace(/^\s+/,"").replace(/\W/g,"_").substring(0,99); 
    }
  },
	
	reset_proxy: function () {
		this.proxy = s_gi(this.account);
    this.proxy.server = this.server
    this.proxy.visitorNamespace = "norwegiancruiseline";   // Don't ever change these 
    this.proxy.dc = 112;                                   // Don't ever change these
    this.proxy.trackingServer = "stat.ncl.com";
    this.proxy.trackingServerSecure = "sstat.ncl.com";
		this.proxy.currencyCode = "USD";
    this.proxy.channel = "Consumer Booking Engine";    
	},
	
	patch_google: function (s) {		
	  try {/* Google Referrer Change Patch v1.1 */
			function s_rf(s){s._rf_f=new Function('t','l','var s=this,i=t?t.indexOf("="):-1,n=(l.substring(0,1)=="!");l=n?l.substring(1):l;if(t){if(i>0){if((","+l+",").indexOf(","+t.substring(0,i)+",")>=0)t=n?""'
			+':t;else t=n?t:""}if(t)s._rf_b+=(s._rf_b?"&":"")+t}');s._rf=new Function('x','var s=this,y,i,h,a,b,l="q,ie,start,search_key,word,kw,cd";y=x=""+x;i=y.indexOf("?");if(i>=0){a="&"+y.substring(i+1)+"&";'
			+'y=y.substring(0,i);h=y.toLowerCase();i=0;if(h.substring(0,7)=="http://")i+=7;else if(h.substring(0,8)=="https://")i+=8;h=h.substring(i);i=h.indexOf("/");if(i>0){h=h.substring(0,i);if(h.indexOf("goo'
			+'gle")>=0&&(a.indexOf("&q=")>=0||a.indexOf("&ie=")>=0||a.indexOf("&start=")>=0||a.indexOf("&search_key=")>=0||a.indexOf("&word=")>=0||a.indexOf("&kw=")>=0||a.indexOf("&cd=")>=0)){s._rf_b="";s.pt(a,"'
			+'&","_rf_f",l);s.pt(a,"&","_rf_f","!"+l);b=s._rf_b;if(b!=a)return y+"?"+b}}}return x');s._rf_fl=s.fl;s.fl=new Function('x','l','var s=this;if(x&&l==255)x=s._rf(x);return s._rf_fl(x,l)');s._rf_hav=
			s.hav;s.hav=new Function('var s=this,x=s.referrer;if(x)s.referrer=s.fl(x,255);return s._rf_hav()')}
			s_rf(s); 
		}catch (e) { 
			this.log('Failed to apply Google Referrer patch' + e); 
		}    
	}, 
	
	track_ajax: function (arg) {		
	  try {
      this.log("Tracking Ajax Link: " + arg.link_name);			
			this.reset_proxy();			
			var proxy = this.proxy;
					
			if (typeof arg.props === "object") {
				this.proxy.linkTrackVars = [arg.props.join(","), "events"].join(",");
				YAHOO.util.Functional.each(arg.props, function(x) { proxy[x] = arg[x]; });				
			} 
			else {				
				this.proxy.linkTrackVars = "events";
			}
			
			this.proxy.events = this.proxy.linkTrackEvents = ((typeof arg.events === "object") ? arg.events.join(",") : "");
			this.proxy.tl(arg.link, 'o', arg.link_name);
			this.log("Finished Tracking Ajax Link: " + arg.link_name);      
	  }
		catch (e) {
			this.log("Failed to Track Ajax Link: " + arg.link_name);
			this.log(e);
		}
	},
  
  register_agency: function (agency_id) {
    this.proxy.eVar37 = agency_id;
  },
	
	collect_products: function () {
	  if (this.packageId.length > 0){
		  this.proxy.products = ";" + this.packageId + ";;" + this.productAmtPaid + ";" + this.productEvents.join("|");
	  }else{
		  this.proxy.products = "";
	  }
	},
	
	extract_product: function (name, el, qty) {
		if (!Dom.get(el)) { return; }   
		this.add_product(name, (qty || this.guests), Dom.get(el).innerHTML);
	},
	
	set_product_events: function (event, value) {
		this.productEvents.push([event, value].join("="));
	},
	
	extract_cruise_fare: function (el, qty) {
		this.extract_product('Cruise', el, qty);		
	},
	
	extract_air_fare: function (el, qty) {
    this.extract_product('Air', el, qty);    
  },
	
	extract_travel_protection: function (el, tps, qty) {
	  var type = YAHOO.util.Functional.detect(tps, function (item) {
	    return Dom.get(item);
	  });		
		if (!type) { return; }
    this.extract_product('Travel Protection - ' + Dom.get(type).innerHTML, el, qty);    
  },
	
	extract_taxes: function (el, qty) {
		this.extract_product('Tax', el, qty);
	},
  
	transmit: function () {	
		try {
			this.init_hierarchy('breadcrumbs');  // Parse default hierarchy from breadcrumbs
			this.check_for_errors();             // Check for any errors	
		}catch (ex) {
			this.log("Problem tracking breadcrumbs or checking for errors:" + ex);
		}      
		this.init_page_specific_overrides(); // Override defaults with page-specific code
		this.evaluate_user_extensions();     // Override any existing values with extensions
		this.collect_products();             // Concatenates all the products together
		var s_code = this.proxy.t();         // Send the final data to Omniture
		if (s_code) { document.write(s_code) };
		this.log('Omniture Transmission Complete');
	},
  
	init_plugins: function () {
		this.init_plugin_getQueryParam.call(this.proxy, this.proxy);
		this.init_plugin_getValOnce.call(this.proxy, this.proxy);
		this.init_plugin_getTimeParting.call(this.proxy, this.proxy);
		this.init_plugin_FormAnalysis.call(this.proxy, this.proxy);
	},
	
	init_forms: function () {
		this.proxy.formList = "frmRegistration";
		this.proxy.trackFormList = true;
		this.proxy.trackPageName = true;
		this.proxy.useCommerce = false;
	},
  
	log: function (msg) {
		if (typeof console !== "object" || !console.log) { return; }
		console.log(msg);    
	},
  
	extend: function(block, name) {		
		block.extension_name = (typeof name === "string") ? name : ("Ext-" + this.extensions.length);
		this.extension_index[block.extension_name] = this.extensions.length; 
		this.extensions.push(block);
	},
  
	evaluate_user_extensions: function () {
		for (var i = 0; i < this.extensions.length; i++) {
			try {
				this.log("Evaluating extension: " + this.extensions[i].extension_name);  
				this.extensions[i].call(this, this.proxy);
				this.log("Extension finished");  
			} catch (ex) {
				this.log("Extension " + this.extensions[i].extension_name + " failed");    	
				this.log(ex.message);
			}
		}
	},
  
  show_extension: function (finder) {
    var index = (typeof finder === "string") ? this.extension_index[finder] : finder;    
    if ((typeof index === "number") && (index < this.extensions.length)) {      
      return this.extensions[index].toString();
    }
  },
  
  page_name_from_url: function () {	 
    return this.url.match(/(\w+)\.html/)[1];
  },
  
  page: function (name, block) {
	  this.pages[name] = block;
  },
  
  show_page: function (name) {
		if ((typeof name === "string") && (typeof this.pages[name] === "function")) {
		  return this.pages[name].toString();
		}
  },
	
	set_page: function (p) {
		this.set_page_name(p);
		this.set_page_events(p);
	},
	
	set_page_name: function (d) {
		this.proxy.pageName = d;
	},
	
	set_first_name: function (d) {
		this.proxy.eVar32 = this.proxy.prop32 = d;
	},
	
	set_last_name: function (d) {
    this.proxy.eVar33 = this.proxy.prop33 = d;
  },
	
	set_destination: function (d) {
	  this.proxy.eVar1 = this.proxy.prop1 = d;
	},
	
	set_email: function (d) {
		this.proxy.eVar34 = this.proxy.prop34 = d;
	},
	
	set_email_confirmation: function (d) {
    this.proxy.eVar35 = this.proxy.prop35 = d;
  },
	
	set_username: function (d) {
    this.proxy.eVar39 = this.proxy.prop39 = d;		
	},
	
	set_password: function (d) {
    this.proxy.eVar40 = this.proxy.prop40 = d;
	},
	
	set_preferred_cruise_length: function (d) {
		this.proxy.eVar42 = this.proxy.prop42 = d;
	},
	
	set_shorex_destination: function (d) {
		this.proxy.eVar26 = this.proxy.prop22 = d;
	},
	
	set_shorex_port: function (d) {
		this.proxy.eVar27 = this.proxy.prop23 = d;
	},
	
	set_shorex_search_results: function (d) {
		this.proxy.eVar28 = this.proxy.prop24 = d;
	},
	
	set_address: function (d) {
		this.proxy.eVar41 = this.proxy.prop41 = d;
	},
	
	set_search_start_month: function (d) {
		if (typeof d !== "string") { return; }
		this.proxy.eVar2 = this.proxy.prop2 = d.replace(",", "");
	},
  
	set_search_end_month: function (d) {
	  this.proxy.eVar3 = this.proxy.prop3 = d;    
  },
	
	set_search_time_frame: function (d) {
		this.proxy.eVar4 = this.proxy.prop4 = d; 
  },
	
	set_search_preferred_duration: function (d) {
		this.proxy.eVar5 = this.proxy.prop5 = d;
  },
	
	set_search_ship: function (d) {
		this.proxy.eVar6 = this.proxy.prop6 = d; 
	},
	
	set_search_embarkation_port: function (d) {
		this.proxy.eVar7 = this.proxy.prop7 = d;
	},
	
	set_search_senior: function (d) {
		this.proxy.eVar8 = this.proxy.prop8 = d;
	},
	
	set_search_latitude: function (d) {
		this.proxy.eVar9 = this.proxy.prop9 = d;
	},
	
	set_search_residency: function (d) {
		this.proxy.prop10 = d;
	},
	
	set_search_order: function (d) {
		this.proxy.prop11 = d; 
	},
	
	set_search_air_city: function(d) {
		this.proxy.eVar13 = this.proxy.prop15 = d;
	},
	
	set_search_cities: function (gateway, port) {
		this.set_search_air_gateway(gateway);
    	this.set_search_embarkation_port(port);	
		this.set_search_air_city(port);
		this.proxy.eVar14 = this.proxy.prop16 = [gateway, port].join("-"); 
	},
	
	set_search_results_shown: function (d) {
		this.proxy.eVar10 = this.proxy.prop12 = d;
	},
	
	set_page_events: function (page_name) {
		if (typeof page_name !== "string") { return; }
		this.set_events((this.page_events[page_name] || []).join(","));
	},
	
	set_events: function (event_list) {
		this.proxy.events = event_list;
	},
	
	set_search_air_gateway: function (d) {
		this.proxy.eVar12 = this.proxy.prop14 = d;
	},
	
	set_number_of_guests: function (d) {
		this.proxy.eVar11 = this.proxy.prop13 = d;
	},
	
	set_promo_code: function(d) {
		this.proxy.eVar34 = this.proxy.prop17 = d;
	},
	
	set_room_category: function(d) {
		this.proxy.prop18 = d;
	},
	
	set_payment: function (d) {
		this.proxy.eVar44 = this.proxy.prop44 = d;
	},
	
	set_reservation_ship: function (d) {
    this.proxy.eVar15 = d;
  },
  
	set_reservation_sail_date: function (d) {
    this.proxy.eVar16 = d; 
  },
  
	set_reservation_disembarkation_date: function (d) {
    this.proxy.eVar17 = d; 
  },
  
	set_reservation_embarkation_port: function (d) {
    this.proxy.eVar18 = d; 
  },
  
	set_reservation_duration: function (d) {
    this.proxy.eVar21 = d; 
  },
  
	set_reservation_category: function (d) {
    this.proxy.eVar23 = d; 
  },
	
  set_reservation_cabin: function (d) {
    this.proxy.eVar24 = d; 
  },
	
	set_reservation_guests: function (d) {
		if (isNaN(d)) { return; }
		this.guests = parseInt(d);
		this.set_number_of_guests(this.guests);
	},
	
	set_reservation_number: function (d) {		
		this.proxy.purchaseID = (d || "");
		// Added by Acceleration [FvR]
		this.proxy.eVar41 = this.proxy.purchaseID;
	},
	
	set_product_basics: function (rId,iId,pId) {
		this.proxy.eVar41 = (rId);
		this.proxy.eVar42 = (iId);
		this.packageId = pId;
	},
	
	set_pontentialRev: function (rId,iId,pId,cruiseFare,travelProtect,airfare,tax,totalAmt) {
		this.set_product_basics(rId,iId,pId);
		this.set_product_events("event40", cruiseFare);
		this.set_product_events("event41", travelProtect);
		this.set_product_events("event42", airfare);
		this.set_product_events("event43", tax);
		this.set_product_events("event44", totalAmt);
	},
	
	set_grossPotentialRev: function (amt) {
		this.set_product_events("event45", amt.replace(/(\$ )/i, ""));
	},
	
	set_productPayment: function (rId,iId,pId,amtPaid) {
		this.set_product_basics(rId,iId,pId);
		this.productAmtPaid = amtPaid.replace(/(\$ )/i, "");
	},
	
	reset_reservation_number: function (d) {
		this.set_reservation_number(null);
	},
	
	add_product: function (product, qty, amount) {
		this.products.push(";" + [product, qty, amount].join(";"));
	},
	
  init_page_specific_overrides: function () {	
		try {	  
		  var fn = this.pages[this.page_name_from_url()];
		  if (fn) { fn.call(this.proxy, this.proxy); }
		}
		catch (ex) {
		  this.log(ex.message);
		}
  },
  
  init_plugin_getQueryParam: function (s) {    
	s.getQueryParam = new Function("p","d","u",""
	+"var s=this,v='',i,t;d=d?d:'';u=u?u:(s.pageURL?s.pageURL:s.wd.locati"
	+"on);if(u=='f')u=s.gtfs().location;while(p){i=p.indexOf(',');i=i<0?p"
	+".length:i;t=s.p_gpv(p.substring(0,i),u+'');if(t)v+=v?d+t:t;p=p.subs"
	+"tring(i==p.length?i:i+1)}return v");
	
	s.p_gpv = new Function("k","u",""
	+"var s=this,v='',i=u.indexOf('?'),q;if(k&&i>-1){q=u.substring(i+1);v"
	+"=s.pt(q,'&','p_gvf',k)}return v");
	
	s.p_gvf = new Function("t","k",""
	+"if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'T"
	+"rue':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s."
	+"epa(v)}return ''");    
  },
  
  init_plugin_getValOnce: function (s) {
    s.getValOnce = new Function("v","c","e",""
	+"var s=this,k=s.c_r(c),a=new Date;e=e?e:0;if(v){a.setTime(a.getTime("
	+")+e*86400000);s.c_w(c,v,e?a:0);}return v==k?'':v");		
  },
  
  init_plugin_getTimeParting: function (s) {
    // Plugin: getTimeParting 1.3 - Set timeparting values based on time zone
	s.getTimeParting = new Function("t","z","y",""
	+"dc=new Date('1/1/2000');f=15;ne=8;if(dc.getDay()!=6||"
	+"dc.getMonth()!=0){return'Data Not Available'}else{;z=parseInt(z);"
	+"if(y=='2009'){f=8;ne=1};gmar=new Date('3/1/'+y);dsts=f-gmar.getDay("
	+");gnov=new Date('11/1/'+y);dste=ne-gnov.getDay();spr=new Date('3/'"
	+"+dsts+'/'+y);fl=new Date('11/'+dste+'/'+y);cd=new Date();"
	+"if(cd>spr&&cd<fl){z=z+1}else{z=z};utc=cd.getTime()+(cd.getTimezoneO"
	+"ffset()*60000);tz=new Date(utc + (3600000*z));thisy=tz.getFullYear("
	+");var days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Fr"
	+"iday','Saturday'];if(thisy!=y){return'Data Not Available'}else{;thi"
	+"sh=tz.getHours();thismin=tz.getMinutes();thisd=tz.getDay();var dow="
	+"days[thisd];var ap='AM';var dt='Weekday';var mint='00';if(thismin>3"
	+"0){mint='30'}if(thish>=12){ap='PM';thish=thish-12};if (thish==0){th"
	+"ish=12};if(thisd==6||thisd==0){dt='Weekend'};var timestring=thish+'"
	+":'+mint+ap;var daystring=dow;var endstring=dt;if(t=='h'){return tim"
	+"estring}if(t=='d'){return daystring};if(t=='w'){return en"
	+"dstring}}};"
	);
  },
  
  init_plugin_FormAnalysis: function (s) {
	// Plugin: Form Analysis 2.1 (Success, Error, Abandonment)	 
	s.setupFormAnalysis = new Function(""
	+"var s=this;if(!s.fa){s.fa=new Object;var f=s.fa;f.ol=s.wd.onload;s."
	+"wd.onload=s.faol;f.uc=s.useCommerce;f.vu=s.varUsed;f.vl=f.uc?s.even"
	+"tList:'';f.tfl=s.trackFormList;f.fl=s.formList;f.va=new Array('',''"
	+",'','')}");
	
	s.sendFormEvent = new Function("t","pn","fn","en",""
	+"var s=this,f=s.fa;t=t=='s'?t:'e';f.va[0]=pn;f.va[1]=fn;f.va[3]=t=='"
	+"s'?'Success':en;s.fasl(t);f.va[1]='';f.va[3]='';");
	
	s.faol = new Function("e",""
	+"var s=s_c_il["+s._in+"],f=s.fa,r=true,fo,fn,i,en,t,tf;if(!e)e=s.wd."
	+"event;f.os=new Array;if(f.ol)r=f.ol(e);if(s.d.forms&&s.d.forms.leng"
	+"th>0){for(i=s.d.forms.length-1;i>=0;i--){fo=s.d.forms[i];fn=fo.name"
	+";tf=f.tfl&&s.pt(f.fl,',','ee',fn)||!f.tfl&&!s.pt(f.fl,',','ee',fn);"
	+"if(tf){f.os[fn]=fo.onsubmit;fo.onsubmit=s.faos;f.va[1]=fn;f.va[3]='"
	+"No Data Entered';for(en=0;en<fo.elements.length;en++){el=fo.element"
	+"s[en];t=el.type;if(t&&t.toUpperCase){t=t.toUpperCase();var md=el.on"
	+"mousedown,kd=el.onkeydown,omd=md?md.toString():'',okd=kd?kd.toStrin"
	+"g():'';if(omd.indexOf('.fam(')<0&&okd.indexOf('.fam(')<0){el.s_famd"
	+"=md;el.s_fakd=kd;el.onmousedown=s.fam;el.onkeydown=s.fam}}}}}f.ul=s"
	+".wd.onunload;s.wd.onunload=s.fasl;}return r;");
	
	s.faos = new Function("e",""
	+"var s=s_c_il["+s._in+"],f=s.fa,su;if(!e)e=s.wd.event;if(f.vu){s[f.v"
	+"u]='';f.va[1]='';f.va[3]='';}su=f.os[this.name];return su?su(e):tru"
	+"e;");
	
	s.fasl = new Function("e",""
	+"var s=s_c_il["+s._in+"],f=s.fa,a=f.va,l=s.wd.location,ip=s.trackPag"
	+"eName,p=s.pageName;if(a[1]!=''&&a[3]!=''){a[0]=!p&&ip?l.host+l.path"
	+"name:a[0]?a[0]:p;if(!f.uc&&a[3]!='No Data Entered'){if(e=='e')a[2]="
	+"'Error';else if(e=='s')a[2]='Success';else a[2]='Abandon'}else a[2]"
	+"='';var tp=ip?a[0]+':':'',t3=e!='s'?':('+a[3]+')':'',ym=!f.uc&&a[3]"
	+"!='No Data Entered'?tp+a[1]+':'+a[2]+t3:tp+a[1]+t3,ltv=s.linkTrackV"
	+"ars,lte=s.linkTrackEvents,up=s.usePlugins;if(f.uc){s.linkTrackVars="
	+"ltv=='None'?f.vu+',events':ltv+',events,'+f.vu;s.linkTrackEvents=lt"
	+"e=='None'?f.vl:lte+','+f.vl;f.cnt=-1;if(e=='e')s.events=s.pt(f.vl,'"
	+",','fage',2);else if(e=='s')s.events=s.pt(f.vl,',','fage',1);else s"
	+".events=s.pt(f.vl,',','fage',0)}else{s.linkTrackVars=ltv=='None'?f."
	+"vu:ltv+','+f.vu}s[f.vu]=ym;s.usePlugins=false;var faLink=new Object"
	+"();faLink.href='#';s.tl(faLink,'o','Form Analysis');s[f.vu]='';s.us"
	+"ePlugins=up}return f.ul&&e!='e'&&e!='s'?f.ul(e):true;");
	
	s.fam = new Function("e",""
	+"var s=s_c_il["+s._in+"],f=s.fa;if(!e) e=s.wd.event;var o=s.trackLas"
	+"tChanged,et=e.type.toUpperCase(),t=this.type.toUpperCase(),fn=this."
	+"form.name,en=this.name,sc=false;if(document.layers){kp=e.which;b=e."
	+"which}else{kp=e.keyCode;b=e.button}et=et=='MOUSEDOWN'?1:et=='KEYDOW"
	+"N'?2:et;if(f.ce!=en||f.cf!=fn){if(et==1&&b!=2&&'BUTTONSUBMITRESETIM"
	+"AGERADIOCHECKBOXSELECT-ONEFILE'.indexOf(t)>-1){f.va[1]=fn;f.va[3]=e"
	+"n;sc=true}else if(et==1&&b==2&&'TEXTAREAPASSWORDFILE'.indexOf(t)>-1"
	+"){f.va[1]=fn;f.va[3]=en;sc=true}else if(et==2&&kp!=9&&kp!=13){f.va["
	+"1]=fn;f.va[3]=en;sc=true}if(sc){nface=en;nfacf=fn}}if(et==1&&this.s"
	+"_famd)return this.s_famd(e);if(et==2&&this.s_fakd)return this.s_fak"
	+"d(e);");
	
	s.ee = new Function("e","n",""
	+"return n&&n.toLowerCase?e.toLowerCase()==n.toLowerCase():false;");
	
	s.fage = new Function("e","a",""
	+"var s=this,f=s.fa,x=f.cnt;x=x?x+1:1;f.cnt=x;return x==a?e:'';");	
  }
});	

// Create the new Singleton Omniture tracking object
YAHOO.tracking.Omniture.instance = new YAHOO.tracking.Omniture();
YAHOO.register("omniture_tracking", YAHOO.tracking.Omniture.instance, {version: "1.0", build: "0"}); 