LibManager.require("frame.prototype.ajax");LibManager.require("frame.prototype.form");LibManager.require("frame.scriptaculous.effects");
var HolidayReviewRatingController={ajaxRequest:null,ajaxTimeout:null,ajaxReqTime:null,ajaxMaxReqTime:1E4,ajaxCheckInterval:500,ajaxBaseUrl:"/HolidayReview/AddRatingToReview",attach:function(){for(i=0;i<=document.forms.length-1;i++)document.forms[i].className=="reviewRating"&&Event.observe(document.forms[i],"submit",this.validate.bindAsEventListener(this))},validate:function(a){var b=Event.element(a),d=Form.getInputs(b,"radio","rating"),b=Form.getInputs(b,"hidden","reviewId")[0].value,c=0,f=$("ratingWrapper_"+
b),e=$("ratingMsg_"+b);d[0].checked||d[1].checked?(c=d[0].checked?d[0].value:d[1].value,this.rateReview(b,c,e,f)):(e.firstChild.nodeValue="You have not selected whether the review was helpful or not helpful.",this.doHighlight(f),this.styleMsgBox(e));Event.stop(a)},callInProgress:function(){switch(this.ajaxRequest.transport.readyState){case 1:case 2:case 3:return!0;default:return!1}},rateReview:function(a,b,d,c){a={content:"rateHolidayReviewAjax",rating:b,reviewId:a,reviewType:"holiday"};this.styleMsgBox(d);
this.createAjaxUpdater(c,d,a,"Error: no data received. Please try again.")},checkResponse:function(){var a=this;this.ajaxReqTime+=this.ajaxCheckInterval;if(this.callInProgress()&&this.ajaxReqTime>=this.ajaxMaxReqTime){if(this.ajaxRequest.transport.abort(),this.ajaxRequest.options.onFailure)this.ajaxRequest.options.onFailure()}else this.ajaxTimeout=window.setTimeout(function(){a.checkResponse()},this.ajaxCheckInterval)},doHighlight:function(a){new Effect.Highlight(a,{startcolor:"#ffffff",endcolor:"#ffffcc",
duration:0.5})},styleMsgBox:function(a){a.style.padding="1em 0 1em 0"},createAjaxUpdater:function(a,b,d){var c=this;this.ajaxReqTime=0;this.ajaxTimeout=window.setTimeout(function(){c.checkResponse()},c.ajaxCheckInterval);this.ajaxRequest=new Ajax.Updater(b,c.ajaxBaseUrl,{method:"post",parameters:$H(d).toQueryString(),onComplete:function(b){window.clearTimeout(c.ajaxTimeout);b.responseText.length&&b.status==200&&c.doHighlight(a)},onFailure:function(){window.clearTimeout(c.ajaxTimeout)}})}};$j(function(){HolidayReviewRatingController.attach()});
