var cfrm;
function addComment(frm,page) {
	if (formValidator.validateForm(frm.getAttribute('name'))) {
		url = base_path + '?view='+page+'&mode=jscomment&js=1';
		var params = '';
		var name,message,email;
		if (frm.uname){
			name = frm.uname.value;
		} else {
			name = frm.c_uname.value;
		}
		if (frm.email){
			email = frm.email.value;
		} else {
			email = frm.c_email.value;
		}
		if (frm.comment){
			message = frm.comment.value;
		} else {
			message = frm.c_comment.value;
		}
		params += 'id='+frm.id.value+'&c_name='+name+'&c_message='+message+'&code='+frm.code.value+'&mid='+frm.mid.value+(email ? '&c_email='+email : '');
		if (frm.likes){
			params += "&c_likes="+frm.c_likes.value;
		}
		if (frm.likes){
			params += "&c_notlike="+frm.c_notlike.value;
		}
		setCookie('uname',name);
		setCookie('email',email);
		showMsg('Пожалуйста подождите...');
		cfrm = frm;
		var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: params,
			onComplete: commentResponse,
			onFailure: commentResponse
		});
	}
}

var commentErrors = new Array('','Не прошло минимальное время с прошлого сообщения.','Не указан пост','Ошибка на сервере.','Пустое сообщение','Комментарии могут оставлять только зарегистрированные пользователи!','Не правильно введено число на картинке.');

function commentResponse(t) {

	showMsg('');
	try {
		var response = eval('(' + t.responseText + ')');
	} catch (e) {
		showMsg('Ошибка сервера.','error')
	}
		if (response.res)
		{
			if (window.noAddComment){
				if (window.addcommentmsg){
					showMsg(window.addcommentmsg);
				} else {
					showMsg('Комментарий добавлен.');
				}
			} else {
				var div,d;
				div = document.createElement('div');div.className = 'block';
				d = document.createElement('div');d.className = 'u';d.appendChild(document.createTextNode(response.username));div.appendChild(d);
				d = document.createElement('div');d.className = 'd';d.appendChild(document.createTextNode(response.added));div.appendChild(d);
				d = document.createElement('div');d.className = 't';d.innerHTML = response.message;div.appendChild(d);
				var fb = document.getElementById('formblock');
				if (fb && fb.parentNode) {
					fb.parentNode.insertBefore(div,fb);
				}
			}
			cfrm.reset();
		} else {
			if (response.errno && commentErrors[response.errno]) {
				showMsg(commentErrors[response.errno],'error');
			} else {
				showMsg('Ошибка сервера.['+response.errno+']','error');
			}
		}
	
	
	reloadCaptcha();

}

function reloadCaptcha() {
	var o,n;
	o = document.getElementById('capimg');o.id = '';
	n = new Image();n.id = 'capimg';n.src = o.src + '&1';n.alt = '';
	o.parentNode.replaceChild(n,o);
}


function showMsg(msg,type) {
  var box = document.getElementById('msgbox');
  if (box) {
  	box.className = type ? type : '';
  	box.innerHTML = msg;
  }
}
function clearComments() {
	var fb = document.getElementById('formblock');	
	if (fb && fb.parentNode) {
		fb = fb.parentNode;		
		var blocks = fb.getElementsByTagName('div');		
		for (var i=0;i<blocks.length;i++) {
			if (blocks[i].className == 'block') fb.removeChild(blocks[i]);
		}
		
	}
	
}

function voteRate(id,vote,blocks,mid){
	if ((id == false) && (currentImageId > 0)){
		id = currentImageId;
	}
	if (link == undefined){
		var link = "comments";
	}
	block = blocks;
    var url = base_path+'?view='+link+'&mode=vote&id='+id+'&vote='+vote+'&mid='+mid;

 	var myAjax = new Ajax.Request(
			url,
			{
					method: 'post',
			parameters: '',
			onComplete: commonResponseVote.bind(this),
			onFailure:failResponse.bind(this)
		});


     }
    /* * * * * * * * * * * * */

	function failResponse(t) {
		return;
	}
	/* * * * * * * * * * * * */

	/* * * * * * * * * * * * */
	
	function commonResponseVote(t) {
		if (window.votesize == undefined) {
			window.votesize = 20;
		}

        if (t.responseText.length != 17){

			var el = document.getElementById(block);
			var i;
			if ((i = block.search(/_/)) == -1){
				var size = window.votesize;
			}else {
				var size = window.votesize / 2;
			}

			el.style.width = size*t.responseText +"px";
        }else{
			if (window.alreadyVote){
				showLightBox('alreadyvote');
			} else {
				alert(t.responseText);
			}
        	
        }
		return;
	}

	/* * * * * * * * * * * * */
	function placeComment(c) {
	var div,d;
	div = document.createElement('div');div.className = 'block';
	d = document.createElement('div');d.className = 'u';d.appendChild(document.createTextNode(c.username));div.appendChild(d);
	d = document.createElement('div');d.className = 'd';d.appendChild(document.createTextNode(c.added));div.appendChild(d);
	d = document.createElement('div');d.className = 't';d.innerHTML = c.message;div.appendChild(d);
	var fb = document.getElementById('formblock');
	if (fb && fb.parentNode) {
		fb.parentNode.insertBefore(div,fb);
	}	
}
var currentImageId;
function cItemInfo (page) {
	this.page = page;	
	this.title = null;
	this.vote = null;
	this.voteLength = 20;
	this.comments = null;
	this.cont = null;
	this.items = {};
	
	this.retrieveInfo = function(item_id) {
		if (this.items[item_id]) {
			this.setItem(this.items[item_id]);			
			return;
		}
		url = base_path + '?view='+this.page+'&mode=jsinfo&id='+item_id+'&cp=1'+(this.vote ? '&vote=1' : '')+(this.comments ? '&comments=1' : '');

		var params = '';				
		this.setState(true);
		var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: params,
			onComplete: this.infoResponse.bind(this),
			onFailure: this.setState.bind(this,false)
		});
		
	}
	
	this.setState = function(mode) {
		var icon = $('waitimg');		
		icon.style.visibility = mode ? 'visible' : 'hidden';		
	}
	
	this.infoResponse = function(t) {			
		this.setState(false);
		var r = eval('(' + t.responseText + ')');
		if (r.result) {
			this.items[r.id] = r;
			this.setItem(r);
			currentImageId = r.id;
			document.forms.comments.id.value = r.id;
		}						
	}
	this.setItem = function (r) {
		this.title.innerHTML = r.ti;
		if (this.vote) {				
			this.vote.style.width = (r.voterate*this.voteLength) + 'px';
		}
		
		clearComments();
		if (this.comments && r.comments  && r.comments.length) {
			
			for (var i=0;i<r.comments.length;i++) {
				placeComment(r.comments[i]);					
			}
		}	
		
	}
	
	
	
}
