$(function() {
	var load = new Image();
	load.src = '/images/loader.gif';

	$('.newsletter').fancybox({
		'width' : 400,
		'height' : 280,
		'titleShow' : false,
		'autoDimensions': false,
		'autoScale': false,
		'onStart' : function() {
			$('#newsletter').find('input[type=text]').val('');
			$('#response').empty();
			$('#newsletter').find('input[type=submit]').unbind('click');
			$('#newsletter').find('input[type=submit]').bind('click', function() {
				$('#response').empty();
				var name = $('#newsletter').find('#newsletter-name').val();
				var phone = $('#newsletter').find('#newsletter-phone').val();
				var email = $('#newsletter').find('#newsletter-email').val();
				loader($('#form'), 'show');
				$.ajax({
					type	: 'POST',
					url: '/newsletter/',
					dataType: 'json',
					data: {'newsletter[name]': name, 'newsletter[phone]': phone, 'newsletter[email]': email},
					success: function(data) {
						loader($('#form'), 'hide');
						if(data.success && data.success.length > 0) {
							for(i in data.success) {
								$('#response').append('<div class="small">'+data.success[i]+'</div>')
							}
							setTimeout(function() {
								$.fancybox.close();
							}, 2000)
						} else if(data.error && data.error.length > 0) {
							for(i in data.error) {
								$('#response').append('<div class="small red">'+data.error[i]+'</div>')
							}
						}
						loader($('#form').parent(), 'hide');
					},
					error: function() {
						loader($('#form'), 'hide');
						$('#response').append('Error. Please refresh page.');
					}
				});
				return false;
			})
			
		}
	});
});

function loader($this, action) {
	var loader = new Image();
	loader.src = '/images/loader.gif';

	switch(action) {
		case 'show':
			if($this.children('.loader').length == 0) {
				var wBlock = 400;
				var hBlock = 300;
				var c = '<div class="loader" style="position: absolute; display: none; opacity: 0.8"></div>';
				$this.append(c);
				var newLoader = new Image();
				newLoader.src = loader.src;

				$this.children('.loader').append(newLoader);
				$this.children('.loader').css({
					'top': (hBlock-newLoader.height > 0) ? (hBlock-newLoader.height)/2 : 0,
					'left': (wBlock-newLoader.width > 0) ? (wBlock-newLoader.width)/2 : 0
				}).fadeTo(100, 1);
			}
			break;
		case 'hide':
			$this.children('.loader').stop().fadeOut(100, function() {
				$(this).remove();
			});
			break;
	}
};
