$(document).ready(function() {

    $('.starcontainer input').click(onStarRatingUpdate);
    $('.slidercontainer input').click(onSliderRatingUpdate);

    $("#submitreview").click(onSubmitReviewClick);
});

function onStarRatingUpdate()
{
    var $this = $(this);
    var selectedIndex = $this.parent().children('input').index(this);
    var $starRating = $this.parent().prev();
    var selectedStar = selectedIndex + 1;
    var totalRating = $starRating.children('li').length;

    for(var i = 0; i <= selectedIndex; i++) {
        $('li:eq(' + i + ')', $starRating).addClass('full');
    }

    // remove the full class from stars if necessary
    for(i = selectedIndex + 1; i < totalRating; i++) {
        $('li:eq(' + i + ')', $starRating).removeClass('full');
    }

    $this.parent().children('span').html(selectedStar + ' of ' + totalRating);
}

function onSliderRatingUpdate()
{
    var $this = $(this);
    var selectedIndex = $this.parent().children('input').index(this);
    var selectedPosition = selectedIndex + 1;
    var $handle = $(this).parent().prev().children('.handle');
    var classes = $handle.attr('class');
    $handle.removeClass(classes).addClass('handle').addClass('pos-' + selectedPosition);
}

function onSubmitReviewClick()
{
    hasError = false;

    // validate how long question
    if ($("input[name=MilesUsed]:checked").length == 0) {
        hasError = true;
        $("input[name=MilesUsed]").parents('.usageblock').addClass('error');
    } else {
        $("input[name=MilesUsed]").parents('.usageblock').removeClass('error');
    }

    // validate using product question
    if ($("input[name=ProductUsed]:checked").length == 0) {
        hasError = true;
        $("input[name=ProductUsed]").parents('.usageblock').addClass('error');
    } else {
        $("input[name=ProductUsed]").parents('.usageblock').removeClass('error');
    }

    // validate other brands question
    if ($("input[name='OtherBrands[]']:checked").length == 0) {
        hasError = true;
        $("input[name=OtherBrands]").parents('.usageblock').addClass('error');
    } else {
        $("input[name=OtherBrands]").parents('.usageblock').removeClass('error');
    }

    // validate a
    if ($("input[name=PrimaryActivity]:checked").length == 0) {
        hasError = true;
        $("input[name=PrimaryActivity]").parents('.usageblock').addClass('error');
    } else {
        $("input[name=PrimaryActivity]").parents('.usageblock').removeClass('error');
    }

    // validate terms check box
    if ($("input[name=terms]:checked").length == 0) {
        hasError = true;
        $("input[name=terms]").parents('.usageblock').addClass('error');
    } else {
        $("input[name=terms]").parents('.usageblock').removeClass('error');
    }

    if (!$("textarea[name=UserComment]").val()) {
        hasError = true;
        $("textarea[name=UserComment]").parents('.usageblock').addClass('error');
    } else {
        $("textarea[name=UserComment]").parents('.usageblock').removeClass('error');
    }

    if (hasError) {
        $(this).parents('.usageblock').addClass('error');
		return false;
    } else {
        $(this).parents('.usageblock').removeClass('error');
		postReviewForm();
		//alert($("#reviewform").serialize());
		return true;
        
    }
} 

function postReviewForm(){
	$('#reviewSubmitHolder').html('<img src="/public/img/preloaders/large.gif" />').append('<p class="loading">Submitting...</p>');
	$.post(DATA_SERVER+'/ajax/actions.php', $("#reviewform").serialize(), function(data) {
		$('#reviewForm').hide();
		$('#addReviewHeader').html("Your review has been submitted.  It will take 3-4 business days for your review to appear on newbalance.com.");
	});

	
	
}
