autosubmitflag = 0;

// Work around to allow use of indexOf in ECMA-262 implementations
// which do not natively support it
if (!Array.prototype.indexOf)
{
    Array.prototype.indexOf = function(elt /*, from*/)
    {
        var len = this.length;
    
        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;
    
        for (; from < len; from++)
        {
            if (from in this && this[from] === elt)
                return from;
        }
        
        return -1;
    }
}

// Set cookie
function setcookie(name,value)
{
    cookiestring = name+"="+escape(value);
    document.cookie = cookiestring;
}

// Get cookie
function getcookie(cookiename)
{
    var cookiestring = "" + document.cookie;
    var index1 = cookiestring.indexOf(cookiename);
    if (index1 == -1 || cookiename == "") return "";
    var index2 = cookiestring.indexOf(';',index1);
    if (index2 == -1) index2 = cookiestring.length;
    return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

// Set autosubmit flag, or go back if already set
function autosubmit()
{
    if (autosubmitflag == 1)
    {
        disableAutoSubmit = getcookie('disableAutoSubmit');
        if (disableAutoSubmit != '1')
        {
            setcookie('disableAutoSubmit','1');
            document.loginform.submit();
        }
        else
        {
            history.go(-1);
        }
    }
    return
}

// Turn on autosubmit
function autosubmiton()
{
    autosubmitflag = 1;
}

// Pop-up logout window
function logoutwindow()
{
    var w = window.open("logoutwindow", "LOGOUT","toolbar=0,location=0,directories=0,status=0,scrollbars=auto,resizable=1,copyhistory=0,width=360,height=215,top=100,left=100")
    if(!w){alert("The Logout Window was unable to open because of a Pop-Up Blocker.  Please disable your Pop-Up Blocker for this site.  When you are ready to logout turn off your wireless radio or shutdown your computer for 15 minutes.");}
}

// 'set' operator
function set()
{
    var result = {};

    for (var i = 0; i < arguments.length; i++)
        result[arguments[i]] = true;

    return result;
}

// Add function to onload event
function addLoadEvent(func)
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {
        window.onload = func;
    }
    else
    {
        window.onload = function()
        {
            oldonload();
            func();
        }
    }
}

// Add function to onunload event
function addUnloadEvent(func)
{
    var oldonload = window.onunloadload;
    if (typeof window.onunloadload != 'function')
    {
        window.onunloadload = func;
    }
    else
    {
        window.onunloadload = function()
        {
            oldonload();
            func();
        }
    }
}

// Cross-browser function to get page element
function getRefToDiv(divID)
{
    if (document.layers)
    {
        //Netscape layers
        return document.layers[divID];
    }
    if (document.getElementById)
    {
        //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID);
    }
    if (document.all)
    {
        //Proprietary DOM; IE4
        return document.all[divID];
    }
    if (document[divID])
    {
        //Netscape alternative
        return document[divID];
    }

    return false;
}

// Keep Zope session object alive
function keepAlive()
{
    AjaxRequest.get(
      {
          'url':'ax_keepalive'
      }
    );
}

// Pop-up window with specified URL and optional parameters
function pop_window(url, args)
{
    if (!args)
        window.open(url,'pop');
    else
        window.open(url,'pop',args);
}

// Redirect function
function go_to(url)
{
    document.location = url
}

// Set object to behave as link on mouse hover
function displayaslink(field)
{
    try
    {
        field.onmouseover = function() {document.body.style.cursor = 'pointer'};
        field.onmouseout  = function() {document.body.style.cursor = 'default'};
    }
    catch (e)
    {
        //alert("displayaslink - " + e.name + ": " + e.message);
    }
}

// Switch language
function switchlang(lang)
{
    AjaxRequest.get(
      {
          'url':'ax_switchlanguage?language='+lang,
          'onSuccess':function(req){ window.location.reload(true); }
      }
    );
}

// Set event when 'enter' pressed
function addInputSubmitEvent(input)
{
    input.onkeydown = function(e)
    {
        e = e || window.event;
        
        if (e.keyCode == 13)
        {
            // submitevent() must be defined in calling function!
            submitevent();
            return false;
        }
    }
}

// Assign submit event to 'input' elements
function setsubmit()
{
    try
    {
        var forms = document.getElementsByTagName('form');
    
        for (var i=0; i < forms.length; i++)
        {
            var inputs = forms[i].getElementsByTagName('input');

            for (var j=0; j < inputs.length; j++)
            {
                // Assign 'submit' event
                addInputSubmitEvent(inputs[j]);
            }
        }
    }
    catch (e)
    {
        //alert("setsubmit - " + e.name + ": " + e.message);
    }
}

// Set images to display as links
function setbtnlinks()
{
    try
    {
        var buttons = document.getElementsByTagName('img');

        for (var i=0; i < buttons.length; i++)
        {
            if (buttons[i].className.indexOf('button') >= 0)
            {
                displayaslink(buttons[i]);
            }
        }
    }
    catch (e)
    {
        //alert("setbtnlinks - " + e.name + ": " + e.message);
    }
}

// Convert all button tags to input (button) tags
function btn2input()
{
    try
    {
        // Find all buttons on the page
        var btns = document.getElementsByTagName('button');
    
        for (i=0; i < btns.length; i++)
        {
            var btn    = btns[i];
            var parent = btns[i].parentNode;
    
            if (parent)
            {
                // Create new input element
                var input = document.createElement('input');
    
                input.type          = btn.type;
                input.id            = btn.id;
                input.name          = btn.name;
                input.value         = btn.innerHTML;
                input.onclick       = btn.onclick;
                input.style.cssText = btn.style.cssText;
                input.className     = btn.className;
    
                // Replace button by input
                parent.replaceChild(input, btn);
    
                i--;
            }
        }
    }
    catch (e)
    {
        //alert("btn2input - " + e.name + ": " + e.message);
    }
}

function getFlashMovieObject(movieName)
{
    if (window.document[movieName]) 
        return window.document[movieName];
    
    if (navigator.appName.indexOf("Microsoft Internet") == -1)
        if (document.embeds && document.embeds[movieName])
            return document.embeds[movieName]; 

    return document.getElementById(movieName);
}

setInterval("keepAlive()",600000);
