function ArgumentCollection(argString)
{ 
    this.toString = ArgumentCollection_ToString;
    
    this.items = new Object();
    
    //init properties if optional argString is provided
    if (argString != undefined)
    {
        var args = argString.toString();
        
        if (argString.substr(0,1) == '?')
        {
            args = argString.substr(1);
        }
        
        var a1 = args.split('&');
        
        for( i=0; i<a1.length; i++)
        {
            //don't use split in case the property has an equal symbol in it
            //var a2 = a1[i].split('=');
            //this.items[a2[0]] = a2[1];
            
            var equalSymbol = a1[i].indexOf('=');
            var propName = a1[i].substr(0, equalSymbol);
            var propValue = a1[i].substr(equalSymbol + 1);
            
            this.items[propName] = propValue;
        }
    }
}

function ArgumentCollection_ToString()
{
    var queryString = '?';
    
    for(property in this.items)
    {
        if (queryString.length > 1)
        {
            queryString += '&';
        }
        
        if (this.items[property] == undefined || this.items[property] == null)
        {
            queryString += property + '=';
        }
        else
        {
            queryString += property + '=' + this.items[property];
        }
    }
      
    return queryString;
}

/*function convertArgs(argString)
{
    var a1 = argString.split('&');
    
    for( i=0; i<a1.length; i++)
    {
        var a2 = a1[i].split('=');
        a1[i] = a2;
    }
    return a1;
}

function getArgValue(argArray, key)
{
    for( i=0; i<argArray.length; i++)
    {
        if (argArray[i][0] == key)
        {
            return argArray[i][1];
        }
    }    

    return undefined;
}*/

