
var reviewOpened=true;var additionalStuff=false;function setValidatorState(state){for(var i=0;i<Page_Validators.length;i++){ValidatorEnable(Page_Validators[i],state);}}
function disableValidatorOnLoad(){for(var i=0;i<Page_Validators.length;i++){ValidatorEnable(Page_Validators[i],false);}}
function ValidateCaptcha(sender,arguments)
{var elem=jQuery(GetElementById(sender.controltovalidate));var captcha=jQuery(GetElementById("hiddenVerifCode"));if(captcha.val().substring(0,5).toUpperCase()!=elem.val().toUpperCase())
{arguments.IsValid=false;elem.val("");}
InitializeErrorMessageDiv(elem.get(0),sender.validationGroup,arguments.IsValid);if(!arguments.IsValid){jQuery('html,body').animate({scrollTop:jQuery('.addReviews').offset().top},500);}}
function CustomValidateEMail(sender,arguments)
{ValidateEMail(sender,arguments);if(!arguments.IsValid){jQuery('html,body').animate({scrollTop:jQuery('.addReviews').offset().top},500);}}
function CustomValidateRequiredField(sender,arguments)
{ValidateRequiredField(sender,arguments);if(!arguments.IsValid){jQuery('html,body').animate({scrollTop:jQuery('.addReviews').offset().top},500);}}
function ValidateTextInputLength(sender,arguments)
{var elem=jQuery(GetElementById(sender.controltovalidate));if(elem.val().length>parseInt(textInputLength))
{arguments.IsValid=false;}
InitializeErrorMessageDiv(elem.get(0),sender.validationGroup,arguments.IsValid);if(!arguments.IsValid){jQuery('html,body').animate({scrollTop:jQuery('.addReviews').offset().top},500);}}
function ValidateReviewForm()
{setValidatorState(true);ValidatePage("",InsertReview);}
function cleanHtml(expression)
{var regEx=new RegExp("<[^>]*>","g");var result=expression.replace(regEx,"");return result;}
function ScrollToTop()
{jQuery('html,body').animate({scrollTop:jQuery('.toggleReviews').offset().top},500);}
function ShowSuccessMessage(message)
{var successForm=jQuery(GetElementById("divSuccessForm"));jQuery(".successMessage",successForm).text(message);successForm.css("display","block").slideDown("slow",function()
{var t=setTimeout("jQuery('.successForm').fadeOut('slow');",5000);});}
function ExpendReviews()
{$('.expandedReviews').show();reviewOpened=true;$('.toggleReviews ').show();$('.toggleReviews .showHide span').html(hideLabel);$('.toggleReviews .reviewLabel').css("background-position","right 3px");}
function CloseReviews()
{$('.expandedReviews').hide();reviewOpened=false;$('.toggleReviews .showHide span').html(showLabel);$('.toggleReviews .reviewLabel').css("background-position","right -11px");}
function ExpendAdd()
{$('.expandedAdd').show();additionalStuff=true;$('.addReviews .showHide span').html(hideLabel);$('.addReviews .reviewLabel').css("background-position","right 3px");}
function CloseAdd()
{$('.expandedAdd').hide();additionalStuff=false;$('.addReviews .showHide span').html(showLabel);$('.addReviews .reviewLabel').css("background-position","right -11px");}
function ClearForm()
{jQuery(GetElementById("tbxFirstName")).val("");jQuery(GetElementById("tbxLastName")).val("");jQuery(GetElementById("tbxEmailAddress")).val("");jQuery(GetElementById("tbxComment")).val("");clearRating();jQuery(GetElementById("tbxVerificationCode")).val("");}
function clearRating(){if(ratingOptionStars){var resetbtn=jQuery('#ratingReview').find('.rateit-reset');resetbtn.click();}}
function UpdateRating()
{if(ratingOptionStars&&totalVotes>0)
{jQuery(".reviewsIntro .itemRating").empty();var newRating=CalculateRating(parseFloat(totalScores),parseFloat(totalVotes));var container=jQuery(".reviewsIntro .itemRating");var divControl1=jQuery(document.createElement("div")).attr("class","rateit");jQuery(divControl1).attr("data-rateit-value",newRating);jQuery(divControl1).attr("data-rateit-readonly","true");container.append(divControl1);var lblVoteResult=jQuery(document.createElement("span")).attr("class","voteResult");lblVoteResult.html(ratingLabel+": <span class='rating'>"+newRating+"</span> "+votesLabel+": <span class='votes'>"+totalVotes+"</span>");container.append(lblVoteResult);if(includeAggregateTagging){var divAgg=jQuery(document.createElement("div"));jQuery(divAgg).attr("class","hreview-aggregate");var container2=jQuery(".reviewsIntro .hreview-aggregate");container2.append(container);}}
else if(jQuery(GetElementById("hRatingContainer"))!=null&&totalReviews>0)
{jQuery(".reviewsIntro .itemRating").empty();}}
function CalculateRating(totalScores,totalVotes)
{if(totalVotes==0)return 0;var ratingVal=totalScores/totalVotes;var result=(Math.round(ratingVal*10)/10);return result;}
function InsertReview(result)
{if(!result)
{jQuery('html,body').animate({scrollTop:jQuery('.addReviews').offset().top},500);return false;}
else
{var firstName=jQuery(GetElementById("tbxFirstName")).val();var lastName=jQuery(GetElementById("tbxLastName")).val();var emailAddress=jQuery(GetElementById("tbxEmailAddress")).val();var userContent=jQuery(GetElementById("tbxComment")).val();var score=parseInt(jQuery('#ratingReview').rateit('value'));var params=new SOAPClientParameters();params.add("currentContextGuid",currentContextGuid);params.add("reviewedContentTypeGuid",reviewedContentTypeGuid);params.add("firstName",firstName);params.add("lastName",lastName);params.add("emailAddress",emailAddress);params.add("score",score);params.add("userContent",cleanHtml(userContent));try
{SOAPClient.invoke(reviewsSoapServicesUrl,"InsertReview",params,true,InsertCallBack);}
catch(ex)
{alert("An internal exception occured."+"\n\r"+ex.message);}
if(!approveBeforePublishing)
{totalScores=parseFloat(totalScores)+parseFloat(score);totalVotes=(score!=0)?parseInt(totalVotes)+1:parseInt(totalVotes);totalReviews=parseInt(totalReviews)+1;totalPages=Math.ceil(parseInt(totalReviews)/parseInt(pageLength));}
ScrollToTop();setValidatorState(false);}}
function InsertCallBack(successfull)
{if(successfull)
{ClearForm();if(!approveBeforePublishing)
{startIndex=0;UpdateRating();jQuery(GetElementById("lblNbrComments")).text("("+totalReviews+")");UpdateReviews();}
else
{ShowSuccessMessage(needsToBeApprovedLabel);}
if(totalReviews>0)
{ExpendReviews();CloseAdd();}}}
function UpdateReviews()
{var params=new SOAPClientParameters();params.add("currentContextGuid",currentContextGuid);params.add("reviewedContentTypeGuid",reviewedContentTypeGuid);params.add("startIndex",parseInt(startIndex));params.add("pageLength",parseInt(pageLength));params.add("languageSitecore",languageIsoCode);try
{SOAPClient.invoke(reviewsSoapServicesUrl,"GetReviews",params,true,UpdateReviewsCallback);}
catch(ex)
{alert("An internal exception occured."+"\n\r"+ex.message);}}
function UpdateReviewsCallback(reviews)
{jQuery(".expandedReviews").empty();var x=1;for(var review=reviews[0];review!=null;review=reviews[x++])
{AddReview(review.Id,review.FirstName,review.LastName,review.Rating,review.UserContent,review.DateCreated);}
if(ratingOptionStars)
jQuery('div.rateit').rateit();UpdatePaging();}
function AddReview(id,firstName,lastName,rating,userContent,dateCreated)
{var container=jQuery(".expandedReviews");if(ratingOptionStars&&parseInt(rating)>0)
{var divControl1=jQuery(document.createElement("div")).attr("class","itemReviewRating");var divControl2=jQuery(document.createElement("div")).attr("class","rateit");jQuery(divControl2).attr("data-rateit-value",rating);jQuery(divControl2).attr("data-rateit-readonly","true");divControl1.append(divControl2);container.append(divControl1);}
if(userContent!=null)
{var pControl1=jQuery(document.createElement("p")).text(userContent);container.append(pControl1);}
var strongControl=null;if(firstName!=null&&lastName!=null)
{strongControl=jQuery(document.createElement("strong")).html(firstName+"&#160;"+lastName);}
else
{strongControl=jQuery(document.createElement("strong")).html(anonymousLabel);}
var pControl2=jQuery(document.createElement("p"));pControl2.append(strongControl);pControl2.append(dateCreated);container.append(pControl2);var divControl3=jQuery(document.createElement("div")).attr("class","reviewImgSpacer");container.append(divControl3);}
function UpdatePaging()
{if(parseInt(totalPages)>1)
{var container=jQuery(".expandedReviews");var divControl1=jQuery(document.createElement("div")).attr("class","reviewPages");var divControl2=jQuery(document.createElement("div")).attr("class","prevArrow");var divControl3=jQuery(document.createElement("div")).attr("class","numbersBg");var divControl4=jQuery(document.createElement("div")).attr("class","nextArrow");var divControl5=jQuery(document.createElement("div")).attr("class","clearer").text("&nbsp;");if(startIndex>=pageLength)
{var aControl1=jQuery(document.createElement("a")).attr("href","javascript:BrowsePreviousPage();").text("<< "+previousLabel);divControl2.append(aControl1);}
if(startIndex<(totalReviews-pageLength))
{var aControl2=jQuery(document.createElement("a")).attr("href","javascript:BrowseNextPage();").text(nextLabel+" >>");divControl4.append(aControl2);}
var ulControl1=jQuery(document.createElement("ul"));var maxNbOfPage=parseInt(totalPages)>10?10:parseInt(totalPages);var currentPage=Math.ceil(parseInt(startIndex)/parseInt(pageLength));var minPageNumber=0;var maxPageNumber=parseInt(totalPages)-1;if(maxPageNumber>maxNbOfPage)
{if((currentPage+5)<=maxPageNumber&&(currentPage-5)>=0)
{minPageNumber=currentPage-5;maxPageNumber=currentPage+5;}
else if((currentPage+5)<=maxPageNumber&&(currentPage-5)<0)
{maxPageNumber=(currentPage+5)+(5-currentPage);}
else if((currentPage+5)>maxPageNumber&&(currentPage-5)>=0)
{minPageNumber=(currentPage-5)-(5-(maxPageNumber-currentPage));}}
for(var index=minPageNumber;index<=maxPageNumber;index++)
{var liControl=jQuery(document.createElement("li"));if(index==currentPage)
{liControl.attr("class","active");}
var aControl=jQuery(document.createElement("a")).attr("href","javascript:BrowsePage("+index+");").text(index+1);liControl.append(aControl);ulControl1.append(liControl);}
divControl3.append(ulControl1);divControl1.append(divControl2);divControl1.append(divControl3);divControl1.append(divControl4);divControl1.append(divControl5);container.append(divControl1);}}
function BrowseNextPage()
{startIndex=parseInt(startIndex)+parseInt(pageLength);UpdateReviews();ScrollToTop();}
function BrowsePage(pageNumber)
{if(pageNumber>0)
{startIndex=parseInt(pageNumber)*parseInt(pageLength);}
else
{startIndex=0;}
UpdateReviews();ScrollToTop();}
function BrowsePreviousPage()
{startIndex=parseInt(startIndex)-parseInt(pageLength);UpdateReviews();ScrollToTop();}
function FillProfile(){FillProfileObject(idFirstName,idLastName,idEmailAddress);}
