// Flags
var f_CurrentPage = "index";
var f_nbErr = 0;
var f_ErrTypeProjet = false;

$(document).ready(function() {
	initOnLoad();
});

// Fonction appelée à chaque chargement de page
function initOnLoad()
{	
	f_nbErr = 0;
	$('.deroul_block').show();

	// Surlignage et désurlignage de la ligne quand un champs de formulaire est sélectionné
	$('tr input[type="text"], tr select, tr textarea').bind('focus', function() {
		$(this).parents('tr:first').children('td:first').addClass('selected');
	});
	$('tr input[type="text"], tr select, tr textarea').bind('blur', function() {
		$(this).parents('tr:first').children('td:first').removeClass('selected');
	});
	
	// message d'erreur, de valide et d'info non visible
	$('.erreur_msg, .valid_msg, .info_msg').css('display', 'none');

	/****************************** PAGE CONTACT ********************************/
	if(f_CurrentPage == "contact")
	{
		$('#contact textarea[name="message"]').bind('focus', function(){
			supDefVal("Votre message..", $(this));
		});
		$('#contact textarea[name="message"]').bind('blur',function(){
			reaDefVal("Votre message..", $(this));
		});
		$('#contact input[type="submit"]').bind('click', envoiMsg);
		
		$('#contact input, #contact textarea[name="message"]').bind('blur', function() {
			if( $(this).hasClass('erreur') && $(this).val() != '')
			{
				if( $(this).attr('name') == 'mail')
					if( !correctFormatMail($(this).val()) )
						return;
				$(this).removeClass('erreur');
				if(--f_nbErr == 0)
					$('#contact .erreur_msg').hide('slow');
			}
		});
		reaDefVal("Votre message..", $('#contact textarea[name="message"]'));
	}

	/****************************** PAGE DEVIS ********************************/
	if(f_CurrentPage == "devis")
	{
		f_ErrTypeProjet = false
		$('#devis input[type="submit"]').bind('click', envoiDevis);
	
		$('.type_contact_hidden').hide();
		$('#devis #type_contact').bind('change', function(){ // changement du type de contact (particulier - entreprise..)
			if( $(this).val() == '0')
				$('.type_contact_hidden').slideUp();
			else if( $(this).val() != '3' ) // pas un particulier
				$('.type_contact_hidden').slideDown();
			else 
			{
				if($('.type_contact_hidden').css('display') != 'none')
					$('.type_contact_hidden[name="denomination"]').slideUp();
			}
			
		});
		
		// Valeurs par défaut
		$('#devis input[name="type_contact_denomination"]').bind('focus', function() {
			supDefVal("dénomination..", $(this));
		});
		$('#devis input[name="type_contact_denomination"]').bind('blur', function() {
			reaDefVal("dénomination..", $(this));
		});
		
		$('#devis textarea[name="info_comp"]').bind('focus', function() {
			supDefVal("Informations complémentaires..", $(this));
		});
		$('#devis textarea[name="info_comp"]').bind('blur', function() {
			reaDefVal("Informations complémentaires..", $(this));
		});
		
		// masque la 2eme partie du formulaire
		$('#devis #form_part_2 div.f_block').hide();
		
		
		// deroulage/enroulage d'une partie du formulaire
		$('#devis #form_part_1 .deroul_block a').bind('click', function() {
			if($(this).parents('fieldset:first').children('.f_block').css('display') == 'none')
			{
				$(this).parents('fieldset:first').children('.f_block').slideDown();
				$(this).html('-');
				$('#devis #form_part_2 div.f_block').slideUp();
				$('#devis #form_part_2 .deroul_block a').html('+');
			}
			else
			{
				$(this).parents('fieldset:first').children('.f_block').slideUp();			
				$(this).html('+');
			}
		});

		$('#devis #form_part_2 .deroul_block a').bind('click', function() {
			if($(this).parents('fieldset:first').children('.f_block').css('display') == 'none')
			{	
				$(this).parents('fieldset:first').children('.f_block').slideDown();
				$(this).html('-');
				$('#devis #form_part_1 div.f_block').slideUp();
				$('#devis #form_part_1 .deroul_block a').html('+');
			}
			else
			{
				$(this).parents('fieldset:first').children('.f_block').slideUp();
				$(this).html('+');
			}
		});
		
		// passage ergonomique d'une partie a l'autre du formulaire en quittant le champs de téléphone
		$('#devis #form_part_1 input[name="tel"]').bind('blur', function() {
			$('#devis #form_part_2 div.f_block').slideDown();
			$('#devis #form_part_2 .deroul_block a').html('-');
			$('#devis #form_part_1 div.f_block').slideUp();
			$('#devis #form_part_1 .deroul_block a').html('+');
		});
		
		
		// masque tout les sous-formulaires type de projet
		$('#devis .type_projet0, #devis .type_projet1, #devis .type_projet2, #devis .type_projet3').hide();
		
		// affichage/masquage des sous-formulaires type de projet
		$('#devis input[name="type_projet"]').bind('click', function() {
			$('#devis .type_projet0, #devis .type_projet1, #devis .type_projet2, #devis .type_projet3').slideUp();
			$('#devis .type_projet' + $(this).val()).slideDown();
		});
		
		// Creation site: prestations complémentaires
		$('#devis input[name="Crea_gestion"]').bind('click', function() {
			if($(this).attr('checked') == true)
				$('#devis input[name="Crea_domaine"], #devis input[name="Crea_suivi_ref"], #devis input[name="Crea_maintenance"], #devis input[name="Crea_assistance"]').attr('checked',true);
			else
				$('#devis input[name="Crea_domaine"], #devis input[name="Crea_suivi_ref"], #devis input[name="Crea_maintenance"], #devis input[name="Crea_assistance"]').attr('checked',false);
		});
		$('#devis input[name="Crea_domaine"], #devis input[name="Crea_suivi_ref"], #devis input[name="Crea_maintenance"], #devis input[name="Crea_assistance"]').bind('click', function() {
			if($(this).attr('checked') == false)
				$('#devis input[name="Crea_gestion"]').attr('checked', false);
			else
				if($('#devis input[name="Crea_domaine"]').attr('checked') && $('#devis input[name="Crea_suivi_ref"]').attr('checked') && $('#devis input[name="Crea_maintenance"]').attr('checked') && $('#devis input[name="Crea_assistance"]').attr('checked'))
					$('#devis input[name="Crea_gestion"]').attr('checked', true);
		});
		// Gestion site: prestations complémentaires
		$('#devis input[name="Ges_gestion"]').bind('click', function() {
			if($(this).attr('checked') == true)
				$('#devis input[name="Ges_domaine"], #devis input[name="Ges_suivi_ref"], #devis input[name="Ges_maintenance"], #devis input[name="Ges_assistance"]').attr('checked',true);
			else
				$('#devis input[name="Ges_domaine"], #devis input[name="Ges_suivi_ref"], #devis input[name="Ges_maintenance"], #devis input[name="Ges_assistance"]').attr('checked',false);
		});
		$('#devis input[name="Ges_domaine"], #devis input[name="Ges_suivi_ref"], #devis input[name="Ges_maintenance"], #devis input[name="Ges_assistance"]').bind('click', function() {
			if($(this).attr('checked') == false)
				$('#devis input[name="Ges_gestion"]').attr('checked', false);
			else
				if($('#devis input[name="Ges_domaine"]').attr('checked') && $('#devis input[name="Ges_suivi_ref"]').attr('checked') && $('#devis input[name="Ges_maintenance"]').attr('checked') && $('#devis input[name="Ges_assistance"]').attr('checked'))
					$('#devis input[name="Ges_gestion"]').attr('checked', true);
		});
		
		// Suppression des messages d'erreur après correction de l'utilisateur
		$('#devis input, #devis textarea').bind('blur', function() {
			if( $(this).hasClass('erreur') && $(this).val() != '')
			{
				if( $(this).attr('name') == 'mail')
					if( !correctFormatMail($(this).val()) )
						return;
				if( $(this).attr('name') == 'type_contact_denomination')
					if( $(this).val() == 'denomination..')
						return;
				$(this).removeClass('erreur');
				if(--f_nbErr == 0)
					$('#devis .erreur_msg').hide('slow');
			}
		});
		$('#devis input[name="type_projet"]').bind('click', function() {
			if(f_ErrTypeProjet)
			{
				f_ErrTypeProjet = false;
				if(--f_nbErr == 0)
					$('#devis .erreur_msg').hide('slow');
			}
		});
		$('#devis select[name="type_contact"]').bind('blur', function() {
			if($(this).val() != '0' && $(this).hasClass('erreur'))
			{
				$(this).removeClass('erreur');
				if(--f_nbErr == 0)
					$('#devis .erreur_msg').hide('slow');
			}
		});
		
	}/** PAGE DEVIS **/
}


