function initRatings(){
    var numStars = 5;
    for (var i = 1; i <= numStars; i++) {
        var star = document.getElementById('star' + i);
        star.getElementsByTagName('li')[0].onmouseover = function(){
            changeStars(this);
        };
        star.getElementsByTagName('li')[1].onmouseover = function(){
            changeStars(this);
        };
        star.getElementsByTagName('li')[0].onmouseout = function(){
            clearStars(numStars);
        };
        star.getElementsByTagName('li')[1].onmouseout = function(){
            clearStars(numStars);
        };
        star.getElementsByTagName('li')[0].onclick = function(){
            setRatings(numStars, this);
        };
        star.getElementsByTagName('li')[1].onclick = function(){
            setRatings(numStars, this);
        };
    }
}
function setRatings(numStars, objStarHalf){

	if(cookiejar.fetch("UID") == null || cookiejar.fetch("UID") == ""){
		alert("You must be logged in to rate this.");
	}
	else{	
	    //This function sets the stars by removing all javascript actions
	    var rateValue = objStarHalf.getAttribute('ratevalue');
		var ratingForm	= document.ratingForm;
	    for (var i = 1; i <= numStars; i++) {
	        var star = document.getElementById('star' + i);
	        star.getElementsByTagName('li')[0].onmouseover = '';
	        star.getElementsByTagName('li')[1].onmouseover = '';
	        star.getElementsByTagName('li')[0].onmouseout = '';
	        star.getElementsByTagName('li')[1].onmouseout = '';
	        star.getElementsByTagName('li')[0].onclick = '';
	        star.getElementsByTagName('li')[1].onclick = '';
	    }
		ratingForm.rating.value = rateValue;
	    addRating(ratingForm, true, displayVoteMessage);
	}
}

function displayVoteMessage(){
	//Display vote message
    var container = document.getElementById('ulRateArticle');
    var newLi = document.createElement('li');
    newLi.setAttribute('id', 'vote_message');
    newLi.className = 'vote_message_display';
	if(typeof Rating.rating != "undefined"){
		newLi.innerHTML = 'Your rating of ' + Rating.rating + ' has been recorded.';
	}else{
		newLi.innerHTML = 'You have already rated this item.';
	};
    
    container.appendChild(newLi);
}

function changeStars(objStarHalf){
    //round value that was moused over down
    var intValue = parseInt(objStarHalf.getAttribute('ratevalue'));
    //highlight previous starred values in a loop
    for (var i = 1; i <= intValue; i++) {
        var star = document.getElementById('star' + i);
        star.getElementsByTagName('li')[0].className = 'left_on';
        star.getElementsByTagName('li')[1].className = 'right_on';
    }
    //code to highlight the half-star if half has been selected
    //IE6 needs this only.  Go figure.
    if (intValue != parseFloat(objStarHalf.getAttribute('ratevalue'))) {
        //if the int value is different from the float value.  This will occur if the selection is a decimal e.g. 1.5
        var star = document.getElementById('star' + (intValue + 1));
        star.getElementsByTagName('li')[0].className = 'left_on';
    }
}

function clearStars(numStars){
    //clear out the stars on mouseout
    for (var i = 1; i <= numStars; i++) {
        var star = document.getElementById('star' + i);
        star.getElementsByTagName('li')[0].className = 'left';
        star.getElementsByTagName('li')[1].className = 'right';
    }
}

addLoadEvent(initRatings);

