function init_prismaajaxrate(object_id, settings){
    //on recup l'ancienne note
    var url_show_rate = '/prismaajaxrate/showrate/';
    var jsonRequest = new Request.JSON({url: url_show_rate + object_id, onComplete: function(ret){update_rate_blocs(object_id, ret, settings)}}).get()
}

function update_rate_blocs(object_id, ret, settings)
{
    //no needs for the moment
    //var actual_rate = ret['rate'];
    if(ret)
    {
        var actual_rate_int = ret['rate_int'];
	    show_rate(object_id, actual_rate_int, settings);
	    show_prismaajaxrateform_if_cookie(object_id, actual_rate_int, settings)
    }
    else
    {
        //impossible to show rate (for showing bloc)
        msg = '?'
        $$('.' + settings['showing_bloc_class'] + '_' + object_id).each(function(item){
	        item.set('html', msg);
	    });
        show_prismaajaxrateform_if_cookie(object_id, 0, settings);
    }
}

function show_rate(object_id, rate, settings)
{
    var cookie = Cookie.read('ObjectRate'+object_id);
    var note_perso = 0;
    if(cookie)
    {
        note_perso = cookie;
    }
    $$('.'+settings['showing_bloc_class']+"_"+object_id).each(function(item){
	    item.set('html', prismaajaxrate_show(rate, note_perso));
    });
}

function show_prismaajaxrateform_if_cookie(object_id, rate, settings)
{
    var cookie = Cookie.read('ObjectRate'+object_id);
    var innerhtml = '';
    var msg = 'Vous ne pouvez voter qu\'une fois par article';
    if(cookie)
    {
        innerhtml = prismaajaxrate_result(msg);
    }
    else
    {
        innerhtml = prismaajaxrate_form(prismaajaxrate_create_form(object_id, rate, settings));
    }
    $$('.'+settings['rating_bloc_class']+"_"+object_id).each(function(item){
        item.set('html', innerhtml);
    });
}

function prismaajaxrate_create_form(object_id, rate, settings)
{
    var maxnote = settings['max_rate'];
    var myForm='';
    myForm += '<div class="prismaajaxrate">';
        myForm += '<ul class="rating">';
        for(i=0;i<maxnote;i++)
        {
            myForm += '<li class="rate rate_' + (i+1) +'"><a href="#" onclick="prismaajaxrate_send(\'' + object_id + '\', \'' + (i+1) +'\', \'' + settings['rating_bloc_class'] +'\', \'' + settings['showing_bloc_class'] +'\');return false;" title="' + (i+1) +'" >' + (i+1) +'</a>';
        }
        myForm += '</ul>';
        myForm += '<div id="prismaajaxpreviousrate" class="rate_' + rate + '"></div>'
    myForm += '</div>';
    return myForm;
}

function prismaajaxrate_send(object_id, note, class_form, class_show)
{
    var cookie = Cookie.write('ObjectRate'+object_id, note, {path: '/'});
    var url_rate = '/prismaajaxrate/rate/';
    var jsonRequest = new Request.JSON({url: url_rate + object_id + '/' + note, onComplete: function(result){prismaajaxrate_on_send_complete(result, class_form, class_show, note, object_id)}}).get()
}

function prismaajaxrate_on_send_complete(result, class_form, class_show, note_perso, object_id)
{
    var msg = '';
    if ( result )
    {
        //ok on affiche alors la note
        $$('.' + class_form + '_' + object_id).each(function(item){
            item.set('html', prismaajaxrate_show(result['rate_int'], note_perso));
        });
        $$('.' + class_show + '_' + object_id).each(function(item){
            item.set('html', prismaajaxrate_show(result['rate_int'], note_perso));
        });
    }
}