// Gere l'affichage par défaut.
function supDefVal(defValue, selector) 
{
	if(	selector.val() == defValue)
		selector.val('');
}
function reaDefVal(defValue, selector) 
{
	if( selector.val() == '')
		selector.val(defValue);
}

/****** FORMULAIRES ******/

// Contrôle et envoi du formulaire
function envoiMsg() 
{
	if(!checkFormContact())
		return false;
	
	// Envoi du formulaire au serveur
	$('#contact input[type="submit"]').hide().parent().children('.ajax-loader').fadeIn('slow');
		
	var xhr = $.post('./utils/envoiMsgContact.php', {
		civ: checkedRadioBtn($('#contact input[name="civ"]')),
		nom: $('#contact input[name="nom"]').val(),
		prenom:  $('#contact input[name="prenom"]').val(),
		org: $('#contact input[name="org"]').val(),
		mail: $('#contact input[name="mail"]').val(),
		tel: $('#contact input[name="tel"]').val(),
		sujet: $('#contact input[name="sujet"]').val(),
		message: $('#contact textarea[name="message"]').val(),
		ajax: true
	});
	
	xhr.onreadystatechange  = function() 
	{
		if(xhr.readyState == 4)
		{
			if(xhr.status == 200)
			{
				// stop ajax-loader
				$('#contact input[type="submit"]').parent().children('.ajax-loader').fadeOut('slow');
				if(xhr.responseText == 1) // Message ok
				{
					// désactive le formulaire
					$('#contact input, #contact textarea').attr('disabled', 'disabled');
					$('#contact .valid_msg').html("Votre message a bien été envoyé.<br />Nous vous répondrons dans les plus courts délais").show('slow');
				}
				else if(xhr.responseText == 2)
				{
					$('#contact .erreur_msg').html("Veuillez compléter les champs obligatoires").show('slow');
					f_nbErr++;
					$('#contact input[type="submit"]').fadeIn('slow');
				}
				else if(xhr.responseText == 3)
				{
					$('#contact .erreur_msg').html("Mauvais format d'email").show('slow');
					f_nbErr++;
					$('#contact input[type="submit"]').fadeIn('slow');
				}
				else if(xhr.responseText == 4)
				{
					$('#contact .erreur_msg').html("Erreur lors de l'envoi du message").show('slow');
					$('#contact input[type="submit"]').fadeIn('slow');
				}
			}
		}
	}
	return false;
}


