﻿if (typeof (FR) == "undefined") { FR = {}; }
FR.tracking = {};

FR.tracking.addTrackClick = function(referer) {
    var params = { rf: referer };
    Sys.Net.WebServiceProxy.invoke('/Services/TrackingService.asmx', 'AddTrackClick',
    false, params, Function.createDelegate(this, this.addTrackClickSuccess),
    Function.createDelegate(this, this.addTrackClickFailure));
};
FR.tracking.addTrackClickSuccess = function(result, context, methodName) {
    if (result.length > 0) {
        //error adding track click
    }
};
FR.tracking.addTrackClickFailure = function(error) {
    //alert('Error adding tracking: ' + error.get_message());
};

FR.tracking.AdvertError = function(adunit, errCode, href, bannercode, ad21PageId) {
    var params = { adunit: adunit, errCode: errCode, url: href, bannercode: bannercode, ad21PageId: ad21PageId };
    Sys.Net.WebServiceProxy.invoke('/Services/TrackingService.asmx', 'AdvertError',
    false, params, Function.createDelegate(this, this.AdvertErrorSuccess),
    Function.createDelegate(this, this.AdvertErrorFailure));
};
FR.tracking.AdvertErrorSuccess = function(result, context, methodName) {
    if (result.length > 0) {
        //error adding advert error
    }
};
FR.tracking.AdvertErrorFailure = function(error) {
    //alert('Error adding advert error: ' + error.get_message());
};

FR.tracking.SaveURL = function(URL) {
    $.get("/Services/TrackingService.asmx/SaveURL", { url: URL });
};

FR.tracking.SaveURLSuccess = function(result, context, methodName) {
    if (result.length > 0) {
        //alert('Error saving URL: ' + result);
    }
};
FR.tracking.SaveURLFailure = function(error) {
    //alert('Error saving URL: ' + error);
};

FR.tracking.formatNielsenURL = function() {

    var sUrl = '';

    var sPrefix = "www";

    if (window.location.hostname.toString().toLowerCase().substring(0, 5) == 'beta.') {
        sPrefix = "beta";
    }

    switch (window.location.hostname.toString().substring(window.location.hostname.toString().lastIndexOf('.')).toLowerCase()) {
        case '.au':
            sUrl = 'http://' + sPrefix + '.friendsreunited.com.au';
            break;
        case '.nz':
            sUrl = 'http://' + sPrefix + '.friendsreunited.co.nz';
            break;
        case '.com':
            sUrl = (window.location.hostname.toString().indexOf('.za.') > 0) ? 'http://' + sPrefix + '.friendsreunited.za.com' :  'http://' + sPrefix + '.friendsreunited.co.uk';
            break;
        case '.uk':
            sUrl = 'http://' + sPrefix + '.friendsreunited.co.uk';
            break;
        default:
            sUrl = 'http://' + sPrefix + '.friendsreunited.co.uk';
            break;
    }

    sUrl += window.location.pathname.toString().toLowerCase();

    var search = window.location.search.toString().toLowerCase();
    if (search.length > 0) {
        search = search.substring(1);
        var arSearch = search.split('&');
        arSearch.sort();
        for (var s = 0; s < arSearch.length; s++) {
            if (arSearch[s].indexOf('rf=') < 0 &&
                    arSearch[s].indexOf('auth=') < 0 &&
                    arSearch[s].indexOf('rememberme=') < 0 &&
                    arSearch[s].indexOf('encname=') < 0 &&
                    arSearch[s].indexOf('enc=') < 0 &&
                    arSearch[s].indexOf('encmyname=') < 0 &&
                    arSearch[s].indexOf('nextpage=') < 0 &&
                    arSearch[s].indexOf('name=') < 0 &&
                    arSearch[s].indexOf('cmk=') < 0
                    ) {
                sUrl += (sUrl.indexOf('?') > 0) ? '&' + arSearch[s] : '?' + arSearch[s];
            }
        }
    }
    return sUrl;
};

FR.tracking.saveNielsenURL = function(contentGroup) {
    FR.tracking.SaveURL(contentGroup + '|' + FR.tracking.formatNielsenURL());
};