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 container = document.getElementById(id);
	var items = container.getElementsByTagName("a");
	var width = Math.min(Math.floor((container.offsetWidth - 20) / items.length), 16);
	var height = 50;
	for (var i = 0, lim = items.length; i < lim; i++) {
		var item = items[i];
		var amount = parseInt(item.title);
		var size = Math.ceil(amount / maxPerMonth * height);
		var date = item.innerHTML;
		item.title = date.charAt(0).toUpperCase() + date.substring(1) + ' года, ' + amount.decline("картин- ка,ки,ок");
		item.style.width = width - 1 + 'px';
		item.style.left = i * width + 'px';
		item.style.height = size + 'px';
		item.style.borderTopWidth = (height - size) + 'px';
		if (date.indexOf('янв') !== -1) {
			var year = document.createElement('DIV');
			year.style.left = i * width + 'px';
			year.className = 'year';
			year.innerHTML = date.split(' ')[1];
			item.parentNode.appendChild(year);
		}
	}
}

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.code = document.getElementById("comment-code");
	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(/^\s+|\s+$/g, '').replace(/(\D)\1{2,}/gi, "$1$1$1");
	if (modStr != str) this.content.value = modStr;
	this.code.value = this.content.value.length;
	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 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");
		}
	}
}

