Number.prototype.toPixels = function(scale)
{
	var str = (scale ? this * scale : this).toString();
	if (this != 0) str += "px";
	return str;
}
Number.prototype.decline = function(word)
{
	var n = this + " ", p = word.split(/- |,/g);
	var pn = n.match(/([^1]|^)1 /) ? 1 : (n.match(/([^1]|^)[234] /) ? 2 : 3);
	return n + p[0] + p[pn];
}
function ID(id) 
{
	return document.getElementById(id);
}

var upload = {}
upload.init = function()
{
	this.obj    = ID("upload");
    this.button = ID("upload-button");
    this.error  = ID("upload-error");
	this.photo  = ID("f-photo");
	this.author = ID("f-author");
	this.title  = ID("f-title");
	if (this.photo.value == "" && !this.error) 
		this.obj.className = "upload-closed";
	this.photo.onmouseover = function() {upload.highlight(1);};
	this.photo.onmouseout = function() {upload.highlight(0);};
	this.photo.onchange = function() {upload.open();};
	this.obj.scrollTop = 0;
}

upload.open = function()
{
	this.obj.className = "upload-open";
	var box = this.photo.parentNode;
	var clone = box.removeChild(this.photo);
	this.photo = box.appendChild(clone);
	if (this.author.value) 
		this.title.focus();
	else
		this.author.focus();
}

upload.highlight = function(flag) {
	this.button.className = flag ? "hover" : "";
}

function makeDateBars(id) {
	var list = document.getElementById(id);
	var items = list.getElementsByTagName("a");
	if (items.length == 0) return false;
	for (var i = 0, lim = items.length; i < lim; i++)
	{
	    var obj = items[i];
		var amount = parseInt(obj.title);
		var fraction = Math.ceil(amount / maxPerMonth * 9);
	    var suffix = "";
	    if (id == "archive" && i == 0) suffix = "-first";
	    if (id == "archive" && (i == lim - 1)) suffix = "-last";
		obj.className = "bar" + suffix;
		obj.style.backgroundPosition = ((i == 0) ? "100% " : "0 ") + fraction.toPixels(-30);
    	obj.title = obj.firstChild.firstChild.nodeValue + ", " + amount.decline("картин- ка,ки,ок");
	}
}

function setArrowTitles(id) {
	var list = document.getElementById(id);
	var items = list.getElementsByTagName("a");
	if (items.length == 0) return false;
	for (var i = 0, lim = items.length; i < lim; i++) {
	    var obj = items[i];
	    var parts = obj.title.split(", ");
    	obj.title = parts[0] + ", " + parseInt(parts[1]).decline("картин- ка,ки,ок");
    	
	}
}

function updateVotes(votes){
    var obj = document.getElementById("rate-box");
    var votesValue = parseInt(votes);
	var str = "<div id=\"rate\">";
    if (votesValue > 0)
		str += "<div class=\"rate-pos\"><span>+</span>" + votesValue + "</div>";
    else if (votesValue < 0)
	    str += "<div class=\"rate-neg\"><span>&minus;</span>" + Math.abs(votesValue) + "</div>";
    else
		str += "<div class=\"rate\">" + votesValue + "</div>";
	obj.innerHTML = str + "</div>";
}


var monthes = "jan feb mar apr may jun jul aug sep oct nov dec".split(" ");
var holidays = {
	"8mar": {src: "logo_8mar.gif", x: 39, y: 9}
}
function showCustomLogo()
{
	var today = new Date();
	var id = today.getDate() + monthes[today.getMonth()];
	if (holidays[id])
	{
		var item = holidays[id];
		var box = document.getElementById("krevedko");
		var obj = document.createElement("IMG");
		obj.src = "/app/" + item.src;
		obj.style.left = item.x + "px";
		obj.style.top  = item.y + "px";
		obj.className = "custom";
		box.appendChild(obj);
	}
}

var positives = {}
positives.init = function()
{
	var obj = document.getElementById("positive");
	this.items = obj.getElementsByTagName("LI");
	this.amount = this.items.length - 6;
	this.current = [0,1,2,3,4,5];
	for (var i = 6, lim = this.amount + 6; i < lim; i++) 
		this.items[i].style.display = "none";
	var button = document.getElementById("refresh");
	button.style.visibility = "visible";
	button.onclick = function() {positives.refresh();};
}
positives.refresh = function()
{
	for (var i = 0; i < 6; i++)
	{
		this.items[this.current[i]].style.display = "none";
		do {
			var n = Math.round(Math.random()*this.amount) + 5;
			var obj = this.items[n];
		} while (obj.style.display != "none");
		this.current[i] = n;
		var link = obj.firstChild;
		if (link.firstChild.tagName != "IMG")
		{
			var img = document.createElement("IMG");
			img.src = link.firstChild.title;
			img.alt = link.firstChild.innerHTML;
			link.innerHTML = "";
			link.appendChild(img);
		}
		obj.style.display = "";
	}
}

