jQuery.fn.rating = function(){
    return this.each(function(){
		var _el = $(this);
		var form;
    	form = $('#videoRating').find('form');
		var n = form.find("select option").length;
		storeRateClass(n);
		var i=1;
		form.find("select option").each(function(){
			if (!$(this).attr('value')) return;
			var _a = $(document.createElement('a'));
			_a.data('index', i);
			_a.attr('class', 'ratingStar');
			_a.attr('href', '#');
			_a.attr('title', $(this).text());
			_a.width(100/(n-1) + '%');
			_el.append(_a);
			_a.hover(function(){
				clearRateClass(n);
				_el.addClass('rating_' + $(this).data('index'));
			}, function () {
				clearRateClass(n);
				_el.addClass('rating_' + _el.data('rating'));
			});
			_a.click(function () {
				var i = $(this).data('index');
				var _o = form.find('select option[value="' + i + '"]');
				$(_o).attr('selected', 'selected');
				form.submit();
				return false;
			});
			i++;
        });
		form.hide();
		
		function storeRateClass (n) {
			for(var i=0;i<n;i++) {
				if (_el.hasClass('rating_'+i)) {
					_el.data('rating', i);
					return;
				}
			}
		}
		
		function clearRateClass (n) {
			for(var i=0;i<n;i++) {
				_el.removeClass('rating_' + i);
			}
		}
    });
};

// fix ie6 background flicker problem.
if ( jQuery.browser.msie == true )
    document.execCommand('BackgroundImageCache', false, true);
