/* DIMG Web Analytics - Build: 2009-11-30 - dmannu */
var dimgdebug = 1
var digWAObj
var digALHost = "//analytics.disneyinternational.com/analytics/"; //WDIG Analytics Base URL

var _acct; var _pn
var _mlc; 
var _seg=""
var _cmp=""; var _gp=""
var _cmpn="hb_cmp_id"; var _gpn="hb_goal"; var _fnl=""
var _pec=""; var _fv=""; var _dcmp=""; var _dcmpn=""
var _hra=""; var _hcn=""; var _hcv=""; var _hlt=""
var _hla=""; var _hqsr=""; var _hqsp=""; var _hc1=""
var _hc2=""; var _hc3=""; var _hc4=""; var _ci=""
var _cp="null"; var _cpd=""; var _pndef="index.html"
var _ctdef="full"; var _dlf="n"; var _elf="n"; var _dft="n"; var _epg="n"
var _vpc="090000m"
var _gn="ehg-dig.hitbox.com"
var _mn

var digWABody = document.getElementsByTagName('body')[0] //Grab Body element to add global scripts to the body

function debug(str)
{
	if(!dimgdebug)
		return false
	if(typeof(console)!="undefined" && console.debug)
		console.debug(str)
}

function digSCodeJS1()
{
	var _omniSRC = digALHost + "s_code.js"
	_omniSrt = document.createElement('script')
	_omniSrt.src = _omniSRC
	_omniSrt.type = 'text/javascript'
	_omniSrt.id = 'omniScript'
	digWABody.appendChild(_omniSrt)
}

function digSiteJS1()
{
	var _omniSRC = digALHost + "scripts\/"+ digWAObj.urlSite + ".js"
	_omniSrt = document.createElement('script')
	_omniSrt.src = _omniSRC
	_omniSrt.type = 'text/javascript'
	_omniSrt.id = 'siteScript'
	digWABody.appendChild(_omniSrt)
}

function digPostProcessJS1()
{
	var _omniSRC = digALHost + "post_process.js"
	_omniSrt = document.createElement('script')
	_omniSrt.src = _omniSRC
	_omniSrt.type = 'text/javascript'
	_omniSrt.id = 'postProcessScript'
	digWABody.appendChild(_omniSrt)
}

function digSCodeJS() {
	var omniSRC = "<script type=\"text/javascript\" src=\"" + digALHost + "s_code.js\"><\/script>"; //Omniture s_code.js
	document.write(omniSRC)
}

function digSiteJS() {
	var omniSRC = "<script type=\"text/javascript\" src=\"" + digALHost + "scripts/" + digWAObj.urlSite + ".js\"><\/script>"; //Site Specific JS
	document.write(omniSRC)
}

function digErrorCheck()
{
	var omniSRC = "<script type=\"text/javascript\" src=\"" + digALHost + "error.js\"><\/script>" //Error Correction if no Site Specific JS is found
	document.write(omniSRC)
}

function digPostProcessJS()
{
	var omniSRC = "<script type=\"text/javascript\" src=\"" + digALHost + "post_process.js\"><\/script>" // Post Process - Assign values to s_omni variables
	document.write(omniSRC)
}

function digMediaOpen(mediaName, mediaLength, mediaPlayerName)
{
	var s = s_gi(s_account)
	s_omni.Media.open(mediaName, mediaLength, mediaPlayerName)
}

function digMediaPlay(mediaName, mediaOffset, contentType, propertyName)
{
	var s = s_gi(s_account)
	s_omni.prop3 = mediaName
	s_omni.eVar2 = mediaName
	s_omni.events = "event1"
	s_omni.prop4 = contentType
	s_omni.prop11 = propertyName || digWAObj.property || report.property_code || "unknown"
	s_omni.Media.play(mediaName,mediaOffset)
}

