/** 
	 * Returns element P with onclick == callback
	 **/

	var makeRating = function (e, callback) {
		var ratingStarURLs = [
			''+ url +'/pattern/main/images/star_yes.png',
			''+ url +'/pattern/main/images/star_mod.png',
			''+ url +'/pattern/main/images/star_no.png'
		];
		
		//cache :
		for (var i = 0; i < ratingStarURLs.length; i++) new Image().src = ratingStarURLs[i];
		
		
		var select = e.getElementsByTagName('select')[0];
		if (!select) return false;
		var mod = 0, val = select.value; // selected value
		
		var opts = select.getElementsByTagName('option');
		var cnt = opts.length;
		
		var img, p = document.createElement('p');
		for (var i = 0; i < cnt; i++) if (opts[i].value == val) mod = i+1; // seek
		
		var valueArray = [], textArray = [];
		for (var i = 0; i < cnt; i++) {
			valueArray[i] = opts[i].value;
			textArray[i] = opts[i].firstChild.data; // ok? moze innerHTML?
		}
		
		var getIndex = function (e) { return parseInt(e.className.substr(1)) ; } 
		var getImage = function (e) { return ratingStarURLs[(e.className.substr(0, 1) == 'n') ? 2 : 1]; }
		
		for (var i = 0; i < cnt; i++) {
			img = new Image();
			img.className = ((i < mod) ? 'y' : 'n') + i;
			img.src = ratingStarURLs[(i < mod) ? 1 : 2];
			img.title = textArray[i];
			p.appendChild(img);
		}
		p.appendChild(document.createTextNode(''));
		
		p.onclick = function (e) {
			e = e || window.event;
			var t = e.target || e.srcElement;	
			
			if (t.tagName.toLowerCase() != 'img') return ; // not an image!
			
			var vote = getIndex(t); // could be NaN/-1
			if (vote in valueArray) {
				select.value = valueArray[vote];
				if (typeof callback == 'function') callback.call(null, valueArray[vote]);
			}
		}
		p.onmouseover = function (e, m) {
			e = e || window.event;
			m = m || getIndex(e.target || e.srcElement);
			
			var ims = p.getElementsByTagName('img');
			//p.lastChild.data = (m >= 0) ? textArray[m] : '';
				
			for (var i = 0; i < ims.length; i++) 
				ims[i].src = ((i <= m) ? ratingStarURLs[0] : getImage(ims[i]));
			
		}
		p.onmouseout = function () { p.onmouseover.call(null, null, -1); } 
		return p;
	}
	
$(document).ready(function(){
	$('#il *').hide();
	try { 
        	document.getElementById('stars').appendChild(makeRating(document.getElementById('il'),rate));
	} catch (e) {}
});

function rate(i) {
	var module = 'game_rate';
	var gameId = $('#gameId').val();
	
	var rate = $.post(url + '/pattern/_modules/index.php', {gameId:gameId, rate:i, module:module}, function(data){
		
	});
	
	rate.onreadystatechange = function() {
		if(rate.readyState == 4) {
			response = rate.responseText;
			
			if(response == 'ok') {
				getInfoFromXml('g_rate_ok');
			}
			else if(response == '-1') {
				getAlertFromXml('g_rate_bad');
			}
			else if(response == '-2') {
				getAlertFromXml('g_rate_double');
			}
			else if(response == '-3') {
				getAlertFromXml('g_rate_bad');
			}
		}
	}
}

