function limitChars(textid, limit, infodiv)
{
	var text = $('#'+textid).val();	
	var textlength = text.length;
	var charsleft = limit - textlength;
	if (charsleft < 0) charsleft = 0;

	$('#' + infodiv).html((charsleft) +' characters left.');
	if(textlength > limit)
	{
		$('#'+textid).val(text.substr(0,limit));
		return false;
	}
	
	return true;
}

$(document).ready(function(){
	$('#message').keyup(function(){
		limitChars('message', 550, 'charlimitinfo');
	}).keyup();
	
    $("span.register-field input").focus(function () {
        $(this).parent().next("span.error").remove();
    });
    
    $("span.comment-field textarea").focus(function () {
        $(this).prev("span.error").remove();
    });	
	    
    $("#submitComment").click(function(){

        $(".error").hide();
        var hasError = false;
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		
		var badwordlist = new Array("Nice Site", "Good Work", "xxx", "<a", "href", "http", "www.");
		var messageReg = new RegExp(badwordlist.join('|'));

        var usernameVal = $("#user_name").val();
        if(usernameVal == '') {
            $("#user_name").parent().next("span.error").remove();
            $("#user_name").parent().after('<span class="error">*Required field</span>');
            hasError = true;
        }

        var emailToVal = $("#user_email").val();
		if(emailToVal == '') {
		    $("#user_email").parent().next("span.error").remove();
			$("#user_email").parent().after('<span class="error">*Invalid email</span>');
			hasError = true;
		} else if(!emailReg.test(emailToVal)) {
			$("#user_email+span.error").remove();
			$("#user_email").before('<span class="error">*Invalid email</span>');
			hasError = true;
		}

        var messageVal = $("#message").val();
        if(messageVal == '') {
            $("#message").prev("span.error").remove();
            $("#message").before('<span class="error">*Required field</span>');
            hasError = true;
        } else if (messageReg.test(messageVal)) {
            $("#message").prev("span.error").remove();
            $("#message").val('').keyup();
            $("#message").before('<span class="error">*Spam content detected!</span>');
            hasError = true;
        }
        
        var tokenVal = $("#commentList > #token").val();
        var lastPageVal = $("#commentList > #lastPage").val();
        var sortVal = $("#commentList > #sort").val();
        var directionVal = $("#commentList > #direction").val();        
        var articleIdVal = $("#articleId").val();

        if (hasError == false) {
            $("#post_a_comment").after("<img src=\"/img/ajax-loader.gif\"");
            $("#comments").load("/comment/submit/articleId:" + articleIdVal + "/page:" + lastPageVal + "/sort:" + sortVal + "/direction:asc",
            					{user_name: usernameVal, user_email: emailToVal, message: messageVal, token: tokenVal},
            					function(result,status,xhr) {
            						$("#post_a_comment+img").remove();
            						$("#message").val('').keyup();
            						$("#newest").removeClass("selected");
            						$("#oldest").addClass("selected");
            						
            						if (status != 'success') {
            							$("#message").before('<span class="error">*Error occurred. Comment was ignored.</span>');
            						}
            					}
            );
        }

        return false;
    })
    .css('cursor','pointer');
});
