﻿var IA_REGEX = /btag=\w*/;
var TPID_REGEX = /tpid=\w*/;

function addLoadEvent(newEvent) {
    var currentLoadEvent = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = newEvent;
    }
    else {
        window.onload = function () {
            currentLoadEvent();
            newEvent();
        }
    }
}

function getValueFromQueryString(url, regEx) {
    if (url.match(regEx) != null && url.match(regEx).length != 0) {
        return url.match(regEx)[0].split("=")[1];
    }

    return '';
}

// Set TagMan tracking parameters
function setTagManVars(tagmanParams) {

    var url = window.location.toString();
    var tmPageRef = 0;

    if (url.search(/\/betting/i) > -1)
        tmPageRef = 1;
    else if (url.search(/\/cricket/i) > -1)
        tmPageRef = 2;
    else if (url.search(/\/football/i) > -1)
        tmPageRef = 3;
    else if (url.search(/\/racing/i) > -1)
        tmPageRef = 4;
    else if (url.search(/\/rugby/i) > -1)
        tmPageRef = 5;
    else if (url.search(/\/spreadbet/i) > -1)
        tmPageRef = 6;
    else if (url.search(/\/independent/i) > -1)
        tmPageRef = 7;

    tagmanParams['tmpageref'] = tmPageRef;
    tagmanParams['IncomeAccessBTAG'] = getValueFromQueryString(url, IA_REGEX);
}


// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

// Reloads the objects and embedded elements to 
// avoid the 'Click Here to use this object'
// message for IE 7
function ieObjectHack() {
    var ver = getInternetExplorerVersion();

    // reload objects only if IE 7
    if (ver > -1 && ver > 6) {
        var objectElements = document.getElementsByTagName("object");

        for (var i = 0; i < objectElements.length; i++) {
            if (objectElements[i].getAttribute("data")) objectElements[i].removeAttribute("data");
            objectElements[i].outerHTML = objectElements[i].outerHTML;
            objectElements[i].style.visibility = "visible";
        }

        var objectElements = document.getElementsByTagName("embed");

        for (var i = 0; i < objectElements.length; i++) {
            if (objectElements[i].getAttribute("data")) objectElements[i].removeAttribute("data");
            objectElements[i].outerHTML = objectElements[i].outerHTML;
            objectElements[i].style.visibility = "visible";
        }
    }
}

addLoadEvent(ieObjectHack);


