function Comment(){
	var page= 'xhr/ajax-insert-comment.php?a=insert_comment';
	var frm= null;
	var c_save= null;
	var frmHeight= 0;
	var spacer= 30;
	var noXhr= 'Il tuo browser non supporta questo script.';
	var errMsgAuthor= 'L\'autore e\' obbligatorio.';
	var errMsgEmail= 'Inserisci un indirizzo email valido.';
	var errMsgUrl= 'Url del sito personale non valido.';
	var errMsgComment= 'Il commento e\' obbligatorio.';
	var errMsgCaptcha= 'Il codice di sicurezza e\' obbligatorio.';
	var successfull= 'Grazie. Il tuo commento sara\' pubblicato a breve.';
	function Response(xhr){
		try{ var response= json_decode(xhr.responseText);}
		catch(er){ alert(er); return;}
		if('error' in response){
			showErrorServer(response.error);
			return;
		}
		commentBlock();
		Cookie.set('csc',response.pid,1);
	}
	function Request(values){
		var xhr= new XHConn();
		if(!xhr){alert(noXhr);return;}
		var postVar= 'JSON='+encodeURIComponent(json_encode(values));
		xhr.connect(page,'POST',postVar,Response,errorHandler);
		c_save.disabled= true;
		showLoader();
	}
	function checkForm(e){
		var validator = new Validator();
		validator.add(new isIntV('pid','Something went wrong'));
		validator.add(new isEmptyV('c-author',errMsgAuthor));
		validator.add(new isValidEmailV('email',errMsgEmail));
		validator.add(new isUrlV('url',errMsgUrl));
		validator.add(new isEmptyV('comment',errMsgComment));
		validator.add(new isEmptyV('security',errMsgCaptcha));
		cancelClick(e);
		if(!validator.isValid()){
			resetStyle(frm,"#f4f4f4","#000000");
			showError(frm,validator);
		}
		else{
			Request(validator.values);
		}
		//addEvent(window,'load',checkForm,false);
	}
	function closeError(){
		c_save.disabled= false;
		var errorMsg= $('error-msg');
		_removeChild(frm,errorMsg);
	}
	function showError(target,objV){
		c_save.disabled= true;
		var errorMsg= buildError();
		var errorMsgBox= _createElement('div',{id:'error-msg-box'});
		errorMsgBox.style.paddingTop= Math.floor((frmHeight-spacer)/5)+'px';
		for(var i=0,len=objV.errors.length;i<len;i++){
			var wrapper= _createElement('p',{});
			wrapper.className= 'wrapper-error';
			wrapper.appendChild(_createTextNode(objV.errors[i].error));
			errorMsgBox.appendChild(wrapper);
		}
		errorMsg.appendChild(errorMsgBox);
		objV.errors[0].el.style.backgroundColor= '#FF0000';
		objV.errors[0].el.style.color= '#FFFFFF';
		target.appendChild(errorMsg);
	}
	function showLoader(){
		var wrapper= _createElement('div',{id:'loader'});
		setOpacity(wrapper,8);
		var divHeight= frmHeight-spacer;
		wrapper.style.height= divHeight+'px';
		wrapper.style.marginTop= spacer+'px';
		frm.appendChild(wrapper);
	}
	function commentBlock(){
		var commentBlock= _createElement('div',{id:'comment-block'});
		var commentBlockIn= _createElement('p',{});
		commentBlockIn.appendChild(_createTextNode(successfull));
		commentBlock.appendChild(commentBlockIn);
		var wrapper= $('insert-comment');
		wrapper.replaceChild(commentBlock,frm);
	}
	function buildError(){
		var errorMsg= _createElement('div',{id:'error-msg'});
		setOpacity(errorMsg,7);
		var divHeight= frmHeight-spacer;
		errorMsg.style.height= divHeight+'px';
		errorMsg.style.marginTop= spacer+'px';
		var xclose= _createElement('p',{'id':'xclose'});
		var xspan= _createElement('span',{});
		xspan.appendChild(_createTextNode('X'));
		xclose.appendChild(xspan);
		errorMsg.appendChild(xclose);
		addEvent(xspan, 'click', closeError, false);
		return errorMsg;
	}
	function checkCookie(){
			var csc = Cookie.get('csc');
			return ((csc != false) && (csc == $('pid').value));
	}
	function showErrorServer(msg){
		var errorMsg= buildError();
		var errorMsgBox= _createElement('div',{id:'error-msg-box'});
		errorMsgBox.style.paddingTop= Math.floor((frmHeight-spacer)/5)+'px';
		var wrapper= _createElement('p',{});
		wrapper.className= 'wrapper-error';
		wrapper.appendChild(_createTextNode(msg));
		errorMsgBox.appendChild(wrapper);
		errorMsg.appendChild(errorMsgBox);
		_removeChild(frm,$('loader'));
		var security= $('security');
		security.style.backgroundColor= '#FF0000';
		security.style.color= '#FFFFFF';
		frm.appendChild(errorMsg);
	}
	function init(){
		if(!document.getElementById || !document.getElementsByTagName || !document.createTextNode){return;}
		frm= $('frm-comment');
		if(frm != null){
			preloadImgs('images/ajax-loader.gif');
			frmHeight= frm.offsetHeight;
			c_save= $('c-save');
			addEvent(frm, 'submit', checkForm, false);
		}
	}
	init();
}
addEvent(window,'load',Comment,false);
