/*
 * Define AJAX form params
 */
var oAddUserPoiParams = {

	async: false,
	
	beforeSubmit: function(formData, jqForm, options)
	{
		var form = jqForm[0];

		if (form.userpoi_title.value == '' ||
		    form.userpoi_lat.value == '' ||
		    form.userpoi_lon.value == '' ||
			form.userpoi_category.value == '')
		{
			msg('Je moet tenminste een naam, coordinaten en een soort opgeven.');
			stopspinner('#cbox_loader');
			return false;
		}

		return true;
	},

	success:function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText != 'success')
		{
			msg("Er is een fout opgetreden.<br />Je nuttige punt is niet geplaatst.")
			return false;
		}

		// Clear the form
		clearForm('#userpois');

		if ($('span.userpois').hasClass('displayNone'))
		{
			$('span.userpois').fadeIn().removeClass('displayNone');
		}

		if ($('#show_all_pois:checked').length == 0)
		{
			//$('#show_all_pois').attr('checked', 'true');
			//$('#show_all_pois').click();	// Add markers, adds a remove marker listener (line 383)

		}
		else
		{
			$('#show_all_pois').click();	// Remove by attached gmap removemarker listener (line 383)
			$('#show_all_pois').click();
		}

		msg('Je point of interest is aan de route toegevoegd.');
	}
};

var oRouteCommentParams = {

	dataType: 'json',

	beforeSubmit: function(formData, jqForm, options)
	{
		var form = jqForm[0];
		var bReturn = false;

		if (form.rating == undefined)
		{
			if (form.comment.value != "")
			{
				bReturn = true;
			}
		}

		switch (bReturn)
		{
			case true:
				return true;
				break;
			case false:
				$('#routecomment_msg').html('Je moet een reactie invullen om het formulier te kunnen versturen');
				stopspinner('#cbox_loader');
				return false;
				break;
		}
	},

	success: function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText == 'success')
		{
			if (responseText != 'undefined')
			{
				if (typeof(responseText.error) !== 'undefined')
				{
					$('#routecomment_msg').html("Er is een fout opgetreden. Je reactie kon niet worden geplaatst.");
				}
				else
				{
					$('#routecomment_msg').html('Bedankt voor je reactie, dit venster wordt na 2 seconden gesloten.');

					var $identifier = $('div.general_reactions').children('div.block_content');

					$identifier.fadeOut('slow' , function()
					{
						$identifier.html(responseText.html);

						/* Add some styles, form main.js */
						addButtons();
						addImgMask('img.mask');


						$identifier.show();
					});

					setTimeout(function()
					{
						$('#cboxClose').click();
					}, 2000);
				}
			}
		}
		else
		{
			$('#routecomment_msg').html("Er is een fout opgetreden. Je reactie kon niet worden geplaatst.");
		}
	}
};


var oRouteImgUploadParams = {

	dataType: 'json',

	beforeSubmit: function(formData, jqForm, options)
	{


		var form = jqForm[0];
		var bReturn = false;

		var msg = "";

		switch (form.action.value)
		{
			case 'uploadImage':

				if (form.image.value == '')
				{
					var msg = "Je moet een afbeelding kiezen om het het formulier te kunnen versturen";
				}

				break;

			case 'uploadVideo':

				var sValidLink = 'http://www.youtube.com/watch?v=';

				if (form.video.value == '')
				{
					var msg = "Je moet een YouTube video invullen om het het formulier te kunnen versturen";
				}
				else if (form.video.value.indexOf(sValidLink) !== 0)
				{
					var msg = "Je hebt geen juiste link naar een YouTube video ingevuld. Kopieer de link uit de URL balk van je YouTube video.";
				}

				break;
		}

		if (msg.length == 0)
		{
			return true;
		}

		$('#form_msg').html(msg);
		stopspinner('#cbox_loader');
		return false;
	},

	success: function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText == 'success')
		{
			if (responseText != 'undefined')
			{
				if (typeof(responseText.error) == 'string')
				{
					if (responseText.error == 'uploadImage')
					{
						$('#form_msg').html("Je foto kon niet worden geplaatst. Let op dat je alleen .jpg, .png en .gif bestanden van maximaal 8MB mag uploaden.");
					}
					else
					{
						$('#form_msg').html("Je video kon niet worden geplaatst.. Let op dat je alleen de link uit de adresbalk in dit veld mag plakken.");
					}
				}
				else
				{
					if (typeof(responseText.success) !== 'undefined' && responseText.success == 'uploadImage')
					{
						$('#form_msg').html('Bedankt voor je foto, dit venster wordt na 2 seconden gesloten.');

						//
						// Files can't be uploaded via XMLHttpRequest, AJAXForm uses an iFrame to send the file
						// The response will also be sent to this iFrame, so refreshing of the block has to be done in this script
						//
						// The returned JSON is caught in responseText, but I can't get it to accept the complete JSON from the paging refresh
						//
						var aItem 		= $('a.uploadLatest').attr('id').split('-');
						var mediatype 	= aItem[0];
						var itemId 		= aItem[1];

						$.getJSON('/ajax/ajax_getJson.php' , {
							action: 	'paging',
							ident: 		'home_latest_photos',
							pageNum: 	0,
							mediatype:	mediatype,
							itemId: 	itemId
						},
						function(data)
						{
							if (typeof(data.html) != 'undefined')
							{
								var $identifier = $('div.home_latest_photos').children('div.block_content');

								$identifier.fadeOut('slow' , function()
								{
									$identifier.html(data.html);

									// Add some styles
									addButtons();
									addImgMask('img.mask');

									$('.latest_photo_scroller').scrollable({clickable: false, size: 3}).circular();

									// fading makes the page jump
									$identifier.show();
								});
							}
						});

						setTimeout(function()
						{
							$('#cboxClose').click();
						}, 2000);
					}
					else
					{
						$('#form_msg').html('Bedankt voor je video, dit venster wordt na 2 seconden gesloten.');

						var $identifier = $('div.home_latest_photos').children('div.block_content');

						$identifier.fadeOut('slow' , function()
						{
							$identifier.html(responseText.html);

							/* Add some styles, form main.js */
							addButtons();
							addImgMask('img.mask');

							$('.latest_photo_scroller').scrollable({clickable: false, size: 3}).circular();

							$identifier.show();
						});

						setTimeout(function()
						{
							$('#cboxClose').click();
						}, 2000);
					}
				}
			}

		}
		else
		{
			$('#form_msg').html("Er is een fout opgetreden. Je foto of video kon niet worden geplaatst.");
		}
	}
};

