
var currentPage = 1;
var maxPage = 1;
var model;

var group;
var iconBlock;
var reviewWidth;

var currentHolder;

var numArticles;


function fixPageHeight() {
	
	var maxWinHeight = 400;
	
	$(".review").each(
		function() {
			if ($(this).height() > maxWinHeight) {
				maxWinHeight = $(this).height();
			}
		}
	);
	
	$("#reviewsPanel,#reviewsHolder").height(maxWinHeight+"px");
}
	
	
	
function showYourReviews(reviewType, _model) {
	currentHolder = "#yourOpinions";
	showReviews(reviewType, _model)
}


function showPressReviews(reviewType, _model) {
	currentHolder = "#pressOpinions";
	showReviews(reviewType, _model)
}
		
function showReviews(reviewType, _model) {
	

	model = _model;
	panelPause();									//PAUSE PANEL BEHAVIOUR
	
	var XSL;
	var XML;
	
	if (reviewType == "press") {
		group = 2;
		iconBlock = 25;
		reviewWidth = 462;
		XSL = "press-opinions-table.xsl";
		XML = "press-opinions.xml";
		
	} else if (reviewType == "public") {
		group = 3;
		iconBlock = 31;
		reviewWidth = 308;
		XSL = "public-opinions-table.xsl";
		XML = "public-opinions.xml";
	}
	
	transform("LOCAL","/cars/_assets/transforms/"+XSL,"/cars/"+model+"/_assets/data/"+XML,"",processReviews)
}

function showRecentReviews(_model) {
	
	model = _model;
	
	panelPause();									//PAUSE PANEL BEHAVIOUR
	$('#recentReviewsHolder').empty();
	
	transform("LOCAL","/cars/_assets/transforms/recent-reviews.xsl","/cars/"+model+"/_assets/data/press-opinions.xml","",processPressRecentResponse)	
	
	$('#readMorePressOpinions').attr("href", "/cars/" + model + "/pressopinions");	
	$('#readMoreUserOpinions').attr("href", "/cars/" + model + "/youropinions");

}

function processPressRecentResponse(response) {
	
	//check for duplicates
	if ( $("#secondOpinionUser").length <= 0 ) {
		var currentContent = $('#recentReviewsHolder').html();
		$('#recentReviewsHolder').html(currentContent + response);
	}
	
	transform("LOCAL","/cars/_assets/transforms/recent-reviews.xsl","/cars/"+model+"/_assets/data/public-opinions.xml","",processPublicRecentResponse)

		

}



function processPublicRecentResponse(response) {
	
	//check for duplicates
	if ( $("#secondOpinionUser").length <= 0 ) {
		var currentContent = $('#recentReviewsHolder').html();
		$('#recentReviewsHolder').html(currentContent + response);
	}

		
	panelPlay();

}


function processReviews(response) {
		
		$(currentHolder + ' #reviewsHolder').html(response);
		
		numArticles = $(currentHolder + ' .review').length;

		maxPage = numArticles;
		if (maxPage % group == 0) maxPage-=group-1;
		
		var x = 70;

		$(currentHolder + ' #reviewsSelection').css("left",x);
		
		$(currentHolder + ' #reviewsPages').append("<div id='reviewsPagesUlWrapper'><ul>");
		
		for (a=1; a<=numArticles; a++) {
			
			//$('#reviewsPages').append("<a id=\"icon" + a + "\" title=\"" + x + "\" class=\"reviewIcon\"><span class=\"iconOver\"></span><span class=\"iconLbl\">" + a + "</span></a>");
			$(currentHolder + ' #reviewsPagesUlWrapper ul').append("<li id=\"icon" + a + "\" class=\"reviewIcon fixPng\" fromLeft=\""+x+"\">" + a + "</li>");
			$(currentHolder + ' #icon'+a).css("left",x);
			
			if (a % group == 0) {
				x+=10;
			}
			
			x += iconBlock;
			
		}
		$(currentHolder + ' #reviewsPages').append("</ul></div>");
		
		if (numArticles % group != 0) x += 10;
		
		$(currentHolder + ' #reviewsNext').css("left",x);
		
		$(currentHolder + ' .iconOver').hide();
		


		
		gotoPage(1);
		
		$(currentHolder + ' .reviewIcon').click(function() {
			//currentPage=$(this).val();
			var newPage = ($(this).text());
			newPage -= ((newPage-1) % group);
			gotoPage(Number(newPage));
			
		});
		
		$(currentHolder + ' #reviewsNext').click(function() {
			gotoPage(currentPage+group);return false;
		});
			
		$(currentHolder + ' #reviewsPrev').click(function() {
			gotoPage(currentPage-group);return false;
		});	
		
		fixPageHeight();
		panelPlay();
		
	}
	
	
	function gotoPage(p) {

		if ((p>=1) && (p<=maxPage)) {
			
			var howManyReviews = $(currentHolder + " .reviewIcon").size();
			var remainingPages = (howManyReviews % group);
			currentPage = p; 
			
			//PREV BUTTON
			if (currentPage==1) {
				$(currentHolder + ' #reviewsPrev').fadeTo("slow", 0.2);
				$(currentHolder + " .callToActionRev").addClass("callToActionRevNoHover");
			} else {
				$(currentHolder + ' #reviewsPrev').fadeTo("slow", 1);
				$(currentHolder + " .callToActionRev").removeClass("callToActionRevNoHover");
			}
			
			//NEXT BUTTON
			if (currentPage >= (howManyReviews - remainingPages) || currentPage == maxPage) {
				$(currentHolder + " #reviewsNext").fadeTo("slow", 0.2);
				$(currentHolder + " #reviewsNext").addClass("callToActionNoHover");
			} else {
				$(currentHolder + " #reviewsNext").fadeTo("slow", 1);
				$(currentHolder + " #reviewsNext").removeClass("callToActionNoHover");
			}
			
			$(".reviewIcon").removeClass("reviewIconOver");
			for (i=0;i<group;i++) {
				$(currentHolder + " #icon"+(p+i)).addClass("reviewIconOver");
			}
			
			
			var left = $(currentHolder + " #icon"+currentPage).attr("fromLeft")-1;
			
			//CALCULATION
			
			if (remainingPages != 0) {
				if (currentPage >= (howManyReviews - remainingPages)) {
					var howWide = (iconBlock * remainingPages);
					$(currentHolder + " #reviewsSelection").animate({"left":left, "width":howWide},"slow");
				} else {
					var howWide = (iconBlock * group);
					$(currentHolder + " #reviewsSelection").animate({"left":left, "width":howWide},"slow");
				}
			} else {
				$(currentHolder + " #reviewsSelection").animate({"left":left},"slow");
			}
			
			$(currentHolder + " #reviewsPanel").animate({"left":-(currentPage-1)*reviewWidth},"slow");

			
		}
	}
		
	