// check le formulaire de contact
function checkFormContact()
{
	f_nbErr = 0;
	
	if( $('#contact input[name="nom"]').val() == '' ) {
		$('#contact input[name="nom"]').addClass('erreur');
		f_nbErr++;
	}
	if( $('#contact input[name="prenom"]').val() == '' ) {
		$('#contact input[name="prenom"]').addClass('erreur');
		f_nbErr++;
	}
		
	if( $('#contact input[name="mail"]').val() == '' ) {
		$('#contact input[name="mail"]').addClass('erreur');
		f_nbErr++;
	}	
		
	if( $('#contact textarea[name="message"]').val() == '' || $('#contact textarea[name="message"]').val() == "Votre message..") {
		$('#contact textarea[name="message"]').addClass('erreur');
		f_nbErr++;
	}
	
	if(f_nbErr)
	{
		$('#contact .erreur_msg').html('Veuillez compléter les champs obligatoires').show('slow');
		return false;
	}
	// check format email
	if(!correctFormatMail( $('#contact input[name="mail"]').val() ))
	{
		$('#contact input[name="mail"]').addClass('erreur');
		$('#contact .erreur_msg').html('Mauvais format d\'email').show('slow');
		f_nbErr++;
		return false;
	}
	
	return true;
}


// Envoi d'une demande de devis
function envoiDevis() 
{
	if(!checkFormDevis())
		return false;
	
	// Envoi du formulaire au serveur
	$('#devis input[type="submit"]').hide().parent().children('.ajax-loader').fadeIn('slow');
	
	var xhr = $.post('./utils/envoiDevis.php', {
		civ: checkedRadioBtn($('#devis input[name="civ"]')),
		nom: $('#devis input[name="nom"]').val(),
		prenom: $('#devis input[name="prenom"]').val(),
		type_contact:  $('#devis select[name="type_contact"]').val(),
		type_contact_denomination: $('#devis input[name="type_contact_denomination"]').val(),
		activites: $('#devis textarea[name="activites"]').val(),
		adresse: $('#devis textarea[name="adresse"]').val(),
		mail: $('#devis input[name="mail"]').val(),
		tel: $('#devis input[name="tel"]').val(),
		type_projet: checkedRadioBtn($('#devis input[name="type_projet"]')),
		type_projet_autre: $('#devis input[name="type_projet_autre"]').val(),
		nature_site: checkedRadioBtn($('#devis input[name="nature_site"]')),
		nature_site_autre: $('#devis input[name="nature_site_autre"]').val(),
		
		espaceAdmin: $('#devis input[name="espaceAdmin"]').attr('checked'),
		espaceReserve: $('#devis input[name="espaceReserve"]').attr('checked'),
		compteU: $('#devis input[name="compteU"]').attr('checked'),
		moteurRech: $('#devis input[name="moteurRech"]').attr('checked'),
		news_zone: $('#devis input[name="news_zone"]').attr('checked'),
		newsletter: $('#devis input[name="newsletter"]').attr('checked'),
		forum: $('#devis input[name="forum"]').attr('checked'),
		tchat: $('#devis input[name="tchat"]').attr('checked'),
		webcam: $('#devis input[name="webcam"]').attr('checked'),
		musique: $('#devis input[name="musique"]').attr('checked'),
		galeriePhoto: $('#devis input[name="galeriePhoto"]').attr('checked'),
		galerieVideo: $('#devis input[name="galerieVideo"]').attr('checked'),
		autre: $('#devis input[name="autre"]').attr('checked'),
		autre_fonction: $('#devis input[name="autre_fonction"]').val(),
		
		objectifs_site: $('#devis textarea[name="objectifs_site"]').val(),
		nb_pages: $('#devis input[name="nb_pages"]').val(),
		
		Crea_referencement: $('#devis input[name="Crea_referencement"]').attr('checked'),
		Crea_gestion: $('#devis input[name="Crea_gestion"]').attr('checked'),
		Crea_domaine: $('#devis input[name="Crea_domaine"]').attr('checked'),
		Crea_suivi_ref: $('#devis input[name="Crea_suivi_ref"]').attr('checked'),
		Crea_maintenance: $('#devis input[name="Crea_maintenance"]').attr('checked'),
		Crea_assistance: $('#devis input[name="Crea_assistance"]').attr('checked'),
		
		descr_intranet: $('#devis textarea[name="descr_intranet"]').val(),
		
		Ges_url: $('#devis input[name="Ges_url"]').val(),
		Ges_referencement: $('#devis input[name="Ges_referencement"]').attr('checked'),
		Ges_gestion: $('#devis input[name="Ges_gestion"]').attr('checked'),
		Ges_domaine: $('#devis input[name="Ges_domaine"]').attr('checked'),
		Ges_suivi_ref: $('#devis input[name="Ges_suivi_ref"]').attr('checked'),
		Ges_maintenance: $('#devis input[name="Ges_maintenance"]').attr('checked'),
		Ges_assistance: $('#devis input[name="Ges_assistance"]').attr('checked'),
		
		Res_url: $('#devis input[name="Res_url"]').val(),
		Res_restruc: $('#devis input[name="Res_restruc"]').attr('checked'),
		Res_refonte: $('#devis input[name="Res_refonte"]').attr('checked'),
		Res_result: $('#devis textarea[name="Res_result"]').val(),
		
		budget: $('#devis input[name="budget"]').val(),
		info_comp: $('#devis textarea[name="info_comp"]').val(),
		
		ajax: true
	});
	
	xhr.onreadystatechange  = function() 
	{
		if(xhr.readyState == 4)
		{
			if(xhr.status == 200)
			{
				// stop ajax-loader
				$('#devis input[type="submit"]').parent().children('.ajax-loader').fadeOut('slow');
				if(xhr.responseText == 1) // Message ok
				{
					// désactive le formulaire
					$('#devis input, #devis textarea, #devis select').attr('disabled', 'disabled');
					$('#devis .valid_msg').html("Votre demande de devis a bien été enregistrée<br />Vous recevrez une réponse dans les prochains jours.").show('slow');
				}
				else if(xhr.responseText == 2) // champs oublié
				{
					$('#devis .erreur_msg').html("Veuillez compléter les champs obligatoires").show('slow');
					f_nbErr++;
					$('#devis input[type="submit"]').fadeIn('slow');
				}
				else if(xhr.responseText == 3) // format mail
				{
					$('#devis .erreur_msg').html("Mauvais format d'email").show('slow');
					f_nbErr++;
					$('#devis input[type="submit"]').fadeIn('slow');
				}
				else if(xhr.responseText == 5) // type_projet oublié
				{
					$('#devis .erreur_msg').html('Veuillez sélectionner un type de projet').show('slow');
					f_nbErr++;
					$('#devis input[type="submit"]').fadeIn('slow');
				}
				else if(xhr.responseText == 4)
				{
					$('#devis .erreur_msg').html("Erreur lors de l'enregistrement du devis").show('slow');
					$('#devis input[type="submit"]').fadeIn('slow');
				}
				else
				{
					$('#devis .erreur_msg').html("Erreur").show('slow');
					$('#devis input[type="submit"]').fadeIn('slow');
				}
			}
		}
	}
	return false;
}


