﻿// JScript File

function StarImageMouseOver(element, value)
{
    var idbase = element.id.substr(0, element.id.length-1);
    var oversrc = '/App_Themes/Images/Stars/RatingStarHighlightEmpty.gif';
    for (i=1;i<=value;i++)
    {
        var img = document.getElementById(idbase + i.toString())
        if (img!=null)
        {
            img.src = oversrc;
        }    
    }    
}

function StarImageMouseOut(element)
{
    StarImageReset(element.id);
}

function StarImageOnClick(element, contentid, value)
{
    document.getElementById('iframe').src = './ContentRating.aspx?contentid=' + contentid + '&contentrating=' + value + '&elementid=' + element.id;
    return false;
}

function ContentRatingComplete()
{
    var element = iframe.document.getElementById("elementid");
    if (element!=null)
    {
        var id = element.innerHTML;
        var idbase = id.substr(0, id.length-2);
        var averageRating = iframe.document.getElementById("averagerating").innerHTML;
        var contactRating = iframe.document.getElementById("contactrating").innerHTML;
        document.getElementById(idbase + 'OriginalAverageRating').innerHTML = averageRating;
        document.getElementById(idbase + 'OriginalContactRating').innerHTML = contactRating;
        StarImageReset(id);
    }
}

function StarImageReset(elementid)
{
    var idbase = elementid.substr(0, elementid.length-2);
    var averageRating = document.getElementById(idbase + 'OriginalAverageRating').innerHTML;
    var contactRating = document.getElementById(idbase + 'OriginalContactRating').innerHTML;
    var imageSource = GetImageSource(contactRating, averageRating);
    
    for (i=1;i<=5;i++)
    {
        var img = document.getElementById(idbase + 'i' + i.toString())
        if (img!=null)
        {
            img.src = '/App_Themes/Images/Stars/' + imageSource[i-1] + '.gif';
        }    
    }    
}

function GetImageSource(contactRating, averageRating)
{
    var retVal = new Array(5);
    
    retVal[0] = GetImageBase(contactRating, 1);
    retVal[1] = GetImageBase(contactRating, 2);
    retVal[2] = GetImageBase(contactRating, 3);
    retVal[3] = GetImageBase(contactRating, 4);
    retVal[4] = GetImageBase(contactRating, 5);
    
    retVal[0] += GetImageExtension(averageRating, 0);
    retVal[1] += GetImageExtension(averageRating, 1);
    retVal[2] += GetImageExtension(averageRating, 2);
    retVal[3] += GetImageExtension(averageRating, 3);
    retVal[4] += GetImageExtension(averageRating, 4);
    
    return retVal;
}

function GetImageBase(contactRating, floor)
{
    var retVal = null;
    if (contactRating >= floor)
    {
        retVal = 'RatingStarHighlight';
    }
    else
    {
        retVal = 'RatingStar';    
    }
    return retVal;
}

function GetImageExtension(averageRating, floor)
{
    var delta = null;
    if (averageRating==0)
    {
        return 'Empty';
    }
    delta = averageRating - floor;
    if (delta >= 1)
    {
        // full star
        return '';
    }
    if (delta <= 0)
    {
        // empty star
        return 'Empty';
    }
    // partial stars
    if (delta >= 0.75)
    {
        return '34';
    }
    if (delta >= 0.5)
    {
        return '12';
    }
    if (delta >= .25)
    {
        return '14';
    }
    return '';
}

