var star_o;
var flag        = [];
var star_tmp    = [];
var tmp         = [];
var rate        = [];

function toggleThis(o)
{
    var visible = document.getElementById('voting_box').style.display;
    document.getElementById('voting_box').style.display = (visible =='none' ? 'block' : 'none');
	toggleLinkName(o);
}

function toggleLinkName(o) {
    if ( ( typeof(phrase_rate_it) != 'undefined' ) && ( typeof(phrase_close_it) != 'undefined' ) ) {
       	o.innerHTML = ((o.innerHTML == phrase_rate_it) ? phrase_close_it : phrase_rate_it);
    }
	else {
	    o.innerHTML = ((o.innerHTML == 'Оцени') ? 'Закрой' : 'Оцени');
	}
}

function RateIt(e)
{
    if (!e) e = windows.event;

    var curPos  = null;
    var el      = e.srcElement ? e.srcElement : e.target;
    var root_id = _root_id(el);

    stopB(e);

    if (el.nodeName.toLowerCase() == 'img')
    {
        for(var i = 0, u = 0; i <= el.parentNode.childNodes.length; i++)
        {
            var o = el.parentNode.childNodes[i];
            if (o != null && o.nodeName.toLowerCase() == 'img')
            {
                if (o == el)
                {
                    curPos = u;
                }
                u++;
            }
        }
    }

    res  = document.getElementById(root_id).getAttribute('rel');
    params = {};

    //single -> curPos
    if (curPos != null)
    {
        //ajax
        params['v1'] = (parseInt(curPos) + 1);
    }
    //multi
    else if(res != null)
    {
        var tmp = [];
        var ar  = res.split('/');
        u = 0;
        for(var i = 0; i < ar.length; i++)
        {
            v = parseInt(ar[i]);
            if (!isNaN(v))
            {
            	params['v' + (i + 1)] = (parseInt(ar[i]) + 1);
                u++;
            }
        }
    }
    else
    {
        return ;
    }

    var tmp  = root_id.split('.');
    params['type']	= tmp[1];
    params['id']	= tmp[2];
    if( typeof sectionID != 'undefined' ) {
		params['sid']	= sectionID;
    }
    
	getJSON({
		method 	: 'POST',
		url 	: '/ajax/' + langAlias + '/rate',
		params	: params
	}, function ( response ){
		root = document.getElementById(root_id);
		root.innerHTML = response.content;
		root.onclick = '';
	});

}

function _parent_id( o )
{
    var id;
    if (o != null && o.nodeName.toLowerCase() != 'body')
    {
        if (o.getAttribute('id'))
        {
            return o.getAttribute('id');
        }
        else
        {
            var d = new Date;
            id = 'rate_' + d.getTime();
            o.setAttribute('id', id);

            return id;
        }
    }
    return false;
}

function _root_id( o )
{
    var id;
    if (o != null && o.nodeName.toLowerCase() != 'body')
    {
        if (o.getAttribute('id'))
        {
            id = o.getAttribute('id');
            inf = id.split('.');
            if (inf[0] == 'rate')
            {
                return id;
            }
        }
        return _root_id(o.parentNode);
    }
    return false;
}

function RateEvt(e)
{
    if (!e) e = windows.event;

    var img = e.srcElement ? e.srcElement : e.target;

    if (img.nodeName.toLowerCase() != 'img')
    {
        return;
    }

    var parent    = img.parentNode;

    var parent_id = 0;
    if (parent.getAttribute('id'))
    {
        ar = parent.getAttribute('id').split('_');
        parent_id = ar[1] || 0;
    }
    var root_id   = _root_id(parent);

    if (root_id == null || root_id == false)
    {
        return;
    }

    var eImg   = new Array();

    for(var i = 0, u = 0; i <= parent.childNodes.length; i++)
    {
        var o = parent.childNodes[i];
        if (o != null && o.nodeName.toLowerCase() == 'img')
        {
            eImg[u] = o;
            if (eImg[u] == img)
            {
                curPos = u;
            }
            u++;
        }
    }

    if (e.type == 'mouseover')
    {
        stopB(e);
        if (isNaN(flag[parent_id]) && isNaN(star_tmp[parent_id]))
        {
            star_tmp[parent_id] = new Array();

            for(var i = 0; i < eImg.length; i++)
            {
                star_tmp[parent_id][i] = eImg[i].src;
            }
        }

        if (isNaN(tmp[parent_id]))
        {
            tmp[parent_id] = [];

            for(var i = 0; i < eImg.length; i++)
            {
                tmp[parent_id][i] = eImg[i].src;
            }
        }

        for(var i = 0; i <= curPos; i++)
        {
            eImg[i].src = star_o;
        }
    }

    if (e.type == 'mouseout')
    {
        stopB(e);
        for(var i = 0; i <= curPos; i++)
        {
            eImg[i].src = tmp[parent_id][i];
        }
    }

    if (e.type == 'click')
    {
        stopB(e);
        flag[parent_id] = 1;
        for(var i = 0; i < eImg.length; i++)
        {
            eImg[i].src = star_tmp[parent_id][i];
        }
        for(var i = 0; i <= curPos; i++)
        {
            eImg[i].src       = star_o;
            tmp[parent_id][i] = star_o;
        }

        root  = document.getElementById(root_id);
        value = root.getAttribute('rel');
        
        ar    = [];

        if (value != null)
        {
            ar = value.split('/');
        }

        ar[parent_id] = curPos;
        root.setAttribute('rel', ar.join('/'));
    }
}
