(function(){

    var Dom = YAHOO.util.Dom;
    var Event = YAHOO.util.Event;
    var Element = YAHOO.util.Element;


    SODON.widget.rating = function(con, newFunction){
        this.init.apply(this, arguments);
    }

      SODON.widget.rating.prototype = {

          func:null,



         init: function(con, newFunction){


             //alert(typeof newFunction);

             var data = {};
             data.hello = "hello";
            this.func = newFunction;



          var start1 = null;
          var start2 = null;
          var start3 = null;
          var start4 = null;
          var start5 = null;
          var ratingMask = null;
          var self = this;


              this.func = newFunction;



          start1 = new Element(document.createElement("div"));
          start2 = new Element(document.createElement("div"));
          start3 = new Element(document.createElement("div"));
          start4 = new Element(document.createElement("div"));
          start5 = new Element(document.createElement("div"));


          start1.set("id",con+"start-"+1);
          start2.set("id",con+"start-"+2);
          start3.set("id",con+"start-"+3);
          start4.set("id",con+"start-"+4);
          start5.set("id",con+"start-"+5);



          start1.addClass("start");
          start2.addClass("start");
          start3.addClass("start");
          start4.addClass("start");
          start5.addClass("start");


          Dom.get(con).appendChild(start1.get("element"));
          Dom.get(con).appendChild(start2.get("element"));
          Dom.get(con).appendChild(start3.get("element"));
          Dom.get(con).appendChild(start4.get("element"));
          Dom.get(con).appendChild(start5.get("element"));




            for(var i=1; i<6; i++){
               Event.on(con+"start-"+i, "mouseover", function(e, data){
                   self._overItem(data.t, con);
               },{t:i});

               Event.on(con+"start-"+i, "mouseout", function(e, data){
                    self._clearItem(con);
               },{t:i});

               Event.on(con+"start-"+i, "click", function(e,data){
                   self.func(this, data.t, con);
               },{t:i});
            }

        },

        _overItem: function(i, con){
            Dom.removeClass(Dom.get(con), "rating");
            Dom.addClass(Dom.get(con), "rating-"+i);
        },

        _clearItem: function(con){
           for(var i=1; i<6; i++){
               Dom.removeClass(Dom.get(con),"rating-"+i);
               Dom.addClass(Dom.get(con), "rating");
          }
        }

    }

})();