var mod_rating_v2 = {
	moving:			false,
	
	Init: function(place, cnt)
	{
		$(place).each(function(i){
			var obj = $(".scale", this);
			// вешаем обработчики событий
			obj.bind('mousemove', {scale_object: this, cnt_value: cnt}, function(e){mod_rating_v2.ScaleMousemove(e);});
			obj.bind('mouseout', {scale_object: this, cnt_value: cnt}, function(e){mod_rating_v2.ScaleMouseout(e);});
			obj.bind('click', {scale_object: this, cnt_value: cnt}, function(e){mod_rating_v2.ScaleClick(e);});
			// выставляем значение по-умолчанию
			mod_rating_v2.SetValue(this, $(".value", this).val());
		});
	},

	ScaleMousemove: function(e)
	{
		// выходим если еще выполняется другое пермещение
		if(this.moving == true)
		{
			return false;
		}
		this.moving = true;

		var value_width = Math.ceil($(".scale", e.data.scale_object).width() / e.data.cnt_value);
		var position = Math.ceil((e.pageX - $(".scale", e.data.scale_object).offset().left) / value_width);
		// если значение за пределами допустимого значение
		if ( position < 0 || position > e.data.cnt_value )
		{
			// то выходим
			this.moving = false;
			return false;
		}
		this.SetValue(e.data.scale_object, position);
		
		this.moving = false;
	},
	
	ScaleMouseout: function(e)
	{
		var position = $(".value", e.data.scale_object).val();
		this.SetValue(e.data.scale_object, position);
	},
	
	ScaleClick: function(e)
	{
		var value_width = Math.ceil($(".scale", e.data.scale_object).width() / e.data.cnt_value);
		var position = Math.ceil((e.pageX - $(".scale", e.data.scale_object).offset().left) / value_width);
		// если значение за пределами допустимого значение
		if ( position < 0 || position > e.data.cnt_value )
		{
			return false;
		}
		$(".value", e.data.scale_object).val(position);
		this.SetValue(e.data.scale_object, position);
	},
	
	SetValue: function(scale, position)
	{
		$(".scale", scale).attr('class', 'scale value'+position);
	},
	
stupidIE:null};
