$(document).ready(function() {
    // On page refresh, set star rating image if rating has been previously set 
    var rating = $('#starvalue').val();

    if (rating > 0) {
        rating_set_image(rating);
    }

    $('#Map area').map(function () {
        $(this).click(function () {
            var rating = $(this).attr('rating');
            var img = APP_ROOT + '_img/starlevels/' + rating + '.gif';

            $('#starvalue').attr({
                value: rating
            });

            rating_set_image(rating);
        });
    });

    $('#reviews').ajaxForm({
        target: '#review-form',
        beforeSubmit: validate
    });

    $('#email-to-friend').click(function () {
        var id = $("#id").val();
        var wa = $("#wa").val();
        window.open(APP_ROOT + 'solution_email.php?id=' + id + '&wa=' + wa, '', 'width=650,height=450');
        return false;
    });

    var tradenames_hidden = $('#hazards-addressed li.tradename ~ li.tradename ');
    var tradenames_hidden_showing = true;

    tradenames_hidden.map(function () {
        $(this).hide();
    });

    $('a.more-links').click(function() {
        objects_toggle(tradenames_hidden);

        if (tradenames_hidden_showing) {
            tradenames_hidden_showing = false;
            $(this).html("Fewer Links");
        }
        else {
            tradenames_hidden_showing = true;
            $(this).html("More Links");
        }

        return false;
    });
});
   
function objects_toggle(objs) {
    objs.map(function () {
        $(this).slideToggle('normal');
    });
}

function rating_set_image(rating) {
    var img = APP_ROOT + '_img/starlevels/' + rating + '.gif';

    $('#divstars img').attr({
        src: img
    });
}

function validate(formData, jqForm, options) {
    var form = jqForm[0];
    var rating = form.starvalue.value;
    var review = form.review.value;
    var error_msg = '';

    // Trim leading and trailing whitespace from review
    review = review.replace(/^\s+/g, '').replace(/\s+$/g, '');

    if (review.length <= 0) {
        if (rating == 0) {
            error_msg = 'Please rate this solution by clicking on the star graphics next to "Rate Solution", or ' +
                'provide a written review in the "Review" field.';

        }
        else if (rating <= 2) {
            error_msg = 'Please provide a written review in the "Review" field.';
        }
    }

    if (error_msg) {
        alert(error_msg);
        return false;
    }

    return true;
}
