YAHOO.namespace("tracking");


var page_Names={
	"cmspages":["pageId"],
	"staticpage":["pageId"],
	"details":["destinationCode"],
	"shipinformation":["shipCode"]
};

var page_Channels={
	"cruise search":["bookingfunnel"],
	"cruise details":["bookingfunnel"],
	"get started":["bookingfunnel"],
	"choose category":["bookingfunnel"],
	"choose stateroom":["bookingfunnel"],
	"guest information":["bookingfunnel"],
	"travel choices":["bookingfunnel"],
	"pay for cruise":["bookingfunnel"],
	"confirmation":["bookingfunnel"],
	"courtesy hold":["bookingfunnel"],
	"hold confirm":["bookingfunnel"],
	"order brochure":["orderbrochure"],
	"order brochure/receive email":["orderbrochure"],
	"update profile":["myncl"],
	"update cruise preferences":["myncl"],
	"registration":["myncl"],
	"repeat payment":["bookingfunnel"],
	"payment issue":["bookingfunnel"],
	"booking error":["bookingfunnel"],
	"internal site search":["search"]
};

YAHOO.tracking.Omniture=function() {
	this.extensions=[];
	this.extension_index={};

	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"],
		"My Reservations":["event26"],
		"Update Profile":["event28"],
		"Update Cruise Preferences":["event28"],
		"Registration":["event13"],
		"Repeat Payment":["purchase","event30"],
		"Payment Issue":["event47"],
		"Booking Error":["event39"],
		"Internal Site Search":["event21"],
		"Shorex Error":["event50"],
		"shorex: Itinerary Summary":["event51"],
		"shorex: Itinerary Details":["prodView"]
	};

	// 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.productCat="cruise";
	this.products=[];
	this.productEvents=[];
	this.packageId="";
	this.productAmtPaid="";

	this.reset_proxy(); // The proxy object is the Omniture s_code object
	this.proxy.channelName=this.GetChannel();
	this.proxy.pageName="";
	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) {
		if (s.pageType=="errorPage") return;

		s.campaign=s.campaign||s.getQueryParam('cid,YSSPC,s_kwcid,utm_campaign', ':');
		s.campaign=s.getValOnce(s.campaign, "cname", 0);
		if (s.campaign.match(/DIS_(?=_DIS_)/gi)) s.campaign.toLowerCase().split("_dis_")[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].join(" : ");

		// getTimeToComplete 0.4
		if (s.events) {
			if (s.events.match(/prodView/i)) s.prop28='start';
			if (s.events.match(/purchase/i)) s.prop28='stop';
			s.prop28=s.getTimeToComplete(s.prop28, 'ttc', 0);
		}

		// Set page name & channel
		s.pageName=(s.pageName.length==0) ? s.channelName.toLowerCase() : s.pageName.toLowerCase();
		if (!s.channel||s.channel.length==0) s.channel=(page_Channels[s.pageName]) ? page_Channels[s.pageName][0] : s.channelName.toLowerCase();
		if (page_Names[s.channel]) s.pageName=[s.channel, (s.getQueryParam(page_Names[s.channel][0])||"None")].join(": ");
		var sUrlParts=window.location.href.split("/")
		if (sUrlParts.length > 5 && !sUrlParts[4].match(new RegExp(s.channel, 'gi'))) s.pageName=[sUrlParts[4], s.pageName].join(": ");
		if (!s.pageName.match(new RegExp(s.channel, 'gi'))) s.pageName=[s.channel, s.pageName].join(": ");
		s.pageName=s.pageName.toLowerCase();

		// getNewRepeat 1.0
		s.prop46=s.eVar46=s.getNewRepeat();
		s.prop47=s.eVar47=[s.prop46, s.channel].join(": ");
	};

	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
// Changed to only use this for 404 errors, other errors handled seperately
checkPageNotFound: function() {
	if (YAHOO.util.Dom.get("pageTitleText").innerHTML.match(/Page Not Found/gi)) {
		this.proxy.pageName=document.location.href;
		this.proxy.pageType="errorPage";
	}
},

GetChannel: function() {
	var sUri=window.location.pathname;
	var strEnd=sUri.lastIndexOf('.');
	if (strEnd < 0) strEnd=sUri.length;
	var sPage=sUri.substring(sUri.lastIndexOf('/') + 1, strEnd);
	if (sPage.length==0) return "[unknown]";
	return sPage.toLowerCase();
},

// Don't ever change these
reset_proxy: function() {
	this.proxy=s_gi(this.account);
	this.proxy.server=this.server
	this.proxy.visitorNamespace="norwegiancruiseline";
	this.proxy.dc=112;
	this.proxy.trackingServer="stat.ncl.com";
	this.proxy.trackingServerSecure="sstat.ncl.com";
	this.proxy.currencyCode="USD";
},

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);
	}
},

set_channel: function(scChannel) {
	this.proxy.channel=scChannel;
},

set_siteSearch: function(siteSearchTerm, siteSearchResults) {
	this.proxy.eVar36=this.proxy.prop25=siteSearchTerm;
	this.proxy.prop26=siteSearchResults;
},

set_bookingError: function(section, errorDesc) {
	this.proxy.eVar30=this.proxy.prop30=["booking", section, errorDesc].join(": ");
},

set_shorexError: function(section, errorDesc) {
	this.proxy.eVar30=this.proxy.prop30=["shorex", section, errorDesc].join(": ");
},

set_paymentAttempt: function(attemptNum) {
	this.proxy.eVar45=this.proxy.prop45=attemptNum;
},

register_agency: function(agency_id) {
	this.proxy.eVar37=agency_id;
},

collect_products: function() {
	if (this.packageId.length > 0) this.proxy.products=[this.productCat, this.packageId, "1", this.productAmtPaid, this.productEvents.join("|")].join(";");
},