function digPostProcess()
{
	debug("--- new Omniture server call processing ---")
	digWAObj.origLength = digWAObj.origArray.length
	if(typeof(report.property_code)==="undefined" || report.property_code==="")
		report.property_code = "none";

	if(digWAObj.category)
		s_omni.prop14 = digWAObj.category
	else	s_omni.prop14 = report.category

	for(var x=0;x<=report.dirMatched;x++)
		digWAObj.origArray.shift()

	if(digWAObj.origArray.length===0)
	{
		digWAObj.tmpCat="home"
		digWAObj.urlPath=""
	}else{
		digWAObj.tmpCat=digWAObj.origArray[0]
		digWAObj.urlPath = digWAObj.origArray.join(":").toLowerCase()
	}

	debug("SiteSection prefix (pseudo-urlmap): " +report.siteSection);
	debug("SiteSection : " +digWAObj.siteSection);
	debug("urlPath : " +digWAObj.urlPath);
	if(report.siteSection) // pseudo-urlmap based site section
	{
		debug("SiteSection prefix: " +report.siteSection)
		digWAObj.siteSectionPrefix = report.siteSection; //XXX
		digWAObj.urlPath = (report.siteSection?report.siteSection+":":"") +digWAObj.urlPath;
	}
	if(digWAObj.siteSection)
	{
		digWAObj.urlPath=digWAObj.siteSection.toLowerCase()
		if(digWAObj.siteSectionPrefix) // add pseudo-urlmap root site section
			digWAObj.urlPath = digWAObj.siteSectionPrefix +":" +digWAObj.urlPath;

		digWAObj.urlPathArray=digWAObj.urlPath.split(":")
		digWAObj.tmpCat=digWAObj.urlPathArray[0]
		//report.siteSection = digWAObj.siteSection; // REMOVED XXX
	}

	// Apply custom site section remappings, and remove possible leading and trailing colons
	if(report.regexMap)
		digWAObj.regexMap = report.regexMap

	if(digWAObj.regexMap)
	{
		var oldUrlPath = digWAObj.urlPath
			digWAObj.urlPath = digWAObj.urlPath.replace(digWAObj.regexMap[0], digWAObj.regexMap[1]).replace(/^:/,"").replace(/:$/,"")
		debug("remapping '" +oldUrlPath +"' to '" + digWAObj.urlPath +"'")
	}

	/* Values explicitly set in the pages get precedence over automatically populated values */
	s_omni.prop30 = digWAObj.region || report.region
	s_omni.prop31 = digWAObj.country || report.country
	s_omni.eVar25 = s_omni.prop25 = digWAObj.unit || report.unit
	s_omni.prop11 = digWAObj.property || report.property_code

	debug("digWAObj.urlPath (channel)= '" +digWAObj.urlPath +"'")

	//pageName
	if(digWAObj.pageName)
		digWAObj.urlName = digWAObj.pageName

	debug("digWAObj.urlName = '" +digWAObj.urlName +"', digWAObj.pageName = '" +digWAObj.pageName +"'")
	digWAObj.urlName = digWAObj.urlName.toLowerCase()

	var strDCOM = "";
	if (digWAObj.siteType === "ly") //lightYear Sites
		strDCOM = ":dcom";

	s_omni.channel = s_omni.prop30 +":" +s_omni.prop31 + ":" + s_omni.prop14 +":" +s_omni.prop25 +strDCOM +(digWAObj.urlPath?":" +digWAObj.urlPath.replace(/\:.*$/, ""):"");
	s_omni.prop24 = s_omni.prop30 + ":" + s_omni.prop31 + ":" + s_omni.prop14 +":" +s_omni.prop25 +strDCOM +(digWAObj.urlPath?":" +digWAObj.urlPath:"");
	digWAObj.tmpCat = s_omni.prop14 +":" +s_omni.prop25 + ":" + digWAObj.urlPath

	//s_omni.pageName = s_omni.eVar16;
	if(s_account.indexOf("wdgintjp")>=0)
	{
		//FIXME: pageName should contain strDCOM.
		s_omni.pageName = s_omni.prop14 + ":" + s_omni.prop25 +(digWAObj.urlPath?":" +digWAObj.urlPath:"") +":" +digWAObj.urlName
	}else{
		//FIXME: pageName should contain strDCOM.
		s_omni.pageName = s_omni.prop30 + ":" + s_omni.prop31 + ":" +s_omni.prop14 + ":" + s_omni.prop25 +(digWAObj.urlPath?":" +digWAObj.urlPath:"") +":" +digWAObj.urlName
	}

	s_omni.eVar16 = s_omni.prop24 + ":" + digWAObj.urlName
	s_omni.prop27 = s_omni.eVar16
	s_omni.hier1 = s_omni.eVar16

	debug("setting channel to: '" +s_omni.channel +"'")
	debug("setting prop24 to: '" +s_omni.prop24 +"'");

	s_omni.prop1 = s_omni.eVar10 = digWAObj.urlSite
	s_omni.eVar15 = s_omni.prop14; //category (same as prop14)
	s_omni.prop4 = digWAObj.contentType || "regular"

	if (digWAObj.swid)
	{
		debug("Detected SWID: " +digWAObj.swid)
		s_omni.prop2 = digWAObj.swid
	}

	if (digWAObj.vAge)
		s_omni.prop21 = digWAObj.vAge

	if (digWAObj.vGender)
		s_omni.prop22 = digWAObj.vGender

	if (digWAObj.pageType === "404" )
		s_omni.pageType = "errorPage"

	if (digWAObj.ugcAction) {
		s_omni.eVar12 = digWAObj.ugcAction
		s_omni.events = "event36"
		s_omni.prop32 = digWAObj.ugcTimeTaken
	}

	debug("events (old): " +s_omni.events)
	var allevents=String(digWAObj.eventType).split(",")
	debug("got '" +digWAObj.eventType +"'='" +allevents +"': " +allevents.length +" events to parse")
	for(var evt=0,eventsList="";evt<allevents.length;evt++)
	{
		debug("parsing event: " +allevents[evt])
		switch (allevents[evt]) {
			// added internalSearch support. Will set the vars to override getQueryparam(q)
			case "internalSearch": s_omni.prop7=s_omni.eVar4=digWAObj.internalSearchPhrase; s_omni.prop8=digWAObj.numSearchResults; eventsList += ",event2"; break
			case "nullSearch": s_omni.prop7=s_omni.eVar4=digWAObj.internalSearchPhrase; s_omni.prop8=s_omni.numSearchResults; eventsList += ",event2,event12"; break
			case "personalization": s_omni.eVar6 = digWAObj.personalization; eventsList += ",event5"; break
			case "UGC": s_omni.eVar12 = digWAObj.ugcAction; eventsList += ",event36"; s_omni.prop32 = digWAObj.ugcTimeTaken;break
			case "registration": eventsList += ",event4";break
			case "login": eventsList += ",event39";break
			case "logout": eventsList += ",event38";break

			case "channelView": eventsList += ",event42";s_omni.eVar14 = s_omni.prop20 = digWAObj.channelName || "unknownChannel";break

			case "prodView": s_omni.products=digWAObj.products;eventsList += ",prodView";break
			case "scOpen": s_omni.products=digWAObj.products; eventsList += ",scOpen"; if(eventsList.indexOf("scAdd")<0) eventsList += ",scAdd"; debug("setting double event: eventsList = " +eventsList); break
			case "scAdd": s_omni.products=digWAObj.products; if(eventsList.indexOf("scAdd")<0) eventsList += ",scAdd"; break
			case "scRemove": s_omni.products=digWAObj.products; eventsList += ",scRemove";break
			case "scCheckout": s_omni.products=digWAObj.products; eventsList += ",scCheckout";break
			case "prodPurchase": s_omni.products=digWAObj.products; eventsList += ",purchase"
			s_omni.purchaseID=digWAObj.purchaseID; s_omni.zip=digWAObj.zip, s_omni.state=digWAObj.state;break

			// Let very custom events be specified as well
			default: eventsList += "," +allevents[evt]; break
		}
	}
	s_omni.events = eventsList.replace(/^\,/, "")
	if(s_omni.events == "undefined")
		s_omni.events=""

	debug("events (now)= '" +s_omni.events +"'")

	if(digWAObj.linkInternalFilters)
		s_omni.linkInternalFilters=digWAObj.linkInternalFilters
	s_omni.charSet = digWAObj.charSet || report.charSet || "UTF-8"
	if(digWAObj.formList)
		s_omni.formList=digWAObj.formList
	s_omni.campaign=s_omni.getQueryParam('ex_cmp,creative',':'); //Ext campaign

	// CUSTOM FEATURES
	if(s_account.indexOf("wdgintukpatf")>=0)
	{
		var TO // traffic origin
		if(document.cookie.indexOf("fpv=1")<0)
		{
			if(comingFromSearchEngine())
				if(location.href.indexOf("ex_cmp")>=0)
					TO = "paid searches"
				else	TO = "organic searches"
			else
				if(document.referrer)
					TO = "non search engines"
				else	TO = "direct/bookmarked traffic";
			debug("firstPV")
			document.cookie="fpv=1; path=/"
		}
		if(TO)
		{
			s_omni.eVar39 = TO
			s_omni.prop35 = s_omni.eVar40 = s_omni.prop31 +":" +TO
		}
		debug("traffic origin: " +TO)
	}

	debug("--- end Omniture (initial) server call processing ---")
}

