// Variables
var images_url = "/img/images3/";
var ratings = new sack("zajax_rate.php");
var rate_mouseover_image = new Image();rate_mouseover_image.src = images_url + "star_yellow2.gif";

// Browsers
var is_ie = (document.all && document.getElementById);
var is_moz = (!document.all && document.getElementById);
var is_opera = (navigator.userAgent.indexOf("Opera") > -1);

var rate_max = 5;

var rate_id = 0;
var rate_rate = 0;

var rate_sending = false;
var rate_show_stars = false; // true, если надо плавно показать звезды, false если скрыть
var rate_stars_op = 100; // 100 - не прозрачные, 0 - полностью прозразные

// плавно показывает/скрывает звездочки
function rate_smooth_stars()
{
    if(is_opera) {
        rate_stars_op = (rate_show_stars) ? 100 : 0;
    }
    
    if (rate_show_stars && rate_stars_op >= 100)
    { // звезды полностью показались
        rate_stars_op = 100;
        rate_sending = false;
        return;
    }
    
    if (!rate_show_stars && rate_stars_op <= 0)
    { // звезды полностью скрылись
        rate_stars_op = 0;
        rate_send_request();
        return;
    }
    
    rate_stars_op = rate_stars_op + ((rate_show_stars) ? 10 : -10);
    
    if (is_ie) {
        document.getElementById('rate_stars_' + rate_id).style.filter = 'alpha(opacity=' + rate_stars_op + ')';
    } else if(is_moz) {
        document.getElementById('rate_stars_' + rate_id).style.MozOpacity = (rate_stars_op/100);
    }
    
    setTimeout("rate_smooth_stars()", 100); 
}

// отсылает запрос с голосованием на сервер
function rate_send_request()
{
    rate_show_stars = true;
    
    ratings.reset();
	ratings.setVar("card_id", rate_id);
	ratings.setVar("rate", rate_rate);
	ratings.method = 'GET';
	ratings.element = 'rate_' + rate_id;
	ratings.onCompletion = rate_finish_request;
	ratings.runAJAX();
}

// ответ на запрос с голосованием
function rate_finish_request()
{
    var str = document.getElementById('rate_block_' + rate_id).innerHTML;
    var pos1 = str.indexOf("title=", 0);
    if (pos1 > 0)
    {
        var pos2 = str.indexOf('"', pos1 + 8);
        if (pos2 > 0)
        {
            var str2 = str.substr(0, pos1 + 7) + "Ваш рейтинг этого шоу " + rate_rate + str.substr(pos2);
            document.getElementById('rate_block_' + rate_id).innerHTML = str2;
        }
    }
    
    ratings_off();
    //document.getElementById("rate_str_load_" + rate_id).style.display = 'none';
    rate_smooth_stars();
}

// начинает отсылать результат голосования на сервер
function rate_post() {	
    if (rate_sending) return;
    
    //document.getElementById("rate_str_load_" + rate_id).style.display = 'block';
	
	rate_sending = true;
	rate_show_stars = false;
	
	rate_smooth_stars();	
}

// подсвечивает звездочки под мышкой
function current_rating(id, rating)
{
    if (rate_sending) return;
    
	rate_id = id;
	rate_rate = rating;
	for(i = 1; i <= rating; i++) {
		document.images['rate_star_' + rate_id + '_' + i].src = eval("rate_mouseover_image.src");
	}
}

// перерисовывает звездочки в соответствии с текущим рейтингом
function ratings_off()
{
    var card_rate = parseFloat(document.getElementById('rate_' + rate_id).innerHTML);
    
    var rating_score = parseInt(card_rate);
    var insert_half = 0;
    
    rest = card_rate - rating_score;
    
	if (rest >= 0.8) rating_score++;
	if (rest > 0.3 && rest < 0.8) insert_half = rating_score + 1;
				
    for(i = 1; i <= rate_max; i++) {
		if(i <= rating_score) {
			document.images['rate_star_' + rate_id + '_' + i].src = images_url + 'star_red2.gif';
		} else if(i == insert_half) {
			document.images['rate_star_' + rate_id + '_' + i].src = images_url + 'star_half2.gif';
		} else {
			document.images['rate_star_' + rate_id + '_' + i].src = images_url + 'star_grey2.gif';
		}
	}
}
