//Get parameters
var page_id 	= getParameter("pid");
var banner_id 	= getParameter("adid");
var creative_id	= getParameter("rid");
var buy_id 		= getParameter("bid");
var mktprgm 	= getParameter("mktprgm");
var pricing 	= getParameter("pref");

//Code that runs before PageView request is built
function _hbOnPrePVR(req){
//override code to get Autodata`s MLC value
	_mlc = (typeof(ASC_config) != "undefined" && ASC_config.mlc) ? ASC_config.mlc : _mlc;
	_pn = (inbound_referrer == "sni" || inbound_referrer == "fad" || inbound_referrer == "towing" ) ? "index.html" : _pn;
}

//Setting default values
if((page_id == "") || (page_id == null) || (page_id == "%epid!")){
	var id_val = "nothing";
}

if(page_id == null || page_id == "") page_id = " ";
if(banner_id == null || banner_id == "") banner_id = " ";
if(creative_id == null || creative_id == "") creative_id = " ";
if(mktprgm == null || mktprgm == "" || "".equals( mktprgm )) mktprgm = "unset";
if(pricing == null || pricing == "") pricing = " ";

// we only set the market code rid variable to zero when the pid and adid are numbers (doubleclick data) and rid is blank
if (isNaN(page_id) == false && page_id != " " && isNaN(banner_id) == false && banner_id != " "){
	if (creative_id == "" || creative_id == " ") creative_id = "0";
}

//if the bid has a value then concatenate it with the adid (delimited by an underscore)
if((buy_id != null) && (buy_id != "")){
	banner_id = banner_id + "_" + buy_id;
}
//Set cookie if needed
if(id_val != "nothing"){
  var cookieName = "mktcodes";
  var myDate = new Date();
  var value = "|" + unescape(page_id) + "|" + unescape(banner_id) + "|" + unescape(creative_id) + "|" + unescape(mktprgm) + "|" + myDate.valueOf() + "|" + unescape(pricing);
  var expires = new Date(); //Cookie expires in 45 days
  expires.setDate(expires.getDate() + 45);
  var path = "/";
  // get the full url string, http://www..com/dir/page.html?x=y...
  var curUrl = new String( window.location );
  // strip off the leading protocol ("http://") and strip any trailing file-path and query string
  var domain = curUrl.substring(7, curUrl.indexOf( ".com/"));
  // strip off any preceding subdomains (www.sub.subsub...)
  domain = domain.substring(domain.lastIndexOf(".") + 1, domain.length) + ".com";
  //set the domain for the cookie
  var cookieDomain = curUrl.substring(7, curUrl.indexOf( ".com/"))+".com";
  document.cookie = cookieName+"="+value+";expires="+expires.toGMTString()+";path="+path+";host="+cookieDomain+";false";
}

function nameCleaner(str) {
	str = str.toString();
	return str.replace(/[^a-zA-Z0-9,\s,+,-,_,\/]/g,'').replace(/[\s+]/g,"_").toLowerCase();
}

var cleanPN = nameCleaner(document.title);
var cv=_hbEvent("cv");

// Get the IWOV dev out of the path and handle inbound cookie.
var path = location.pathname;
var inbound_referrer = '';
if (path.indexOf('htdocs') != -1) {
	var parts = path.split('htdocs');
	path = parts[1];
} else if (path.indexOf('/hostc/bmo/') > -1) {
	inbound_referrer = "bmo";
} else if (path.indexOf('/hostc/fad/') > -1) {
	inbound_referrer = "fad";
} else if (path.indexOf('/hostc/cpov/') > -1) {
	inbound_referrer = "cpov";
} else if (path.indexOf('/hostc/towing/') > -1) {
	inbound_referrer = "towing";
} else if (path.indexOf('/hostc/sni/') > -1) {
	inbound_referrer = "sni";
} else if (path.indexOf('/hostc/vsmc/') > -1) {
	inbound_referrer = "vsmc";
}
if (inbound_referrer != '') {
	document.cookie = 'inbound.referrer='+inbound_referrer+';path=/;host='+location.hostname+';false';
}	

