var contactElements;

contactElements = new Array('link-resa-dr','link-resa-cn','link-resa-cm','link-resa-cs','link-resa-cc');

function init()
{
	hideElement(document.getElementById(contactElements[1]));
	hideElement(document.getElementById(contactElements[2]));
	hideElement(document.getElementById(contactElements[3]));
	hideElement(document.getElementById(contactElements[4]));
}

function showContactType(currentElement)
{
	var otherElement;
	
	for (var i=0; i<contactElements.length; i++)
	{
		otherElement = document.getElementById(contactElements[i]);
		if (currentElement != otherElement)
			hideElement(otherElement);
		else
			showElement(currentElement);
	}
}

function showElement(element)
{
	element.className = 'cur';
	
	var divElement = null;
	divElement = document.getElementById('div-resa'+element.id.substring(element.id.length-3,element.id.length));
	if (divElement != null)	
		divElement.style.display = 'block';
}

function hideElement(element)
{
	if (element != null)
	{
		element.className = '';
	
		var divElement = null;
		divElement = document.getElementById('div-resa'+element.id.substring(element.id.length-3,element.id.length));
		if (divElement != null)	
			divElement.style.display = 'none';
	}
}

function clearContent(area)
{
	if (area.value == 'Votre message ici')
		area.value = '';
}

function updatePrice(form)
{
	for (var i=0; i<contactElements.length; i++)
	{
		var divElement = document.getElementById('div-resa'+contactElements[i].substring(contactElements[i].length-3,contactElements[i].length));
		
		if ( divElement != null && divElement.style.display == 'block')
		{
			var currentElement = contactElements[i].substring(contactElements[i].length-2,contactElements[i].length);
			var nbDays = 0;
			var nbChild = 0;
			var nbAdult = 0;
			var nbPers = 0;
			var adultPrice = 0;
			var childPrice = 0;
			var price = 0;
			
			if (form.elements[currentElement+'-duree'].value != '')
				nbDays = form.elements[currentElement+'-duree'].value;
			
			if (form.elements[currentElement+'-nbenfants'].value != '')
				nbChild = form.elements[currentElement+'-nbenfants'].value;
				
			if (form.elements[currentElement+'-nbadultes'].value != '')
				nbAdult = form.elements[currentElement+'-nbadultes'].value;
				
			nbPers = parseInt(nbAdult) + parseInt(nbChild);
			
			switch (currentElement)
			{
				case 'dr': break;
				case 'cc': break;
				case 'cn': childPrice = getChildPriceCNCS(nbPers);
					adultPrice = getAdultPriceCNCS(nbPers);
					break;
				case 'cm': childPrice = getChildPriceCM(nbPers);
					adultPrice = getAdultPriceCM(nbPers);
					break;
				case 'cs': childPrice = getChildPriceCNCS(nbPers);
					adultPrice = getAdultPriceCNCS(nbPers);
					break;
			}
			
			price = ((childPrice * nbChild) + (adultPrice * nbAdult)) * nbDays;
			
			form.elements[currentElement+'-prix'].value = price;
		}
	}
}

function getChildPriceCNCS(nbPers)
{
	if (nbPers >= 6)
		return 80;
	else if (nbPers >= 4)
		return 90;
	else
		return 105;
}
function getAdultPriceCNCS(nbPers)
{
	if (nbPers >= 6)
		return 95;
	else if (nbPers >= 4)
		return 115;
	else
		return 135;
}
function getChildPriceCM(nbPers)
{
	if (nbPers >= 6)
		return 70;
	else if (nbPers >= 4)
		return 80;
	else
		return 95;
}
function getAdultPriceCM(nbPers)
{
	if (nbPers >= 6)
		return 90;
	else if (nbPers >= 4)
		return 105;
	else
		return 125;
}

