//Get parameters
function getParameter(aP){var qS = new String(location.search.substring(1,location.search.length));var p = qS.split("&");var val = "";if(aP){for(i=0;i<p.length;i++){if(p[i].split( "=" )[0] == aP){val = p[i].split( "=" )[1];}}return val;}}
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");
var qs_referrer = getParameter("hrf");
var cust_pid = "";

//special code to handle additional metrics from chryslerlistens.com
if (qs_referrer == "www.chryslerlistens.com"){
	buy_id = "chryslerlistens";
	page_id = "chryslerlistens.com";
	banner_id	= "www.chryslerlistens.com";
	cust_pid = "&pid="+page_id;
}

//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
var path = location.pathname;
if (path.indexOf('htdocs') != -1) {
	var parts = path.split('htdocs');
	path = parts[1];
}

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];

//if(language_check != "en"){
	mlc = mlcSplice.splice(1, mlcSplice.length);
/*}else{
	mlc = mlcSplice.splice(2, 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";

//set the campaign (bid) and banner id (adid) to defaults for redirects from chryslerlistens.com
if (qs_referrer == "www.chryslerlistens.com"){
	hbx.dcmp="chryslerlistens";
	hbx.hra="www.chryslerlistens.com";
} else {
	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
if (qs_referrer != ""){
	hbx.hrf="hrf";
} else {
	hbx.hrf=document.referrer;
}

//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)+cust_pid;


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
	_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: " + flashName + "\n"
		);
	}

}

////////////////////////////////////////////////////////////////////
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
 //alert("you are in wss_funs in root "+argPN+" "+argMLC+" "+argLid+" "+argLpos+" "+argHEC);
  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)
}

////////////////////////////////////////////////////////////////////
// This function goes and gets the cookie for the browser back redirect code.
function getCookie(cookiename) {
	var cookie = " " + document.cookie;
	var search = " " + cookiename + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
   return(setStr);
}

////////////////////////////////////////////////////////////////////
// This function is called from the Flash piece when a vehicle is clicked on.
function processLink(argUrl) {
	var newUrl = prepBrand(argUrl);
	location.href = newUrl;
}

////////////////////////////////////////////////////////////////////
// This function is used when calling one of the brand sites (gets and passes necessary tracking params
function prepBrand(argUrl) {
	argUrl = (argUrl.indexOf("?") == -1) ? argUrl	+= "?" : argUrl	+= "&";
	if(page_id == " "){
		var mktCodeCookie = getCookie( "mktcodes" );
		if (mktCodeCookie){
			var splitResultsArray = mktCodeCookie.split( "|" );
			page_id = splitResultsArray[1];
			banner_id = splitResultsArray[2];
			creative_id = splitResultsArray[3];
		} else {
			buy_id = "chryslerllc";
			page_id = "chryslerllc.com";
			//banner_id = location.hostname+location.pathname;
			banner_id = location.hostname;
			creative_id = "";
			argUrl += "bid="+buy_id+"&";
		}
	}
	argUrl += "pid="+page_id+"&adid="+banner_id+"&rid="+creative_id+"&hrf=http://www.chryslerllc.com";
	return(argUrl);
}

////////////////////////////////////////////////////////////////////
function hbxRecSearch(keys,res,at1,at2,at3,at4)
{
    /* add a search event to the data sent to hitbox
    that contains details about the search result set */

    var ev1;
    hbx.pn = keys;
    ev1 = _hbEvent("search");
    ev1.keywords = keys;
    ev1.results = res;

    if(at1 != null && at1.length > 0) {ev1.attr1=at1;}
    if(at2 != null && at2.length > 0) {ev1.attr2=at2;}
    if(at3 != null && at3.length > 0) {ev1.attr3=at3;}
    if(at4 != null && at4.length > 0) {ev1.attr4=at4;}
}