$.safeDocumentReady.add(function(){
	/****************** AJAX *****************/
	var reviewsCount = parseInt($("#reviewsCount").html().replace(" reviews",""),10);
	if(reviewsCount > 0){
		$("#reviewsContainer").css("display","block");
	}
	var alreadySubmitted = false;
	$("#comment-add-form").submit(function(event){
		event.preventDefault();
		$("#noRatingErrorMessage").css("display","none");
		$("#noReviewErrorMessage").css("display","none");
		$("#submitReminderMessage").css("display","none");
		$("#backendErrorMessage").css("display","none");
		if(!alreadySubmitted){
					var hasNoRating = (parseInt($("#starRatingPicker div input:checked").val(),10) === 0);
					var hasNoReview = (jQuery.trim($("#commentTextArea").val()) === "");
					if(hasNoRating || hasNoReview){
						if(hasNoRating){
							$("#noRatingErrorMessage").css("display","block");
						}
						if(hasNoReview){
							$("#noReviewErrorMessage").css("display","block");
						}
					}else{
						alreadySubmitted = true;
						$.ajax({
							type: 'POST',
							url: '/comment/attraction',
							data: $(this).serialize(),
							dataType: "json",
							success: function(data, textStatus, XMLHttpRequest){
								alreadySubmitted = false;
								if(data.comment.error){
									$("#backendErrorMessage").html(data.comment.error);
									$("#backendErrorMessage").css("display","block");
								}else{
									$("#commentTextArea").val("");
									$("#0starPicker input").attr("checked", true);
									syncNiceStarsToRadioButtons();
									$("#reviewsContainer").css("display","block");
									reviewsCount++;
									if(reviewsCount === 1){
										$("#reviewsCount").html(reviewsCount + " review");
									}else{
										$("#reviewsCount").html(reviewsCount + " reviews");
									}
									var starNumber = parseInt(data.comment.rating,10);
							                backgroundYPosition = 0-(starNumber-1)*15;
									$("#commentEmptyTemplate .commentArea .commentComment").html(data.comment.comment); 
									$("#commentEmptyTemplate .commentArea .commentSender a").html(data.comment.name);
									$("#commentEmptyTemplate .commentArea .commentSender a").attr("href","http://www.parentsconnect.com/me/index?username="+data.comment.name);
									$("#commentEmptyTemplate .commentArea .niceStarRatingStars").css("background-position", "0px " + backgroundYPosition + "px");
									var jqueryElem = $("#commentEmptyTemplate .commentArea").clone().prependTo("#allCommentsHolder");			
									jqueryElem.find(".reportAbuse").click(doReportAbuse);
								}
								$("#ajaxLoadGif").css("display","none");
							},
							error: function(XMLHttpRequest, textStatus, errorThrown){
								alreadySubmitted = false;
						    		alert("There was an error submitting your comment, please try again.");
					    		}
						});
						$("#ajaxLoadGif").css("display","block");
					}
		}	
	});
	/************** REPORT ABUSE *******************/
	var doReportAbuse = function(event){
		if($(this).attr("id") === "reportAttractionAbuse"){
			var ridiculousReportUsernameString = "";
			ridiculousReportUsernameString += $(".attraction-header h1").html() + " - " + window.location;
	                reportAbuse(event, {reportAbuseType: 'attraction',reportUsername: ridiculousReportUsernameString});
		}else if($(this).attr("id") === "reportEventAbuse"){
			var ridiculousReportUsernameString = "";
			ridiculousReportUsernameString += $("#eventDetailsMain h1").html() + " - " + window.location;
	                reportAbuse(event, {reportAbuseType: 'event',reportUsername: ridiculousReportUsernameString});
		}else{
			var ridiculousReportUsernameString = "";
			var messageText = escape($(this).closest('.commentSubArea').find(".commentComment").html());
			var reportUsername = escape($(this).closest('.commentSubArea').find(".commentSender").html());
        	//ridiculousReportUsernameString += escape($(this).parent().parent().parent().parent().find(".commentSender a").html());
            //ridiculousReportUsernameString += "----" + escape($(this).parent().parent().parent().parent().find(".commentComment").html());
	        reportAbuse(event, {reportAbuseType: 'user_comment',reportUsername: reportUsername, messageText: messageText});
		}
	}
	$(".reportAbuse").click(doReportAbuse);
	/************** /REPORT ABUSE ******************/
	/****************** /AJAX *****************/
	isUserLoggedIn(function(){});
	$("#commentTextArea").bind("focus",function(){
		authenticationWidget.roadblockFunction();
	});

	/************* Star Rating Picker *************/
	$("#niceStarRatingPicker").css("display","block");
	$("#starRatingPicker").css("display","none");
	$(".starOverlay").bind("click",function(){
		var starElement = $(this);
		if(!KIDS.flux.username){
			authenticationWidget.roadblockFunction(function(){
				checkStar(starElement);
				syncNiceStarsToRadioButtons();
				authenticationWidget.onSignIn();
			}, true);	
		}else{
			checkStar(starElement);
		}		
	});
	
	var checkStar = function(starElement){
		starNumber = parseInt(starElement.attr("id").replace("starOverlay",""));
		$("#"+starNumber+"starPicker input").attr("checked", "checked");//check the radiobutton on the hidden web1.0 form
		//$("#ratingDescription").html("Thanks!");
		$("#noRatingErrorMessage").css("display","none");
		$("#submitReminderMessage").css("display","block");
	}
	
	$(".starOverlay").bind("mouseover",function(){
		starNumber = parseInt($(this).attr("id").replace("starOverlay",""));
		backgroundYPosition = 0-(starNumber-1)*15;
		$("#niceStarRatingStars").css("background-position", "0px " + backgroundYPosition + "px");
		$("#ratingDescription").html($("#"+starNumber+"starPicker .rating-description").html());
	});
	var syncNiceStarsToRadioButtons = function(){
		if($("#starRatingPicker div input:checked").length === 1){
			starNumber = parseInt($("#starRatingPicker div input:checked").val());
			backgroundYPosition = 0-(starNumber-1)*15;
			$("#niceStarRatingStars").css("background-position", "0px " + backgroundYPosition + "px");
			$("#ratingDescription").html($("#"+starNumber+"starPicker .rating-description").html());
		}else{
			$("#niceStarRatingStars").css("background-position", "0px -75px");
		}	
	}
	$("#niceStarRatingStars").bind("mouseout",syncNiceStarsToRadioButtons);
	syncNiceStarsToRadioButtons();//in case browser saves input.
	/************* /Star Rating Picker *************/
	/************* comment text area *************/
	var textArea = $("#commentTextArea");
	var toggleTextAreaBackgroundOn = function(){
		if(textArea.val() === ""){
			textArea.css("background-image","url('/assets-pclocal/commentBackground.png')");
		}
	}
	var toggleTextAreaBackgroundOff = function(){
		textArea.css("background-image","none");
	}
	textArea.focus(toggleTextAreaBackgroundOff);
	textArea.blur(toggleTextAreaBackgroundOn);
	toggleTextAreaBackgroundOn();//defaults to off in case browser saves the text
	/************* /comment text area *************/


	

	/************ attraction page stuff  *************/
        $(".reviewLink, #attractionRatingStars").click(function(event){
                event.preventDefault();
                $("#anchoranchor").focus();
		$("#commentTextArea").focus();
        });
	$(".reviewLink2").click(function(event){
                event.preventDefault();
                $("#anchoranchor2").focus();
		$("#commentTextArea").focus();
        });
	/************ /attraction page stuff ************/
});