function checkForm(form)
{
	var fieldCount;
	var errorString;
	
	fieldCount  = 0;
	chaineChamps = '';
	
	if (form.nom.value == '')
	{
		chaineChamps += 'Nom, ';
		fieldCount++;
	}
	if (form.prenom.value == '')
	{
		chaineChamps += 'Prenom, ';
		fieldCount++;
	}
	if (form.message.value == '' || form.message.value == 'Votre message ici')
	{
		chaineChamps += 'Message, ';
		fieldCount++;
	}
	
	var currentElement = 'dr';
	
	for (var i=0; i<contactElements.length; i++)
	{
		var divElement = document.getElementById('div-resa'+contactElements[i].substring(contactElements[i].length-3,contactElements[i].length));
		
		if ( divElement != null && divElement.style.display == 'block')
		{
			currentElement = contactElements[i].substring(contactElements[i].length-2,contactElements[i].length);
			
			if (form.elements[currentElement+'-duree'].value == '')
			{
				chaineChamps += 'Nombre de jours, ';
				fieldCount++;
			}
			
			if (form.elements[currentElement+'-nbenfants'].value == '')
				form.elements[currentElement+'-nbenfants'].value = 0;
				
			if (form.elements[currentElement+'-nbadultes'].value == '')
				form.elements[currentElement+'-nbadultes'].value = 0;
				
			if (currentElement == 'cc' && form.elements[contactElements[i].substring(contactElements[i].length-2,contactElements[i].length)+'-destination'].value == '')
			{
				chaineChamps += 'Destination, ';
				fieldCount++;
			}
		}
	}
	
	if ( fieldCount > 0 )
	{
		if (fieldCount >1 )
			alert('Les champs '+chaineChamps+'sont obligatoires !\nMerci de les completer pour envoyer le message.');
		else
			alert('Le champ '+chaineChamps+'est obligatoire !\nMerci de le completer pour envoyer le message.');
			
		return false;
	}
	else if (!checkFormat(form,currentElement))
		return false;
	else if (currentElement != 'dr' && parseInt(form.elements[currentElement+'-nbadultes'].value) + parseInt(form.elements[currentElement+'-nbenfants'].value) == 0 )
	{
		alert('Il doit y avoir au moins une personne prevue pour la croisiere');
		return false;
	} else if (form.email.value == '' && form.telfixe.value == '' && form.telportable.value == '')
	{
		alert('Vous devez saisir au moins un moyen de contact');
		return false;
	}
	
	form.elements['type'].value = currentElement;

	//testContact(form);

	return true;
}

function testContact(form)
{
	var nom='', prenom='', civilite='', raisonS='', mail='', message='', jours=0, enfants=0, adultes=0, prix =0, type='';
	
	civilite = form.elements['civilite'].value;
	nom = form.elements['nom'].value;
	prenom = form.elements['prenom'].value;
	raisonS = form.elements['raisonSociale'].value;
	mail = form.elements['email'].value;
	message = form.elements['message'].value;
	
	type = form.elements['type'].value;
	
	if (type != 'dr')
	{
		jours = form.elements[type+'-duree'].value;
		enfants = form.elements[type+'-nbenfants'].value;
		adultes = form.elements[type+'-nbadultes'].value;
		if (document.getElementById(type+'-prix') != null)
			prix = form.elements[type+'-prix'].value;
	}
	
	alert(
		'\t[type:'+type+']'+'\n'+
		'civilite:'+civilite+'\n'+
		'nom:'+nom+'\n'+
		'prenom'+prenom+'\n'+
		'raison sociale:'+raisonS+'\n'+
		'mail:'+mail+'\n'+
		'message:'+message+'\n'+
		'duree:'+jours+'\n'+
		'enfants:'+enfants+'\n'+
		'adultes:'+adultes+'\n'+
		'prix:'+prix+'\n'
		);
}

function checkFormat(form, currentElement)
{
	if (!checkMail(form))
		return false;
	
	if (currentElement != 'dr')
	{
		if (!checkNumber(form, currentElement, new Array('nbadultes','Nombre d\'adultes')))
			return false;
	
		if (!checkNumber(form, currentElement, new Array('nbenfants','Nombre d\'enfants')))
			return false;
	}
	return true;
}

function checkMail(form)
{
	var email;
	email = form.email.value;
	if (email != '')
	{
		if ( (email.indexOf('@',0)==-1) || (email.indexOf('.',0) == -1)) {
			alert('Adresse E-mail non valide');
			return false;
		} else {
			return true;
		}
	}
	return true;
}

function checkNumber(form, currentElement, field)
{
	var regExp = new RegExp('[0-9]{1,2}');
	
	if (currentElement != '')
	{
		if (!regExp.test(form.elements[currentElement+'-'+field[0]].value))
		{
			alert('Le '+field[1]+' doit etre un nombre entre 0 et 6');
			return false;
		}
		else if (parseInt(form.elements[currentElement+'-'+field[0]].value) < 0 || parseInt(form.elements[currentElement+'-'+field[0]].value) > 6)
		{
			alert('Le '+field[1]+' doit etre un nombre entre 0 et 6');
			return false;
		}
		
	}
	
	return true;
}
