$(document).ready(function() { 
    var options = { 
        beforeSubmit:  showRequest,   
        success:       showResponse, 
        url:           _APP_URL + '/articles/frontend/comments',          
        type:          'post'
    }; 
    $('#form_add_comment').ajaxForm(options);
    
    $('#yes').click(function() { 
        $.unblockUI(); 
        $('#login').toggle('fast');
        window.location = '#login';
    }); 
 
    $('#no').click(function() { 
        $.unblockUI(); 
        return false; 
    });	    

}); 

function toogleNewCommentForm() {
	$('#form_add_comment').toggle();
}
 
function showRequest(formData, jqForm, options) { 

	formData.push({name: 'comment[reference_id]', value: art_id});
    
	$("#form_add_comment *[class^='txt']").each(function(i){
		$(this).removeClass('formFieldErr');
		$("#" + this.id + " ~ *[class='formError']").remove();
	})
	
    $("#form_add_comment").block({
    	message: $('#ajax_loading'),
	    css: {
	        background: '#edf1ff',
	        color: '#01689f',
	        border: '1px solid #0282c6',
	        width: '200px',
			padding: '5px'
    	},
    	overlayCSS:  {  
	        backgroundColor:'#fff',  
	        opacity:        '0.6'  
    	}     	
    });
    
    if(!userHasIdentity){
		$("#form_add_comment").unblock();
		$.blockUI({ 
			message: $('#no_auth'), 
		    css: {
		        border: '#1px solid #E3E3E3',
		        width: '300px'
		    },			
			overlayCSS: {  
		        backgroundColor:'#fff',  
		        opacity:        '0.6'  
		    } 
		});
		return false;
	}
    
    return true; 
} 

function showResponse(responseText, statusText)  { 
	$("#form_add_comment").unblock();
	if (typeof responseText == 'object') {
		//we have validation errors
		$.each(responseText, function(k, v){
			createFieldErrorMessages(k, v)
		});
	} else {
		$("#comentarii, #comments_list, #comments_pagination").remove();
		$("#article_content").after(responseText);
		$("#form_add_comment").hide();
		$("#form_response_message").show();
		return true;
	}
	return false;
}

function createFieldErrorMessages(fieldName, errObj) {
	var err = '';
	$.each( errObj, function(k, v){
			err  +=  '<div class="formError">&uarr;&nbsp;' + v +  '&nbsp;&uarr;</div>';
	});
	$('#comment_' + fieldName).after(err);
	$('#comment_' + fieldName).addClass('formFieldErr');
}
