Simple Star Rating

CSS
* {margin:0;padding:0;}
body {margin:10px;font-family: “Lucida Grande”, sans-serif;font-size:1em;}
#container {position:relative;float:left;}
.rating-header {
    background-color:#999;
    color:#fff;
    padding:8px 50px 8px 15px;
    border-radius:10px 10px 0 0;
    -moz-border-radius:10px 10px 0 0;
    -webkit-border-radius:10px 10px 0 0;
    box-shadow:inset 0 0 20px rgba(0,0,0,0.5);
    -moz-box-shadow:inset 0 0 20px rgba(0,0,0,0.5);
    -webkit-box-shadow:inset 0 0 20px rgba(0,0,0,0.5);
}
.rating-header h1 {
    font-family: Georgia, serif;
    font-size: 20px;
    font-style: italic;
    font-weight: normal;
    text-transform: normal;
    letter-spacing: normal;
}
.rating-header h2 {
    font-family: “Lucida Grande”, sans-serif;
    font-size: 11px;
    font-style: normal;
    font-weight: normal;
    text-transform: normal;
    letter-spacing: normal;
    line-height: 1.5em;
}
.rating {
    margin:0 0 20px 0;
    box-shadow:inset 0 0 20px rgba(155,155,155,0.5);
    -moz-box-shadow:inset 0 0 20px rgba(155,155,155,0.5);
    -webkit-box-shadow:inset 0 0 20px rgba(155,155,155,0.5);
    padding:5px 15px;
    border-radius:0 0 10px 10px;
    -moz-border-radius:0 0 10px 10px;
    -webkit-border-radius:0 0 10px 10px;
    border:1px solid rgba(155,155,155,0.3)
}
.str-off, .str-on, .str-hover {font-size:30px;text-decoration:none;}
.str-off {color:rgba(150,150,150,0.5);}
.str-off:before {content:"\2606";}
.str-on {color:rgba(244,199,77,0.7);}
.str-on:before {content:"\2605";}
.str-hover:before {content:"\2605";}
.str-hover {color:rgba(244,199,77,1);} 

#number {position:relative;float:right;font-size:30px;color:rgba(150,150,150,0.5);}

JavaScript
Special thanks to +Mike Belardo for getting his JavaScript on!
//initialize clicked to false and initializes selected and arrays
var clicked = false;
var selected;
var idArray = [one, two, three, four, five];
//sets the rating stars
function f_setRating(x) {
    var i;
    switch (x) {
    case 'one':
        i = 1;
        break;
    case 'two':
        i = 2;
        break;
    case 'three':
        i = 3;
        break;
    case 'four':
        i = 4;
        break;
    case 'five':
        i = 5;
        break;
    }
    //sets the rating number
    number.innerHTML = i;
    //sets the hovered or clicked star to hover class
    idArray[i - 1].className = 'str-hover';
    //sets class of all stars below the selected or hovered to str-on
    for (pos = 0; pos < (i - 1); pos++) {
        idArray[pos].className = 'str-on';
    }
    //sets class of all stars above the selected or hovered to str-off
    for (endPos = 5; endPos > i; endPos--) {
        idArray[endPos - 1].className = 'str-off';
    }
}
//sets the selected rating
function f_setSelected(x) {
    switch (x) {
    case 'one':
        selected = 0;
        break;
    case 'two':
        selected = 1;
        break;
    case 'three':
        selected = 2;
        break;
    case 'four':
        selected = 3;
        break;
    case 'five':
        selected = 4;
        break;
    }
}
//sets class of all stars to str-off
function f_clearRating() {
    number.innerHTML = '';
    for (pos = 4; pos >= 0; pos--) {
        idArray[pos].className = 'str-off';
    }
}
//resets the rating to the clicked value
function f_resetRating() {
    var idArray = ['one', 'two', 'three', 'four', 'five'];
    f_setRating(idArray[selected]);
}
//handles onClick event
function f_onClick(x) {
    clicked = true;
    f_setRating(x);
    f_setSelected(x);
}
//handles onMouseOut event
function f_onMouseOut() {
    if (clicked) {
        f_resetRating();
    }
    else {
        f_clearRating();
    }
}
//mouseOut event listener
$(".rating a").mouseout(function() {
    f_onMouseOut();
});
//onClick event listener
$(".rating a").click(function() {
    f_onClick(this.id.toString());
});
//mouseOver event listener
$(".rating a").mouseover(function() {
    f_setRating(this.id.toString());
});

HTML
<div id="container">
  <div class="rating-header">
    <h1>A simple star rating</h1>
    <h2>Please rate this image-less gem accordingly</h2>
  </div>
  <div id="stars" class="rating">
    <a id="one" class="str-off" title='1/5' href="#"></a>
    <a id="two" class="str-off" title='2/5' href="#"></a>
    <a id="three" class="str-off" title='3/5' href="#"></a>
    <a id="four" class="str-off" title='4/5' href="#"></a>
    <a id="five" class="str-off" title='5/5' href="#"></a>
    <div id="number"></div>
  </div>
</div>