﻿function writeCriteoProductViewTrackerScript(referenceProduit) {
    var scriptToWrite = getCriteoScriptHeader('se_7711598', 'http:\/\/picardfr.widget.criteo.com\/ppr', 'sendEvent');
    scriptToWrite += getCriteoProductViewTrackerScriptContent(referenceProduit);
    scriptToWrite += getCriteoScriptFooter();

    document.write(scriptToWrite);
}

function getCriteoProductViewTrackerScriptContent(referenceProduit) {
    return '<div class=\"ctoParams\">wi=7711598&pt1=2&i=' + referenceProduit + '<\/div>';
}

function Product(ref, price, quantity) {
    this.Reference = ref;
    this.PrixHT = price;
    this.Quantite = quantity;
}

function writeCriteoTransactionTrackerScript(orderNumber, productList) {
    var scriptToWrite = getCriteoScriptHeader('tr_7711599', 'https:\/\/sslwidget.criteo.com\/ppr', 'transaction');
    scriptToWrite += getCriteoTransactionTrackerScriptContent(orderNumber, productList);
    scriptToWrite += getCriteoScriptFooter();

    document.write(scriptToWrite);
}

function getCriteoTransactionTrackerScriptContent(orderNumber, productList) {
    var scriptToWrite = '<div class=\"ctoParams\">wi=7711599&t=' + orderNumber + '&s=1';

    for (var i = 0; i < productList.length; i++) {
        var j = i + 1;
        scriptToWrite += '&i' + j.toString() + '=' + productList[i].Reference;
        scriptToWrite += '&p' + j.toString() + '=' + productList[i].PrixHT;
        scriptToWrite += '&q' + j.toString() + '=' + productList[i].Quantite;
    }

    scriptToWrite += '<\/div>';
    return scriptToWrite;
}

function getCriteoScriptHeader(divId, url, trackerType) {
    var scriptToWrite = '<div id=\"cto_' + divId + '_ac\" style=\"display:none\">';
    scriptToWrite += '<div class=\"ctoWidgetServer\">' + url + '\/<\/div>';
    scriptToWrite += '<div class=\"ctoDataType\">' + trackerType + '<\/div>';

    return scriptToWrite;
}

function getCriteoScriptFooter() {
    return '<\/div>';
}
