/*
 * Libellés d'erreur en français
 */
$.validator.messages["required"] = "Champ requis";
$.validator.messages["email"] = "Entrez une adresse électronique valide";
/*
 * Méthodes de validation de champs
 */
$.validator.addMethod("dateFR", function(value)
{
	return (value.length == 10 && /^([0-3][0-9]\/[0-1][0-9]\/[0-9]{4})$/.test(value));
}, 'Entrez une date valide');

$.validator.addMethod("entier", function(value)
{
	return /^([0-9]+)$/.test(value);
}, 'Entrez un nombre entier');

$.validator.addMethod("nombre", function(value)
{
	return /^([0-9]+(,[0-9]+){0,1})$/.test(value);
}, 'Entrez un nombre (séparateur: virgule)');

$.validator.addMethod("nombreheurestotal", function(value)
{
	var result =
	(
		parseInt(value) >= parseInt($("#__CONTRAT_DUREEENSEIGNEMENT__").val())
	);
	return result;
}, 'Le nombre d\'heures total doit être positif, et supérieur ou égal au nombre d\'heures d\'enseignement');

$.validator.addMethod("nombreheuresenseignement", function(value)
{
	var result =
	(
		parseInt(value) <= parseInt($("#__CONTRAT_DUREETOTALE__").val())
	);
	return result;
}, 'Le nombre d\'heures d\'enseignement doit être positif, et inférieur ou égal au nombre d\'heures total');



$.meta.setType("attr", "test");

/*
 * Déclenché lorsque le document est chargé dans le navigateur
 */
$(document).ready
(
	function()
	{
		//$("#tabPane ul").tabs({ fxShow: { opacity: 'show' } });
		$("#results").hide();
		$("#mentionsLegales").hide();
		$("#titreMentionsLegales").click
		(
			function ()
			{
				$("#mentionsLegales").slideToggle("fast");
			}
		);
		$("input#reset").click
		(
			function()
			{
				/*$(':input', $("#simpeccif")).each
				(
					function()
					{
						//if(this.type != "button" && this.type != "submit")
						//	this.value = "";
					}
				);*/
				document.location = document.location;
				//location.reload();
			}
		);
		$("input.date").calendar(popUpCal.regional['fr']);
		popUpCal.setDefaults({yearRange: '-80:+05'});
		$("label").Tooltip
		(
			{
				//track: true, 
				delay: 0, 
				showURL: false, 
				showBody: " - "
			}
		);
		var validator = $(document.forms[0]).validate
		(
			{
				debug: false,
				//event: "submit",
				errorElement: "em",
				//errorContainer: $("#summary"),
				submitHandler: function(form)
				{
					if($("#__FORM_VALID__").val() != "1")
					{
						alert("Erreur...");
						return false;
					}
					// On remplace la soumission du formulaire par un truc à nous... en Ajax
					// Basé sur http://remysharp.com/2007/03/05/jquery-ajaxed-forms/
					// Collecte des champs du formulaire
					try
					{
						var inputs = [];
						$(':input', form).each
						(
							function()
							{
								if(this.type != "button" && this.type != "submit")
									inputs.push(this.name + '=' + escape(this.value));
							}
						);
						$.ajax
						(
							{
								type: "POST",
								data: inputs.join('&'),
								dataType: "xml",
								url: form.action,
								timeout: 10000,
								error: function(xml, status, e)
								{
									$("#__FORM_VALID__").val("0");
									$("#results").hide();
									$("#errors").html("Une erreur s'est produite: <br />" + xml +"<br />" + status + "<br />" + e);
								},
								success: function(xml)
								{
									$("#__FORM_VALID__").val("0");
									$("#results").show();
									$.each
									(
										xml.documentElement.childNodes,
										function(i, item)
										{
											$("#" + item.nodeName).text(item.firstChild.nodeValue);
											//alert(i + " - " + item.nodeName + " = " + item.firstChild.nodeValue);
										}
									);
									/*for(xml.documentElement.childNodes: var node)
									{
									}*/
									/*$("#download").html("<a href='displayContratPro.php?fdfFilename=" + xml.documentElement.firstChild.firstChild.nodeValue + "' target='_blank'>Cliquez ici pour imprimer le contrat</a>");*/
								}
							}
						);
					}
					catch(e)
					{
						alert(e);
					}
					return false;
				},
				showErrors: function(errors, errorList)
				{
					if(errorList.length)
					{
						$("#errors").html("Le formulaire contient " + errorList.length + " erreur(s).");
						$("#__FORM_VALID__").val("0");
					}
					else
					{
						$("#errors").html("");
						$("#__FORM_VALID__").val("1");
					}
					validator.defaultShowErrors();
					/*
					 * On affiche en surbrillance les tabs qui contiennent des champs en erreur
					 */
					$("#tabPane ul li a span").removeClass("error");
					for(var i = 0; i < errorList.length; i++)
					{
						var error = errorList[i];
						var currentTab =
							($(error.element).parents("div.ui-tabs-container")) ?
								$(error.element).parents("div.ui-tabs-container")[0] : undefined;
						if(currentTab)
						{
							$("#tabPane ul li a[href=#" + currentTab.id + "] span").addClass("error");
						}
					}
				},
				errorPlacement: function(error, element)
				{
					error.appendTo(element.next("span"));
				},
				success: function(label)
				{
					//label.text("ok!").addClass("success");
					label.addClass("success");
				},
				onblur: function(element) {},
				onkeyup: function(element) {}
			}
		);
	}
);
