(function () {
var swfApps = new Array();

function setSwfIds(){
try {var len = metaTags.length;var idx = 0;
for (var i=0;i<len;i++){if (metaTags[i].name.indexOf('SWF') > -1){swfApps[idx] = metaTags[i].content;idx++;}}}
catch(err){}
}

function getFlexApp(appName) {
if (navigator.appName.indexOf ("Microsoft") !=-1) {return window[appName];}
else {return document[appName];}
}
//function to call flex app, based on events
function cclampToFlex(e, data){
var len = swfApps.length;
for (var i=0; i<len;i++){
try {getFlexApp(swfApps[i]).callFlexApp(e.type, data);}
catch (err) {continue;}
}
}

//test, binding custom events to event listener functions:
function initListeners(){
$(document).ready(function(){
regLoginEvtLis(cclampToFlex);
regLogoutEvtLis(cclampToFlex);
regEnableCClampEvtLis(enableCClampEvtHandler);
regDisableCClampEvtLis(disableCClampEvtHandler);
regAnalyticsEvtLis(analyticsEvtHandler);
regCClampMovieStartedEvt(cclampToFlex);
regCClampMovieStoppedEvt(cclampToFlex);
regBreadCrumbEvtLis(handleBreadCrumbData);
});
}

//global event listeners
function regCusEvtLis(customEvtName, customEvthandler){$(document).bind(customEvtName, customEvthandler);}
//bind to cclamp custom events
function regBreadCrumbEvtLis(breadCrumbEvtHandler){regCusEvtLis("breadCrumbEvt", breadCrumbEvtHandler);}
function regEnableCClampEvtLis(enableCClampEvtHandler){regCusEvtLis("enableCClampEvt", enableCClampEvtHandler);}
function regDisableCClampEvtLis(disableCClampEvtHandler){regCusEvtLis("disableCClampEvt", disableCClampEvtHandler);}
function regLoginEvtLis(loginEvtHandler){regCusEvtLis("loginEvt", loginEvtHandler);}
function regLogoutEvtLis(logoutEvtHandler){regCusEvtLis("logoutEvt", logoutEvtHandler);}
function regAnalyticsEvtLis(analyticsEvtHandler){regCusEvtLis("analyticsEvt", analyticsEvtHandler);}
function regCClampMovieStartedEvt(movieEvtHandler){regCusEvtLis("movieStartedEvt", movieEvtHandler);}
function regCClampMovieStoppedEvt(movieEvtHandler){regCusEvtLis("movieStoppedEvt", movieEvtHandler);}
function disLoginEvt(data){disCusEvt("loginEvt");disAnalyticsEvt(new Array('DCSext.pLI','T','DCSext.pKY',data.hashedRegNum,'DCSext.pCS','F','DCSext.pPS',data.prefNationalUser));
}
function disLogoutEvt(){disCusEvt("logoutEvt");}
function disBreadCrumbEvt(data){disCusEvt("breadCrumbEvt", data);}
function disEnableCClampEvt(){disCusEvt("enableCClampEvt");}
function disDisableCClampEvt(data){disCusEvt("disableCClampEvt", data);}
function disAnalyticsEvt(data){disCusEvt("analyticsEvt", data);}
function disCClampMovieStartedEvt(data){disCusEvt("cclampMovieStartedEvt", data);}
function disCClampMovieStoppedEvt(data){disCusEvt("cclampMovieStoppedEvt", data);}
function disCusEvt(customEvtName, data){$(document).trigger(customEvtName, [ data ]);}
// call back function for other apps to cclamp javascript -->
function flexToCClamp(eventType, data){disCusEvt(eventType, data);}

function enableCClampEvtHandler(e){parent.tb_remove();}
function disableCClampEvtHandler(e, data){return tb_show(data.title, data.url,false, data);}
function analyticsEvtHandler(e, data){
window.dcsMultiTrack.apply(this, data);
}
function handleBreadCrumbData(e, breadCrumbData){
var so = breadCrumbData.source;var len = so.length;
var ali = '</a></li>';var lia = '<li>/ <a href="';var ahf = '">';
var brdcrmb = '';
if (len == 1 && so[0].name.length > 0){
brdcrmb+='<li class="tab-home">'+so[0].name+'</li>';
}
else if (len > 1){
brdcrmb = '<li class="tab-home"><a href="'+so[0].url+'">'+so[0].name+ali;
for (var i=1;i<len;i++){
if (i < (len-1)) {
brdcrmb+=lia+so[i].url+ahf+so[i].name+ali;
}
else if (i == len-1){
brdcrmb+='<li>/ '+so[i].name+'</li>';
}}}
$('ul#nav3').empty();
$('ul#nav3').append(brdcrmb);
}
initListeners();setSwfIds();
//public access functions
var c = window.com_ups_cclamp = function() {	};
c.regLoginEvtLis = regLoginEvtLis;c.regLogoutEvtLis = regLogoutEvtLis;c.regBreadCrumbEvtLis = regBreadCrumbEvtLis;c.disLoginEvt = disLoginEvt;
c.disLogoutEvt = disLogoutEvt;c.disAnalyticsEvt = disAnalyticsEvt;c.flexToCClamp = flexToCClamp;
c.disEnableCClampEvt = disEnableCClampEvt;c.disDisableCClampEvt = disDisableCClampEvt;
c.disCusEvt = disCusEvt;c.regCusEvtLis = regCusEvtLis;
})();