// check le formulaire de devis
function checkFormDevis()
{
	f_nbErr = 0;
	
	if( $('#devis input[name="nom"]').val() == '' ) {
		$('#devis input[name="nom"]').addClass('erreur');
		f_nbErr++;
	}
	if( $('#devis input[name="prenom"]').val() == '' ) {
		$('#devis input[name="prenom"]').addClass('erreur');
		f_nbErr++;
	}
	if( $('#devis input[name="mail"]').val() == '' ) {
		$('#devis input[name="mail"]').addClass('erreur');
		f_nbErr++;
	}	
	if( $('#devis select[name="type_contact"]').val() == '0' ) {
		$('#devis select[name="type_contact"]').addClass('erreur');
		f_nbErr++;
	}
	else if( $('#devis select[name="type_contact"]').val() != '3' &&  ( $('#devis input[name="type_contact_denomination"]').val() == '' || $('#devis input[name="type_contact_denomination"]').val() == 'dénomination..' ) ) 
	{
		$('#devis input[name="type_contact_denomination"]').addClass('erreur');
		f_nbErr++;
	}
	
	if(f_nbErr)
	{
		$('#devis .erreur_msg').html('Veuillez compléter les champs obligatoires').show('slow');
		return false;
	}
	// check format email
	if(!correctFormatMail( $('#devis input[name="mail"]').val() ))
	{
		$('#devis input[name="mail"]').addClass('erreur');
		$('#devis .erreur_msg').html('Mauvais format d\'email').show('slow');
		f_nbErr++;
		
		return false;
	}
	
	// Type de projet non sélectionné
	if(checkedRadioBtn($('#devis input[name="type_projet"]')) == -1)
	{
		$('#devis .erreur_msg').html('Veuillez sélectionner un type de projet').show('slow');
			/**** Passage a la partie 2 du formulaire ****/
			$('#devis #form_part_2 div.f_block').slideDown();
			$('#devis #form_part_2 .deroul_block a').html('-');
			$('#devis #form_part_1 div.f_block').slideUp();
			$('#devis #form_part_1 .deroul_block a').html('+');
		f_ErrTypeProjet = true;
		f_nbErr++;
		return false;
	}
	return true;
}


