// JavaScript Document

// global values needed for ranking
var origItemRating = 0;
var voteResponseMessage = "";
var itemRated = false;
var ratingVideo = false;


function updateStars(rating) {
	var wholestar = "/ftweb/images/ft/star_sm.gif";
	var halfstar = "/ftweb/images/ft/star_sm_half.gif";	
	var nostar = "/ftweb/images/ft/star_sm_bg.gif";	
	
	var s1 = document.getElementById("star1");
	var s2 = document.getElementById("star2");
	var s3 = document.getElementById("star3");
	var s4 = document.getElementById("star4");
	var s5 = document.getElementById("star5");	
	
	if (rating == 5) {		
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = wholestar;
		s4.src = wholestar;
		s5.src = wholestar;
		return;
	}
	
	if (rating >= 4.5) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = wholestar;
		s4.src = wholestar;
		s5.src = halfstar;
		return;
	}

	if (rating >= 4.0) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = wholestar;
		s4.src = wholestar;
		s5.src = nostar;
		return;
	}

	if (rating >= 3.5) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = wholestar;
		s4.src = halfstar;
		s5.src = nostar;
		return;
	}

	if (rating >= 3.0) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = wholestar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}

	if (rating >= 2.5) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = halfstar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}

	if (rating >= 2.0) {
		s1.src = wholestar;
		s2.src = wholestar;
		s3.src = nostar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}

	if (rating >= 1.5) {
		s1.src = wholestar;
		s2.src = halfstar;
		s3.src = nostar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}
	if (rating >= 1.0) {
		s1.src = wholestar;
		s2.src = nostar;
		s3.src = nostar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}

	if (rating == 0) {
		s1.src = nostar;
		s2.src = nostar;
		s3.src = nostar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}


	if (rating > 0) {
		s1.src = halfstar;
		s2.src = nostar;
		s3.src = nostar;
		s4.src = nostar;
		s5.src = nostar;
		return;
	}

	
}

function updateStarsV2(rating) {
	var wholestar = "star_full";
	var halfstar = "star_half";	
	var nostar = "star_none";	
	
	var s1 = document.getElementById("star1");
	var s2 = document.getElementById("star2");
	var s3 = document.getElementById("star3");
	var s4 = document.getElementById("star4");
	var s5 = document.getElementById("star5");	
	
	if (rating == 5) {		
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = wholestar;
		s4.className = wholestar;
		s5.className = wholestar;
		return;
	}
	
	if (rating >= 4.5) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = wholestar;
		s4.className = wholestar;
		s5.className = halfstar;
		return;
	}

	if (rating >= 4.0) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = wholestar;
		s4.className = wholestar;
		s5.className = nostar;
		return;
	}

	if (rating >= 3.5) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = wholestar;
		s4.className = halfstar;
		s5.className = nostar;
		return;
	}

	if (rating >= 3.0) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = wholestar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}

	if (rating >= 2.5) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = halfstar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}

	if (rating >= 2.0) {
		s1.className = wholestar;
		s2.className = wholestar;
		s3.className = nostar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}

	if (rating >= 1.5) {
		s1.className = wholestar;
		s2.className = halfstar;
		s3.className = nostar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}
	if (rating >= 1.0) {
		s1.className = wholestar;
		s2.className = nostar;
		s3.className = nostar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}

	if (rating == 0) {
		s1.className = nostar;
		s2.className = nostar;
		s3.className = nostar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}


	if (rating > 0) {
		s1.className = halfstar;
		s2.className = nostar;
		s3.className = nostar;
		s4.className = nostar;
		s5.className = nostar;
		return;
	}

	
}


function rateString(rating) {
	if (rating == 1) return("Poor");
	if (rating == 2) return("Nothing special");
	if (rating == 3) return("Worth viewing");
	if (rating == 4) return("Pretty cool");
	if (rating == 5) return("Awesome!");		
}

function ratehint(rating) {
	if (itemRated) return;
	updateStars(rating);	
	document.getElementById("ratetext").innerHTML = rateString(rating);
}

function ratehintV2(rating) {
	if (itemRated) return;
	updateStarsV2(rating);	
	document.getElementById("ratetext").innerHTML = rateString(rating);
}


function rateout() {
	if (itemRated) return;
	
	if (voteResponseMessage != "") {
  	document.getElementById("ratetext").innerHTML = voteResponseMessage;		
	} else {
		if (ratingVideo) document.getElementById("ratetext").innerHTML = "Rate this video"; else document.getElementById("ratetext").innerHTML = "Rate this photo";
	}
	updateStars(origItemRating);
}

function rateoutV2() {
	if (itemRated) return;
	
	if (voteResponseMessage != "") {
  	document.getElementById("ratetext").innerHTML = voteResponseMessage;		
	} else {
		if (ratingVideo) document.getElementById("ratetext").innerHTML = "Rate this video"; else document.getElementById("ratetext").innerHTML = "Rate this photo";
	}
	updateStarsV2(origItemRating);
}


function rateitem(pictid,rating) {
	if (!itemRated) castVote(pictid,rating,1);
}

function rateitemV2(pictid,rating) {
	if (!itemRated) castVote(pictid,rating,2);
}

var ratepv = 1;

var callbackCastVote =
{
  success:handleCastVoteSuccess,
  failure:handleCastVoteFailure
};

function castVote(pictureid,rating,pagever) {
   ratepv = pagever;
	var sUrl = '/ftweb/bin/ft.dll/photovotes?pictid=' + pictureid + '&action=castvote&rating=' + rating;
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackCastVote); 
}


var voteEvent = null;

function handleCastVoteSuccess(o) {
  var jsonTxt = o.responseText;
	var jsonObj = jsonTxt.parseJSON();
	itemRated = true;
	
	if (!jsonObj.success) {
	  alert(jsonObj.msg);
		document.getElementById("ratetext").innerHTML = "";
		return;
	} 
	
	if (jsonObj.success) {
		voteResponseMessage = jsonObj.msg;
		origItemRating = jsonObj.averageRating;
		if (ratepv == 1) updateStars(jsonObj.averageRating); else updateStarsV2(jsonObj.averageRating);
		
		document.getElementById("ratetext").innerHTML = jsonObj.msg;
		if (jsonObj.voteCount == 1) {
  		document.getElementById("ratecount").innerHTML = "(" + jsonObj.voteCount + " rating)";					
		} else {
  		document.getElementById("ratecount").innerHTML = "(" + jsonObj.voteCount + " ratings)";		
		}
		
		// event to update numbers in other objects
		if (voteEvent != null) voteEvent(jsonObj.averageRating, jsonObj.voteCount);		
	}
	
}

function handleCastVoteFailure(o) {
  alert(o.responseText);
}

var reportInappropriateCallback =
{
  success:handleInappropriateSuccess,
  failure:handleInappropriateFailure
};

function reportInappropriate(pictid) {
  var sUrl = '/ftweb/bin/ft.dll/reportinappropriate?pictid=' + pictid;
  var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, reportInappropriateCallback);   
}

function handleInappropriateSuccess(o) {
  var response = o.responseText;
  alert(response);
}

function handleInappropriateFailure(o) {
  alert(o.responseText);
}

