$(document).ready(function(){
	// Handle blockUI
	$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
	
	// Init dialog
	$('#dialog').dialog({
		autoOpen: false,
		title: 'Napaka',
		modal: true,
		buttons: {
			'Vredu': function(){
					$(this).dialog('close');
				}	
		}
	});
	
	// Error handling
	function error(xhr, destination)
	{
		var dialog = $('#dialog');
		
		dialog.html('<p>Prišlo je do napake pri pošiljanju sporočila. Prosimo poskusite kasneje.</p>').dialog('open');
	}
	
	// Handle validation
	$("#frmContact").validationEngine();	
	
	// Handle show / send form
	$('#btnContact').toggle(
							function(){
								$('#frmContact').slideDown(300);
								$(this).text('- pišite nam za brezplačno ponudbo -');
							}, 
							function(){
								$('#frmContact').slideUp(300);
								$(this).text('+ pišite nam za brezplačno ponudbo +'); 
								
								// Remove all the error fields
								$('.formError').each(function(){
									$(this).remove();
								});
							}
	);
	
	$('#btnSend').click(function(){
		var url = '/_ajax/send_mail';
		var name = $('#name').val();
		var email = $('#email').val();
		var message = $('#msg').val();
		var data = 'name=' + name + '&email=' + email + '&message=' + message;
		var btn = $(this);
		var valid = $('#frmContact').validationEngine({returnIsValid:true});
		
		if(valid)
		{
			btn.text('pošiljam');
			
			$.ajax({
				type: 'POST',
				url: url,
				data: data,
				dataType: 'json',
				success: function(json){
					console.log(json.status);
					if(json.status == 1)
					{
						$('#frmContact').slideUp(300);
						$('#message').html(json.message).fadeIn(300).delay(2000).slideUp(300);
						$('#btnContact').text('+ pišite nam za brezplačno ponudbo +');
						
					} else {
						$('#dialog').html('<p>Nepredvidena napaka. Prosimo poskusite kasneje!</p>').dialog('open');	
					}
					
					btn.text('pošlji sporočilo');	
				},
				error: function(xhr, ajaxOptions, thrownError){
					error(xhr, url);
					
					btn.text('pošlji sporočilo');
				}
			});
		}

		return false;
	});
});