/* AJAX Star Rating : v1.0.3 : 2008/05/06 */
/* http://www.nofunc.com/AJAX_Star_Rating/ */

function get_obj(v,o) { return((typeof(o)=='object'?o:document).getElementById(v)); }
function get_style(o) { return((typeof(o)=='object'?o:get_obj(o)).style); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function abPos(o) { var o=(typeof(o)=='object'?o:get_obj(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); }
function XY(e,v) { var o=agent('msie')?{'X':event.clientX+document.documentElement.scrollLeft,'Y':event.clientY+document.documentElement.scrollTop}:{'X':e.pageX,'Y':e.pageY}; return(v?o[v]:o); }

star={};

star.mouse=function(e,o) { if(star.stop || isNaN(star.stop)) { star.stop=0;

    document.onmousemove=function(e) {

        var p=abPos(get_obj('star')), x=XY(e), oX=x.X-p.X, oY=x.Y-p.Y;

        if(oX<1 || oX>84 || oY<0 || oY>19) { star.stop=1; star.revert(); }

        else {
            get_style('starCur').width=oX+'px';
            get_obj('starUser').innerHTML = Math.round(oX/84*100);
        }
    };
} };

star.update=function(e,o) {
    var v = parseInt(get_obj('starUser').innerHTML);
    var page = get_obj('page').innerHTML;
    $.post(
        "/ajax/",
        { controller: 'rating', rate: v, page: page },
        function(data) {
            if (data.length > 0) {
                pieces = data.split(":", 2);
                if (pieces[0] == 'OK')
                {
                    get_obj('starCur').title = v;
                    get_obj('usersNum').innerHTML = '(проголосовало: ' + pieces[1] + ')';
                }
                else if (pieces[0] == 'VOTED')
                {
                    get_obj('usersNum').innerHTML = 'Вы уже голосовали!';
                }
                else if (pieces[0] == 'NOT_LOGGED')
                {
                    get_obj('usersNum').innerHTML = 'Вы не выполнили вход как пользователь!';
                }
                else
                {
                    get_obj('usersNum').innerHTML = 'Ошибка!';
                }
            }
        }
    );
};

star.revert = function()
{
    var v = parseInt(get_obj('starCur').title);
    get_style('starCur').width=Math.round(v*84/100)+'px';
    get_obj('starUser').innerHTML = ( v > 0 ? Math.round(v) : '');
    document.onmousemove='';
};
