var formIsBeingSubmitted, formSubmitSuccess;

$(document).ready(function() {
	// Stuff to do as soon as the DOM is ready;
	
	$('div.createComment').hide();
	$('a.createComment').click(
		function() {
			// $('div.createComment').slideToggle('slow');
			// $('div.showCreate').fadeOut();
			$('div.createComment').show();
			$('div.showCreate').hide();
			$('input#name').focus();
			$.scrollTo( 'input#name');
		}
	);
	$('#hideCommentForm').click(
		function() {
			$('div.createComment').show();
			$('div.showCreate').show();
		}
	);	  
	
	Recaptcha.create("6LchGAwAAAAAAIZsn8-Dt77dIwDtj0drcrkpbz30",
	"recaptcha_div", {
	   theme: "white"
	});
	
	$("form.createComment").validate({
		rules: {
			name: 'required',
			comment: 'required',
			recaptcha_response_field: 'required'
		},
		messages: {
			name: 'Name',
			comment: 'Comment',
			recaptcha_response_field: 'Captcha'
		},
		onclick: false,
		onkeyup: false,
		onfocusout: false,
		submitHandler: function(form) {
			formIsBeingSubmitted = true;
			$('#submit-message-dialog').dialog({
				modal: true,
				title: 'Creating Comment..',
				width: 300,
				height: 200
			});
			
			$(form).ajaxSubmit({
				dataType: 'json',
				success: function(data, status){
					if(data){
						if(data.create_status == 1){
							$('#submit-message-dialog').dialog('close');
							$('#success-message').dialog({
								modal: true,
								title: 'Thank You!',
								buttons: { "Ok": function() { $(this).dialog("close"); }},
								width: 300,
								height: 200,
								close: function(){ window.location.reload() }
							});
							setTimeout('window.location.reload();', 3000);
						}	 
						else{
							$('#submit-message-dialog').dialog('close');
							var message = "";
							$.each(data.form_errors, function(index, errorMessage){
								message += errorMessage + '<br />';
							});
							$.jGrowl(message, { header: 'Following error(s) have been found:', life: 5000 });
						}	 
					}
					else{
						$('#submit-message-dialog').dialog('close');
						$('#error-message').dialog({
							modal: true,
							title: 'An error occurred while processing your request, please try again later.',
							width: 300,
							height: 200
						});
					}
				}
			});
			formSubmitSuccess = true;
			
		},
		invalidHandler: function(form, validator) {
			formIsBeingSubmitted = true;
			// var errors = validator.numberOfInvalids();
			// if (errors) {
			//	   var message = errors == 1
			//		 ? 'You missed 1 field. It has been highlighted'
			//		 : 'You missed ' + errors + ' fields. They have been highlighted';
			//	   alert(message);
			// }
		},
		showErrors: function(errorMap, errorList) {
			if(formIsBeingSubmitted && !formSubmitSuccess){
				var message = "";
				$.each(errorMap, function(index, errorMessage){ message += errorMessage + '<br />'; });
				$.jGrowl(message, { header: 'Following field(s) are invalid:', life: 5000 });
				// alert(errorList, errorMap);
			}
			formIsBeingSubmitted = false;
		}
	}); 
});

