function SendArticle(elem, news_id){

    if(MAP.isset("SendArticleActive")){

        alert("Work in progress");

    }else{

        MAP.set("SendArticleActive","true");
        
        elem.src = "img/busy.gif";
        MAP.set("elem",elem);
        
        if(window.XMLHttpRequest){

            /*
                If Opera, IE7, Mozilla, Safari, etc: Use native object.
            */
            var EmailXMLHttpRequest = new XMLHttpRequest();
            MAP.set("EmailXMLHttpRequest",EmailXMLHttpRequest);
            
        }else{

            if(window.ActiveXObject){

                /*
                    Use the ActiveX control for IE5.x and IE6.
                */
                var EmailXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                MAP.set("EmailXMLHttpRequest",EmailXMLHttpRequest);
                
            }

        }
        
        /*
            Lets create a timestamp, so "inferior" browsers don't cache
            the request URL.
            This timestamp must be appended to the URL. It has no effect serverside.
        */
        var date = new Date();
        var timestamp = date.getTime();

        EmailXMLHttpRequest.open("POST","engines/email.php?stamp=" + timestamp,true);

        EmailXMLHttpRequest.onreadystatechange = EmailStateChange;
        
        EmailXMLHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

        /*
            The basic URL and querystring to be used by the NewsHeadlineXMLHttpRequest object.
        */
        var QueryString = "news_id=" + news_id;
        EmailXMLHttpRequest.send(QueryString);

    }

}

function EmailStateChange(){
    
    var EmailXMLHttpRequest = MAP.get("EmailXMLHttpRequest");
    
    /*
        Container for the returned data.
    */
    var EmailData = null;

    if(EmailXMLHttpRequest.readyState == 4){
            
        if(EmailXMLHttpRequest.status == 200){

            var EmailData = EmailXMLHttpRequest.responseText;
            InformUser(EmailData);

        }else{

            /*
                Serverside script failed for some reason. Alert the user.
            */
            alert("An error occurred on the server. Please try again.");
            MAP.unset("SendArticleActive");

        }

    }

}

function InformUser(EmailData){

    var elem = MAP.get("elem");
    
    elem.src = "img/mail.png";
    MAP.unset("SendArticleActive");
    
    if(EmailData == "gtg"){

        alert("The newsitem was successfully sent to your friend(s).");
        
    }else if(EmailData == "nofriends"){

        location.href = "index.php?page=myaccount&sub=friends";

    }else if(EmailData == "smtpfail"){

        alert("The newsitem could not be sent to one or more of your friends.");

    }else if(EmailData == "updatefail"){

        alert("The newsitem could not be sent to your friend(s) due to a database error.");

    }else if(EmailData == "nonews"){

        alert("The newsitem you're trying to send does not exist.");

    }else{

        alert("Some unknown error occurred. Please try again.");

    }

}
