function AddRequestString(request,str)
{
    if (!request)
    {
        var request = '';
    }

    if (request != '')
    {
        request += '&';
    }
    
    request += str;
    
    return request;
}//AddRequestString

function BuildAjaxRequest(inputs)
{
    var request = '';

    if (inputs != null)
    {
        if (inputs.length > 0)
        {
            for (var i = 0; i < inputs.length; i++)
            {
                request = AddRequestParamPair(request,inputs[i]);
            }//for
        }//if (inputs.length > 0)
    }//if (inputs != null)
    
    if (request == '')
    {
        request = null;
    }
    
    return request;
}//BuildAjaxRequest

function GetInputs(rootelem)
{
    var inputs = new Array();

    for (var i = 0; i < rootelem.childNodes.length; i++)
    {
        var elem = rootelem.childNodes[i];
        
        if ((elem.childNodes.length > 0) && (elem.tagName != 'SELECT'))
        {
            var childinputs = GetInputs(elem);
            
            for (var j = 0; j < childinputs.length; j++)
            {
                inputs[inputs.length] = childinputs[j];
            }//for
        }//if ((elem.childNodes.length > 0) && ...
        else
        {
            if ((elem.tagName == 'SELECT') || ((elem.tagName == 'INPUT') && (elem.type != 'submit')))
            {
                inputs[inputs.length] = elem;
            }
        }//else
    }//for
    
    return inputs;
}//GetInputs

function AddRequestParamPair(request,elem)
{
    if (!request)
    {
        var request = '';
    }

    if (request != '')
    {
        request += '&';
    }
    
    request += elem.id + '=' + PostValMakeUp(GetInputValue(elem));
    
    return request;
}//AddRequestParamPair

function GetInputValue(elem)
{
    if (elem.tagName == 'SELECT')
    {
        if ((elem.options.length > 0) && (elem.selectedIndex >= 0))
        {
            var val = elem.options[elem.selectedIndex].value;
        }
        else
        {
            var val = '';
        }
    }
    else
    {
        if (elem.type != 'checkbox')
        {
            var val = elem.value;
        }
        else
        {
            var val = elem.checked;
        }
    }//else
    
    return val;
}//GetInputValue

function PostValMakeUp(val)
{
    val = String(val);

    val = val.replace(/([+])/g,'##plus##');

    val = encodeURIComponent(val);

    val = val.replace(/(['])/g,'##quot##');

    return val;
}//PostValMakeUp

function Trim(str)
{
    var result = str.replace(/^([ ]*)/i,'');
    result     = result.replace(/([ ]*)$/i,'');

    return result;
}//Trim
