//
// Utility functions for ajax based tabs.  These function
// assist with page tracking by directly modifying the 
// omniture 's' object as appropriate.
//
// We register callbacks for each tab that gets called on the
// jQuery.UI.Tabs show event via doTrackingCallback.
//
// Anything prefixed with '__' is meant to be private.
//
var __tcbFuncA;
var __tcbAssoc = false;
var __tabsLoaded = false;

// reset all tracking variables that may be important in the
// context of ajax tabs
function __ajaxResetTrackingVariables() {
    if (s) {
        s.events = '';
        s.prop3 = '';
        s.prop10 = '';
        s.products = '';
        s.prop33 = '';
    }
}

// append events
function __ajaxAddEvents(events) {

    if (s.events.length == 0) {
        s.events = events;
    } else {
        s.events += "," + events;
    }

}


// set product views
function ajaxSetProductViews(products) {
    __ajaxAddEvents("prodView,scAdd");
    var pA = products.split(",");
    var first = (s.products.length == 0);
    var i;
    for (i=0; i < pA.length; i++) {
        if (pA[i] != '') {
            if (first) {
                s.prop10 = pA[i];
                first = false;
            } else {
                s.products += ",";
            }
            s.products += ";" + pA[i];
        }
    }
}

// add an ajax tracking callback
function ajaxAddTrackingCallback(tab, callback) {

    if (typeof(__tcbFuncA)=="undefined") {
        __tcbFuncA = new Array();
        __tcbAssoc = (typeof(tab) == "string");
    }
    __tcbFuncA[tab] = callback;

}


// Call a javascript function defined in the ajax tab that will
// set tracking data appropriately for the tab.
function ajaxTrackingCallback(event, ui) {

    if (__tabsLoaded) {
        if (s) {
            __ajaxResetTrackingVariables();
            if (__tcbFuncA) {
                var callback = (__tcbAssoc) ?
                               __tcbFuncA[ui.panel.id] :
                               __tcbFuncA[ui.index];
                if (callback) {
                    callback(event, ui);
                }
            }
            if (s.prop3.length == 0) {
                    s.prop3 = ui.panel.id;
            }
            void(s.t());   // generate page view
        }
    } else {
      __tabsLoaded = true;
    }

}