var oRouteUploadParams =
{
	dataType: 'json',

	beforeSubmit: function(formData, jqForm, options)
	{
		var form = jqForm[0];
		var bReturn = false;

		if (form.rating == undefined)
		{
			if (form.comment.value != "")
			{
				bReturn = true;
			}
		}

		switch (bReturn)
		{
			case true:
				return true;
				break;
			case false:
				$('#routecomment_msg').html('Je moet een reactie invullen om het formulier te kunnen versturen');
				stopspinner('#cbox_loader');
				return false;
				break;
		}
	},

	success: function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText == 'success')
		{
			if (responseText != 'undefined')
			{
				if (typeof(responseText.error) !== 'undefined')
				{
					$('#routecomment_msg').html("Er is een fout opgetreden. Je reactie kon niet worden geplaatst.");
				}
				else
				{
					$('#routecomment_msg').html('Bedankt voor je reactie, dit venster wordt na 2 seconden gesloten.');

					var $identifier = $('div.route_general_reactions_red').children('div.block_content');

					$identifier.fadeOut('slow' , function()
					{
						$identifier.html(responseText.html);

						/* Add some styles, form main.js */
						addButtons();
						addImgMask('img.mask');


						$identifier.show();
					});

					setTimeout(function()
					{
						$('#cboxClose').click();
					}, 2000);
				}
			}
		}
		else
		{
			$('#routecomment_msg').html("Er is een fout opgetreden. Je reactie kon niet worden geplaatst.");
		}
	}
}
var oManageMyHorses =
{
	dataType: 'json',

	beforeSubmit: function(formData, jqForm, options)
	{
		var form = jqForm[0];
		var msg = '';

		if (form.rating == undefined)
		{
			if (form.title.value == "" || form.color.value == "" || form.height.value == "" || form.age.value == "")
			{
				msg  = "Je moet ale velden invullen om door te kunnen gaan.";
			}
		}


		if (msg.length == 0)
		{
			return true;
		}

		$('#form_msg').html(msg);
		stopspinner('#cbox_loader');
		return false;
	},

	success: function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText == 'success')
		{
			if (responseText != 'undefined')
			{
				if (typeof(responseText.error) !== 'undefined')
				{
					$('#form_msg').html(responseText.error);
				}
				else
				{
					var msg = false

					switch (responseText.success)
					{
						case 'insert':
							msg = "Je paard is toegevoegd! ";
							break;

						case 'update':
							msg = "Je paard is aangepast. ";
							break;
					}

					$('#form_msg').html(msg + ' Dit venster wordt na 2 seconden gesloten.');

					//
					// Files can't be uploaded via XMLHttpRequest, AJAXForm uses an iFrame to send the file
					// The response will also be sent to this iFrame, so refreshing of the block has to be done in this script
					//
					// The returned JSON is caught in responseText, but I can't get it to accept the complete JSON from the paging refresh
					//
					var aItem 		= $('#updateHorseId').val().split('-');
					var mediatype 	= aItem[0];
					var itemId 		= aItem[1];

					$.getJSON('/ajax/ajax_getJson.php' , {
						action: 	'paging',
						ident: 		'club_my_horses',
						pageNum: 	0,
						itemId: 	itemId
					},
					function(data)
					{
						if (typeof(data.html) != 'undefined')
						{
							var $identifier = $('div.club_my_horses').children('div.block_content');

							$identifier.fadeOut('slow' , function()
							{
								$identifier.html(data.html);

								// Add some styles
								addButtons();
								addImgMask('img.mask');

								///$identifier.find('a.updateHorse').attr('id', 'siteuser-' + itemId);

								// fading makes the page jump
								$identifier.show();
							});
						}
					});

					setTimeout(function()
					{
						$('#cboxClose').click();
					}, 2000);
				}
			}
		}
		else
		{
			$('#form_msg').html("Er is een fout opgetreden. Ja paard kon niet worden toegevoegd of aangepast");
		}
	}
}

