/* 
Javascript Document
www.electricaltrainingcourse.co.uk
Copyright 2009 PASS Ltd
$Id: userdata.js 95 2009-06-16 13:55:00Z john.miller $
*/

$(document).ready(function ()
{
	$('ul.course-dates input.book-online').click(function (e)
	{
		e.preventDefault();
		
		// set userdata request source
		userdata.requestModel = this.id;
		
		// load the contact form using ajax
		$.get(urlRoot+"/ajax/user-data", function(data)
		{
			// create a modal dialog with the data
			$(data).modal({
				close: false,
				position: ["15%",],
				overlayId: 'userdata-overlay',
				containerId: 'userdata-container',
				onOpen: userdata.open,
				onShow: userdata.show,
				onClose: userdata.close
			});
		});
	});
});

var userdata = 
{
	requestModel: null,
	message: null,
	open: function (dialog)
	{
		var h = 220;
		var title = $('#userdata-container .uf-title').html();
		$('#userdata-container .uf-title').html('Loading...');
		
		dialog.overlay.fadeIn(100, function ()
		{
			dialog.container.fadeIn(100, function ()
			{
				dialog.data.fadeIn(100, function ()
				{
					$('#userdata-container .uf-content').animate({
						height: h
					}, 
					function()
					{
						
						$('#userdata-container form').fadeIn(100,function()
						{
							// replace loading with actual title
							$('#userdata-container .uf-title').html(title);
							$('#userdata-container #uf-email').focus();
						});
					});
				});
			});
		});
	},
	
	show: function (dialog)
	{
		// setup the send action
		$('#userdata-container .uf-send').click(function (e)
		{	
			e.preventDefault();
			
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if(!filter.test($('#uf-email').val()))
			{
				userdata.triggerError('Please enter a valid email address to continue');
				$('#uf-email').focus();
			}
			else if($('#uf-tel').val().length < 5)
			{
				userdata.triggerError('Please enter a valid telephone number to continue');
				$('#uf-tel').focus();
			}
			else
			{
				$('#userdata-container .uf-title').html('Sending Details...');
				$('#userdata-container form').fadeOut(200);
				
				/*
				# construct and send ajax form
				*/
				$.ajax({
					url: urlRoot+'/ajax/set-user-data',
					data: $('#userdata-container form').serialize()+'&request='+userdata.requestModel,
					type: 'post',
					cache: false,
					dataType: 'json',
					success: function(res)
					{
						if(res.error.length>0)
						{
							$('#userdata-container .uf-title').html('There was a problem...');
							$('#userdata-container form').fadeIn(50);
							userdata.triggerError(res.error);
						}
						else document.location = urlRoot+res.location;
					},
					error: userdata.error
				});
			}
			
		});
	},
	
	close: function (dialog)
	{
		$('#userdata-container .uf-message').fadeOut();
		$('#userdata-container .uf-title').html('');	
		$('#userdata-container form').fadeOut(100);
		$('#userdata-container .uf-content').animate({
			height: 40
		}, 
		function()
		{	
			dialog.data.fadeOut(100, function()
			{
				dialog.container.fadeOut(100, function() 
				{
					dialog.overlay.fadeOut(100, function()
					{
						$.modal.close();
					});
				});
			});
		});
	},
	
	error: function (xhr)
	{
		alert(xhr.statusText);
	},
	
	triggerError: function (strerror)
	{
		var t = $('#userdata-container .uf-message')
		t.fadeOut(100,function()
		{
			t.html(strerror);
			//t.css('color','#ff0000');
			//t.css('font-weight','bold');
			t.fadeIn(200);
		});
	}
};