/**
 *
 * Page de fonction Java Script commune au site.
 * Nous retrouverons les fonctions de control pour les formulaires de contact et du panier.
 */


/**
 *
 * Fonction de validation de formulaire via son ID.
 */

function valid_form(form_id)
{
	frm = $(form_id);
	frm.submit();
}


/**
 *
 * Fonction de confirmation avec comme paramètre le message de confirmation a afficher, 
 * puis la destination de l'utilisateur après avoir confirmé.
 */

function confirmation(msg, location)
{
	if(confirm(msg))
	{
		window.location = location;
	}
}


/**
 *
 * Fonction d'affichage automatique d'un élément DIV utilisé comme popup à titre informatif.
 * On utilise une fonction de prototype scriptaculous pour un effet d'apparition.
 */

function customAlert(msg)
{
	var error_text = $('error_text');
	var popup_text = $('popup_text');
	
	if(error_text)
	{
	   error_text.innerHTML = msg;
	   Effect.Appear('error_cont', {duration: 0.3, queue: 'front'});
	}
	else if(popup_text)
	{
	   popup_text.innerHTML = msg;
	   Effect.Appear('popup_cont', {queue: 'front'});
	}
}


function MajCaptcha(div_contener)
{
	var phpFile = site_url+'ajax/captcha.ajx';
	
	var aj = new Ajax.Updater(div_contener, phpFile+'.php');
}


/**
 *
 * Fonction de limitation d'écriture pour les champs de formulaire.
 * La limitation ne laisse pas l'utilisateur écrire autre chose que des chiffres.
 */

function chiffres(event)
{
	// Compatibilité IE / Firefox
	if(!event&&window.event)
	{
		event=window.event;
	}
	
	
	if(event.keyCode != 8 && event.keyCode != 9 && event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 46)
	{
		// IE
		if(event.keyCode < 48 || event.keyCode > 57)
		{
			event.returnValue = false;
			event.cancelBubble = true;
		}
		
		// DOM
		if(event.which < 48 || event.which > 57)
		{
			event.preventDefault();
			event.stopPropagation();
		}
	}
}


/**
 *
 * Fonction de control de l'adresse email saisie.
 * Nous vérifions la nomenclature de l'email, via une expression régulière.
 */

function controlMail(email_id)
{
	var email_length = $(email_id).value.length;
	
	var email = $(email_id).value;
	var verif = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
	
	if(email_length >= 1)
	{
		if (verif.exec(email) == null)
		{
			$('alert_error_'+email_id).style.display = 'block';
			$('alert_valide_'+email_id).style.display = 'none';
			
			return false;
		}
		else
		{
			$('alert_error_'+email_id).style.display = 'none';
			$('alert_valide_'+email_id).style.display = 'block';
			
			return true;
		}
	}
	else
	{
		$('alert_error_'+email_id).style.display = 'block';
		$('alert_valide_'+email_id).style.display = 'none';
		
		return false;
	}
}


function controlCaptcha(input_id)
{
	var captcha = $(input_id).value;
	var captcha_verif = $(input_id + '_verif').value;
	
	
	if(captcha == captcha_verif)
	{
		$('alert_error_'+input_id).style.display = 'none';
		$('alert_valide_'+input_id).style.display = 'block';
		
		return true;
	}
	else
	{
		$('alert_error_'+input_id).style.display = 'block';
		$('alert_valide_'+input_id).style.display = 'none';
		
		return false;
	}
}


function controlEmpty(input_id)
{
	var value = $(input_id).value;
	
	
	if(value == '')
	{
		$('alert_error_'+input_id).style.display = 'block';
		$('alert_valide_'+input_id).style.display = 'none';
		
		return false;
	}
	else
	{
		$('alert_error_'+input_id).style.display = 'none';
		$('alert_valide_'+input_id).style.display = 'block';
		
		return true;
	}
}


/**
 *
 * Fonction de control total à la validation d'un formulaire.
 * Nous reprenons la totalité des fonctions citées plus haut et exécutons un control sur chaque élément voulu.
 */

function FormRequired(form_id)
{
	var reel_id = '';
	var submit = true;
	var ss = $(form_id);
	
	
	var inputs = ss.getElementsByTagName('textarea');
	//var msg = 'Tous les champs colorés doivent être mentionné.';
	
	var i = 0;
	if(inputs)
	{
		while (i < inputs.length)
		{
			if(inputs[i].getAttribute('required'))
			{
				if(controlEmpty(inputs[i].id) == false)
				{
					var submit = false;
				}
			}

		   i++;
		}
	}
	
	/***/
	
	var inputs = ss.getElementsByTagName('input');
	//var msg = 'Tous les champs colorés doivent être mentionné.';
	
	var i = 0;
	if(inputs)
	{
		var radio_name = '';
		var radio_submit = false;
		
		while (i < inputs.length)
		{
			input_type = inputs[i].getAttribute('type');
			
			if(input_type == 'radio' && radio_name != '' && radio_name != inputs[i].getAttribute('name'))
			{
				if(radio_submit == false)
				{
					var submit = false;
				}
				
				var radio_submit = false;
			}
			
			if(input_type == 'radio' && radio_name == inputs[i].getAttribute('name'))
			{
				if(inputs[i].checked == true)
				{
					var radio_submit = true;
				}
			}
			
			if(input_type == 'radio')
			{
				var radio_name = inputs[i].getAttribute('name');
				
				if(inputs[i].checked == true)
				{
					var radio_submit = true;
				}
			}
			
			/*****/
			
			if(inputs[i].getAttribute('required') && $(inputs[i].id).disabled == false)
			{
				if(controlEmpty(inputs[i].id) == false)
				{
					var submit = false;
				}
				else
				{
					if(inputs[i].getAttribute('formatday'))
					{
						var mounth_id = String($(inputs[i].id).readAttribute('id')).replace('day', 'mounth');
						
						if(controlDay(inputs[i].id, 2, inputs[i].id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('formatmounth'))
					{				
						if(controlMounth(inputs[i].id, 2, inputs[i].id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('formatyear'))
					{
						var date_id = String($(inputs[i].id).readAttribute('id')).replace('year_', '');
						
						if(controlYear(inputs[i].id, 4, date_min, date_id, inputs[i].id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('formatyear'))
					{
						var date_id = String($(inputs[i].id).readAttribute('id')).replace('year_', '');
						
						if(controlYear(inputs[i].id, 4, date_min, date_id, inputs[i].id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('code_postal'))
					{
						var cp_id = inputs[i].id;
						
						if(controlCp(cp_id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('telephone'))
					{
						var tel_id = inputs[i].id;
						
						if(controlTel(tel_id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('email'))
					{
						var reel_id = inputs[i].id;
						
						if(controlMail(reel_id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('conf_email'))
					{
						if(controlConfMail(inputs[i].id, reel_id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('mdp'))
					{
						var mdp_id = inputs[i].id;
					}
					
					if(inputs[i].getAttribute('conf_mdp'))
					{
						if(controlConfMDP(inputs[i].id, mdp_id) == false)
						{
							var submit = false;
						}
					}
					
					if(inputs[i].getAttribute('secure'))
					{
						if(controlCaptcha(inputs[i].id) == false)
						{
							var submit = false;
						}
					}
				}
			}

		   i++;
		}
	}
	
	
	if(!submit)
	{
		//customAlert(msg);
	}
	else
	{
		ss.submit();
	}
}