// Retourne true si l'email donné en parametre est au format correct
function correctFormatMail(str_mail)
{
	var emailRegEx =  /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    if (str_mail.search(emailRegEx) == -1)
		return false;
	return true;
}

// chargement ajax d'une page
function chargePage(page_name) 
{ 
	fermetureContenu( function() {
			$('#corps div.ajax-loader').slideDown();
			var xhr = $.get(page_name + ".php", {ajax: true}, ouvertureContenu);
			
			xhr.onreadystatechange  = function()
			{
				 if(xhr.readyState  == 4)
				 {
					if(xhr.status  == 200)
					{ 
						// mise a jour du flags page acutelle
						f_CurrentPage = page_name;
						// remplace le texte
						$('#contenu').html(xhr.responseText);	
					 		// Enleve la "selection" du menu actuel et la remplace par la nouvelle
						$('#menu li[class=selected]').removeClass("selected");
						$('#menu li a[onclick*="'+ page_name +'"]').parent().addClass("selected");
						initOnLoad();
					}
					else 
						alert('Page introuvable');
					$('#corps div.ajax-loader').slideUp();
				 }
			};
		});
} 


// Ouverture et fermeture du contenu avec effet
function ouvertureContenu() {
	$('#contenu').slideDown('slow');
}
function fermetureContenu() {
	$('#contenu').slideUp('slow');	
}

function fermetureContenu(callback) {
	$('#contenu').slideUp('slow', callback);	
}


// Retourne la valeur du boutton radio checked parmis la liste données en parametre, ou false si aucun n'est checked
function checkedRadioBtn(l_radioBtn) {
	var i;
	for(i = 0; i < l_radioBtn.size(); ++i)
	{
		if(l_radioBtn[i].checked)
			return l_radioBtn[i].value;
	}
	return -1;
}