var C = [
    remember('blog-rating'),
    remember('blog-commenters'),
    remember('blog-links'),
    remember('blog-visits')
];
var Rating = new Array();
var RawData = new Array();
var RatingList = document.getElementById('ratinglist');
var Indicator = new Array();

function RebuildRating() {
    if (!RatingList) RatingList = document.getElementById('ratinglist');
    
    var Equalizer = new Array();
    Equalizer['rating'] = C[0];
    Equalizer['commenters'] = C[1];
    Equalizer['links'] = C[2];
    Equalizer['visits'] = C[3];
    
    var NewRating = new Array();
    for (var parameter in Rating) {
        var coef = Equalizer[parameter];                    
        for (var c = 0; c != Rating[parameter].length; c++) {
            var key = Rating[parameter][c][0];
            if (!NewRating[key]) NewRating[key] = 0;
            NewRating[key] += coef * c;
        }
    }

    var NewRatingSort = sortHash(NewRating);
    var html = '';
    for (var c = 0; c != 20; c++) {
        var key = NewRatingSort[c][1];
        var data = RawData[key];
        html +=
              '<li>'
            + '<div><a href="' + key + '" target="_blank" rel="nofollow">' + data[0] + '</a></div>'
            + '<div class="who">'
            + '<div class="blogplatform ' + data[1] + '"> </div>'
            + data[2]
            + '</div>'
            + '</li>'
        ;
    }
    RatingList.innerHTML = '<ul>' + html + '</ul>';
    
    for (var c = 1; c <= 3; c++) {
        Indicator[1].innerHTML = C[1];
        Indicator[2].innerHTML = C[2];
        Indicator[3].innerHTML = C[3];
    }
}

function sortHash(hash) {
    var arr = new Array();
    for (var key in hash) {
        arr[arr.length] = [hash[key], key];
    }
    arr.sort(function(a, b) {return b[0] - a[0]});
    return arr;
}

function InitRating() {
    for (var parameter in Rating) {
        for (var c = 0; c != Rating[parameter].length; c++) {
            var item = Rating[parameter][c];
            var key = item[0];
            if (!RawData[key]) RawData[key] = [item[1], item[2], item[3], item[4]];
        }
    }
    Indicator = [
		null,
		document.getElementById('position2'),
		document.getElementById('position3'),
		document.getElementById('position4')
	];	
}

function remind(k, v) {
    $.cookie(k, v, {expires: 365});
}

function remember(k) {
    return remember_by_argument(k) || remember_by_cookie(k) || 50; // default value
}

function remember_by_cookie(k) {
    var v = $.cookie(k);
    if(v == null) return false;

    return v;
}

function remember_by_argument(k) {
    var query_string = document.location.search;
    var arguments    = query_string.replace('?', '').split('&');
    var v            = false;

    for(var i = 0; i < arguments.length; i++) {
        var temp = arguments[i].split('=');
        var name = temp[0].replace(/^\s+|\s+$/g, '');
        if(name == k) {
            if(temp.length > 1)
                v = unescape(temp[1].replace(/^\s+|\s+$/g, ''));
            break;
        }
    }

    return v;
}
