var ebScriptFileName = "JS_multiDynamicTagV2.js";
//HTTP://bs.serving-sys.com/BurstingPipe/ActivityServer.bs?CN=DT&TID=3097&TVAL=' +ranTestTag_dynamicID+ '&rnd=' + ebRand
//TID=3097&campaignID=1234&TVAL=1001
var MULTI = 'multi';
var TVAL;
var campaignID;
var TID;
var TIDArray;
var tagURL = 'https://bs.serving-sys.com/BurstingPipe/ActivityServer.bs?CN=DT&TID=';
var stateURL = 'https://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=SetState'; //campaignid=0&statevalue=1001
var arrSuffix = ["bat", "scion", "toyota-scion", "tcom", "tcuv"];
var mapEquivalent = {
"aaa": "bbb",
"1001": "ddd"
};
function init() {
var gEbQueries = new ebScriptQuery(ebScriptFileName).flatten();
//get TVAL value
TVAL = gEbQueries.TVAL;
campaignID = gEbQueries.campaignid;
TID = gEbQueries.TID;
TIDArray = TID.split(",");
if ((TVAL != undefined) && (typeof (ebCreativeState) != "undefined")) {
if (ebCreativeState != "") {
//user state
if (ebCreativeState != "multi") {
// if (ebCreativeState == TVAL) //v1
if (compareVals(ebCreativeState, TVAL)) {//v2 -todo compare by list
//**state value equal to TVAL value **
//write tag with TVAL value
setRetargetingTags(TVAL)
//set state with TVAL value
setState(TVAL);
} else {
//**staet value no equal to TVAL value**
//write tag with multi value
if(TVAL == ""){
} else if (TVAL.indexOf("nodealer")==0) {//V2
setRetargetingTags(ebCreativeState)
setState(ebCreativeState)
} //eof v2
else {
setRetargetingTags(MULTI)
//set state to multi
setState(MULTI)
}
}
} else {
//**user status set to multi in the past**
//write tag with multi value
setRetargetingTags(MULTI)
//set state to multi
setState(MULTI);
}
} else {
//**user state in empty**
//write tag with TVAL value
if(TVAL != ""){ setRetargetingTags(TVAL); }
if(TVAL == ""){
} else if (TVAL.indexOf("nodealer")!=0) {//V2
//set state with TVAL value
setState(TVAL);
} //v2
}
} //end if (TVAL != undefined)
}
//write tag
function compareVals(ebCreativeState, TVAL) {
if (ebCreativeState == TVAL) {
return true;
}
var re = new RegExp(arrSuffix.join("$|")+"$");
var ebCreativeState = ebCreativeState.replace(re,"");
var TVAL = TVAL.replace(re,"");
if (ebCreativeState == TVAL) {
return true;
}
for (i in mapEquivalent) {
if (((i == TVAL) && (mapEquivalent[i] == ebCreativeState)) || ((mapEquivalent[i] == TVAL) && (i == ebCreativeState))) {
return true;
}
}
}
function writeTag(tag) {
var ord = Math.floor(Math.random() * 1000000);
var tagSrc = tag + '&ord=' + ord;
document.write('');
}
function setState(value) {
var setState = stateURL + '&campaignid=' + campaignID + '&statevalue=' + value;
document.write('')
}
function setRetargetingTags(value) {
for (var i = 0; i < TIDArray.length; i++) {
var tag = tagURL + TIDArray[i] + '&TVAL=' + value;
writeTag(tag);
}
}
// *************** BEGIN DO NOT MODIFY *********************
var ebScriptQuery = function (scriptPath) {
this.scriptPath = scriptPath;
};
ebScriptQuery.prototype = {
get: function () {
var lastQuery = '';
var srcRegex = new RegExp(this.scriptPath.replace('.', '\\.') + '(\\?.*)?$', 'i');
var scripts = document.getElementsByTagName("script");
var i;
for (i = 0; i < scripts.length; i++) {
var script = scripts[i];
if (script.src && script.src.match(srcRegex)) {
var query = script.src.match(/\?([^#]*)(#.*)?/);
lastQuery = !query ? '' : query[1];
}
}
return lastQuery;
},
parse: function () {
var result = {};
var query = this.get();
var components = query.split('&');
var i;
for (i = 0; i < components.length; i++) {
var pair = components[i].split('=');
var name = pair[0],
value = pair[1];
if (!result[name]) { result[name] = []; }
// decode
//if (!value) {
// value = 'true';
if(value == ""){
} else {
try {
value = decodeURIComponent(value);
} catch (e) {
value = unescape(value);
}
}
// MacIE way
var values = result[name];
values[values.length] = value;
}
return result;
},
flatten: function () {
var queries = this.parse();
var name;
for (name in queries) {
queries[name] = queries[name][0];
}
return queries;
},
toString: function () {
return 'ebScriptQuery [path=' + this.scriptPath + ']';
}
};
// *************** END DO NOT MODIFY *********************
init();