var addComment = {}
addComment.init = function()
{
	this.obj = document.getElementById("add-comment");
	var list = document.getElementById("comments");
	var column = document.getElementById("photo-info");
	if (list && list.offsetHeight > column.offsetHeight + 30)
		this.obj.className = "left-header";
	this.content = document.getElementById("comment-text");
	this.author = document.getElementById("author-value");
	this.field = document.getElementById("author-field");
	this.user = this.author.parentNode;
	this.anonymous = document.getElementById("anonymous");
	this.send = document.getElementById("comment-send");
	this.showAuthor();
}
addComment.showAuthor = function()
{
	this.field.style.visibility = "hidden";
	if (this.field.value)
	{
		this.author.innerHTML = this.field.value;	
		this.author.style.display = "inline";
		this.user.style.display = "block";
	}
	else
	{
		this.user.style.display = "none";
		this.anonymous.style.display = "block";
	}
}
addComment.showField = function()
{
	this.anonymous.style.display = "none";
	this.author.style.display = "none";
	this.user.style.display = "block";
	this.field.style.visibility = "visible";
	this.field.focus();
}
addComment.format = function()
{
	var str = this.content.value;
	if (!str) return false;
	modStr = str.replace(/(\D)\1{2,}/gi, "$1$1$1");
	if (modStr != str) this.content.value = modStr;
	this.send.disabled = true;
	setTimeout("addComment.send.disabled = false", 5000);
	return true;
}

function copyToForm(obj)
{
	var field = addComment.content;
	field.value += obj.innerHTML + ", ";
	field.focus();
}

function showCode(id)
{
	var obj = document.getElementById("code-" + id);
	obj.style.visibility = "visible";
	obj.select();
}

function initNewComments(min, max)
{
	var box = document.getElementById("new-comments");
	var items = box.getElementsByTagName("a");
	var sizes = [100, 125, 160, 180];
	if (max < 4) max = 4;
	if (max - min < 2) min = max - 2;
	var range = max - min;
	for (var i = 0, lim = items.length; i < lim; i++)
	{
		var obj = items[i];
		var amount = parseInt(obj.title);
		var size = Math.floor(((amount - min) / range) * 3);
		if (size) obj.style.fontSize = sizes[size] + "%";
		obj.title = amount.decline("комментари- й,я,ев");
	}
}

function showGirls(first) 
{
	if (typeof(LP_DATA) == 'undefined') {
		return false;
	}
	if (!first) first = 0;
	var list = document.getElementById("girls-list");
	for (var i = first, lim = LP_DATA.length; i < lim; i++) {
		var data = parseLPData(LP_DATA[i]);
		var title = data.name;
		if (data.age) {
			title += ", " + parseInt(data.age, 10).decline("- год, года, лет");
		}
		if (data.city) {
			title += ", " + data.city;
		}
		var item = document.createElement("LI");
		item.innerHTML = '<a title="' + title + '" href="' + data.link + '" target="_blank"><img alt="' + data.name + '" src="' + data.foto + '"></a>';		
		list.appendChild(item);
	}
	document.getElementById("girls-box").style.display = "block";
}

function parseLPData(data)
{
	var result = [];
	for (var i = 0, lim = data.length; i < lim; i+= 2) {
		result[data[i].toLowerCase()] = data[i + 1];
	}
	return result;
}

function navigateThrough(event)
{
	var e = event || window.event;
	if (e && e.ctrlKey) {
		var key = e.which || e.keyCode;
		switch (key) {
            case 0x25: var link = document.getElementById("next-page"); break;
            case 0x27: var link = document.getElementById("prev-page"); break;
		}
		if (link && link.href) {
			document.location = link.href;
		}
	}
}

function processLinks(id) {
	var context = id ? document.getElementById(id) : document;
    var links = context.getElementsByTagName("A");
    for (var i = links.length; i--;) {
        var l = links[i];
        if (l.hasAttribute("herf")) {
            l.setAttribute("href", l.getAttribute("herf"));
            l.setAttribute("rel", "nofollow");
            l.removeAttribute("herf");
        }
    }
}
