function rate (id, type, ob_name) {

	rate_type = type ? type : rate_type;

	var inp = $$($_('rate_it' + id), 'input');

	var rate = 3;

	for (var i=0; i<5; i++) {
		if (inp[i].checked) {
			rate = inp[i].value;
		}
	}

	var big_rate = false;

	if (isNaN(id)) {
		id = window.foto_id;
		big_rate = true;
	}

	var l = new Req();
	l.Result = function () {
		var id = this.xml.getElementsByTagName('id')[0].firstChild.data;
		var rate = this.xml.getElementsByTagName('rate')[0].firstChild.data;

		set_after_rate (id, rate);

		if (big_rate) {
			set_after_rate ('_big', rate);
		}
	}

	l.Connect();
	l.Request(document.location.host + '/requests/rate.php', '&id='+id+'&type='+rate_type+'&rate='+rate);
}

function set_after_rate (id, mark) {
	set_rate (id, mark);
	$_('rate_it' + id).style.visibility = 'hidden';
}

function set_rate (id, mark) {
	var rate = Math.round(mark);
	var sub_star = isNaN(id) ? '_big' : '';
	var img = $$($_('rating' + id), 'img');

	for (var i=0; i<5; i++) {
		if (i + 1 <= rate)
			img[i].src = '/templates/img/star' + sub_star + '1.gif';
		else
			img[i].src = '/templates/img/star' + sub_star + '0.gif';
	}

	var tds = $$($_('rating' + id), 'td');
	tds[6].innerHTML = mark;
}

