var Ajax;
if (Ajax && (Ajax != null)) {
    Ajax.Responders.register({
        onCreate: function() {
            if ($('spinner') && Ajax.activeRequestCount > 0)
                Effect.Appear('spinner', {duration:0.5,queue:'end'});
        },
        onComplete: function() {
            if ($('spinner') && Ajax.activeRequestCount == 0)
                Effect.Fade('spinner', {duration:0.5,queue:'end'});
        }
    });
}

function MsgBox(message) {
    alert(message);
}

function popup(url) {
    window.open(url, "MyPopup", 'height=500,width=600,scrollbars=yes');
}


function jsTwistieToggle(elemname) {
    var elem = document.getElementById(elemname);
    if (elem.style.display == 'none') { //formerly hidden now show
        elem.style.display = '';
    } else { //formerly showing now hide
        elem.style.display = 'none';
    }

}

var _currentDialog = new Array();
function handlePageClick(e) {
    var target = (e && e.target) || (window.event && window.event.srcElement);
    if (_currentDialog.length > 0) {
        for (var i = 0; i < _currentDialog.length; i++) {
            if ((_currentDialog[i] != null) && isChild(target, _currentDialog[i])) {
                return;
            }
        }

        // Not a child click, close them all!
        hideAllModal();
    }
}

function dialogCount() {
    return _currentDialog.length;
}

function isChild(t, parent) {
    while (t && t.parentNode) {
        if (t == parent) {
            return true;
        }
        t = t.parentNode;
    }

    return (t == parent);
}

function revealModal(divID, closeOthers)
{
    // Hide current, if any
    if (closeOthers) {
        hideAllModal();
    }

    // Show new, if any
    var newDialog = document.getElementById(divID);
    if (newDialog) {
        newDialog.style.display = "block";
        _currentDialog[_currentDialog.length] = newDialog;
    }
}

function hideModal(divID)
{
    var dlg = document.getElementById(divID);
    if (dlg != null) {
        dlg.style.display = "none";
        for (var i = 0; i < _currentDialog.length; i++) {
            if (_currentDialog[i] == dlg) {
                _currentDialog[i] = null;
            }
        }
    }
}

function hideAllModal() {
    // Iterate and hide all dialogs
    for (var i = 0; i < _currentDialog.length; i++) {
        if (_currentDialog[i] != null) {
            _currentDialog[i].style.display = "none";
        }
    }
    // Reset array
    _currentDialog = new Array();
}

//thing is the thing we're lining the tool tip up with
function updateTipAndShow(divID, content, thing) {
    var elem = document.getElementById(divID);
    //alert(elem+" "+content+" "+divID);
    elem.style.display = "";
    elem.innerHTML = "&nbsp;" + content + "&nbsp;";
    //we find the absolute page position of both the icon we want to be under,
    //and of our offsetparent, since even with "absolute" position, that's what
    //it's counted against
    var parentAbsXoffset = findPosX(elem.offsetParent)
    var parentAbsYoffset = findPosY(elem.offsetParent)
    var thingAbsXoffset = findPosX(thing);
    var thingAbsYoffset = findPosY(thing) + thing.scrollHeight;
    elem.style.left = (thingAbsXoffset - parentAbsXoffset) + "px";
    elem.style.top = (thingAbsYoffset - parentAbsYoffset) + "px";
}
function hideTip(divID)
{
    document.getElementById(divID).style.display = "none";
}


//http://blog.firetree.net/2005/07/04/javascript-find-position/

