var _gaq = _gaq || [],
    _ua = 'UA-11468172-1',
    _atr2 = 'atr',
    _filetypes = /\.(zip|exe|pdf|doc|xls|ppt|mp(3|4)|eps|docx|rar|csv|gz|dmg|xml)$/i,
    _multiple_sites = true,
    _pass_to = /\.(peyma-hansen\.|chr-hansen\.)/,
    _force_pass_internal = false,
    _force_campaign_ext = false,
    _campaign_ext = [
        ['utm_source', 'referral'],
        ['utm_medium', 'link'],
        ['utm_term', ''],
        ['utm_content', ''],
        ['utm_campaign', 'chr-hansen']
    ],
    _real_bouncerate = true,
    _real_sensitivity = 15,
    _sample_rate_extend = 1,
    _use_browser_lang = true,
    _lang_matrix = [
        [/(fr)/, /(\.fr)$/i, 'french'],
        [/(da)/, /(\.dk)$/i, 'danish'],
        [/(en)/, /(\.co\.uk|\.com)$/i, 'english'],
        [/(br)/, /(com\.br)$/i, 'portuguese'],
        [/(de)/, /(\.de)$/i, 'german'],
        [/(it)/, /(\.it)$/i, 'italien'],
        [/(ru)/, /(\.ru)$/i, 'russian'],
        [/(pl)/, /(\.pl)$/i, 'polish'],
        [/(es)/, /(\.es)$/i, 'spanish']
    ],
    _user_types = [
        [0, 'guest'],
        [1, 'light-access'],
        [2, 'full-access']
    ],
    _cookie_campaign = 6,
    _cookie_session = 30,
    _cookies_visitor = 2,
    global_user_type = '',
    global_lang = '',
    global_utm_link = '',
    global_utm_link_p = '',
    global_btbuckets = '',
    browser_lang = (navigator.language) ? navigator.language : navigator.userLanguage

function initiate_ga() {
    _gaq.push(function () {
        var pageTracker = _gaq._createAsyncTracker(_ua, _atr2);
        if (_multiple_sites) {
            pageTracker._setAllowHash(false);
            pageTracker._setAllowLinker(true);
            pageTracker._setDomainName('none')
        };
        if (_cookie_campaign && (_cookie_campaign != '')) pageTracker._setCampaignCookieTimeout(_cookie_campaign * 1e3 * 60 * 60 * 24 * 31);
        if (_cookie_session && (_cookie_session != '')) pageTracker._setSessionCookieTimeout(_cookie_session * 1e3 * 60);
        if (_cookies_visitor && (_cookies_visitor != '')) pageTracker._setVisitorCookieTimeout(_cookies_visitor * 1e3 * 60 * 60 * 24 * 31 * 12);
        global_user_type = pageTracker._getVisitorCustomVar(1);
        global_lang = pageTracker._getVisitorCustomVar(2);
        global_btbuckets = pageTracker._getVisitorCustomVar(4);
        global_utm_link = pageTracker._getLinkerUrl('');
        global_utm_link_p = pageTracker._getLinkerUrl('?z=YY').replace('?z=YY', '')
    })
}

function integrate_btbucket() {
    if (typeof $BTB !== 'undefined') {
        var btbucketsGA = $BTB.getAllUserBuckets().join("-");
        if ((!global_btbuckets) || (global_btbuckets != btbucketsGA)) _gaq.push([_atr2 + '._setCustomVar', 4, 'BTBuckets', btbucketsGA, 1], [_atr2 + '._setVar', btbucketsGA])
    }
}

function set_real_bouncerate(sens) {
    sens_mil = sens * 1e3;
    setTimeout("_gaq.push(['" + _atr2 + "._trackEvent', 'Freeze bounce', 'Over " + sens + " seconds']);", sens_mil)
}

function set_user_type(type) {
    if (type && (type != '')) {
        if (!isNaN(type)) {
            if (type <= (_user_types.length - 1)) for (var i = 0; i < _user_types.length; i++) if (_user_types[i][0] == type) var user_type = _user_types[i][1]
        } else user_type = type
    } else if ((!global_user_type) || global_user_type == '') {
        user_type = _user_types[0][1]
    } else user_type = '';
    if (user_type != '') {
        if (global_user_type && (global_user_type != user_type)) set_conversion(global_user_type, user_type);
        _gaq.push([_atr2 + '._setCustomVar', 1, 'user-type', user_type, 1])
    }
}

function set_conversion(from, to) {
    _gaq.push([_atr2 + '._setCustomVar', 3, 'converted', from + '_to_' + to, 1])
}

function set_lang(lang) {
    if (lang) {
        _gaq.push([_atr2 + '._setCustomVar', 2, 'language', lang, 1])
    } else if ((!global_lang) || (global_lang == '')) {
        domain = document.domain;
        for (var i = 0; i < _lang_matrix.length; i++) {
            tld = _lang_matrix[i][1];
            lang = _lang_matrix[i][0];
            if (domain.match(tld)) tld_lang = _lang_matrix[i][2];
            if (browser_lang.match(lang)) user_lang = _lang_matrix[i][2]
        };
        if ((user_lang && tld_lang) && user_lang != tld_lang) {
            if (_use_browser_lang) {
                guess_lang = user_lang
            } else guess_lang = tld_lang
        } else guess_lang = tld_lang;
        _gaq.push([_atr2 + '._setCustomVar', 2, 'language', guess_lang, 1])
    }
}

