function UpdateTextSize()
{
	var maxlength = 350;
	var el = document.getElementById('moviereviewdescription');
	
	if(el != null)
	{
		if(el.value.length > maxlength)
		{
			el.value = el.value.substring(0, maxlength);
		}
	}
}

function UpdateRating(starValue)
{
	var star = 0;
	
	for(var i=0; i < 20; i++)
	{
		var starImg = document.getElementById(i+"img");
		if((i % 2) == 0)
		{
			if(star < starValue)
				starImg.setAttribute("src", "http://www.radioactivecow.com/crazycritics/star_cl.gif");
			else
				starImg.setAttribute("src", "http://www.radioactivecow.com/crazycritics/star_nl.gif");
		}
		else
		{
			if(star < starValue)
				starImg.setAttribute("src", "http://www.radioactivecow.com/crazycritics/star_cr.gif");
			else
				starImg.setAttribute("src", "http://www.radioactivecow.com/crazycritics/star_nr.gif");
		}
		star+=0.5;
	}
}

function GetCurrentStar()
{
	var star = 0.5;
	var value = 0;
	for(var i=0; i < 20; i++)
	{
		var starImg = document.getElementById(i+"img");
		if(	starImg.src == "http://www.radioactivecow.com/crazycritics/star_cl.gif" ||
			starImg.src == "http://www.radioactivecow.com/crazycritics/star_cr.gif" )
		{
			value = star;
		}
		
		star+=0.5;
	}
	
	return value;
}

function GetConsensusCallback(jsonData)
{
	var averageDiv = document.getElementById('averageDiv');
	var consensusDiv = document.getElementById('consensusDiv');
	
	if(averageDiv != null)
	{
		var av = document.createTextNode(jsonData.ResultSet.Result[0].average+'/10');
		averageDiv.appendChild(av);	
	}
	
	if(consensusDiv != null)
	{
		var cons = document.createTextNode(jsonData.ResultSet.Result[0].consensus+'%');
		consensusDiv.appendChild(cons);
	}
}

function GetReviewsCallback(jsonData)
{
	var reviewsDiv = document.getElementById('ReviewsDiv');
	
	reviewsDiv.innerHTML = "";

	/// fill the rows
	for(var i=0; i < jsonData.ResultSet.Result.length; i++)
	{
		var reviewMain = document.createElement("div");
		var review = document.createElement("div");
		var reviewtop = document.createElement("div");
		var reviewbottom = document.createElement("div");
		var photo = document.createElement("img");
		var infoDiv = document.createElement("div");
		
		var rating = jsonData.ResultSet.Result[i].moviereviewrating;
		var face = document.createElement("img");
		var tblphoto = document.createElement("table");
		
		if(rating < 6.5)
		{
			reviewtop.style.width = "329px";
			reviewtop.style.background = "url(http://radioactivecow.com/crazycritics/red_top_bg.gif) no-repeat";
			reviewtop.style.height = "9px";
			review.style.padding = "10px";
			review.style.width= "309px";
			review.style.background = "url(http://radioactivecow.com/crazycritics/red_bg.gif)";
			reviewbottom.style.padding = "20px 0 0 0";
			reviewbottom.style.background = "url(http://radioactivecow.com/crazycritics/red_bottom_bg.gif) no-repeat";
			reviewbottom.style.height = "80px";
			reviewbottom.style.width = "329px";
			reviewbottom.style.textAlign = "left";
			face.setAttribute("src", "http://radioactivecow.com/crazycritics/neg_face.gif");
			infoDiv.style.padding = "0 10px 0 0";
			infoDiv.style.color = "#942b30";
			photo.style.cssFloat = "left";
			tblphoto.style.cssFloat = "left";
			infoDiv.style.width = "150px";
			infoDiv.style.display = "block";
		}
		else
		{
			reviewtop.style.width = "329px";
			reviewtop.style.background = "url(http://radioactivecow.com/crazycritics/blue_top_bg.gif) no-repeat";
			reviewtop.style.height = "9px";
			review.style.padding = "10px";
			review.style.width= "309px";
			review.style.background = "url(http://radioactivecow.com/crazycritics/blue_bg.gif)";
			reviewbottom.style.textAlign = "right";
			reviewbottom.style.padding = "20px 0 0 0";
			reviewbottom.style.background = "url(http://radioactivecow.com/crazycritics/blue_bottom_bg.gif) no-repeat";
			reviewbottom.style.height = "80px";
			reviewbottom.style.width = "329px";
			face.setAttribute("src", "http://radioactivecow.com/crazycritics/pos_face.gif");
			infoDiv.style.padding = "0 0 0 10px";
			infoDiv.style.color = "#5a2bc5";
			photo.style.cssFloat = "right";
			tblphoto.style.cssFloat = "right";
			infoDiv.style.textAlign = "left";
			infoDiv.style.width = "150px";
			infoDiv.style.display = "block";
		}
		
		face.style.width= "28";
		
		photo.setAttribute("src", jsonData.ResultSet.Result[i].userphotourl);
		photo.width = "48";
		photo.height = "48";

		var description = document.createElement("span");
		description.innerHTML = jsonData.ResultSet.Result[i].moviereviewdescription + " <b>Rating: "+jsonData.ResultSet.Result[i].moviereviewrating+"</b>";
		
		infoDiv.innerHTML = jsonData.ResultSet.Result[i].usermembername + " says: <br/>"+jsonData.ResultSet.Result[i].moviereviewdatetime;
		
		
		var photorow = tblphoto.insertRow(0);
		var photocell = photorow.insertCell(0);
		photocell.appendChild(photo);
		photocell.vAlign="top";
		var photocell2 = photorow.insertCell(1);
		photocell2.appendChild(infoDiv);
		
		reviewbottom.appendChild(tblphoto);
		
		var tbl = document.createElement("table");
		var row = tbl.insertRow(0);
		var cell = row.insertCell(0);
		cell.appendChild(face);
		cell.vAlign="top";
		var cell2 = row.insertCell(1);
		cell2.appendChild(description);
		
		review.appendChild(tbl);
		
		reviewMain.appendChild(reviewtop);
		reviewMain.appendChild(review);
		reviewMain.appendChild(reviewbottom);
		
		reviewMain.style.styleFloat = "left";
		reviewMain.style.cssFloat = "left";
		reviewMain.style.margin = "10px 0 10px 10px";
		reviewMain.style.width = "329px";
		reviewsDiv.appendChild(reviewMain);
		if(((i+1)%2) == 0)
		{
			var clear = document.createElement("div");
			clear.style.clear = "both";
			reviewsDiv.appendChild(clear);
		}
	}
	
	/// get the meta data
	var numberofrecords = jsonData.ResultSet.Meta[0].numberofrecords;
	var start = jsonData.ResultSet.Meta[0].start;
	var numberperpage = jsonData.ResultSet.Meta[0].numberperpage;
	
	document.getElementById("start").value = parseInt(start);
	document.getElementById("total").value = parseInt(numberofrecords);
	document.getElementById("RecordInfo").innerHTML = "Review "+(parseInt(start)+1)+"-"+(parseInt(start)+jsonData.ResultSet.Result.length) + " of "+numberofrecords;
	bObj.removeScriptTag();
}

