var doRating = function(rate, addevents, options) {
    
    var options = $merge({
        background: '#fff',
        colourBase: '#f4edaf',
        colourTarget: '#f9e526',
        maxStars: 10,
		imgurls:'',
        starWidth: 24,
        starHeight: 22, 
        starSpacing: 0, 
        imageURL: "/images/star.png",
        tipPadding: 8, 
        tipSize: "12px",
        tipShown: false,
        border: "1px solid #ffffff",
        clickEvent: $empty()
    }, options);
    
    var ratinger = new Element("div", {
        styles: {
            height: options.starHeight,
            width: (options.starWidth + options.starSpacing + 2) * options.maxStars,
            "margin-top": 4,
            float: "left"
        }
    });

    for (ii = 1; ii <= options.maxStars; ++ii) {
        var bgc = options.background, percent = ((ii / options.maxStars) *100).round(), targetgbc = new Color(options.colourBase).mix(options.colourTarget, percent);
        new Element("div", {
            "class": (addevents) ? "cur rating"+options.targetObject.id : "rating"+options.targetObject.id,
            "data-index": ii,
            id: "v"+ii,
			"title": "Ocjena "+ii,
            "data-colour": targetgbc,
            styles: {
                border: options.border,
                height: options.starHeight,
                width: options.starWidth,
                "margin-right": options.starSpacing,
                float: "left",
                /*"background-color": bgc,*/
                "background-image": "url("+options.imgurls+"/star0.png)",
                "background-repeat": "no-repeat",
				"cursor": "pointer",
                "background-position": "center center"
            }
        }).inject(ratinger);
    }
    
    
    ratinger.inject(options.targetObject.empty());
    
    if (rate != 0 && options.tipShown) {
        new Element("div", {
            html: (rate + " / " + options.maxStars),
            styles: {
                float: "left",
                "font-size": options.tipSize,
                padding: options.tipPadding,
                "padding-bottom": 0
            }
        }).inject(options.targetObject);
    }

    $$(".rating"+options.targetObject.id).each(function(el, i) {
        if (i < Math.round(rate)) {
            el.setStyle("background-image", "url("+options.imgurls+"/star2.png)");
        }
        else {
            el.addClass("bnw"); // in case we ever want to refrence them by class.
        }

        if (addevents)
            el.addEvents({
                mouseenter: function() {
                	$$(".rating"+options.targetObject.id).each(function(plains, i) {
                       // plains.setStyle("background-color", (i < el.get("data-index")) ? "rgb("+plains.get("data-colour") +")" : bgc);
				plains.setStyle("background-image", (i < el.get("data-index")) ? "url("+options.imgurls+"/star1.png)" : "url("+options.imgurls+"/star0.png)");		
                    });
                },
                mouseleave: function() {
                    el.setStyles({
                        "border": options.border
                    });
                    $$(".rating"+options.targetObject.id).each(function(plains, i) {
                        //plains.setStyle("background-color", (i < rate) ? "rgb("+plains.get("data-colour") +")" : bgc);
				plains.setStyle("background-image", (i < rate) ? "url("+options.imgurls+"/star2.png)" : "url("+options.imgurls+"/star0.png)");		
                    });
                },
                click: function() {
                    options.targetObject.set("data-value", el.get("data-index"));
                    // we can have a pre-defined click event that sends selected value to a function
                    // for example. an ajax call to save the rating.
                    if ($type(options.clickEvent) == "function")
                        options.clickEvent.run({
                            ratingID: options.targetObject.get("id"), 
                            newRating: options.targetObject.get("data-value")
                        });
                    
                        
                	doRating(el.get("data-index"), false, options);
                }
            }); 

    });
} 
   function glasovanje(idslike, bodovi)
	{
	window.addEvent("domready", function() {
    doRating(bodovi, true, {
        targetObject: $(idslike),
        maxStars: 5,
		imgurls: "ps_web/ps_images",
        tipShown: false,
        starWidth: 15, 
        border: 0,
        starSpacing: 1,
        starHeight: 15,
        clickEvent: function(ratingOptions) { 
            new Request({
                url: "ps_web/ps_slideshow/ajax_update.php",
                method: "post",
                onComplete: function(respone) {
					$("stanje_ocjene").empty();
					new Element("div", {
					html: (respone)
								}).inject($("stanje_ocjene"));
                }
            }).send("ucitaj=glasovanje&idslike="+idslike+"&rating="+ratingOptions.newRating);
        }
    });
});
}
