function submitSetRating(p_div,p_alias)
{
    var gender="";
 
    var locationname="";
    var country="";
    var title="";
    var photourl="";
    ratingResult[p_alias].rateable=false;
    document.getElementById("busy_"+p_alias).innerHTML="<img src='images/smallrotate.gif'>";
    var url="http://www.spacesbattles.com/setRating.php?alias="+p_alias+"&rating="+ratingResult[p_alias].currentRating+"&gender="+gender+"&locationname="+locationname+"&country="+country+"&title="+title+"&photourl="+photourl;
    var xmlhttp=new AJAXInteraction(url, setRatingComplete, p_alias);
    xmlhttp.doGet();
}

function getRatingComplete(xmlResponse,p_target)
{
    ratingResult[p_target]=parseGetRatingXml(xmlResponse);
	displayStars(ratingResult[p_target].alias,p_target,ratingResult[p_target].rating,ratingResult[p_target].rateable);
}

//Fill in the stars on mouseover
function fillStar(p_id,p_alias)
{

    if (ratingResult[p_alias].rateable )
    {
        for (var i=1; i<6; i++)
        {
            if (i<=parseInt(p_id))
            {
                document.getElementById(p_alias+i).src="images/star1.gif";
            }
            else
            {
                document.getElementById(p_alias+i).src="images/star2.gif";
            }
        }
        ratingResult[p_alias].currentRating=p_id;
    }   
}

//Clear stars on mouseout
function emptyStar(p_id)
{
    if (ratingResult[p_id].rateable)
    {
        for (i=1; i<6; i++)
        {
            document.getElementById(p_id+i).src="images/star2.gif";
        }
        ratingResult[p_id].currentRating=0;
    }
}

function setRatingComplete(xmlResponse,p_div)
{

    var resultArray=parseSetRatingXml(xmlResponse);
           
    var vote="";
    if (resultArray.ratingsCount==1) {vote="vote";}else{vote="votes";}
    document.getElementById("busy_"+p_div).innerHTML="("+resultArray.ratingsCount+" "+vote+")";			
}

//Build a chunk of html with stars in and copy it to a div
function displayStars(p_alias,p_divId,p_rating,p_rateable)
{
        var stars="<span id=\""+p_alias+"\"";
        if (p_rateable)
        {
            stars+=" onmouseout=\"emptyStar('"+p_alias+"');\"";
	        stars+=" onclick=\"ratingSet=true;submitSetRating('"+i+"','"+p_alias+"');\"";
	    }
	    stars+=">";
	    
	    for (var i=1;i<6;i++)
	    {
	        var img="";
            if (i<=p_rating){ img="images/star3.gif";} else {img="images/star2.gif";}
            stars+="<img src='"+img+"' alt=\"rating for "+p_alias+"\"";
	        if (p_rateable)
	        {
	            stars+="onmouseover=\"fillStar('"+i+"','"+p_alias+"');\"";
	        }
	        stars+=" id=\""+p_alias+i+"\" />";
	    }
	    stars+="</span>";

	document.getElementById(p_divId).innerHTML=stars;
}


//Parse the response from getrating.php and return as array
function parseGetRatingXml(p_xmlpointer)
{
	var ratingTag=p_xmlpointer.documentElement.getElementsByTagName("rating");
	var alias=p_xmlpointer.documentElement.getElementsByTagName("alias");
    var aliasName=alias[0].firstChild.nodeValue;
	//alert(aliasName+"\n"+alias.length+" results returned");

	
	var arrayStore=new rating();
	
	arrayStore.rating=ratingTag[0].firstChild.nodeValue;		
	arrayStore.alias=aliasName;
	arrayStore.rateable=true;
	arrayStore.currentRating=arrayStore.grating;
	

	return arrayStore;
}

//Parse the response from getrating.php and return as array
function parseSetRatingXml(p_xmlpointer)
{
	var ratingsCountTag=p_xmlpointer.documentElement.getElementsByTagName("ratingsCount");
	//var alias=p_xmlpointer.documentElement.getElementsByTagName("alias");
    //var aliasName=alias[0].firstChild.nodeValue;
		
	var arrayStore=new rating();
	
	arrayStore.ratingsCount=ratingsCountTag[0].firstChild.nodeValue;		
	//arrayStore.alias=aliasName;

	return arrayStore;

}

//Event called when user clicks on stars
function submitGetRating(p_alias,p_div)
{
//alert("Submitted '"+p_alias+"' '"+p_div+"'");
    try
    {
    document.getElementById(p_alias).innerHTML="<img src='images/smallrotate.gif'>";

    var url="http://www.spacesbattles.com/getRating.php?alias="+p_alias;
   
   var xmlhttp=new AJAXInteraction(url, getRatingComplete, p_div);
   xmlhttp.doGet();
    }
    catch (e)
    {
    }
}

//Constructor for rating object which holds details of individual alias
function rating (p_alias,p_ratingsCount,p_rating,p_rateable,p_currentRating)
{
	rating.alias=p_alias;
	rating.ratingsCount=p_ratingsCount;
	rating.rating=p_rating;
    rating.rateable=p_rateable;
    rating.currentRating=p_currentRating;
}