function findPosX(obj)
{
    var curleft = 0;
    if (obj.offsetParent)
        while (1)
        {
            curleft += obj.offsetLeft - obj.scrollLeft;
            if (!obj.offsetParent)
                break;
            obj = obj.offsetParent;
        }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
        while (1)
        {
            curtop += obj.offsetTop;
            if (!obj.offsetParent)
                break;
            obj = obj.offsetParent;
        }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

//javascript for simplistic paging control
//create widget by calling
//tripager_widget('uniquename',#ofpages);
//it will assume divs are named uniquename_1 through uniquename_#ofpages

//global tripager stuff...
var tripager_pagecount = new Array();
var tripager_currentpage = new Array();


// function to make triangles on either side of dots, sets to page 1
function tripager_html(which, pagecount) {
    tripager_pagecount[which] = pagecount;
    tripager_currentpage[which] = 1;
    var tripager_brand_imghome = global_brand_image_root + '/';
    var tripager_shared_imghome = global_shared_image_root + '/';

    if (pagecount == 1) return "";
    var result = '<img onClick="tripager_changepage(\'' + which + '\',\'left\')" width=20 height=20 src="' + tripager_brand_imghome + 'tripager_arrow_left_off.gif" id="tripager_arrow_left_' + which + '" border=0>';

    for (var i = 1; i <= tripager_pagecount[which]; i++) {
        var onoff = 'off';
        if (i == 1) {
            onoff = 'on';
        }
        result += '<img class="module_dots" onClick="tripager_changepage(\'' + which + '\',\'' + i + '\')" border=0 width=4 height=20 src="' + tripager_shared_imghome + 'tripager_dot_' + onoff + '.gif" id="tripager_dot_' + which + '_' + i + '">';
    }
    result += '<img onClick="tripager_changepage(\'' + which + '\',\'right\')" width=20 height=20  src="' + tripager_brand_imghome + 'tripager_arrow_right_on.gif" id="tripager_arrow_right_' + which + '" border=0>';
    return result;
}

// function to make triangles on either side of dots, sets to page 1
function tripager_widget(which, pagecount) {
    document.write(tripager_html(which, pagecount));
}

// function that adjust the dots and the arrows, called when they are clicked
//(passed 'right', 'left'for the arrows, or the number of the page clicked
function tripager_changepage(which, whatway) {
    var tripager_brand_imghome = global_brand_image_root + '/';
    var tripager_shared_imghome = global_shared_image_root + '/';

    var pagecount = tripager_pagecount[which];
    var oldpage = tripager_currentpage[which];
    var newpage = oldpage;

    if (whatway == 'right') {
        newpage++;
        if (newpage > pagecount) {
            newpage = pagecount;
        }
    } else if (whatway == 'left') {
        newpage--;
        if (newpage < 1) {
            newpage = 1;
        }
    } else {
        newpage = whatway;
    }

    document.getElementById('tripager_dot_' + which + '_' + oldpage).src = tripager_shared_imghome + "tripager_dot_off.gif";
    document.getElementById('tripager_dot_' + which + '_' + newpage).src = tripager_shared_imghome + "tripager_dot_on.gif";

    var leftonoff = (newpage != 1) ? 'on' : 'off';
    document.getElementById('tripager_arrow_left_' + which).src = tripager_brand_imghome + "tripager_arrow_left_" + leftonoff + ".gif";

    var rightonoff = (newpage != pagecount) ? 'on' : 'off';
    document.getElementById('tripager_arrow_right_' + which).src = tripager_brand_imghome + "tripager_arrow_right_" + rightonoff + ".gif";


    tripager_currentpage[which] = newpage;

    document.getElementById(which + '_' + oldpage).style.display = 'none';
    document.getElementById(which + '_' + newpage).style.display = '';

}

// end paging control stuff

function get_cookie(cookie_name) {
    var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');

    if (results)
        return ( unescape(results[2]) );
    else
        return null;
}

function cookiesEnabled() {
    // Also navigator.cookieEnabled
    // var cookieEnabled = (navigator.cookieEnabled)? true : false;
    if (document.cookie == "") {
        document.cookie = "tc";
        cookieEnabled = (document.cookie.indexOf("tc") != -1) ? true : false;
    } else {
        cookieEnabled = true;
    }
    return cookieEnabled;
}
