function getRequestParam(name)
{
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
    {
        return "";
    }
    else
    {
        return results[1];
    }
}

function processSubmitActionForm(formid, formaction)
{    
    var theform = document.getElementById(formid);
    theform.formaction.value = formaction;
    theform.submit();
}

function submitFormActionForm(formid, formaction)
{
    var theform = document.getElementById(formid);
    document.getElementById('formAction').value = formaction;
    theform.submit();
}

function processSubmitForm(formid)
{
    var theform = document.getElementById(formid);
    theform.submit();
}

var needsSaving = false;

function updateNeedsSaving(divid)
{
    var saveDivElement = document.getElementById(divid);
    saveDivElement.style.visibility = "visible";
}

function updateNeedsSaving(divid, elementid)
{
    var saveDivElement = document.getElementById(divid);
    saveDivElement.style.visibility = "visible";

//    IE hack.  IE can't differentiate between the 2 updateNeedsSaving methods
    if(elementid != undefined)
    {
        var needsSaving = document.getElementById(elementid);
        needsSaving.value = 'true';
    }

    needsSaving = true;
}

function processSubmitSortForm(formid, sortaction, direction)
{
    var theform = document.getElementById(formid);
    if(direction == null)
    {
        theform.sortdirection.value = "asc";
    }
   else
   {
       if(direction == "asc")
       {
           theform.sortdirection.value = "desc";
       }
       else
       {
           theform.sortdirection.value = "asc";
       }
   }
   theform.formaction.value = 'sort';
   theform.sortattribute.value = sortaction;
   theform.submit();
}

function updateClassNames(messageId)
{
    document.getElementById('msg'+messageId).className='body';
    document.getElementById('sum'+messageId).className='body';
    document.getElementById('date'+messageId).className='body';
}

//           if there is only 1 message, the doc.form.messagebox notation will not work because it does not return an array
//          to account for this, first check to see if there is a retvalue by the single field, if not, assume an array
function checkAllMessages()
{
    if(document.getElementById('messagesortform').messagebox.checked)
    {
        document.getElementById('messagesortform').messagebox.checked = true;
    }
    else
    {
        var fields = document.getElementById('messagesortform').messagebox;
        for (i = 0; i < fields.length; i++)
        {
            fields[i].checked = true;
        }
    }
}

function uncheckAllMessages()
{
    if(document.getElementById('messagesortform').messagebox.checked)
    {
        document.getElementById('messagesortform').messagebox.checked = false;
    }
    else
    {
        var fields = document.getElementById('messagesortform').messagebox;
        for (i = 0; i < fields.length; i++)
        {
            fields[i].checked = false;
        }
    }
}

function deleteMessage(messageId)
{
    document.getElementById('messagesortform').action.value = "Delete";
    if(document.getElementById('messagesortform').messagebox.value == messageId)
    {
        document.getElementById('messagesortform').messagebox.checked = true;
    }
    else
    {
        var fields = document.getElementById('messagesortform').messagebox;
        for (i = 0; i < fields.length; i++)
        {
            if(fields[i].value == messageId)
            {
                fields[i].checked = true;
                break;
            }
        }
    }
    processSubmitActionForm('messagesortform', 'performaction');
}

function submitMessageUpdate(formaction)
{
    document.getElementById('messagesortform').action.value = formaction;
    var isChecked = false;

    if(document.getElementById('messagesortform').messagebox.checked)
    {
        isChecked = true;
    }
    else
    {
        var fields = document.getElementById('messagesortform').messagebox;
        for (i = 0; i < fields.length; i++)
        {
            if(fields[i].checked)
            {
                isChecked = true;
                break;
            }
        }
    }
    if(!isChecked)
    {
        alert("Please select a message or messages to perform an action against");
    }
    else
    {
        processSubmitActionForm('messagesortform', 'performaction');
    }
}

function checkAllUsers()
{
    if(!document.getElementById('messagecreateform').selectedusers.checked)
    {
        document.getElementById('messagecreateform').selectedusers.checked = true;
    }
    else
    {
        var fields = document.getElementById('messagecreateform').selectedusers;
        for (i = 0; i < fields.length; i++)
        {
           fields[i].checked = true;
        }
    }
}

function uncheckAllUsers()
{
    if(document.getElementById('messagecreateform').selectedusers.checked)
    {
        document.getElementById('messagecreateform').selectedusers.checked = false;
    }
    else
    {
        var fields = document.getElementById('messagecreateform').selectedusers;
        for (i = 0; i < fields.length; i++)
        {
           fields[i].checked = false;
        }
    }
}

function submitEnter(myfield,e)
{
    var keycode;
    if (window.event)
    {
        keycode = window.event.keyCode;
    }
    else if (e)
    {
        keycode = e.which;
    }
    else
    {
        return true;
    }

    if (keycode == 13)
    {
        myfield.form.submit();
        return false;
    }
    else
    {
        return true;
    }
}

