function starRating(){
    this.params=null;
        
    this.init=function(params){
        this.params=params;
         if($('#'+this.params.container).hasClass('setuped'))return false;
        $('#'+this.params.container).addClass('setuped');
        if(this.params.type=='advanced'){
            this.advancedSetup();
        }else if(this.params.type=='simple'){
            this.simpleSetup();
        }
    }
        
    this.advancedSetupRated=function(rating,container,value){
        value = parseInt(value);
        var i,j;
        var html='<div class="rated float_left">';
        for(i=1;i<=rating;i++){
            html+='<img src="'+Yabsta.Location.themeDir+'i/s.gif" class="rated float_left" style="margin-top:1px;" />';
        }
        for(j=rating+1;j<=5;j++){
            html+='<img src="'+Yabsta.Location.themeDir+'i/s.gif" />';
        }
        html+='</div>';
           
        var reviews_html = '<div class="rated float_left">';
        for(i=1;i<=value;i++){
            reviews_html+='<img src="'+Yabsta.Location.themeDir+'i/s.gif" class="rated float_left" style="margin-top:1px;" />';
        }
        for(j=value+1;j<=5;j++){
            reviews_html+='<img src="'+Yabsta.Location.themeDir+'i/s.gif" />';
        }
        reviews_html+='</div>';
		   
        if(this.params.style!=null && this.params.style!='undefined' && this.params.style=='reviews')
        {
            container.html(reviews_html);
            if(this.params.mirror_container!=null && this.params.mirror_container!='undefined' && this.params.mirror_container!='')
            {
                $('#'+this.params.mirror_container).html(html);
            }
        }
        else
        {
            container.html(html);
            if(this.params.mirror_container!=null && this.params.mirror_container!='undefined' && this.params.mirror_container!='')
            {
                $('#'+this.params.mirror_container).html(reviews_html);
            }
        }
    }
        
    this.simpleSetupRated=function(rating,container){
        if(rating>1 || rating==0)
        {
            var users = 'Users';
        }
        else
        {
            var users = 'User';
        }
            
            
        if(this.params.style!=null && this.params.style!='undefined' && this.params.style=='reviews')
        {
            html='<div class="hand_up"></div>';
            container.html(html);
            if(this.params.mirror_container!=null && this.params.mirror_container!='undefined' && this.params.mirror_container!='')
            {
                html='<nobr><span style="float:left;">Recommended by '+rating+' '+users+' &nbsp;&nbsp;</span></div></nobr>';
                $('#'+this.params.mirror_container).html(html);
            }
        }
        else
        {
            html='<nobr><span style="float:left;">Recommended by '+rating+' '+users+' &nbsp;&nbsp;</span></div></nobr>';
            container.html(html);
            if(this.params.mirror_container!=null && this.params.mirror_container!='undefined' && this.params.mirror_container!='')
            {
                html='<div class="hand_up"></div>';
                $('#'+this.params.mirror_container).html(html);
            }
        }
    }

    this.simpleSetup=function(){
        var c=$('#'+this.params.container);
        var _this=this;
        if(!this.params.rated){
            _this.simpleSetupRated(_this.params.rating,c);
            return;
        }
        c.append('<form id="form_'+this.params.container+'"></form>');
        var form=$('#form_'+this.params.container);
            
        if(_this.params.rating>1 || _this.params.rating==0)
        {
            var users = 'Users';
        }
        else
        {
            var users = 'User';
        }

            
        if(this.params.style!=null && this.params.style!='undefined' && this.params.style=='reviews')
        {
            form.append('<nobr><div class="hand_up"><a href="javascript://">Recommend</a></div></nobr>');
        }
        else
        {
            form.append('<nobr><span style="float:left;">Recommended by '+_this.params.rating+' '+users+'</span><img src="'+Yabsta.Location.themeDir+'i/dgrey_dashed.gif" style="float:left;margin-left:11px;" width="1" height="16" /><div class="hand_up"><a href="javascript://">Recommend</a></div></nobr>');
        }
                        
        $('.hand_up',c).hover(function () {
            $(this).addClass("hand_active");
        }, function () {
            $(this).removeClass("hand_active");
        }).click(function(){
            c.html('<img src="'+Yabsta.Location.themeDir+'i/loadinfo.gif" />');
            if(_this.params.mirror_container!=null && _this.params.mirror_container!='undefined' && _this.params.mirror_container!='')
            {
                $('#'+_this.params.mirror_container).html('<img src="'+Yabsta.Location.themeDir+'i/loadinfo.gif" />');
            }
                
            $.post(_this.params.check_url, {
                rating:10,
                container:_this.params.container,
                item_id:_this.params.item_id,
                location_id:_this.params.location_id,
                content_type:_this.params.content_type,
                user_id:_this.params.user_id,
                rate_delay:_this.params.rate_delay,
                rate_value:_this.params.rate_value
                },
            function(data){
                _this.simpleSetupRated(data,c);
            }
            );
        });
    }
    this.advancedSetup=function(){
        var c=$('#'+this.params.container);
        var _this=this;
			
            
        if(!this.params.rated){
            _this.advancedSetupRated(parseInt(_this.params.rating),c);
            return;
        }

        c.append('<form id="form_'+this.params.container+'"></form>');
        var form=$('#form_'+this.params.container);
        var sel='';
        for(var i=1;i<=5;i++){
            sel=(i==this.params.rating)?'checked="checked"':'';
            form.append('<input name="rate'+this.params.container+'" type="radio" value="'+i+'" class="star" '+sel+'/>');
        }

        $('.star',c).rating({
            callback: function(value, link){
                if(_this.params.input)
                {
                    document.getElementById(_this.params.input).value = value;
                }
                else
                {
                    c.html('<img src="'+Yabsta.Location.themeDir+'i/loadinfo.gif" />');
                    if(_this.params.mirror_container!=null && _this.params.mirror_container!='undefined' && _this.params.mirror_container!='')
                    {
                        $('#'+_this.params.mirror_container).html('<img src="'+Yabsta.Location.themeDir+'i/loadinfo.gif" />');
                    }
                    $.post(_this.params.check_url,{
                        rating:value,
                        container:_this.params.container,
                        item_id:_this.params.item_id,
                        location_id:_this.params.location_id,
                        content_type:_this.params.content_type,
                        user_id:_this.params.user_id,
                        rate_delay:_this.params.rate_delay,
                        rate_value:_this.params.rate_value
                        },
                    function(data){
                        _this.advancedSetupRated(parseInt(data),c, value);
                    }
                    );
                }
            }
        });
    }
}
