/*
 * rating.js
 */

var Rating = {
	hash : '',
	enabled  : '',

	user_rate : -1,
	current_rate : 0,

	action : '/videos/vote/', // TODO levantarlo por configuracion
	form_id_dom  : 'rating',
	radio_id_dom : 'video_rating',

	createHTML : function() {
						$('#'+Rating.form_id_dom).html(
							['<input type="radio" class="star" name="video_rating" value="1" id="video_rating_1" alt="logueado papa" />',
							 '<input type="radio" class="star" name="video_rating" value="2" id="video_rating_2" />',
							 '<input type="radio" class="star" name="video_rating" value="3" id="video_rating_3" />',
							 '<input type="radio" class="star" name="video_rating" value="4" id="video_rating_4" />',
							 '<input type="radio" class="star" name="video_rating" value="5" id="video_rating_5" />'
							].join('')
						);
					},

	set_current : function(value) { $('#'+Rating.radio_id_dom+'_'+value).attr('checked', 'checked'); },

	disable : function() { $('#'+Rating.form_id_dom+' :input[type=radio]').rating('readOnly',true);  },

	submit : function() { $.post( Rating.action, {'hash':Rating.hash,'vote':Rating.user_rate}, Rating.callback ); },

	vote : function(value) {
								if ( Rating.enabled && value > 0 )
								{
									Rating.user_rate = value;
									Rating.submit();
									Rating.disable();
								}
							},

	callback : function(data) { alert('voto registrado: '+Rating.user_rate ); },

	initialize : function(param) {
					if ( param )
					{
						Rating.hash = param.hash;
						Rating.current_rate = param.video_rate || -1;
						Rating.enabled = param.enable_rate;
					}
					// TODO ver xq no funciona el HTML desde el template cuando no se usa createHTML()
					Rating.createHTML();
					Rating.set_current( Rating.current_rate );
					$('#'+Rating.form_id_dom+' :input[type=radio]').rating( { callback: function(value, link) { Rating.vote(value) } } );
					if ( ! Rating.enabled ) { Rating.disable(); }
				}
}
