﻿// JScript File

function KGRatingControl_OnMouseOver(_star)
{
  var stars = _star.parentNode.getElementsByTagName('a');

  var hoverStarID = _star.getAttribute('starID'); // Get the selected star

  for (var index=0; index<stars.length; index++) // loop through all stars
  {
    var starID = stars[index].getAttribute('starID');
    if (starID > 0)
    {
      if (starID <= hoverStarID) // highlight the stars up to and including the one being mousedover
      {
        KGRatingControl_setStarStyle(stars[index], 'hover');
      }
      else // unhighlight the rest
      {
        if (stars[index].getAttribute('starRated') == 'true') // rated stars remain "on"
          KGRatingControl_setStarStyle(stars[index], 'on');
        else
          KGRatingControl_setStarStyle(stars[index], 'off');
      }
    }
  }
}

function KGRatingControl_UnrateMouseOver(_unrateDiv)
{
  var stars = _unrateDiv.parentNode.getElementsByTagName('a');
  for (var index=0; index<stars.length; index++) // loop through all stars
  {
    var starID = stars[index].getAttribute('starID');
    if (starID > 0) // unhighlight all stars
    {
      KGRatingControl_setStarStyle(stars[index], 'off');
    }
  }
}

function KGRatingControl_OnMouseOut(_star)
{
  var stars = _star.parentNode.getElementsByTagName('a');
  for (var index=0; index<stars.length; index++) // loop through all stars
  {
    var starID = stars[index].getAttribute('starID');
    if (starID > 0)
    {
      if (stars[index].getAttribute('starRated') == 'true') // rated stars remain "on"
        KGRatingControl_setStarStyle(stars[index], 'on');
      else
        KGRatingControl_setStarStyle(stars[index], 'off');
    }
  }
}

function KGRatingControl_StarClicked(_star)
{
  var stars = _star.parentNode.getElementsByTagName('a');
  
  var starRating = _star.getAttribute('starID'); // Get the selected star

  for (var index=0; index<stars.length; index++) // loop through all stars
  {
    var starID = stars[index].getAttribute('starID');
    if (starID > 0)
    {
      if (starID <= starRating) // set the starRated attribute for the stars up to and including the one clicked
      {
        KGRatingControl_setStarStyle(stars[index], 'hover');
        stars[index].setAttribute('starRated', 'true');
      }
      else // set to false for the rest
      {
        KGRatingControl_setStarStyle(stars[index], 'off');
        stars[index].setAttribute('starRated', 'false');
      }
    }
  }
  
  return starRating;
}

function KGRatingControl_setStarStyle(_star, _style)
{
  switch (_style)
  {
    case 'on':
      _star.className = 'KGRatingControl_StarOn';
      break;
    case 'off':
      _star.className = 'KGRatingControl_StarOff';
      break;
    case 'hover':
      _star.className = 'KGRatingControl_StarHover';
      break;
  }
}