﻿
$j(document).ready(function() {

    if (typeof (ntptEventTag) == 'undefined' || !ntptEventTag)
        ntptEventTag = function(obj) { alert(obj.toString()) };

    if (typeof (ntptLinkTag) == 'undefined' || !ntptLinkTag)
        ntptLinkTag = function(obj, param) { alert(obj.toString() + ' ' + param) };

    var trackkeys = [
        { key: '1', name: '1' }, //for link
        {key: 'bookmark', name: 'Bookmark' },
        { key: 'subscribe', name: 'Subscribe CTR - {0}' },
        { key: 'rss', name: 'Subscribe to RSS' },
        { key: 'printerfriendly', name: 'Printer Friendly' },
        { key: 'sendtofriendview', name: 'Send to a Friend View' },
        { key: 'categoryctr', name: 'Category CTR - {0}' },
        { key: 'tagctr', name: 'Tag CTR - {0}' },
        { key: 'viewrss', name: 'View RSS' },
        { key: 'addcommentsubmit', name: 'Add a Comment Submit' },
        { key: 'addcommentview', name: 'Add a Comment View' },
        { key: 'rating', name: 'Rating' },
        { key: 'moresectionctr', name: 'More Section CTR - {0}' },
        { key: 'mostpopularctr', name: 'Most Popular CTR' },
        { key: 'relatedctr', name: 'Related News CTR' },
        { key: 'relateditemsctr', name: 'Related Items CTR' },
        { key: 'relatedcategorysctr', name: 'Related Category CTR - {1}' },
        { key: 'viewauthorinfo', name: 'View Author Info - {1}' },
        { key: 'sendtofriendsubmit', name: 'Send to a Friend Submit' },
        { key: 'newslettersubmit', name: 'Newsletter Form Submitted' },
        { key: 'tabclick', name: 'hp {0} category ctr' },
        { key: 'tablinkclick', name: 'hp {0} article ctr' },
        { key: 'searchresultclick', name: 'site search ctr' },
        { key: 'categoryclick', name: 'Category CTR – {0}' },
        { key: 'share', name: 'Share – {0}' }
    ];

    function ntpFormatAttr(obj, name) {
        //debugger;

        if (typeof (name) != 'undefined' && !!name && name.trim().length > 0) {
            var text = (obj.text() || '').trim();

            for (var i = 0; i < trackkeys.length; i++) {
                if (trackkeys[i].key == name) {
                    name = trackkeys[i].name;
                    var trackName = name.indexOf('{0}') >= 0 ? ntptGetAttr(obj, 'trackname') || text : '';
                    return String.format(name, trackName, text, obj.attr('href'));
                }
            }
        }
        return null;
    }

    function ntptGetAttr(obj, aname) {
        var tobj = obj;
        var name = null;

        do {
            name = tobj.attr(aname);
            tobj = tobj.parent();
        }
        while (!name && tobj && tobj.length > 0);

        return name;
    }

    var clickFunc = function() {
        var name = ntptGetAttr($j(this), 'track');

        name = ntpFormatAttr($j(this), name);

        if (!name || name.trim().length == 0)
            return;

        ntptEventTag('ev=' + name);
    };

    var clickLinkFunc = function(event) {

        debugger;

        var name = ntptGetAttr($j(this), 'link');

        name = ntpFormatAttr($j(this), name);

        if (!name || name.trim().length == 0)
            return;

        ntptEventTag('lc=' + escape(this.href) + '&rf=' + escape(document.location) + '&lk=' + name);

        //if (!ntptLinkTag(this, 'lk=' + name))
    };

    $j('td[track]:not(td[track]:has("a")) ').live('click', clickFunc);
    $j('a[track]').live('click', clickFunc);

    //if ($j('div.divArticleLandingPageLeftColumn, td.tdFormButtonsRight').length > 0) {//tracking only events on article landing page
    if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) {
        var wrm = Sys.WebForms.PageRequestManager.getInstance();
        var list = [];

        wrm.add_endRequest(
                function(sender, arg) {

                    var ctl = list.pop();

                    var elm = $j('#' + ctl + ',#' + ctl.replace(/\$/g, '_'));

                    if (elm.length > 0) {
                        var name = ntptGetAttr(elm, 'tracksubmit');

                        name = ntpFormatAttr(elm, name);

                        if (!name || name.trim().length == 0)
                            return;

                        window.setTimeout(function() { ntptEventTag('ev=' + name); }, 100);
                    }
                }
            );

        wrm.add_beginRequest(
                function(sender, arg) {
                    list.push(document.forms[0].__EVENTTARGET.value);
                }
            );
    }

    $j('div[track] a, td[track] a, table[track] a').live('click', clickFunc);

    $j('a[link], div[link] a, td[link] a, table[link] a').live('click', clickLinkFunc);
    //}
});