function createProject(rugId, userId)
{
    sendFeedback(false);
    
    projectLabel = GID('newProjectLabel').value;
   
    if(projectLabel != '' && projectLabel != 'New Project')
    {
        projectLabel = escape(projectLabel);
        pairs=[
        {"name":"mode", "value":"create"},
        {"name":"item", "value":rugId},
        {"name":"project_label", "value":projectLabel},
        {"name":"user", "value":userId},
        {"name":"local", "value":"projects"}
        ];
        XMLAJAX({"method":"local","pairs":pairs}, returnProject);
    }
}

function removeFromProject(itemId, project)
{
    sendFeedback(false);
    pairs=[
    {"name":"mode", "value":"remove"},
    {"name":"project_item", "value":itemId},
    {"name":"project", "value":project},
    {"name":"local", "value":"projects"}
    ];
    XMLAJAX({"method":"local","pairs":pairs}, returnProject);
}

function addToProject(rugId, userId, project)
{
    sendFeedback(false);
    pairs=[
    {"name":"mode", "value":"add"},
    {"name":"item", "value":rugId},
    {"name":"project", "value":project},
    {"name":"user", "value":userId},
    {"name":"local", "value":"projects"}
    ];
    XMLAJAX({"method":"local","pairs":pairs}, returnProject);
}

function returnProject(result)
{
    result=eval('('+result+')');
    sendFeedback(result.result);
    getProjectList();
}

function getProjectList()
{
    pairs=[
    {"name":"rugId", "value":getGetKey('rug')},
    {"name":"local", "value":"projectList"}
    ];
    XMLAJAX({"method":"local","pairs":pairs}, writeProjectList);
}

function writeProjectList(result)
{
    EMPTYNODE('projectList');
    projects = eval('('+result+')');
    for (i = 0; i < projects.length; i++)
    {
        project = projects[i];
        itemDiv = document.createElement('div');
        itemDiv.className = 'projectItem';
        
        itemLink = document.createElement('a');
        itemLink.href = 'javascript:' + project.useFunction;
        itemLink.title = project.useTitle;
        itemLink.innerHTML = project.labelFunction;
        
        itemSpan = document.createElement('span');
        itemSpan.innerHTML = '&nbsp;' + project.projectName;
        
        itemDiv.appendChild(itemLink);
        itemDiv.appendChild(itemSpan);
        GID('projectList').appendChild(itemDiv);
    }
    GID('newProjectLabel').value = 'New Project';
}


function sendFeedback(feedback)
{
    if (!feedback)
    {
        feedback = '';
    }
    GID('processFeedback').innerHTML = feedback;
}

function closePrompts(active)
{
    promptForms = new Array('email_form', 'label_form', 'delete_form');
    for (i = 0; i < promptForms.length; i++)
    {
        if (promptForms[i] != active)
        {
            toggle(promptForms[i], 'hide');
        }
    }   
}

function emailProject(stage, projectId, projectName)
{
    closePrompts('email_form');
    GID('email_to_error').innerHTML = '';
    GID('email_subject_error').innerHTML = '';
    switch (stage)
    {
        case 'prompt':
            GID('emailProjectName').innerHTML = projectName;
            document.forms[0].project.value = projectId;
            toggle('email_form', 'show');
            break;
        
        case 'cancel':
            toggle('email_form', 'hide');
            break;
        
        case 'send':
            error=false;
            if (!VEMAIL(document.forms[0].email_to.value))
            {
                error=true;
                GID('email_to_error').innerHTML = 'Invalid Email Address';
            }
            
            if (document.forms[0].email_subject.value == '')
            {
                error=true;
                GID('email_subject_error').innerHTML='Subject Is Required';
            }
            
            if (!error)
            {
                document.forms[0].mode.value = 'email_project';
                document.forms[0].submit();
            }
            break;
    }
}

function renameProject(stage, projectId, projectName)
{
    closePrompts('label_form');
    switch(stage)
    {
        case 'prompt':
            GID('labelProjectName').innerHTML = projectName;
            document.forms[0].newProjectLabel.value = projectName;
            document.forms[0].project.value = projectId;
            toggle('label_form', 'show');
            break;
            
        case 'cancel':
            toggle('label_form', 'hide');
            break;
            
        case 'save':
            if (document.forms[0].newProjectLabel.value != '')
            {
                document.forms[0].mode.value = 'rename_project';
                document.forms[0].submit();
            }
            break;
    }
}

function renameProjectEnter()
{
    renameProject('save');
}

function deleteProject(stage, projectId, projectName)
{
    closePrompts('delete_form');
    switch(stage)
    {
        case 'prompt':
            GID('deleteProjectName').innerHTML = projectName;
            document.forms[0].project.value = projectId;
            toggle('delete_form', 'show');
            break;
            
        case 'cancel':
            toggle('delete_form', 'hide');
            break;
            
        case 'delete':
            document.forms[0].mode.value = 'delete_project';
            document.forms[0].submit();
            break;
    }
}
