function submitRating(contentId, path, rating) {

    //submit via xmlhttprequest so we dont hold things up

    var page_request = getRequest();

     page_request.onreadystatechange=function(){

      updatePageForRatings(page_request, path, contentId, rating);

    }

    var url = "/rateContent.do?contentId="+contentId+"&path="+path+"&rating="+ rating;

    page_request.open("POST",url,true);

    page_request.send(null);

}

function getRequest(){

    var request = false;

    if (window.XMLHttpRequest) // if Mozilla, Safari etc

        request = new XMLHttpRequest();

    else if (window.ActiveXObject){ // if IE

        try {

            request = new ActiveXObject("Msxml2.XMLHTTP");

        }

        catch (e){

            try{

                request = new ActiveXObject("Microsoft.XMLHTTP");

            }

            catch (e){}

        }

    }

    else

        return false;



    return request;

}




function updatePageForRatings(request, path, contentId, rating) {

   if (request.readyState == 4 && (request.status==200 || window.location.href.indexOf("http")==-1) ){

        var ratingInfo = eval('(' + request.responseText + ')');



        var userRating;

        if (path != ''){

            userRating =  document.getElementsByName("rating" + path);

        } else {

            userRating =  document.getElementsByName("rating" + contentId);

        }

        for (var j = 0; j < userRating.length; j++){

          userRating [j].className="force-" + rating + "-star";

        }

        var aveRatings = document.getElementsByName("aveRating");

        for (var i = 0; i < aveRatings.length; i++){

          var aveRating = (ratingInfo.aveRating/ 5) * 100;

          aveRatings[i].style.width= aveRating + '%';

        }

       var numRatings = document.getElementsByName("numRating");

       for (var k = 0; k < numRatings.length; k++){

          numRatings[k].innerHTML=ratingInfo.numberOfRatings;

       }

    }

}
 