function extend_tracking() {
    if (Math.random() <= _sample_rate_extend) {
        var a = document.getElementsByTagName("a"),
            input = document.getElementsByTagName("input"),
            option = document.getElementsByTagName("option");
        for (var i = 0; i < a.length; i++) {
            var href = a[i].getAttribute("href"),
                onclick = a[i].getAttribute("onclick"),
                target = a[i].getAttribute("target"),
                prev_js = ((onclick != null) ? onclick + "; " : ""),
                page = location.pathname;
            if (href) if ((href.match(/^https?\:/i)) && (!href.match(document.domain))) {
                if (!href.match(_pass_to)) {
                    var ext_link = href.replace(/^https?\:\/\//i, '');
                    a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'External links', 'Click', '" + ext_link + "'])");
                    if (_force_campaign_ext) {
                        if (href.match(/\?(.+)=/)) {
                            sep = '&'
                        } else sep = '?';
                        camp_link = href + sep;
                        parm = false;
                        for (var j = 0; j < _campaign_ext.length; j++) if (_campaign_ext[j][1] != '') {
                            if (parm) {
                                add = '&'
                            } else add = '';
                            camp_link = camp_link + add + _campaign_ext[j][0] + "=" + _campaign_ext[j][1];
                            parm = true
                        };
                        a[i].setAttribute("href", camp_link)
                    }
                } else if ((target && (target.match(/_blank/))) || _force_pass_internal) {
                    if (href.match(/\?(.+)=/)) {
                        utm_link = href + global_utm_link_p
                    } else utm_link = href + global_utm_link;
                    save = a[i].innerHTML;
                    $(a[i]).attr("href", utm_link);
                    a[i].innerHTML = save
                } else a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._link', '" + href + "']); return false;")
            } else if (href.match(/^mailto\:/i)) {
                var mail_link = href.replace(/^mailto\:/i, '');
                a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent','Email', 'Click', '" + mail_link + "'])")
            } else if (href.match(_filetypes)) {
                var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined;
                a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Download', '" + extension + "', '" + href + "'])")
            } else if (href.match(/linkTo_UnCryptMailto/i)) {
                var mail_link = href.replace(/^javascript:linkTo_UnCryptMailto\(\'/i, ''),
                    mail_link = mail_link.replace(/\'\)$/i, '');
                if (typeof decryptString == 'function') var mail_link = decryptString(mail_link, -2);
                a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent','Email', 'Click', '" + mail_link + "'])")
            };
            if (onclick) if (/window\.print/i.exec(onclick) != null) {
                a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Print', 'Click', '" + page + "'])")
            } else if (/TipAFriend/i.exec(onclick) != null) {
                a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Tip a friend', 'Click', '" + page + "'])")
            } else if (/addthis_sendto/i.exec(onclick) != null) a[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Share', 'Click', '" + page + "'])")
        };
        for (var i = 0; i < input.length; i++) {
            var onclick = input[i].getAttribute('onclick'),
                name = input[i].getAttribute('name'),
                prev_js = ((onclick != null) ? onclick + "; " : ""),
                page = location.pathname;
            if (name) if (name.match(/tx_tcmailsubscription.*\[subscribe\]/i)) {
                input[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Newsletter', 'Subscribe', '" + page + "'])")
            } else if (name.match(/tx_tcmailsubscription.*\[unsubscribe\]/i)) input[i].setAttribute("onclick", prev_js + "_gaq.push(['" + _atr2 + "._trackEvent', 'Newsletter', 'Unsubscribe', '" + page + "'])")
        }
    }
}

function add_load_event(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func
    } else window.onload = function () {
        if (oldonload) oldonload();
        func()
    }
}

function track_pageview() {
    url = location.href;
    if (url.match(/search(\.html|\/?$)/)) {
        var input = document.getElementsByTagName("input");
        for (var i = 0; i < input.length; i++) {
            obj_class = input[i].getAttribute('class');
            if (obj_class && obj_class.match(/tx-indexedsearch-searchbox-sword/)) q = input[i].getAttribute('value')
        };
        _gaq.push([_atr2 + '._trackPageview', '/search.html?q=' + q])
    } else _gaq.push([_atr2 + '._trackPageview'])
}

function check_for_refresh() {
    if (document.referrer == document.location.href) _gaq.push([_atr2 + '._trackEvent', 'Refresh', 'Action', document.location.href])
};
add_load_event(function () {
    if (typeof _gaq != "undefined") {
        initiate_ga();
        extend_tracking();
        set_user_type();
        set_lang();
        check_for_refresh();
        if (_real_bouncerate) set_real_bouncerate(_real_sensitivity);
        track_pageview()
    }
});
(function () {
    var ga = document.createElement('script');
    ga.type = 'text/javascript';
    ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s)
})();
