function addItem()
{
    var client = new XMLHttpRequest();
    
    client.onreadystatechange = function()
    {
        if(this.readyState == 4)
        {   
            if(this.status == 200)
            {
                if(this.responseText != '')
                {
                    parts = this.responseText.split('&');
                    
                    errorCode = parseInt(parts[0]);
                    id = parts[1];
                    html = parts[2];
                    
                    // check for error code
                    if(errorCode == 1)
                    {
                        // make item field red to indicate error
                        document.getElementById('add-item').className = 'error';
                        
                        // display error message
                        alert("You must at least enter an item!");
                    }
                    else
                    {
                        // insert the new item
                        var newItem = document.createElement('li');
                        newItem.id = "item-" + id;
                        newItem.innerHTML = html;
                        newItem.addEventListener('mousedown', dragStart, false);
                        newItem.addEventListener('mouseup', dragStop, false);
                        
                        var itemList = document.getElementById('wishlist');
                        
                        dragList.insertBefore(newItem, itemList.firstChild);
                        
                        // update all the ranks
                        pos = 0;
                        
                        for(var i = 0; i < itemList.length; i++)
                        {
                            pos++;
                            
                            document.getElementById(itemList[i].id + '-rank').innerHTML = pos;
                        }
                        
                        // close the floating window
                        toggleFloating('add-form', false);
                        
                        // reset values
                        document.getElementById('add-item').value = '';
                        document.getElementById('add-link').value = '';
                        document.getElementById('add-notes').value = '';
                    }
                }
                else
                {
                    alert("Error: no response. What fatness!");
                }
            }
            else
            {
                alert("Hm... error! " + this.statusText);
            }
            
            // clear the password field
            document.getElementById('login-password').value = '';
        }
    };
    
    // reset any error fields
    document.getElementById('add-item').className = '';
    
    var item = document.getElementById('add-item').value;
    var link = document.getElementById('add-link').value;
    var notes = document.getElementById('add-notes').value;
    
    var url = 'add.php';

    var data = 'item=' + escape(item) + '&link=' + escape(link) + 
               '&notes=' + escape(notes);
    
    client.open('POST', url, true);
    
    client.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    client.send(data);
}
