/*
 * 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
 * @copyright 2008 Timnhanh.com
 * @param string DIV ID
 * @param string Option "full" or "half" star rating
 * @return int 'voting'

Usage: $('#divID').rating('divID', "option"); 
									option: full/half
Arguments
divID : required
option:		full (Full star)
			half (Half star)
			
History: 
20080604: update current mark, still not finish for all case
 */

var voting = 0;

jQuery.fn.harating = function(divID, option, mark) {
	
	var settings = {
    divID : divID,
	fullHalf : option,
	mark : mark
	};

	var classStar = "star";
	var starP;
	
	// show current mark
	$('#'+divID).append('<div id="rating_5star_cnt"></div>');
	var cnt_mark_01 = 11*mark;
	$('#rating_5star_cnt').css('width',cnt_mark_01);	
	//document.getElementById('rating_5star_cnt').style.width=cnt_mark_01+'px';
	
	/*var cnt_starOn = Math.round(mark/2);
	var cnt_starHalf = mark % 2;
	if (cnt_starHalf==1) cnt_starOn--;
	for (i=0; i<cnt_starOn; i++){
		$('#rating_5star_cnt').append('<div class="star_on star"></div>');		
	}
	if (cnt_starHalf==1){
		$('#rating_5star_cnt').append('<div class="star_on_left star"></div>');
	}*/
	
	// show layer voting
	$('#rating_5star_cnt').append('<div id="rating_5star_on"></div>');
	$('#rating_5star_on').append('<div id="rating_5star_voting"></div>');
	
	switch (option){
		case "half":
			var j=0;			
			for (var i=1; i<11; i++)
			{				
				$('#rating_5star_voting').append('<img class="star_'+option+'" onclick="TNLibHARating(\'half\');" src="images/graphics/blank.gif" width="11" height="22"');
			}
			
			var start_Arr = $('.'+classStar+'_'+option);
			var findStar = start_Arr.length;
			for (var i=0; i<findStar; i++){
				$(start_Arr[i]).attr('rel',j++);
			}
						
			for (var i=0; i<findStar; i++){				
				$(start_Arr[i]).mouseover(function()
				 {
					// reset
					//for (var y=0; y<findStar; y++) $(start_Arr[y]).removeClass('star_on_left').removeClass('star_on_right');
	
					// hide current mark
					//$('#rating_5star_cnt').hide();
					
					starHover = this.getAttribute('rel');
					//var startP = Math.floor(starHover / 10) * 10;
					
					var hoverStar = eval(starHover)+1;
					var rating_5star_on_R = hoverStar*11;
					var rating_5star_on_Rw = 110-rating_5star_on_R;
					$('#rating_5star_on').width(110-rating_5star_on_Rw);
					
					
					/*for (var y=startP; y<=starHover; y++){						
						var hoverStar = y+1;
						var rating_5star_on_R = hoverStar*11;
						$('#rating_5star_on').width(110-rating_5star_on_R);
						if (y%2==0){
							$(start_Arr[y]).addClass('star_on_left');
						}
						else{
							$(start_Arr[y]).addClass('star_on_right');
						}
					}*/
				});
				$(start_Arr[i]).mouseout(function()
				{			
					/*for (var y=0; y<findStar; y++){ 
						$(start_Arr[y]).removeClass('star_on_left').removeClass('star_on_right');
					}*/
					
					// show current mark
					$('#rating_5star_on').width(0);
					$('#rating_5star_cnt').show();
				});
				
				// return current mark
				/*$('#'+divID).mouseout(function()
				{			
					for (var y=0; y<mark; y++){
						if (y%2==0)	$(start_Arr[y]).addClass('star_on_left');
						else $(start_Arr[y]).addClass('star_on_right');
					}			
				});*/
			}
			
			// 20080604 show current mark			
			/*for (var y=0; y<mark; y++){
				if (y%2==0)	$(start_Arr[y]).addClass('star_on_left');
				else $(start_Arr[y]).addClass('star_on_right');
			}*/
			
		break;
		
		case "full":
			var j=0;
			for (var i=1; i<6; i++)
			{
				$('#'+divID).append('<img class="star" onclick="TNLibHARating(\'full\');" src="images/graphics/blank.gif" width="22" height="22" />');
			}			
			var start_Arr2 = $('.'+classStar);
			var findStar2 = start_Arr2.length;
			
			for (var i=0; i<findStar2; i++){
				$(start_Arr2[i]).attr('rel',j++);
			}			
			for (var i=0; i<findStar2; i++)
			{				
				$(start_Arr2[i]).mouseover(function()
				{
					starHover2 = this.getAttribute('rel');					
					var startP2 = Math.floor(starHover2 / 5) * 5;					
					for (var y=startP2; y<=starHover2; y++){
						$(start_Arr2[y]).addClass('star_on');			
					}
				});
					$(start_Arr2[i]).mouseout(function()
				{			
					for (var y=0; y<findStar2; y++){ 
						$(start_Arr2[y]).removeClass('star_on');
					}
				});
			}
		break;
	}
}


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;
	}
	
	alert(voting); //return mark
}// end function