function NextPage()
{
	var total = document.getElementById("total").value;
	
	var el = document.getElementById("PageNumberSelect");
	var numberperpage = 10;
	if(el != null)
		numberperpage = el.value;
	
	var start = document.getElementById("start").value;
	start = parseInt(start)+parseInt(numberperpage);
	if(start >= total)
		start = parseInt(total)-parseInt(numberperpage);

	if(start < 0)
		start = 0;
		
	document.getElementById("start").value = start;

	GetReviews();
}

function PrevPage()
{
	var total = document.getElementById("total").value;
	
	var el = document.getElementById("PageNumberSelect");
	var numberperpage = 10;
	if(el != null)
		numberperpage = el.value;
	
	var start = document.getElementById("start").value;
	start = parseInt(start)-parseInt(numberperpage);

	if(start < 0)
		start = 0;
		
	document.getElementById("start").value = start;
	
	GetReviews();
}

function GetConsensus()
{
	var movietitle = document.getElementById('movietitle').value;
	var req  = 'http://www.radioactivecow.com/crazycritics/controller.php?task=GET_CONSENSUS&movietitle='+movietitle;
  	bObj = new JSONscriptRequest(req);
  	bObj.buildScriptTag(); 
	bObj.addScriptTag();
}

function GetReviews()
{
  var el = document.getElementById("PageNumberSelect");
  var numberperpage = 10;
  if(el != null)
  	numberperpage = el.value;
  	
  var start = 0;
  if(document.getElementById("start") != null)
  	start = document.getElementById("start").value;

  var movietitle = document.getElementById('movietitle').value;
  
  if(start == 0)
  	document.getElementById("Previous").style.visibility = "hidden";
  else
  	document.getElementById("Previous").style.visibility = "visible";
  
  var req  = 'http://www.radioactivecow.com/crazycritics/controller.php?task=GET_REVIEWS&movietitle='+movietitle+'&start='+start+'&numberperpage='+numberperpage;

  bObj = new JSONscriptRequest(req);
  bObj.buildScriptTag(); 
  bObj.addScriptTag();
}

function AddReview(_profile)
{
	var userphotourl = _profile['photoUrl'];
	var usermembername = _profile['fullName'];
	var usermemberid = _profile['id'];
	var movietitle = document.getElementById('movietitle').value;
	var moviereviewdescription = document.getElementById('moviereviewdescription').value;
	var moviereviewrating = GetCurrentStar();

	if(	userphotourl != "" &&
		usermembername != "" &&
		usermemberid != "" &&
		movietitle != "" &&
		moviereviewdescription != "" &&
		moviereviewrating != ""
	)
	{
		var el = document.getElementById('messages');
		el.style.display = 'none';
		var req  = 'http://www.radioactivecow.com/crazycritics/controller.php?task=ADD_REVIEW&movietitle='+movietitle+'&moviereviewdescription='+moviereviewdescription+'&moviereviewrating='+moviereviewrating+'&usermemberid='+usermemberid+'&usermembername='+usermembername+'&userphotourl='+userphotourl;

		bObj = new JSONscriptRequest(req); 
		bObj.buildScriptTag(); 
		bObj.addScriptTag();
		document.getElementById("moviereviewdescription").value = "";
		var el = document.getElementById('messages');
		el.innerHTML = "Review Added";
		el.style.display = 'block';
		GetReviews();
	}
	else
	{
		var el = document.getElementById('messages');
		el.innerHTML = "All Fields are Required";
		el.style.display = 'block';
	}
}