function comingFromSearchEngine()
{
	enginesList = "google,yahoo,search,msn,bing,ask.co,search.aol,tiscali".split(",");
	for(var i=0;i<enginesList.length;i++)
		if(document.referrer.replace(/^\w+:\/\//,"").replace(/[?\/].*$/,"").indexOf(enginesList[i])>=0)
			return true;
	return false;
}

function digMediaStop(mediaName, mediaOffset, contentType)
{
	var s = s_gi(s_account)
	s_omni.prop4 = contentType
	s_omni.Media.stop(mediaName, mediaOffset)
}

function digMediaClose(mediaName)
{
	var s = s_gi(s_account)
	s_omni.Media.open(mediaName)
}

function digWAObjSubmit()
{
	if(digWAObj.bInitialPVTracked)
	{
		debug("#### tracking twice through cto.track(). This should not happen. Maybe a developer issue?");
	}
	digWAObj.bInitialPVTracked = true;

	// (Dario Mannu): Hack against SWFAddress non-standard behaviour
	if(window.location.href.match(/\/#\w*\/?/))
		digWAObj.url = window.location.href.replace(location.protocol+"//"+location.hostname, "")
	else
		digWAObj.url = window.location.pathname.toString(); // default behaviour
	digWAObj.url = digWAObj.url.toLowerCase()


	// (Dario Mannu): Hack against SWFAddress non-standard behaviour
	digWAObj.url = digWAObj.url.replace(/\/#(\w*)/g, '\/$1')

	// (Dario Mannu): Fix against multiple slashes in the URL
	digWAObj.url = digWAObj.url.replace(/\/+/g, '\/')

	digWAObj.url = unescape(digWAObj.url)
	digWAObj.urlarray = digWAObj.url.split("/")
	digWAObj.urlSite = window.location.host.toString(); //Sitename
	if(digWAObj.siteName)
		digWAObj.urlSite = digWAObj.siteName
	digWAObj.urlSite = digWAObj.urlSite.toLowerCase()
	digWAObj.urlName = digWAObj.urlarray.pop() //PageName
	digWAObj.urlLength = digWAObj.urlarray.length - 1 //Directory Depth
	digWAObj.urlarray.shift()
	digWAObj.origArray = digWAObj.urlarray
	digWAObj.urlPath="/" +digWAObj.urlarray.join("/") +"/" //Directory
	if (typeof(digWAObj.urlName) === "undefined" || digWAObj.urlName === "")
		digWAObj.urlName = "index.html"

	digWAObj.siteArray = digWAObj.urlSite.split(".")
	/* Discard www|www2 part of the domain name */
	if ((digWAObj.siteArray[0] === "www") || (digWAObj.siteArray[0] === "www2"))
	{
		digWAObj.siteArray.shift()
		digWAObj.urlSite=digWAObj.siteArray.join(".")
	}
	if ((digWAObj.siteArray[0] === "staging") || (digWAObj.siteArray[0] === "dev"))
		digWAObj.siteEnv = "staging"
	digSiteJS() // include site.js
	digSCodeJS() // include s_code.js
	digErrorCheck() //include error.js
	digPostProcessJS() //include post_process.js
}

function digTrackLink(obj)
{
	digWAObj.linkType
	if (obj.type === "download")
		digWAObj.linkType = 'd'
	else	digWAObj.linkType = 'o'
	s_omni.tl(obj.href, digWAObj.linkType, s_omni.hier1+":"+obj.name)
}

function digFlashTrackLink(link,lname,ltype)
{
	if(ltype === "download")
		digWAObj.linkType = 'd'
	else	digWAObj.linkType = 'o'

	s_omni.tl(link, digWAObj.linkType, lname)
}

function digWAHBX(){
    if (digWAObj.siteEnv === "staging") {
        _gn="hitbox.disneyinternational.com";
    } 
        _acct=digWAObj.h.account;//ACCOUNT NUMBER(S)
        _pn=digWAObj.h.pageName;//PAGE NAME(S)
        _mlc=digWAObj.h.mlc;//MULTI-LEVEL CONTENT CATEGORY

function $a(v){return escape(v)};var _sv=10,_bn=navigator.appName,_mn="we20",
_bv=parseInt(navigator.appVersion),_rf=$a(document.referrer),_bnN=(_bn=="Netsc"+
"ape");function $ii(a,b,c){return a.indexOf(b,c?c:0)};if($ii(_bn,"Microsoft")==0
)_bn="MSIE";if(_bn=="MSIE"&&_bv==2)_bv=3;function $is(a,b, c){return b>a.length?
"":a.substring(b,c!=null?c:a.length)};function $l(a,b){return(a=="/")?a:(($ii(a,
"/")?"/":"")+(a.lastIndexOf("/")==b?$is(a,0,b):a)) };function $n(a,b){return(a==
""|| a=="/")?"/": $is( a,(_ctdef!="full")?a.lastIndexOf("/",b-2):$ii(a,"/"),b)};
function $o(a,b,c){ var d=location.pathname,e=$is(d,d.lastIndexOf("/")+1);if(a&&
b==c){return(_pndef == "title" &&document.title!=""&&document.title!=location&&(
_bnN&&$ii(document.title,"http")<0))?document.title:e?e:_pndef}else{return b==c?
$n(d,d.lastIndexOf("/")): $l( b,b.length-1)}};function $p(a,b,c,d){return ""+(c>
-1?$o(b,$is(a,0,c),d)+";"+$p($is(a,c+1),b,$ii($is(a,c+1),";")):$o(b,a,d))};_mlc=
$p(_mlc,0, $ii( _mlc, ";"), "CONTEN"+"T+CAT"+"EGORY");_pn=$p(_pn,1,$ii(_pn,";"),
"PUT+PA" + "GE+NAME+HERE")

_sv=11;
document.write("<script language=\"javascript1.1\" defer=\"defer\" src=\"//analytics.disneyinternational.com/analytics/hbe-v9-media-omniture.js\" type=\"text/javascript\"></script>");

if( _sv+0<11 ){ if( ( document.cookie)&&
$ii(document.cookie,"CP=")>-1){_ce="y"}else{document.cookie="CP=null*; path=/;"+
(_cpd!=""?(" domain=."+_cpd+"; "):"")+"expires=Wed, 1 Jan 2020 00:00:00 GMT";if(
($ii(document.cookie,"CP="))+0>-1){_ce="y"}else{_ce="n"}}if((_rf==null)||( _rf==
""))_rf="bookmark"; document.write( "<img src='"+( location.protocol== 'https:'?
'https://':'http://') + _gn+"/HG?hc="+_mn+"&hb="+$a(_acct)+"&n="+$a(_pn)+(_bnN?(
"&bn="+$a(_bn)):"")+ "&ce="+ _ce + "&ss=na&sc=na&dt=" + (new Date()).getHours()+
"&sv="+_sv+"&con=&vcon="+$a(_mlc)+"&epg="+_epg+"&hv=6&cd=1&pl=&hp=u&cy=u&ja=na"+
"&ln=na&cp="+$a(_cp)+ "&seg="+ _seg+ "&dcmp="+$a(_dcmp)+"&cmp="+_cmp+"&gp="+_gp+
"&fnl="+$a(_fnl)+"&pec="+$a(_pec)+"&ra="+$a(_hra)+"&gn="+$a(_hcn)+"&ld="+$a(_hlt
)+"&la="+$a(_hla)+"&cv="+$a(_hcv)+"&c1="+$a(_hc1)+"&c2="+$a(_hc2)+"&c3="+$a(_hc3
)+"&c4="+$a(_hc4)+"&customerid="+$a(_ci)+"&rf="+_rf+"' border=0 height=1 widt"+
"h=1>")}if(_bnN&&_bv==4)document.write("<\!"+"--")

document.write("<noscript><img src=\"http://ehg-dig.hitbox.com/HG?hc=we20&amp;cd=1&amp;hv=6&amp;ce=u&amp;hb="+_acct+"&amp;n="+_pn+"&amp;vcon="+_mlc+"&amp;seg=&amp;cmp=&amp;gp=&amp;fnl=&amp;pec=&amp;dcmp=&amp;ra=&amp;gn=&amp;ld=&amp;la=&amp;cv=&amp;c1=&amp;c2=&amp;c3=&amp;c4=&amp;customerid=&amp;vpc=090000mn\" border=\"0\" width=\"1\" height=\"1\" alt=\"hitbox image\" /></noscript>")
}

function digAjaxStart() {
//No Longer needed. This function is retained here to support early adaptors who were asked to use this.
}

function digAjaxEnd()
{
	digPostProcess();
	void(s_omni.t());
}

function hbflash(p,m,x,d,s,c,f,g)
{
	debug("calling HBFLASH: " +p)
	p = p.toLowerCase()
	var noSlash=p.replace(/\//,"") //XXX DM: replacing the first slash only. Is this correct?

	if(s_account.indexOf("wdgintjp")>=0)
		s_omni.pageName = digWAObj.tmpCat + ":" + noSlash
	else	s_omni.pageName = s_omni.prop24 + ":" + noSlash

	s_omni.prop27 = s_omni.prop24 + ":" + noSlash
	s_omni.eVar16 = s_omni.prop24 + ":" + noSlash
	s_omni.channel = s_omni.channel
	// no longer needed, we are not recording PVs via HBX
	s_omni.t()
}

function hbPageView(p,m){hbflash(p,m,"n","n","n","n","n","n")}
function hbExitLink(n){hbflash(_pn,_mlc,n,"n","n","n","n","n")}
function hbDownload(n){hbflash(_pn,_mlc,"n",n,"n","n","n","n")}
function hbVisitorSeg(n,p,m){hbflash(p,m,"n","n",n,"n","n","n")}
function hbCampaign(n,p,m){hbflash(p,m,"n","n","n",n,"n","n")}
function hbFunnel(n,p,m){hbflash(p,m,"n","n","n","n",n,"n")}
function hbGoalPage(n,p,m){hbflash(p,m,"n","n","n","n","n",n)}

function CTO() {
    // Content Tracking Object
    digWAObj = this;
    digWAObj.h = new Object();

    this.trackInitialPV = true;
    this.bInitialPVTracked = false;

    this.track = digWAObjSubmit;
    this.tracklink = digTrackLink;
    this.MediaOpen = digMediaOpen;
    this.MediaPlay = digMediaPlay;
    this.MediaStop = digMediaStop;
    this.MediaClose = digMediaClose;
    this.ajaxStart = digAjaxStart;
    this.ajaxEnd = digAjaxEnd;
    this.ajaxSubmit = digAjaxEnd;

    this.FlashTrackLink = digFlashTrackLink;
    this.initFlashPV = digAjaxStart;
    this.trackFlashPV = digAjaxEnd;

    this.hbflash = hbflash;
    this.hbPageView = hbPageView;
    this.hbExitLink = hbExitLink;
    this.hbDownload = hbDownload;
    this.hbVisitorSeg = hbVisitorSeg;
    this.hbCampaign = hbCampaign;
    this.hbFunnel = hbFunnel;
    this.hbGoalPage = hbGoalPage;
}


