﻿//----------------  Utilities  ----------------//
function getSyntheticUrl() { 
}

function definIfIsDocument(href) {

    var isDocument = false;

    if (typeof (href) !== "undefined") {
        jQuery.each(documentExtensions, function (index, value) {
            if (href.indexOf(value) > 0) {
                isDocument = true;
            }
        });
    }

    return isDocument;
}

function getInternalCampainUrl(section, position, name) {
    
    return '/goal/intcmp/' + section + '/' + position + '/' + name;
}

//----------------  Google analytics wrappers ----------------//

function trackPageview(url){
    _gaq.push(['_trackPageview', url]);
}

function trackInternalCampaign(section, position, name) {

    var url = getInternalCampainUrl(section, position, name);

    _gaq.push(['_setCustomVar', 4, 'Interne kampagner', name, 2]);
    _gaq.push(['_trackPageview', url]);
}

function trackDownloads(category, filename) {
    _gaq.push(['_trackPageview', '/goal/download/' + category + '/' + filename]);
    _gaq.push(['_trackEvent', 'Download', category, filename]);
}

function trackBillViewed(eventAction, eventLabel) {
    _gaq.push(['_trackEvent', 'Selvbetjening', eventAction, eventLabel]);
}

function trackPrintReceiptEvent(eventCategory) {
    _gaq.push(['_trackEvent', 'Selvbetjening', eventCategory, 'Print']);
}

function trackShowEmailFormEvent(eventCategory) {
    _gaq.push(['_trackEvent', 'Selvbetjening', eventCategory, 'e-mail form']);
}

//----------------  Tracking  ----------------//

function setupInternalCampaignTracking(selector) {
    jQuery(selector).mousedown(function () {

        var section = jQuery(this).nextAll('span.section').text();
        var position = jQuery(this).nextAll('span.position').text();
        var name = jQuery(this).text();

        trackInternalCampaign(section, position, name);
    });
}

function setupDownloadsTracking(selector) {
    jQuery(selector)
        .each(function () {
            var me = jQuery(this);
            if (definIfIsDocument(me.attr("href"))) {
                me.mousedown(function () {
                    var href = jQuery(this).attr("href")
                    var category = "Generel";
                    var filename = href.substring(href.lastIndexOf('/') + 1, href.length);
                    trackDownloads(category, filename);
                });
            }
        });
}

function setupMediaMeter(selector) {
    jQuery(selector).mousedown(function () {

        var recommendedProduct = jQuery('.metersProducts .high div');

        if (recommendedProduct) {
            var relatedProductName = jQuery('.metersProducts .even .content .top h2').text().replace("/", "");
            var recommendedProductName = jQuery('.metersProducts .high .content .top h2').text().replace("/", "");

            _gaq.push(['_trackPageview', '/goal/media-beregner/' + recommendedProductName]);
            _gaq.push(['_trackEvent', 'Media-måleren', recommendedProductName, relatedProductName]);
        }
    });
}

//----------------  Entry point  ----------------//

//  tracking that is common for a lot of pages
jQuery(function () {

    if (trackingEnabled) {
        
        setupDownloadsTracking('#content a');
        setupDownloadsTracking('#sidebar a');

        setupMediaMeter('.metersProducts .recommend .btnWrapper input');

        setupInternalCampaignTracking('.frontPage .bigElementWrapper .bigElement .content a');
        setupInternalCampaignTracking('.frontPage .teaser a');        
    }
});
