function OnDescriptionClick()
{
    var userDescription = $get("userDescription");
    userDescription.style.display="none";
    var editDescription = $get("editDescription");
    editDescription.style.display="none";
    var newDiv = document.createElement("div");
    newDiv.id = "editDescription";
    newDiv.innerHTML = [
        '<textarea style="height:380px; width:156px; font-family: Verdana, Arial, Helvetica; font-size: 11px; border: solid 1px #8e909c; overflow:hidden; padding:2px; word-break:normal" name="content" onkeyup="CharLimit(this)">',
        userDescription.innerHTML.replace(/<br\/>/g, '\n').replace(/<br>/g, '\n').replace(/<BR>/g, '\n'),
        '</textarea><br/>',
        '<p class="instructionText">Please try to avoid including any information which could be used to personally identify you.</p>',
        '<br/><input type="button" onclick="saveEditedDescription(content.value);" value="Save"/><span> OR </span><input type="button" onclick="RemoveEditDescription();" value="Cancel"/>'
        ].join('');
    userDescription.parentNode.insertBefore(newDiv, userDescription);
}

function CharLimit(text)
{
    var str = new String(text.value);
    var len = str.length;
    if (len > 800)
    {
        alert("You have reached the 800 characters max!");
        text.value = str.slice(0, 800);
    }
}

function RemoveEditDescription()
{
    var userDescription = $get("userDescription");
    userDescription.parentNode.removeChild($get("editDescription", userDescription.parentNode));
    userDescription.style.display="block";
    var editDescription = $get("editDescription");
    editDescription.style.display="block";
}

function saveEditedDescription(description)
{
    var textToSend = description;        
    textToSend = textToSend.replace(/<(.|\n)*?>/gi, '');
    textToSend = textToSend.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\+/g, "&#43;").replace(/&/g, "%26"); 
    textToSend = "cmd=saveUserDescription&text=" + textToSend;           
    
    var xmlHttp = new LLO.Util.XmlHttp();
    xmlHttp.Open("POST", 'PhotosynthHandler.ashx', true);
    xmlHttp.SetContentHeader( "Content-Type", "application/x-www-form-urlencoded" );
    xmlHttp.SetContentHeader( "Content-Length", textToSend.length );
    xmlHttp.Send(textToSend,
        function(response)
        {
            if (response.status == 200)
            {
                var updatedUserProfile = Sys.Serialization.JavaScriptSerializer.deserialize(response.responseText);
                $get("userDescription").innerHTML = updatedUserProfile.Description.replace(/\r\n/g, "<br>").replace(/\n/g, "<br>");
            }
            RemoveEditDescription();
        });        
}
