var aktpage = 1;

(function($) {
	$.fn.ratingBar = function(settings){
		var settings = $.extend({
			currValue    : '0',
			type : 'v',
			torrent : '',
			max: 10,
			min: 0,
			padding: 11
		}, settings);
		
		return this.each(function(){
			var $this = $(this);
			var $bar = $this.find('.rBar');
			var $slider = $this.find('.rPointer');
			var slidewid = $this.width() - (settings.padding * 2);
			
			var steps = settings.max - settings.min + 1;
			var valwid = Math.floor(slidewid / steps);
			slidewid = valwid * steps;
			var slidestart = Math.floor(($this.width() - slidewid) / 2);
			var slideend = slidestart + slidewid;
			
			var curval = 0;
			
			var pos = slidestart;
			var newval = null;
			for(var a=settings.min;a<=settings.max;a++){
				newval = $('<div class="rValue"></div>').addClass('rValue' + a).text(a).width(valwid).css('left',pos + 'px');
				$bar.append(newval);
				pos += valwid;
			}
			
			$this.click(function(e){
				var offset = $this.offset();
				var x = e.pageX - (offset.left);
				if(x >= slidestart && x <= slideend && curval >= settings.min && curval <= settings.max){
					rate(curval);
				}
			});
			
			$this.mouseleave(function(e){
				slidertonum(settings.currValue);
			});
			
			$this.mousemove(function(e){
				var offset = $this.offset();
				var x = e.pageX - (offset.left);
				if(x >= slidestart && x <= slideend){
					var elnum = Math.round(steps / slidewid * (x - slidestart)) + 1;
					if(elnum > steps){ elnum = steps; }
					slidertopos(elnum);
					curval = settings.min + (elnum - 1);
				}
			});
			
			function slidertonum(num){
				if(num > -1){
					slidertopos(parseInt(num) + parseInt(settings.min) + 1);
				}else{
					slidertopos(-1);
				}
			}
			
			function slidertopos(num){
				if(num > -1){
					var ppos = num - 1 + settings.min;
					$this.find('.rValue').removeClass('highlighted').css('z-index',200).show();
					//$this.find('.rValue' + (ppos - 1)).hide();
					//$this.find('.rValue' + (ppos + 1)).hide();
					$this.find('.rValue' + ppos).addClass('highlighted').css('z-index',220);
					var elpos = slidestart + (num * valwid) - Math.round(valwid / 2) - Math.round($slider.width() / 2);
					$slider.css('left',elpos + 'px').css('z-index',210).show();
				}else{
					$this.find('.rValue').removeClass('highlighted').css('z-index',200).show();
					$slider.hide();
				}
			}
			
			function rate(val){
				$bar.hide();
				$this.find('.rLoader').show();
				$q.post(pageroot + "/ajax/vote.php",
						{ 
							value: val,
							torrent: settings.torrent,
							type: settings.type
						},
						function(ret){
							var state = $q('msg',ret).attr('state');
							var msg = unescape($q('msg',ret).text());
							if (state == "1"){
								settings.currValue = $q('msg',ret).attr('newvote');
							}
							$this.find('.rLoader').hide();
							$bar.show();
							slidertonum(settings.currValue);
							alert(msg);
						}
				);
			}
			
			slidertonum(settings.currValue);
		});
	}
})(jQuery);

$q(document).ready(function(){
	initsubbox();
	//initcomments();
	initusermenu();
	//initrating();
});

function initsubbox(){
	$q('.subBoxIcon').click(function(){
		if ($q(this).attr('class').indexOf('opened', 0) >= 0){
			$q(this).parent().parent().find('.subBoxContent').slideUp('fast');
			$q(this).removeClass('opened');
			$q(this).addClass('closed');
		}else{
			$q(this).parent().parent().find('.subBoxContent').slideDown('fast');
			$q(this).removeClass('closed');
			$q(this).addClass('opened');
		}
	});
}

function initrating(){
	$q('#videoRater').ratingBar({currValue: currentRatingV, type: 'v', torrent: torrentid});
	$q('#audioRater').ratingBar({currValue: currentRatingA, type: 'a', torrent: torrentid});
}

function initcomments(){
	loadcomments(torrentid,aktpage);
	$q('#btnSaveComment').click(function(){
		$q(this).hide();
		$q('#lblCommenterror').hide();
		$q('#lblCommentmsg').hide();
		var text = $q('#txtComment').val();
		$q.post(pageroot + "/ajax/writecomment.php",
			{ 
				comment: text,
				torrentid: torrentid
			},
			function(ret){
				var state = $q('msg',ret).attr('state');
				var msg = unescape($q('msg',ret).text());
				$q('.vVideo .tVoteLoader').hide();
				if (state == "1"){
					$q('#lblCommentmsg').text(msg);
					$q('#lblCommentmsg').fadeIn('fast');
					$q('#txtComment').val('');
					aktpage = 1;
					loadcomments(torrentid,aktpage);
				}else{
					$q('#lblCommenterror').text(msg);
					$q('#lblCommenterror').fadeIn('fast');
				}
				$q('#btnSaveComment').show();
			}
		);
	});
}
function loadcomments(torrentid,page){
	var commenturl = pageroot + "/comments/" + torrentid + "/" + page + "&" + Math.random();
	$q.get(commenturl,null,
			function(data){
				$q('#commentsbox').html(data);
			}
		);
}
function gotoPage(newpage){
	aktpage = newpage;
	loadcomments(torrentid,newpage);
}

function initusermenu(){
	$q('#btnUsermenu').click(function(){
		$q('#boxUsermenu').slideDown('fast');
		$q.post(pageroot + "/ajax/detailsusermenu.php", 
			{ 
				torrentid: torrentid
			},
			function(data){
				$q('#boxUsermenu .boxContent').html(data);
			}
		);
	});
}