var cfrm;
function addComment(frm,page) {
	if (formValidator.validateForm(frm.getAttribute('name'))) {
		url = base_path + '?view='+page+'&mode=jscomment&js=1';
		var params = '';
		params += 'id='+frm.id.value+'&c_name='+frm.uname.value+'&c_message='+frm.comment.value+'&code='+frm.code.value+'&mid='+frm.mid.value;
		setCookie('uname',frm.uname.value);
		setCookie('email',frm.email.value);
		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 + ')');

		if (response.res)
		{
			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');
			}
		}
	} catch (e) {
		showMsg('Ошибочка какая-то, странненько...','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 voteRate(id,vote,blocks,mid){
	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 (t.responseText.length != 17){

			var el = document.getElementById(block);
			var i;
			if ((i = block.search(/_/)) == -1){
				var size = 20;
			}else {
				var size = 10;
			}

			el.style.width = size*t.responseText +"px";
        }else{
        	alert(t.responseText);
        }
		return;
	}
	/* * * * * * * * * * * * */
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);								
		}						
	}
	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]);					
			}
		}	
		
	}
	
	
	
}