/** cm_lib.js version 1.1.1 Copyright Cognitive Match */
var CM_ACCOUNT_ID = "sportingindex"; var CM_SERVER = "engine.uk.cognitivematch.com"; var CM_REQUEST_HTML_PATH = "/search/cm_request.html"; var CM_ENABLE_FIREBUG_LOGGING = false; var CM_RESPONSE_CHECK_PERIOD_MS = 10; var CM_RESPONSE_TIMEOUT_MS = 3500; function MatchingEngine() { this.areas = new Array() } MatchingEngine.prototype.setup = function (areaNamesList) { if (cm_get_ie_ver() == 5) { return } this.areaNames = areaNamesList.split(","); this.serverTimeout = false; this.timestamp = new Date().getTime(); for (var i = 0; i < this.areaNames.length; i++) { var area = new Object(); var thisAreaName = this.areaNames[i]; area.name = thisAreaName; area.content = null; area.displayed = false; this.areas[thisAreaName] = area } var cm_request_qs = cm_make_load_areas_qs(this.areaNames); var url = "http://" + cm_get_window_location() + CM_REQUEST_HTML_PATH + "?" + cm_request_qs; var iframeSrc = '<iframe id="cm_server_request" style="display:none" src="' + url + '"></iframe>'; document.write(iframeSrc); setTimeout("MatchingEngine._responseChecker()", CM_RESPONSE_CHECK_PERIOD_MS) }; MatchingEngine.prototype.display = function (areaName) { if (cm_get_ie_ver() == 5) { this._displayAreaDefault(areaName); return } var area = this.areas[areaName]; if (cm_defined(area)) { document.write('<span id="cm_' + areaName + '">'); if (area.content != null) { cm_log("display:responseReceived = true " + areaName); document.write(area.content); area.displayed = true } document.write("</span>") } }; MatchingEngine.prototype._displayAll = function () { var allDisplayed = true; var j = 0; for (; j < this.areaNames.length; j++) { var area = this.areas[this.areaNames[j]]; cm_log("area " + area); if (!area.displayed) { if (area.content != null) { var el = document.getElementById("cm_" + area.name); cm_log("cm_" + area.name + " = " + el); if (el != null) { el.innerHTML = area.content; area.displayed = true } else { area.displayed = false; allDisplayed = false } } else { area.displayed = false; allDisplayed = false } } else { cm_log("capsule.displayed capsule=" + area.name) } } return allDisplayed }; MatchingEngine.prototype._responseChecker = function () { if (this.serverTimeout) { return } var allCapsulesDisplayed = this._displayAll(); var elapsed = new Date().getTime() - this.timestamp; var timeout = elapsed >= CM_RESPONSE_TIMEOUT_MS; cm_log("elapsed " + elapsed); if (!allCapsulesDisplayed && !timeout) { setTimeout("MatchingEngine._responseChecker()", CM_RESPONSE_CHECK_PERIOD_MS) } else { if (!allCapsulesDisplayed && timeout) { cm_log("timeout allDisplayed=" + allCapsulesDisplayed); this._handleTimeout() } } }; MatchingEngine.prototype._handleTimeout = function () { cm_log("timeout"); this.serverTimeout = true; for (var i = 0; i < this.areaNames.length; i++) { var areaName = this.areaNames[i]; this._displayAreaDefault(areaName) } }; MatchingEngine.prototype._displayAreaDefault = function (areaName) { var defaultTag = document.getElementById(areaName + "_default"); if (defaultTag != null) { var el = document.getElementById("cm_" + areaName); if (el != null) { el.innerHTML = defaultTag.innerHTML } } }; MatchingEngine.prototype._callback = function (areaName, areaContent) { cm_log("_callback areaName=" + areaName); var area = this.areas[areaName]; if (cm_defined(area)) { area.content = areaContent } }; var CM_QS_ACCOUNT_ID_PARAM = "acctid"; var CM_QS_CAPSULE_NAME_PARAM = "capnm"; var CM_QS_OPTION_NAME_PARAM = "optnm"; var CM_QS_TIME_PARAM = "t"; var CM_QS_TIME_ZONE_PARAM = "tzo"; var CM_QS_IMPRESSION_ID = "impid"; var CM_QS_NAVIGATOR_PLUGINS = "nplg"; var CM_QS_WINDOW_HISTORY_LENGTH = "hstl"; var CM_QS_WINDOW_SCREEN_HEIGHT = "scrh"; var CM_QS_WINDOW_SCREEN_WIDTH = "scrw"; var CM_QS_WINDOW_PIXEL_DEPTH = "scrd"; var CM_QS_REFERRER = "ref"; var CM_QS_ERROR = "err"; var CM_URI_CLICK_LOG_PATH = "/v1/click"; var CM_URI_REQUEST_LOG_PATH = "/v1/request"; var CM_URI_LOG_URL_REQUEST = "/v1/log-url-request"; var CM_COOKIE_NAME_CAPSULE_CLICK = "click"; function cm_make_load_areas_qs(areaNames) { var qs = cm_common_qs_params(); for (var i = 0; i < areaNames.length; i++) { qs = qs + "&=[&" + CM_QS_CAPSULE_NAME_PARAM + "=" + cm_encode(areaNames[i]) + "&=]" } qs = qs + cm_make_production_mode_global_qs_params(); return qs } function cm_common_qs_params() { return CM_QS_ACCOUNT_ID_PARAM + "=" + cm_encode(CM_ACCOUNT_ID) + "&" + cm_make_time_qs() } function cm_make_production_mode_global_qs_params() { var qs = ""; if (cm_defined(navigator.plugins)) { qs = qs + "&" + CM_QS_NAVIGATOR_PLUGINS + "=" + navigator.plugins.length } if (cm_defined(window.history)) { qs = qs + "&" + CM_QS_WINDOW_HISTORY_LENGTH + "=" + window.history.length } if (cm_defined(window.screen.height)) { qs = qs + "&" + CM_QS_WINDOW_SCREEN_HEIGHT + "=" + window.screen.height } if (cm_defined(window.screen.width)) { qs = qs + "&" + CM_QS_WINDOW_SCREEN_WIDTH + "=" + window.screen.width } if (cm_defined(window.screen.pixelDepth)) { qs = qs + "&" + CM_QS_WINDOW_PIXEL_DEPTH + "=" + window.screen.pixelDepth } if (cm_defined(document.referrer)) { qs = qs + "&" + CM_QS_REFERRER + "=" + cm_encode(document.referrer) } return qs } function cm_make_time_qs() { var date = new Date(); return CM_QS_TIME_PARAM + "=" + date.getTime() + "&" + CM_QS_TIME_ZONE_PARAM + "=" + date.getTimezoneOffset() } function cm_log_click(capsuleName, impressionId) { var qs = cm_common_qs_params(); qs = qs + "&" + CM_QS_CAPSULE_NAME_PARAM + "=" + cm_encode(capsuleName); qs = qs + "&" + CM_QS_IMPRESSION_ID + "=" + cm_encode(impressionId); var url = "http://" + CM_SERVER + CM_URI_CLICK_LOG_PATH + "?" + qs; if (!cm_is_safari() && !cm_is_chrome()) { cm_image_log_click(url) } else { if (cm_is_safari() || cm_is_chrome()) { cm_ajax_log_request(url) } else { cm_image_log_click(url) } } return true } function cm_ajax_log_request(url) { req = cm_new_xmlhttprequest(); if (req) { req.open("GET", url, false); req.send(""); return true } else { return false } } function cm_new_xmlhttprequest() { var req = false; if (window.XMLHttpRequest && !(window.ActiveXObject)) { try { req = new XMLHttpRequest() } catch (e) { req = false } } else { if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP") } catch (e) { req = false } } } } return req } function cm_image_log_click(url) { cm_log("cm_image_log_click url=" + url); var logImage = new Image(); logImage.src = url; cm_ie_friendly_delay(); return true } function cm_ie_friendly_delay() { var x = 0; var now = new Date().getTime(); var delay = now + 150; while (new Date().getTime() < delay) { var e = document.getElementById(new Date().getTime()); if (e != null) { x = x + 1 } } return x > 0 } function cm_log_click_check() { var cookie = cm_read_cookie(CM_COOKIE_NAME_CAPSULE_CLICK); if (cookie != null) { var logImage = new Image(); logImage.src = "http://" + CM_SERVER + CM_URI_CLICK_LOG_PATH + "?" + cookie; cm_delete_cookie(CM_COOKIE_NAME_CAPSULE_CLICK) } } function cm_log_request() { var qs = cm_common_qs_params(); if (cm_defined(document.referrer)) { qs = qs + "&" + CM_QS_REFERRER + "=" + cm_encode(document.referrer) } if (cm_defined(window.history)) { qs = qs + "&" + CM_QS_WINDOW_HISTORY_LENGTH + "=" + window.history.length } var logImage = new Image(); logImage.src = "http://" + CM_SERVER + CM_URI_LOG_URL_REQUEST + "?" + qs } function cm_is_safari() { var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("safari/") != -1 && ua.indexOf("chrome") == -1) { return true } else { return false } } function cm_is_chrome() { var ua = navigator.userAgent.toLowerCase(); return ua.indexOf("chrome") != -1 } function cm_defined(name) { return typeof (name) != "undefined" } function cm_log(m) { if (CM_ENABLE_FIREBUG_LOGGING) { console.log(m) } } function cm_encode(p) { return encodeURIComponent(p) } function cm_get_window_location() { var hostname = window.location.hostname; if (cm_defined(window.location.port) & window.location.port != "") { hostname = hostname + ":" + window.location.port } return hostname } function cm_set_cookie(name, value, seconds) { var expires; if (seconds) { var date = new Date(); date.setTime(date.getTime() + (seconds * 1000)); expires = "; expires=" + date.toGMTString() } else { expires = "" } document.cookie = name + "=" + value + expires + "; path=/" } function cm_read_cookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == " ") { c = c.substring(1, c.length) } if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length, c.length) } } return null } function cm_delete_cookie(name) { cm_set_cookie(name, "", -1) } function cm_get_ie_ver() { var rv = -1; if (navigator.appName == "Microsoft Internet Explorer") { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (re.exec(ua) != null) { rv = parseFloat(RegExp.$1) } } return rv } var MatchingEngine = new MatchingEngine();

