//------------------------------------------------------//
// submitForm(id)
// envoie n'importe quel formulaire à partir de son ID
//------------------------------------------------------//
function submitForm(id){
	document.getElementById(id).submit();
}
//------------------------------------------------------//
// blink(element)
// fait clignoter un élément (utilisé sur les select)
//------------------------------------------------------//
function blink(element){
	element.fadeOut('fast').fadeIn('fast').fadeOut('fast').fadeIn('fast')
}
//------------------------------------------------------//
// validateForm(form)
// fait clignoter un élément (utilisé sur les select)
//------------------------------------------------------//
function validateForm(form){
	errors = 0;
	$(form).find(".required").each(function(){
		if (!checkTextinput($(this))){
			errors++;
		};
	});
	$(form).find('select.required').each(function(){
		if($(this).val().toString() == 'null'){
			errors++;
			blink($(this));
		}
	})
		
	return (errors == 0);
}
//------------------------------------------------------//
// configureInputs()
// fonction appelée au ready de chaque page
// ajoute des classes spécifiques à chaque type d'input
// gère également l'ajax des inputs de class "checkAvailability"
//------------------------------------------------------//
function configureInputs(){
	$('input[type=radio]').addClass('radio');
	$('input[type=checkbox]').addClass('checkbox');
	$('input[type=text]:not(.default)').addClass('textinput');
    $('input[type=password]:not(.default)').addClass('textinput').addClass('password');
    $('input[type=file]').addClass('fileinput');
	$('input[title!=""]').hint("prompt");
	$('<span class="spinner"><img src="content/img/icons/spinner.gif"/></span>').insertAfter('input.checkAvailability');
	
	$('input.checkAvailability').blur(function(){
		input = $(this);
		input.next('.spinner').show();
		$.get('content/externals/checkAvailability.php?type=' + input.attr('name') + '&value=' + input.val(), function(data){
			input.next('.spinner').hide();
			if (data > 0){
				input.addClass("error");
			} else {
				if (input.hasClass("error")){
					input.removeClass("error");
				}
			}
		});
	}).keydown(function(e){
		$(this).removeClass("error");
	}).next('.spinner').hide();
	
	
	$('.required').focus(function(){
		if ($(this).hasClass('requiredError')){
			$(this).removeClass('requiredError').val("").removeClass('error');
		}
	})
}

function checkTextinput(input){
	if (input.val() != '' && input.val() != input.attr('title') && input.val() != "requis"){
		if (input.hasClass('email')){
			var re = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
			if (!re.test(input.val())){
				return false;
			} else {
				return true;
			}
		} else if (input.hasClass('requiredError')){
			input.removeClass('requiredError')
		}
		return true;
	} else {
		input.val("requis").addClass('requiredError').removeClass('prompt');
	}
	return false;
}
