// This is the first thing we add ------------------------------------------
$(document).ready(function() {
	
	var userIp = "";
	$.getJSON("http://jsonip.appspot.com?callback=?",function(data){
		userIp = data.ip;
	});
	
	set_votes($("#rateBlock"),$("#rateBlock").attr('rate'));

	$('.ratings_stars').hover(
		function() {
			var component1 	= $("#rateBlock").attr('component');
		    var itemID1	 	= $("#rateBlock").attr('itemId');
			var cookie 		= userIp + "/" + component1 + "/" + itemID1;
			if (getCookie(cookie) !="rated") {
				$(this).prevAll().andSelf().addClass('ratings_over');
		        $(this).nextAll().removeClass('ratings_vote');
		        $("#rateBlock").css('cursor','pointer');
			} else {
				$("#rateBlock").css('cursor','default');
			}
        },

        function() {
            $(this).prevAll().andSelf().removeClass('ratings_over');
            set_votes($(this).parent(),$(this).parent().attr('rate'));
        }
        
    );
    
    $('.ratings_stars').bind('click', function() {
        var star 		= this;
        var widget 		= $(this).parent();
        
        var domain 		= $("#rateBlock").attr('domain');
        var component 	= $("#rateBlock").attr('component');
        var itemID	 	= $("#rateBlock").attr('itemId');
        var cook 		= userIp + "/" + component + "/" + itemID;
        if (getCookie(cook) == "rated") {
        	return false;
        } else {
        	setCookie(cook,"rated");
        	$.ajax({
            	type: "POST",
            	url: domain+"?component=rating",
            	data:  $("#rateBlock").attr('arrGet') + "&value="+$(this).attr('value'),
            	success: function(data){
        			$(".totalrate").text(  parseInt($(".totalrate").html()) + 1);
        			var data = eval('(' + data + ')');
            		$.each(data, function(i, rate) {
            			if (rate.value) {
            				$(widget).find('.star_' + rate.value).prevAll().andSelf().addClass('ratings_vote');
                	        $(widget).find('.star_' + rate.value).nextAll().removeClass('ratings_vote');
                	        $(widget).attr('rate',rate.value);
            			}
    	            });
            	}
            });       	
        }
        
    });
});

function set_votes(widget,avg) {
    $(widget).find('.star_' + avg).prevAll().andSelf().addClass('ratings_vote');
    $(widget).find('.star_' + avg).nextAll().removeClass('ratings_vote');
}

function setCookie (name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

