/* makes the server request to process friend request or add */
function makeRequest(friend, action, id) {  
    if (action == "remove") {
        if (!confirm("Are you sure you want to remove this Friend?")) {
            return;
        }
    }

    var url = "FriendRequest.ashx?friend=" + friend + "&action=" + action + "&id=" + id;
    var myAjax = new Ajax.Request(url,
                                 { method: "GET",
                                   onSuccess: friendRequestCallback
                                   });
}

/* callback after server request to send friend request or add friend */
function friendRequestCallback(request) {  
    var responseXml = request.responseXML;   
    var message = responseXml.getElementsByTagName("value")[0];
    var elementId = responseXml.getElementsByTagName("id")[0];
    
    var messageText = getElementText(message);
    var elementIdText = getElementText(elementId);
    var element = document.getElementById(elementIdText);
    writeStatus(messageText, element);
}

/*writes out the appropriate message on client after ajax call*/
function writeStatus(message,
                     swapElement) {
    var div = newElement("div", "friendInfo");
    div.appendChild(document.createTextNode(message));
    swapElement.parentNode.replaceChild(div, swapElement);   
}

function getElementText(element) {
    var text = "";
    for (var node = element.firstChild; node; node = node.nextSibling) {
        if (node.nodeType == 3) {
            text += node.nodeValue;
        } else if (node.nodeType == 1) {
            text += getElementText(node);
        }
    }
    return text;
}

function newElement(elementName, className) {
    var element = document.createElement(elementName);
    if (className) {
        element.className = className;
    }
    return element;
}


