function Rating(id, numStars, rank, img1, img2, img3) {
    var count = numStars;
    var divRank = $(id);
    var currentRank = rank;

    var image1 = img1;
    var image2 = img2;
    var image3 = img3;

    var imageArray = new Array();
    for (i = 1; i <= count; i++) {
        var img = document.createElement('img');

        if (i <= currentRank) {
            img.src = image2;
        } else {
            img.src = image1;
        }

        img.style.cursor = 'pointer';
        img.myIndex = i;

        img.onclick = function(e) {
            var index;
            if (e) {
                index = e.target.myIndex;
            } else {
                index = event.srcElement.myIndex;
            }
            imageOnClick(index);
        };

        img.onmouseover = function(e) {
            var index;
            if (e) {
                index = e.target.myIndex;
            } else {
                index = event.srcElement.myIndex;
            }
            imageOnMouseOver(index);
        };

        img.onmouseout = imageOnMouseOut;

        imageArray[i] = img;
        divRank.appendChild(img);
    }

    var externalOnClick = function() {};

    this.setOnClick = function(fun) { externalOnClick = fun };

    this.getCurrentRating = function() { return currentRank };

    function imageOnClick(index) {
        for (i = 1; i <= count; i++) {
            if (i <= index) {
                imageArray[i].src = image2;
            } else {
                imageArray[i].src = image1;
            }
        }

        currentRank = index;

        externalOnClick();
    }

    function imageOnMouseOver(index) {
        for (i = 1; i <= count; i++) {
            if (i <= index) {
                imageArray[i].src = image3;
            } else {
                if (i <= currentRank) {
                    imageArray[i].src = image2;
                } else {
                    imageArray[i].src = image1;
                }
            }
        }
    }

    function imageOnMouseOut() {
        for (i = 1; i <= count; i++) {
            if (i <= currentRank) {
                imageArray[i].src = image2;
            } else {
                imageArray[i].src = image1;
            }
        }
    }
}