var oRideReport =
{
	dataType: 'json',

	beforeSubmit: function(formData, jqForm, options)
	{
		var form = jqForm[0];
		var msg = '';

		if (form.ride_id.value == '' || form.report.value == '')
		{
			msg = 'Je moet alle velden invullen om door te gaan.';
		}

		if (msg.length == 0)
		{
			return true;
		}

		$('#form_msg').html(msg);
		stopspinner('#cbox_loader');
		return false;
	},
	success: function(responseText, statusText)
	{
		stopspinner('#cbox_loader');

		if (statusText == 'success')
		{
			if (responseText != 'undefined')
			{
				if (typeof(responseText.error) !== 'undefined')
				{
					$('#form_msg').html("Er is een fout opgetreden. Je verslag kon niet worden geplaatst.");
				}
				else
				{
					$('#form_msg').html('Je verslag is geplaatst. Dit venster wordt na 2 seconden gesloten.');

					var $identifier = $('div.club_my_route_reports').children('div.block_content');

					$identifier.fadeOut('slow' , function()
					{
						$identifier.html(responseText.html);

						/* Add some styles, form main.js */
						addButtons();

						$identifier.show();
					});

					setTimeout(function()
					{
						$('#cboxClose').click();
					}, 2000);
				}
			}
		}
		else
		{
			$('#routecomment_msg').html("Er is een fout opgetreden. Je reactie kon niet worden geplaatst.");
		}
	}
}
/*
 * Add a colorbox for adding comments to a route
 */
function addFormCBox(oParams)
{
	if ($(oParams.node).length > 0)
	{
		var sNode			= typeof(oParams.node) !== 'undefined' ? oParams.node : false;

		var sTitle			= typeof(oParams.title) !== 'undefined' ? oParams.title : "Enjoy the Ride";
		var iWidth			= typeof(oParams.width) !== 'undefined' ? oParams.width : 500;

		var sFormId			= typeof(oParams.formId) !== 'undefined' ? oParams.formId : false;
		var sFocus			= typeof(oParams.focus) !== 'undefined' ? oParams.focus : false;

		//var iRouteId		= typeof(oParams.routeId) !== 'undefined' ? oParams.routeId : false;
		var ajaxFormParams	= typeof(oParams.ajaxFormParams) !== 'undefined' ? oParams.ajaxFormParams : false;

		var onComplete		= typeof(oParams.onComplete) == 'function' ? oParams.onComplete : function(){};

		if (sNode && ajaxFormParams)
		{
			/*
			 * Add a colorbox for adding items to a route
			 * Attaches it to the mouse down, so when click is finished the colorbox will show
			 */
			$(sNode).live('mousedown', function()
			{
				$(sNode).addClass('cboxelement').colorbox(
				{
					opacity:		0.5,
					title:			sTitle,
					initialWidth:	100,
					initialHeight:	50,
					width:			iWidth,
					//height:			280,
					onLoad:			function()
									{
										if (!loggedIn())
										{
											msg('Je moet ingelogged zijn om dit te kunnen doen.');
										}
									},
					onComplete:		function()
									{
										var aItem 		= $(this).attr('id').split('-');
										var mediatype 	= aItem[0];
										var itemId 		= aItem[1];

										onComplete($('form#' + sFormId));

										$('form#' + sFormId + ' input#mediatype').val(mediatype);
										$('form#' + sFormId + ' input#item_id').val(itemId);

										$('form#' + sFormId + ' ' + sFocus).focus();

										$('form#' + sFormId).append('<img src="/gfx/ajax-loader.gif" id="cbox_loader" />');

										/* Comment this part when debugging mulitpart/formdata forms.
										   It will make the form post to a blank page */
										$('form#' + sFormId).submit(function() {
											startspinner('#cbox_loader');
											$('form#' + sFormId).ajaxSubmit(ajaxFormParams);
											return false;
										});
									}
				});
			});
		}
		else
		{
			$(sNode).click(function(){return false;});
		}
	}
}
