
function previewComment() {
	$('commentForm').request({
		parameters: {act:'preview'},
		onSuccess: function(result) {
			json = result.responseText.evalJSON();
			check = json.check.toArray();

			preview = '<p class="chapeau" id="comment"><img src="/media/images/comment.png" /> Votre commentaire</p>';
			if(check.length > 0) {
				preview += '<div class="message">Votre commentaire n\'est pas valide. Merci de corriger les champs indiqués en rouge dans le formulaire ci-dessous.</div>';
				updateErrors(check);
			} else {
				preview += createComment(json.comment);
				resetFields();
			}
			
			$('previewComment').innerHTML = preview;
		}
	});
}

function postComment() {
	$('cBis').value = $('fAuthor').value;
	
	$('commentForm').request({
		parameters: {act:'submit'},
		onSuccess: function(result) {
			json = result.responseText.evalJSON();
			check = json.check.toArray();
			
			if(check.length > 0) {
				msg = '<p class="chapeau" id="comment"><img src="/media/images/comment.png" /> Votre commentaire</p>';
				msg += '<div class="message">Votre commentaire n\'est pas valide. Merci de corriger les champs indiqués en rouge dans le formulaire ci-dessous.</div>';
				$('previewComment').innerHTML = msg;
				updateErrors(check);
			} else {
				
				if($('commentList')) {
					// there are already comments
					content = createComment(json.comment);
					$('nbComment').innerHTML = parseInt($('nbComment').innerHTML) + 1;
				} else {
					// first comment
					content = '<p class="chapeau" id="comment"><img src="/media/images/comment.png" /> Un commentaire</p>';
					content += createComment(json.comment);
				}
				
				$('previewComment').innerHTML = content;
				$('commentForm').reset();
				resetFields();
			}
		}
	
	});
	
	return false;
}

function createComment(comment) {
	d = new Date();
	var months = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
	var days = ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'];
	
	str = '<div id="comment-preview" style="margin: 20px 0 20px 0;">';
	str += '<p class="meta">le <a href="' + location.href + '#comment-preview">' + days[d.getDay()] + ' ' + d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear() + ' à ' + d.getHours() + 'h' + d.getMinutes() + '</a>, ';
	str += '<cite><a href="' + comment.authorUrl + '">' + comment.author + '</a></cite> dit : </p>';
	str += '<div class="content">' + comment.content + '</div>';
	str += '</div>';
	
	return str;
}

function resetFields() {
	// reset previous field
	['fAuthor', 'fUrl', 'fContent'].each(function(s) {
		$(s).parentNode.className = '';
	});
}

function updateErrors(fields) {
	resetFields();
	
	// set new class if the field contains an error
	for(var i=0;  i < fields.length; i++) {
		fieldName = 'f'+fields[i].charAt(0).toUpperCase()+fields[i].substr(1);
		$(fieldName).parentNode.className = 'erroneousField';
	}
	
}
