var XMLHttpRequestObject = new Array();
var URL = "vote.php";
function OnVote(votename, title)
{

    if (XMLHttpRequestObject == null)
    {
        XMLHttpRequestObject = new Array();
    }
    if(XMLHttpRequestObject[votename] != null)
    {
        return;
    }
    var requestObject = GetXMLHttpRequest();
    if (requestObject)
    {
        XMLHttpRequestObject[votename] = new Object();
        XMLHttpRequestObject[votename].requestObject = requestObject;
        XMLHttpRequestObject[votename].title = title;
        XMLHttpRequestObject[votename].color = new Array();
        XMLHttpRequestObject[votename].label = new Array();
        requestObject.onreadystatechange = new Function ("OnVoteProcess('" + votename + "')");
        var params = "";
        var voteChoices=document.getElementsByName(votename);
        for(var i=0; i < voteChoices.length; i++)
        {
            if(i != voteChoices.length - 1)
            params +=  voteChoices[i].value + '=' + (voteChoices[i].checked ? 1 : 0) + "&";
            else
            params +=  voteChoices[i].value + '=' + (voteChoices[i].checked ? 1 : 0);
            XMLHttpRequestObject[votename].color[i] = voteChoices[i].getAttribute('barcolor');
            XMLHttpRequestObject[votename].label[i] = voteChoices[i].getAttribute('label');
        }
        
        var url = URL + "?" + params;
        requestObject.open("GET", url, true);
        requestObject.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8" );
        requestObject.send("");
        var name = "voteDiv";
        var diviamge = document.getElementById(name);
        if(diviamge)
        {
            diviamge.innerHTML= '<div height="100px" valign="bottom"><center><img src="images/indicator.gif" /></center></div>';
        }
    }
}

function OnVoteProcess(votename)
{
    if (XMLHttpRequestObject[votename] != null && XMLHttpRequestObject[votename].requestObject && XMLHttpRequestObject[votename].requestObject.readyState == 4) 
    {
        if (XMLHttpRequestObject[votename].requestObject.status == 200) 
        {
            var result = XMLHttpRequestObject[votename].requestObject.responseText;
            if (result == "busy")
            {
                alert("The server is busy. Try again.");
                XMLHttpRequestObject[votename] = null;
            }
            else
            {
                var name = votename + "Div";
                var divContainer = document.getElementById(name);
                if (divContainer)
                {
                    divContainer.innerHTML = result;
                }
                XMLHttpRequestObject[votename] = null;
            }
        }
        else
        {
            var name = votename + "button";
            var button = document.getElementById(name);
            if (button)
            {
                button.value = "Vote"; 
                button.disabled = false;
                alert("Request failed: " + XMLHttpRequestObject[votename].requestObject.status + " status returned");
            }
        }
    }
}

function GetXMLHttpRequest() 
{
    var object = null;
    if (window.ActiveXObject) 
    {
        try
        {
            object = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
        }
        if (object == null)
        {
            try
            {
                object = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
            }
        }
    }
    else if (window.XMLHttpRequest) 
    {
        object = new XMLHttpRequest();
    }    
    if (object == null)
    {
        alert("Your browser does not support AJAX");
    }
    return object;
}