﻿jQuery(document).ready(function() {
    //Test to see if user rated this page

    ShowPageAverageRating();
    if (Rated()) {
        ShowUserRating();
    }
    else {
        InitRating();
    }

})

function Rated() {
    var ratingButtons = jQuery(".ratingButtons");
    if (ratingButtons.length > 0)
        return false;
    return true;
}

function initDesign() {

    jQuery(".RatingLink").addClass("RatingLinkBlur");
    jQuery(".RatingLink").attr("tabindex", "0");
    jQuery(".RatingLink").append('&nbsp;')
    jQuery(".RatingLink").children().css({ display: "none" })
    //jQuery(".UserRating :submit").css({ display: "none" })
    //jQuery(".Rating").append('<div class="FloatBreak">&nbsp;</div>')
}

function setStar(star, newClass, removeClass, status) {
    jQuery(star).removeClass(removeClass);
    jQuery(star).addClass(newClass);
    var checkBox = jQuery(star).children()[0];
    jQuery(checkBox).attr('checked', status);
}

function initEvents() {
    clickEvents();
    hoverEvents();
    keyEvents();

    var text = jQuery(".RatingCommentForm input[type='hidden']").val();
    jQuery(".RatingCommentForm textarea").val(text);
    jQuery(".RatingCommentForm textarea").focus(function() {
        jQuery(this).val("");
    });
    jQuery(".RatingCommentForm textarea").blur(function() {
        jQuery(this).val(text);
    });

    jQuery(".ratingSubmit").mousedown(function() {
      pageTracker._trackEvent('Vurdering', getDocumentTitle() + '', getCurrentStars() + '', getCurrentStars())
     })
}

function hoverEvents() {

    jQuery(".RatingLink").mouseover(function() {
        var starCount = jQuery(this).attr("title") - 1;
        var stars = jQuery(".RatingLink");
        var i;
        for (i = 0; i < stars.length; i++) {
            if (i < starCount) {
                setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", false);
            }
            if (i == starCount) {
                setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", true);
            }
            if (i > starCount) {
                setStar(stars[i], "RatingLinkBlur", "RatingLinkFocus", false);
            }
        }
    });

    ;

}


function fillStars(fillStars) {
  
    var maxStars = 6;
    var stars = jQuery(".RatingLink");
    var i;

    for (i = 0; i < maxStars; i++) {
        if (i < fillStars) {
            setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", false);
        }
        if (i == fillStars) {
            setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", true);
        }
        if (i > fillStars) {
            setStar(stars[i], "RatingLinkBlur", "RatingLinkFocus", false);
        }
    }

  }

  function getCurrentStars() {
    return jQuery(".UserRating .RatingLinkFocus").length;
  }

  function getDocumentTitle() {
    return document.title;
  }

function keyEvents() {
    jQuery(".RatingLink").keypress(function(e) {
        if (e.which == 32) {
            fillStars(jQuery(this).attr("title") - 1);
        }
        if (e.which == 13)
            jQuery(".ratingSubmit").click();

    })
     
   

}

function clickEvents() {

    jQuery(".RatingLink").mousedown(function() {
        jQuery(".RatingLink").unbind('mouseover');
        var starCount = jQuery(this).attr("title") - 1;
        var stars = jQuery(".RatingLink");
        var i;

        for (i = 0; i < stars.length; i++) {
            if (i < starCount) {
                setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", false);
            }
            if (i == starCount) {
                setStar(stars[i], "RatingLinkFocus", "RatingLinkBlur", true);
            }
            if (i > starCount) {
                setStar(stars[i], "RatingLinkBlur", "RatingLinkFocus", false);
            }
        }

      // jQuery(".ratingSubmit").click();

    });

}


function InitRating() {
    initEvents();
    initDesign();
}


function ShowUserRating() {
    var ratingTag = jQuery(".UserRated");
    var rating = jQuery(".UserRated").html();
    var i;
    if (isNaN(parseInt(rating)))
        return;

   jQuery(".UserRated").html("");
    for (i = 0; i < 5; i++) {

        if (i < rating) {
            var spanTag = '<span class="RatingLinkFocus" >&nbsp; </span>';
            jQuery(ratingTag).append(spanTag);
        }
        else {
            var spanTag = '<span class="RatingLinkBlur" >&nbsp; </span>';
            jQuery(ratingTag).append(spanTag);
        }
    }


}

function ShowPageAverageRating() {
    var ratingTag = jQuery(".AverageRating");
    var averageRating = jQuery('.AverageRating').html();
    if (averageRating == null)
        return;

    var i, completeStars, halfStars;
    completeStars = parseInt(averageRating);
    halfStars = parseFloat(averageRating.replace(',', '.')) - completeStars > 0 ? true : false;
    if (isNaN(parseInt(completeStars)))
        return;

    jQuery('.AverageRating').html("");
    for (i = 1; i < 6; i++) {
        if (i <= completeStars) {
            var spanTag = '<span class="RatingLinkFocus" >&nbsp; </span>';
            jQuery(ratingTag).append(spanTag);
        }
        else if (halfStars && ((i - 1) == completeStars)) {
            var spanTag = '<span class="RatingLinkHalfFocus" >&nbsp; </span>';
            jQuery(ratingTag).append(spanTag);

        }
        else {
            var spanTag = '<span class="RatingLinkBlur" >&nbsp; </span>';
            jQuery(ratingTag).append(spanTag);
        }

    }
}

