function LoadReviews(){
		$("allreviews").innerHTML="";
		FireCallBack();
	}
	
	
	function FireCallBack(){
		var dDocName = $("hdDocName").value;
		var NumReviews = $("hNumberofReviews").value;
		var SortOrder = $("hSortOrder").value;
		var SortField = $("hSortField").value;
		var PostBackURL = $("hPostBackUrl").value;
		var Parameters = "IdcService=GET_REVIEWS_XML&dDocName=" + dDocName + "&NumberofReviews=" + NumReviews + "&SortField=" + SortField + "&SortOrder=" + SortOrder;
		$("allreviews").hide();
		new Ajax.Request(PostBackURL, {method: "post", parameters: Parameters , onComplete: BuildReviewControl});
	}

	function BuildRatingGraphic(rating,cssclass){
		var StarDiv = Builder.node("div",{className:cssclass});
		for(var starCount = 1; starCount<=5; starCount++){
			if(starCount <= rating){
				StarDiv.appendChild(Builder.node("img",{src:"/groups/aia/documents/image/icon_star_on.gif",width:"14",height:"14",alt:"star"}));
			}else{
				StarDiv.appendChild(Builder.node("img",{src:"/groups/aia/documents/image/icon_star_off.gif",width:"14",height:"14",alt:"star"}));
			}
		}
		return StarDiv;
	}
	
	function PostReview(){
		var dDocName = $("hdDocName").value;
		var ReviewTitle = $("txtReviewTitle").value;
		var Rating  = $("hRating").value;
		var Review  = $("txtReviewContent").value;
	 	var PostBackURL = $("hPostBackUrl").value;
		var Parameters = "IdcService=INSERT_REVIEW&dDocName=" + dDocName + "&ReviewTitle=" + ReviewTitle + "&Rating=" + Rating + "&Review=" + Review + "&IsSoap=1";

        // PostBackURL = PostBackURL + "?" + Parameters;
        // alert(PostBackURL);
        // alert(PostBackURL);
        // alert(Parameters);
		new Ajax.Request(PostBackURL, {method: "post", parameters: Parameters, onComplete: CompleteReviewPost});
		// new Ajax.Request(PostBackURL, {method: "post", onComplete: CompleteReviewPost});
	}
	
	function CompleteReviewPost(originalRequest){
		var ResultText = originalRequest.responseText;
		var ResultHTML;
		
		
		if(ResultText.indexOf("RedirectParams") > 0){
			LoadReviews();
		}else{
			ResultHTML = "<br><br><br><center>An error was encountered processing your review<br/>Click <a href=\"Javascript:;\" onclick=\"Javascript:LoadReviews();\">here</a> to return to reviews</center><br/><br/><br/>";
			$("allreviews").innerHTML = ResultHTML;
		}
	}
	
	function CreateReview(){
		if($("hIsLoggedIn").value == "false"){
			window.location= $("hRedirectURL").value + "?retUrl=" + window.location;
		}else{
			new Effect.Fade($("reviewControls"));
			new Effect.Fade($("readalllowertoggle"));	
			$("allreviews").innerHTML="";	
			var div = Builder.node("div",{id:"addreview"});
			div.innerHTML+="<div class=\"clearer\"></div>";
			div.innerHTML+="<br/><strong>Rating - click to set</strong><br/>";
			div.innerHTML+="<input type=\"hidden\" id=\"hRating\" name=\"hRating\" value=\"0\"/>";
			div.innerHTML+="<div id=\"starimages\"><a href=\"Javascript:;\" class=\"starclick\" onclick=\"Javascript:RatingStarClick(1);\"><img name=\"isstar\" src=\"/groups/aia/documents/image/icon_star_off.gif\" width=\"14\" height=\"14\" alt=\"star\" /></a><a href=\"Javascript:;\" class=\"starclick\" onclick=\"Javascript:RatingStarClick(2);\"><img name=\"isstar\" src=\"/groups/aia/documents/image/icon_star_off.gif\" width=\"14\" height=\"14\" alt=\"star\" /></a><a href=\"Javascript:;\" class=\"starclick\" onclick=\"Javascript:RatingStarClick(3);\"><img name=\"isstar\" src=\"/groups/aia/documents/image/icon_star_off.gif\" width=\"14\" height=\"14\" alt=\"star\" /></a><a href=\"Javascript:;\" class=\"starclick\" onclick=\"Javascript:RatingStarClick(4);\"><img name=\"isstar\" src=\"/groups/aia/documents/image/icon_star_off.gif\" width=\"14\" height=\"14\" alt=\"star\" /></a><a href=\"Javascript:;\" class=\"starclick\" onclick=\"Javascript:RatingStarClick(5);\"><img name=\"isstar\" src=\"/groups/aia/documents/image/icon_star_off.gif\" width=\"14\" height=\"14\" alt=\"star\" /></a></div>";
			div.innerHTML+="<br/><br/>";
			div.innerHTML+="<strong>Review Title</strong><br/>";
			div.innerHTML+="<input type=\"text\" id=\"txtReviewTitle\" name=\"txtReviewTitle\" class=\"ReviewTitle\" />";
			div.innerHTML+="<br/><br/>";
			div.innerHTML+="<strong>Review</strong><br/>";
			div.innerHTML+="<textarea id=\"txtReviewContent\" name=\"txtReviewContent\" class=\"ReviewContent\"></textarea><br/><br/>";
			div.innerHTML+="<a href=\"Javascript:;\" class=\"PostButton\" onclick=\"Javascript:if(ValidateReview()){PostReview();}\"><img name=\"notstar\" src=\"/groups/aia/documents/image/btn_save.gif\"/></a>&nbsp;<a href=\"Javascript:;\" class=\"PostButton\" onclick=\"Javascript:LoadReviews();\"><img name=\"notstar\" src=\"/groups/aia/documents/image/btn_cancel.gif\"/></a>";
			
			$("allreviews").appendChild(div);
			new Effect.Appear($("allreviews"),{duration:"1"});
		}
		
	}

	
	function ToggleAllReviews(){
		var Reviews = $("hNumberofReviews").value;
		var Message;
		if(Reviews==0){
			$("hNumberofReviews").value = $("hDefaultNumberofReviews").value;
			Message = "Read All Reviews";
		}else{
			$("hNumberofReviews").value = 0;
			Message = "Collapse";
		}
		$("readreviewslower").innerHTML = Message;
		$("readalluppertoggle").innerHTML = Message;
		
		LoadReviews();
	}
		
	function ChangeSort(){
		if($("sortbox").value=="Oldest"){
			$("hSortOrder").value = "asc";
		}else{
			$("hSortOrder").value = "desc";
		}
		LoadReviews();
	}
	
	function RatingStarClick(num){
		var starcount = $("hRating").value;
		if(num==1 && starcount==1){
			starcount=0;
		}else{
			starcount=num;
		}

		var Images = $("starimages").getElementsByTagName("img");
		for(var i=0;i<Images.length;i++){
			if(i<=(starcount-1)){
				Images[i].src="/groups/aia/documents/image/icon_star_on.gif";
			}else{
				Images[i].src="/groups/aia/documents/image/icon_star_off.gif";
			}
		}
		$("hRating").value = starcount;
	}

	function bldErrMsg(errTxt, field, errMsg) {
		errTxt += (errTxt=="")?"<ul><li>" + errMsg + "</li>":"<li>" + errMsg + "</li>";
		highlightField($(field));
		return errTxt;
	}

	function highlightField(field) {
		field.style.backgroundColor = "#FFFF99";
	}

	function validateResetField(field) {
		field.style.backgroundColor = "";
	}
	
	function ValidateReview(){
		var errTxt = "";
		var errMsg = "";

		if($("hRating").value==null || $("hRating").value==0){
     	errTxt = bldErrMsg(errTxt, "hRating", "Please select a rating for the review.");
		} else { validateResetField($("hRating")); }

		validateResetField($("txtReviewTitle"));

		if($("txtReviewTitle").value==null || $("txtReviewTitle").value==""){
     	errTxt = bldErrMsg(errTxt, "txtReviewTitle", "Please enter a title for the review.");
		}

		var revTitle = $("txtReviewTitle").value
		if(revTitle.length > 80) {
     	errTxt = bldErrMsg(errTxt, "txtReviewTitle", "Please keep your Review Title to less than 80 characters.");
		}
	
		document.getElementById('txtReviewContent').className = "ReviewContent";

		if($("txtReviewContent").value==null || $("txtReviewContent").value==""){
     	errMsg = "Please enter a review.";
			errTxt += (errTxt=="")?"<ul><li>" + errMsg + "</li>":"<li>" + errMsg + "</li>";
			$("txtReviewContent").className = "ReviewContentHighlight";
		}

		var revTxt = $("txtReviewContent").value
		if(revTxt.length > 1024) {
     	errMsg = "Please keep your Review to less than 1024 characters.";
			errTxt += (errTxt=="")?"<ul><li>" + errMsg + "</li>":"<li>" + errMsg + "</li>";
			document.getElementById('txtReviewContent').className = "ReviewContentHighlight";
		}

		if (errTxt != "") {
			errTxt += "</ul>";
			alert (errTxt);
			return false;
		}
		return true;
	}
	
	function BuildReviewControl(originalRequest) {
		var hasReviews = true;
		var reviewOverview;
		var Reviews;
		
		$("allreviews").innerHTML="";
		
		var Reviews = originalRequest.responseXML.getElementsByTagName("Review");
		for(var ReviewCounter = 0;ReviewCounter< Reviews.length;ReviewCounter++){
			
			var UserName 	= 	Reviews[ReviewCounter].getElementsByTagName("User")[0].firstChild.nodeValue;	
			var ReviewID 	= 	Reviews[ReviewCounter].getElementsByTagName("ReviewID")[0].firstChild.nodeValue;	
			var ReviewTitle = 	Reviews[ReviewCounter].getElementsByTagName("ReviewTitle")[0].firstChild.nodeValue;
			var Rating 		= 	Reviews[ReviewCounter].getElementsByTagName("Rating")[0].firstChild.nodeValue;
			var Review 		= 	Reviews[ReviewCounter].getElementsByTagName("ReviewContent")[0].firstChild.nodeValue;
			var InsertDate 	= 	Reviews[ReviewCounter].getElementsByTagName("InsertDate")[0].firstChild.nodeValue;								

														
			var StarDiv = BuildRatingGraphic(Rating, "");			
			var ReviewLeft = Builder.node("div",{className:"reviewLeft"});
			ReviewLeft.appendChild(StarDiv);
			
			new Insertion.Bottom(ReviewLeft,"<strong>" + ReviewTitle + "</ReviewTitle>");
			new Insertion.Bottom(ReviewLeft,"<br/>" + getLongDate(InsertDate) + "<br/>");
			new Insertion.Bottom(ReviewLeft,"<strong>Reviewer: </strong><a href=\"#\">" + UserName + "</a></ReviewTitle>");
			
			var reviewDiv = Builder.node("div",{className:"review"},[ReviewLeft]);
			var reviewRightDiv = Builder.node("div",{className:"reviewRight"});
			reviewRightDiv.innerHTML = Review.replace(/(\r\n|[\r\n])/g, "<br />")
			reviewDiv.appendChild(reviewRightDiv);
			reviewDiv.appendChild(Builder.node("div",{className:"clearer"}));
		
		
			$("allreviews").appendChild(reviewDiv);
		}
		
		new Effect.Appear($("allreviews"));
		new Effect.Appear($("reviewControls"));
		new Effect.Appear($("readalllowertoggle"));	
		
		var AverageRating = originalRequest.responseXML.getElementsByTagName("AverageRating")[0].firstChild.nodeValue;
		var TotalResponses = originalRequest.responseXML.getElementsByTagName("TotalResponses")[0].firstChild.nodeValue;
		
		$("reviewAverageRatingGraphic").innerHTML=BuildRatingGraphic(AverageRating,"reviewOverviewPad").innerHTML;
		$("reviewTotalResponses").innerHTML = "&nbsp;&nbsp;Based on " +  TotalResponses + " Reviews";
		
		var Menus = $("masterDiv").getElementsByClassName("rightStarsContainer");
		if(Menus!=null && Menus.length >0){
			for(var i = 0; i<Menus.length; i++){
				Menus[i].innerHTML = BuildRatingGraphic(AverageRating,"reviewOverviewPad").innerHTML;
				Menus[i].innerHTML +="&nbsp;&nbsp;Based on " + TotalResponses + " Reviews<br/>";
				Menus[i].innerHTML += "<a href=\"#reviews\" onclick=\"Javascript:LoadReviews();\">Read Reviews</a> | <a href=\"#reviews\" onclick=\"Javascript:CreateReview();\">Write a Review</a><br/><br/>";
			}
		}
		
	}
