// JavaScript Document
//learned from 'Creating an AJAX Rating Widget'

//the ajax code


var NUMBER_OF_STARS = 6;

function init_rating(rating_klasse)
{
    var ratings = document.getElementsByTagName('div');
    for (var i = 0; i < ratings.length; i++)
    {
        if (ratings[i].className != rating_klasse)
            continue;
            
        var rating = ratings[i].firstChild.nodeValue;
        ratings[i].removeChild(ratings[i].firstChild);
        if (rating > NUMBER_OF_STARS || rating < 0)
            continue;
        for (var j = 0; j < NUMBER_OF_STARS; j++)
        {
            var star = document.createElement('img');
            if (rating >= 1)
            {
                star.setAttribute('src', 'img/stars/rating_on.png');
                star.className = 'on';
                rating--;
            }
            else if(rating >= 0.5)
            {
                star.setAttribute('src', 'img/stars/rating_half.png');
                star.className = 'half';
                rating = 0;
            }
            else
            {
                star.setAttribute('src', 'img/stars/rating_off.png');
                star.className = 'off';
            }
            var widgetId = ratings[i].getAttribute('id').substr(7);
            star.setAttribute('id', 'star_'+widgetId+'_'+j);
            star.onmouseover = new Function("evt", "displayHover("+widgetId+", "+j+");");
            star.onmouseout = new Function("evt", "displayNormal("+widgetId+", "+j+");");
            ratings[i].appendChild(star);
        } 
    }
}


function displayHover(ratingId, star)
{
    for (var i = 0; i <= star; i++)
    {
        var starElement = document.getElementById('star_'+ratingId+'_'+i)
        starElement.setAttribute('src', 'img/stars/rating_over.png');
    }
}



function displayNormal(ratingId, star)
{
    for (var i = 0; i <= star; i++)
    {
        var status = document.getElementById('star_'+ratingId+'_'+i).className;
        var starElement = document.getElementById('star_'+ratingId+'_'+i);
        starElement.setAttribute('src', 'img/stars/rating_'+status+'.png');
    }
}







//the mootools code
function submitRating(evt)
{
    var tmp = new Event(evt).target.getAttribute('id').substr(5);
    var widgetId = tmp.substr(0, tmp.indexOf('_'));
    var starNbr = tmp.substr(tmp.indexOf('_')+1);
	var rating_klasse = evt.target.parentNode.getAttribute('class');
    var queryString = Object.toQueryString({'ratingID': widgetId, 'value': starNbr, 'klasse': rating_klasse});
    var myAjax = new Ajax('./rating_script.php?'+queryString, {
        method: 'get',
        onComplete: function(result)
            {
                alert(result);
            }
        }).request();
}


function mooInit_krit()
{
    init_rating('rating_kritik');
	$$(".rating_kritik").getChildren().each(function(star) {
	    star.addEvent('click', submitRating);
    });
	
}

function mooInit_film()
{
    init_rating('rating_film');
	$$(".rating_film").getChildren().each(function(star) {
	    star.addEvent('click', submitRating);
    });
	
}

//window.addEvent('domready', mooInit);
/*window.onDomReady(mooInit);*/




