var omniture={};
omniture.orig_values={};

omniture.should_ping = function(ingroup) {

    try {
        delay = delay_om_ping;
    } catch (e) {
        delay = false;
    }

    if (ingroup && ! delay) return true;
    else return false;

}


omniture.get_pageName = function(loc) {
    if(!loc) {
        loc = window.location.pathname;
    }
    var s = window.location.host.slice(0,3);
    if(s=='dev'||s=='wor'||s=='sta') {
        loc = window.location.host+loc;
    }
    return loc;
}


omniture.real_restore_values = function(target) {
	for(var k in omniture.orig_values) {
        target[k] = omniture.orig_values[k];
    }
    omniture.orig_values = {};
}

omniture.restore_values = function() {
    for(var k in omniture.orig_values) {
        eval(k+'=omniture.orig_values[k];');    
    }
    omniture.orig_values = {};
}

omniture.swap_var = function(varname, newvalue) {
    omniture.real_swap_var(omniture.object, varname, newvalue); 
}

omniture.real_swap_var = function(target, varname, newvalue) {
    omniture.orig_values[varname] = target[varname];
    target[varname] = newvalue;
}

omniture.swap_pageName = function(new_pn) {
    omniture.real_swap_pageName(omniture.object, new_pn)
}

omniture.real_swap_pageName = function(target, new_pn) {
    new_pn = omniture.get_pageName(new_pn);
    omniture.real_swap_var(target, 'pageName', new_pn);
    omniture.real_swap_var(target, 'prop6', new_pn+'|'+target.prop5);
    omniture.real_swap_var(target, 'prop8', new_pn+'|'+target.prop2);
}

omniture.append_events = function(target, events) {
    target['events'] = target['events'] + ',' + events
}


omniture.swap_vars = function(vars) {
    omniture.real_swap_vars(omniture.object, vars);
}

omniture.real_swap_vars = function(target, vars) {
    for(var k in vars) {
        if (k.indexOf('s_') == 0) k = k.sub('s_', '', count=1);
        // do special/more complicated stuff as needed
        if(k=='pageName') {
            omniture.real_swap_pageName(target, vars[k]);
        } else {
            omniture.real_swap_var(target, k, vars[k]);
        }
    }
}

omniture.swap_vars_from_list = function (target, source, var_list) {
    for (var i =0 ; i < var_list.length; i++ ) {
        if(var_list[i]=='pageName') {
            omniture.real_swap_pageName(target, source[var_list[i]]);
        } 
        if (var_list[i] == 'events') {
            omniture.append_events(target, source['events']);
        }
        else {
            omniture.real_swap_var(target, var_list[i], source[var_list[i]]);
        }
    }
}


omniture.swap_vars_from_list_and_ping = function(target,source,var_list) {
    try {
        if(var_list.length > 0) {
            omniture.swap_vars_from_list(target, source, var_list);
        }
        do_omniture();
    } catch(e) {}
    omniture.real_restore_values(target);
}

omniture.swap_vars_and_ping = function(vars) {
    omniture.real_swap_vars_and_ping(omniture.object, vars)
}

omniture.real_swap_vars_and_ping = function(target, vars) {
    try {
        if(vars.length > 0) {
            omniture.real_swap_vars(target, vars);
        }
        do_omniture();
    } catch(e) {}
    omniture.real_restore_values(target);
}

omniture.inTrackingSample = function(rate, ckname) {
    var SAMPLE_PERCENT = 10;
    var COOKIE_NAME = 'agsample';
    var host = window.location.host;
    if(!rate) rate = SAMPLE_PERCENT;
    if(!ckname) ckname = COOKIE_NAME;

    // do we need to do fancy sampling magic?
    if (host.indexOf('yahoo') != -1 || host.indexOf('bmamess') != -1
        || (host.indexOf('mypersonalexpression') != -1 && host.indexOf("www") != -1)
        || host.indexOf('greetings.aol') != -1 || host.indexOf('kiwee') != -1 ) {
        var allcookies = document.cookie;
        var pos = allcookies.indexOf(ckname);
        // if we find the cookie then use it
        if (pos != -1) {
            var start = pos + ckname.length + 1;
            var end = allcookies.indexOf(';', start);
            if (end == -1) end = allcookies.length;
            var num = allcookies.substring(start, end);
            //alert('found it; ' + num + '; ' + num % rate);
        }
        else {
            // set the sample group number in the cookie to be used later
            var num = Math.round(Math.random() * 100);
            //alert('not found; ' + num +'; ' + num % rate);
            var nextyear = new Date();
            nextyear.setFullYear(nextyear.getFullYear() + 1);

            var domain = host.substr(host.indexOf('.'), host.length);
            if(domain.indexOf('bmamess') != -1) {
                domain = '.bmamessenger.com';
            } else if(domain.indexOf('mypersonalexpression') != -1) {
                domain = '.mypersonalexpression.com';
            } else if(domain.indexOf('greetings.aol') != -1) {
                domain = 'greetings.aol.com';
            } else if(domain.indexOf('kiwee') != -1) {
                domain = 'kiwee.com'
            }
            document.cookie = ckname + '=' + num + '; expires='
                    + nextyear.toGMTString() + '; domain=' + domain
                    + '; path=/';
        }
        if (num < rate) {
            return true;
        } else {
            return false;
        }
    }
    else {
        return true;
    }
}

function getOServer()
{
    var host = window.location.host;
    if(host.indexOf("www") != -1 || host.indexOf("www1") != -1 || host.indexOf("www2") != -1)
    {
        //Production
        matches = host.match(/www\d*.(\w{2,5}?).mypersonalexpression.com/);
        if(matches)
        {
            if(matches[1]=="au") return ["agnvbmaau","bmmau"];
            if(matches[1]=="bed") return ["agnvbmabe","bmmbed"];
            if(matches[1]=="bef") return ["agnvbmabefr","bmmbefr"];
            if(matches[1]=="br") return ["agnvbmamessbr","bmmbr"];
            if(matches[1]=="cae") return ["agnvbmacaen","bmmcaen"];
            if(matches[1]=="caf") return ["agnvbmacafr","bmmcafr"];
            if(matches[1]=="dk") return ["agnvbmamessdk","bmmdk"];
            if(matches[1]=="fr") return ["agnvbmafr","bmmfr"];
            if(matches[1]=="de") return ["agnvbmade","bmmde"];
            if(matches[1]=="it") return ["agnvbmait","bmmit"];
            if(matches[1]=="mx") return ["agnvbmamessmx","bmmmx"];
            if(matches[1]=="nl") return ["agnvbmanl","bmmnl"];
            if(matches[1]=="no") return ["agnvbmamessno","bmmno"];
            if(matches[1]=="es") return ["agnvbmaes","bmmes"];
            if(matches[1]=="se") return ["agnvbmase","bmmse"];
            if(matches[1]=="uk") return ["agnvbmauk","bmmuk"];
            if(matches[1]=="us") return ["agnvbmaus","bmmus"];
            if(matches[1]=="promo") return ["agpromomessenger", "bmmpromo"];
        }
    }
    return ["agdev", "dev"];
}