var mlcSplit = path.split("/");
if(location.pathname.indexOf(".html") != -1 || location.pathname.indexOf(".jsp") != -1){
  var mlcSplice = mlcSplit.splice(0, mlcSplit.length -1);
}else{
  var mlcSplice = mlcSplit.splice(0, mlcSplit.length);
}
var mlcJoin = mlcSplice.join("/");
var mlc = mlcJoin.toLowerCase();
var language_check =  mlcSplice[1];

mlc = mlcSplice.splice(1, mlcSplice.length);
mlc = mlc.join("/");

//hbx.pn=cleanPN;
hbx.pndef = "index.html"; // takes the name of the html file at the page name = *.html

hbx.mlc="/"+mlc+";/"+brand+"/"+mlc;
hbx.ctdef="full";
hbx.dcmpn="bid";
hbx.hqsp="adid";
//fixes an issue with hbx and its hrf capture. We can only set hbx.hrf when there actually is an hrf in the qs
var qs_referrer = getParameter("hrf");
if (qs_referrer != ""){
	hbx.hrf="hrf";
} else {
	hbx.hrf=document.referrer;
}

//Bandwidth detection based on Akamai cookie
ak_cookie = ((typeof Cookie != "undefined" ) ? Cookie.get('CT_Akamai') : '');
if(ak_cookie) {
	ak_bandwidth = ak_cookie.split("throughput=");
	if(ak_bandwidth[1]) {
		cv.c11 = ak_bandwidth[1].split(",")[0];
	}
}

//Optional Variables
hbx.lt="auto";
hbx.lc="y";
hbx.dlf=".pdf,.zip,.hqx!.jsp,.htm,.html";
cv.c21=location.protocol+'//'+location.host+location.pathname;
cv.c22=location.search.substring(1, location.search.length);


if(getParameter("showTracking")) {
	alert(	"hbx\n" +
			"--pn: " + hbx.pn + "\n" +
			"--mlc: " + hbx.mlc + "\n" +
			"--eof: eof\n"
		);

}


function pageTrack(flashPN, flashMLC) {
	var flashPN = nameCleaner(flashPN);
	var flashMLC = nameCleaner(flashMLC);
	var trackPN = hbx.pndef; // ignore the passed in Page Name
	var trackMLC = hbx.mlc.split(";");
	trackMLC = trackMLC.join(flashMLC + ";");
	trackMLC = trackMLC + flashMLC;
	trackMLC = trackMLC.replace(/\/\//g,'\/'); //stripping double slashes
	//alert(trackMLC);
	_hbPageView(trackPN, trackMLC);
	if(getParameter("showTracking")) {
		alert(	"flashPageTrack\n" +
			"--pn: " + trackPN + "\n" +
			"--mlc: " + trackMLC + "\n"
		);
	}
}

function linkTrack(flashLPOS, flashName) {
	var flashName = nameCleaner(flashName);
	var flashLPOS = nameCleaner(flashLPOS);
	_hbLink(flashName, flashLPOS);
	if(getParameter("showTracking")) {
		alert(	"flashLinkTrack\n" +
			"--lpos: " + flashLPOS + "\n" +
			"--name: " + trackName + "\n"
		);
	}
}

function linkTrackGoURL(goURL,flashLPOS, flashLID) {
	linkTrack(flashLPOS, flashLID);
	window.location = goURL;
}

function flashLinkTracking(argPN, argMLC, argLid, argLpos, argHEC){
// arguments passed only for legacy flash modules.  Only lid and lpos needed
// call new tracking function to register click with hbx

  var newLid = argLid.replace(/[^a-zA-Z0-9,\s,+,-]/g,'').replace(/\s+/g,"+");
  var newLpos = argLpos.replace(/[^a-zA-Z0-9,\s,+,-]/g,'').replace(/\s+/g,"+");

  linkTrack(newLpos, newLid)
}

function flashPageTracking(argPN, argMLC, argGP){

   var newPageName = argPN.replace(/[^a-zA-Z0-9,\s,+,-]/g,'').replace(/\s+/g,"+");
   var newMLC = argMLC.replace(/[^a-zA-Z0-9,\s,+,-]/g,'').replace(/\s+/g,"+");
   //alert(newMLC);
	 if(argGP.toLowerCase() == "y"){
		_hbSet('gp','LAST');
    _hbSet('gn',argPN); 
	 }
   pageTrack(newPageName, newMLC)
}