/*
 * Star Rating function - Require jQuery 1.2+
 * Type:	FILE
 * Name: 	HARating.js
 * Date:	2008/05/21
 * @author:	Hien Nguyen [Hagin] <hiennh@von-inc.com>
 * @version:1.2.1
 * @copyright 2008 Timnhanh.com
 * @param string DIV ID
 * @param string Option "full" or "half" star rating
 * @param int Current mark
 * @return int 'voting'

Usage: $('#divID').rating('divID', 'option', '5', 'afterVote'); 

Arguments
divID : 	required
option:		'full' (Full star)
			'half' (Half star)
currentMark:	1 ~ 10
afterVote:	'true' (or null) / 'false'
			
History: 
20080604: update current mark in case half star
20080707: update show after voted, remove mouseover & click
 */

var voting = 0;

jQuery.fn.harating = function(divID, option, mark, afterVote) {
	
	var settings = {
    divID : divID,
	fullHalf : option,
	mark : mark,
	afterVote : afterVote
	};

	var classStar = "star";
	var starP;	
	if ((mark==null)||(mark<0)) mark=0;
	if (mark>10) mark=10;
	mark = Math.round(mark);
	if (afterVote == null) afterVote='';
	
	// show layer current mark
	$('#'+divID).append('<div id="rating_5star_cnt"></div>');
	var cnt_mark_01 = 11*mark;
	$('#rating_5star_cnt').width(cnt_mark_01);
	$('#rating_5star_cnt').append('<div id="rating_5star_on"></div>');	// show layer star on	
	$('#rating_5star_on').append('<div id="rating_5star_voting"></div>');	// show layer voting hover
	
	switch (option){
		case "half":
			var j=0;			
			for (var i=1; i<11; i++)
			{				
				$('#rating_5star_voting').append('<img class="star_'+option+'" src="' + HOST_STATIC + 'images/graphics/blank.gif" width="11" height="22"');
			}
			if ((afterVote == "")||(afterVote == "true")){
				$('.star_'+option).bind('click', function(){
					TNLibHARating('half');
				});
			}
			else{
				$('.star_'+option).unbind('click').css('cursor','default');
			}
			
			var start_Arr = $('.'+classStar+'_'+option);
			var findStar = start_Arr.length;
			
			for (var i=0; i<findStar; i++){
				$(start_Arr[i]).attr('rel',j++);
			}
			
			if ((afterVote == "")||(afterVote == "true")){
				for (var i=0; i<findStar; i++){				
					$(start_Arr[i]).mouseover(function()
					 {
						$('#rating_5star_cnt').width(0);			
						starHover = this.getAttribute('rel');
						var hoverStar = eval(starHover)+1;
						var rating_5star_on_R = 110-(110-(hoverStar*11));
						$('#rating_5star_on').width(rating_5star_on_R);
					});
					$(start_Arr[i]).mouseout(function()
					{					
						$('#rating_5star_cnt').css('width',cnt_mark_01);
						$('#rating_5star_on').width(0);
					});
				}
			};
		break;
		
		case "full":
			var j=0;
			for (var i=1; i<6; i++)
			{
				$('#rating_5star_voting').append('<img class="star" src="' + HOST_STATIC + 'images/graphics/blank.gif" width="22" height="22" />');
			}
			if ((afterVote == "")||(afterVote == "true")){
				$('.star').bind('click', function(){
					TNLibHARating('full');
				});
			}
			else{
				$('.star').unbind('click').css('cursor','default');
			}
			
			var start_Arr2 = $('.'+classStar);
			var findStar2 = start_Arr2.length;
			
			for (var i=0; i<findStar2; i++){
				$(start_Arr2[i]).attr('rel',j++);
			}
			
			if ((afterVote == "")||(afterVote == "true")){
				for (var i=0; i<findStar2; i++)
				{				
					$(start_Arr2[i]).mouseover(function()
					{
						$('#rating_5star_cnt').width(0);
						starHover2 = this.getAttribute('rel');
						var hoverStar2 = eval(starHover2)+1;
						var rating_5star_on_R2 = 110-(110-(hoverStar2*22));
						$('#rating_5star_on').width(rating_5star_on_R2);
					});
					$(start_Arr2[i]).mouseout(function()
					{			
						$('#rating_5star_cnt').css('width',cnt_mark_01);
						$('#rating_5star_on').width(0);
					});
				}
			}
		break;
	}
}

/*
 * Return mark after voting
 * Type:	function
 * Name:	TNLibHARating
 * @author:	Hien Ng <hiennh@von-inc.com> 
 * @param string Option "full" or "half"
 * @return int voting mark
 */
function TNLibHARating(return_opt){
	switch (return_opt)
	{
		case "half":
			if ( starHover.length>1 ) voting = starHover.substring(1);
			else voting = starHover;
			voting = eval(voting)+1;
		break;
		
		case "full":
			if ( starHover2.length>1 )
			{
				voting = eval(starHover2.substring(1));	
				if (voting > 4) voting=voting-5;
			}
			else
			{				
				voting = eval(starHover2);
				if (voting > 4) voting=voting-5;
			}
			voting = (eval(voting)+1) * 2;			
		break;
	}
	
	if (rateType)
	{
		ajax_setSongMarkAjax(intDecSongId, voting, item_type);
	}
	else
	{
		ajax_setPlaylistMarkAjax(intDecPlaylistId, voting, item_type);
	}
	
}// end function