function encodeRE(s) { return s.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1') }
TRIM_BOTH = 0;
TRIM_LEFT = 1;
TRIM_RIGHT = 2;
function trim(v, c, t) {
    if (!t) var t = TRIM_BOTH;
    if (!c) var c = '\\s';
    else c = encodeRE(c);
    var re;
    if (t == TRIM_BOTH) re = new RegExp('^' + c + '+|' + c + '+$', 'g');
    else if (t == TRIM_LEFT) re = new RegExp('^' + c + '+');
    else if (t == TRIM_RIGHT) re = new RegExp(c + '+$');
    return v.replace(re, '');
}
String.prototype.trim = function(c) { return trim(this, c, TRIM_BOTH); };
String.prototype.ltrim = function(c) { return trim(this, c, TRIM_LEFT); };
String.prototype.rtrim = function(c) { return trim(this, c, TRIM_RIGHT); };
function switchTab(e, ajaxUrl) {
    if (!e) var e = window.event;
    var base = e.target ? e.target : e.srcElement;
    // this should back out from a < li < ul < node
    while (base)
    {
        if (base.tagName == 'LI') break;
        base = base.parentNode;
    }
    $('li', base.parentNode).each(function(){
        var c = this.getAttribute('container');
        if (base.getAttribute('container') == c)
        {
            $(this).addClass('selected');
            var t = $('#tab_' + c);
            t.show();
            if (ajaxUrl && trim(t.html()) == '')
            {
                t.html('<p style="text-align:center;"><img src="' + STATIC_URL + '/images/loading.gif" alt="Loading..." /></p>');
                t.load(ajaxUrl);
            }
        }
        else
        {            
            $(this).removeClass('selected');
            $('#tab_' + c).hide();
        }
    });
    e.stopPropagation();
}
function ourLocation() {
    if (onPage != "" && onPage != null) {
        $('#nav-main-' + onPage).addClass('selected');
    }
    return true;
}
function SmartAdServer(sas_pageid,sas_formatid,sas_target) {
    // 20090818:1734 Do nothing for now till SmartAdServers work
    //$("div.ad").css('display','none');
    //$("#content-ad-header").css('display','none');
    
    var sas_url = 'http://cocotiers.aionsource.com/call/pubj/';
    
    if (sas_masterflag==1) {sas_masterflag=0;sas_master='M';} else {sas_master='S';};
    document.write('<scr'+'ipt id="SmartScr' + sas_formatid + '" src="' + sas_url + sas_pageid + '/' +
    sas_formatid + '/' + sas_master + '/' + sas_tmstp + '/' + escape(sas_target) +
    '?"></scr'+'ipt>');
}
function bodyClick(url) {
    // Extends clickable area of BODY-tag not only to initial viewport render
    // However, #page-cover gets needs to inherit min-height and height of BODY-tag
    $('body').css({ 'min-height':'100%', 'height':'auto', 'cursor':'pointer' });
    $('#page-cover').css({ 'min-height':'100%', 'height':'auto', 'cursor':'default' });
    $('#header').css('cursor','pointer');
    $('#header div.hdbox').css('cursor','default');
    //$('body').click(function(e) {
    $('#page-cover').click(function(e) {
        var obj = (e.target ? e.target : e.srcElement);
        //if (obj.tagName != 'BODY') return true;
        if (obj.id != 'page-cover') return true;
        window.open(url);
        //alert('body click recorded')
        return false;
    });
    $('#header').click(function(e) {
        var obj = (e.target ? e.target : e.srcElement);
        if (obj.id != 'header') return true;
        window.open(url);
        //alert('#header click recorded');
        return false;
    });
}
$(function() {
    // for SmartAdServer tracking links and pixels
    var timestamp = new Date().getTime(); //returns the number of MS since the epoch
    
    $("a.tracking").each(function() {
        return $(this).replaceAttr('href', '[timestamp]', timestamp);
    });
    $("img.tracking").each(function() {
        return $(this).replaceAttr('src', '[timestamp]', timestamp);
    });

    // alternate for using a[target=]
    $('a.new-window').click(function() {
        window.open(this.href);
        return false;
    });
});