set_product_events: function(event, value) {
	this.productEvents.push([event, value].join("="));
},

transmit: function() {
	try {
		this.init_hierarchy('breadcrumbs');  // Parse default hierarchy from breadcrumbs
		this.checkPageNotFound();
	} 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_getTimeToComplete.call(this.proxy, this.proxy);
	this.init_plugin_getNewRepeat.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);
},

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);
	}
},

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_destination: function(d) {
	this.proxy.eVar1=this.proxy.prop1=d;
},

set_email: function(d) {
	this.proxy.prop34=d;
},

set_email_confirmation: function(d) {
	this.proxy.prop35=d;
},

set_username: function(d) {
	this.proxy.eVar39=this.proxy.prop39=d;
},

// disabled
set_address: function(d) { }, // Invalid values
set_password: function(d) { }, // Shouldn't capture
set_preferred_cruise_length: function(d) { }, // Invalid values
set_first_name: function(d) { }, // No value
set_last_name: function(d) { }, // No value

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;
},

SentenceCase: function(t) {
	if (t.length > 1) return t.substr(0, 1).toUpperCase() + t.substr(1).toLowerCase();
	else t=t.toUpperCase();
	return t;
},

Trim: function(s) {
	return s.replace(/^\s+|\s+$/g, "");
},

GetStringDate: function(d, i) {
	d=this.Trim(d.replace(",",""));
	if (d.length > 7) d=d.substr(0, 3) + i + d.substr(d.length - 4, 4);
	return this.SentenceCase(d);
},

set_search_start_month: function(d) {
	if (typeof d !== "string") { return; }
	this.proxy.eVar2=this.proxy.prop2=this.GetStringDate(d, " ");
},

set_search_end_month: function(d) {
	this.proxy.eVar3=this.proxy.prop3=this.GetStringDate(d, " ");
},

GetSearchTimeFrame: function(d) {
	var dtParts=d.split("-");
	var startDt=new Date(this.GetStringDate(dtParts[0], " 1, "));
	var endDt=new Date(this.GetStringDate(dtParts[1], " 1, "));
	var ONE_DAY=1000 * 60 * 60 * 24;
	return Math.round((Math.abs(endDt - startDt)) / (ONE_DAY * 30));
},

set_search_time_frame: function(d) {
	this.proxy.eVar4=this.proxy.prop4=this.GetSearchTimeFrame(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_embarkation_port: 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.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 (!this.proxy.events && 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||"");
	this.proxy.eVar41=this.proxy.purchaseID;
},

set_shorexPackage: function(pId, fsid) {
	this.proxy.eVar40=pId;
	if (fsid && fsid.length > 0) this.proxy.eVar39=fsid;
},

set_shorexDetails: function(Category, SortType, Port) {
	if (Category) this.proxy.eVar32=this.proxy.prop32=Category.toLowerCase(); // Values [“All”, “Featured”, “Sightseeing”, “Adventure”, “Family”, “Main Feature”]
	if (SortType) this.proxy.eVar33=this.proxy.prop33=SortType.toLowerCase(); // Values [“All”, “Activity level”, “Duration”, “Price”, “Customer rating”]
	if (Port) this.proxy.eVar38=this.proxy.prop38=Port.toLowerCase();
},

set_shorexProducts: function(shorexId, shorexAmt) {
	var newProduct=["shorex","sx_" + shorexId, "1;", (shorexAmt) ? "event55=" + shorexAmt : ""].join(";");
	this.proxy.products=(this.proxy.products) ? [this.proxy.products, newProduct].join(",") : newProduct;
},

set_shorexCheckoutItems: function(shorexItems) {
	this.proxy.prop27=shorexItems;
},

set_shorexId: function(shorexId) {
	this.packageId="sx_" + shorexId;
	this.proxy.eVar48=shorexId;
	this.productCat="shorex";
},

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.packageId=product;
},

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_getTimeToComplete: function(s) {
// Plugin: getTimeToComplete 0.4 - return the time from start to stop
s.getTimeToComplete=new Function("v","cn","e",""
+ "var s=this,d=new Date,x=d,k;if(!s.ttcr){e=e?e:0;if(v=='start'||v=='"
+ "stop')s.ttcr=1;x.setTime(x.getTime()+e*86400000);if(v=='start'){s.c"
+ "_w(cn,d.getTime(),e?x:0);return '';}if(v=='stop'){k=s.c_r(cn);if(!s"
+ ".c_w(cn,'',d)||!k)return '';v=(d.getTime()-k)/1000;var td=86400,th="
+ "3600,tm=60,r=5,u,un;if(v>td){u=td;un='days';}else if(v>th){u=th;un="
+ "'hours';}else if(v>tm){r=2;u=tm;un='minutes';}else{r=.2;u=1;un='sec"
+ "onds';}v=v*r/u;return (Math.round(v)/r)+' '+un;}}return '';");
},

init_plugin_getNewRepeat: function(s) {
// Plugin: getNewRepeat 1.0 - Return whether user is new or repeat
s.getNewRepeat=new Function(""
+ "var s=this,e=new Date(),cval,ct=e.getTime(),y=e.getYear();e.setTime"
+ "(ct+30*24*60*60*1000);cval=s.c_r('s_nr');if(cval.length==0){s.c_w("
+ "'s_nr',ct,e);return 'New';}if(cval.length!=0&&ct-cval<30*60*1000){s"
+ ".c_w('s_nr',ct,e);return 'New';}if(cval<1123916400001){e.setTime(cv"
+ "al+30*24*60*60*1000);s.c_w('s_nr',ct,e);return 'Repeat';}else retur"
+ "n 'Repeat';");
},

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.5", build: "0" });
