//      fonction.js
//
//      Romain Ortiz <ortiz.romain@gmail.com>
//
//			Fonction javascript annuaire

EFFECTS_L = 500; //durée des effets


/** Expressions régulières **/
var email_regexp = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i

var digits_regexp = /^\d+$/i
var phone_regexp = /^(\d+\s?)+$/i

/**
* @author Romain Ortiz
* @brief	Bascule l'affichage d'un div
* @param 	divID Identifiant HTML du div
**/
function toggle_div(divID)
{
	$(divID).toggle("normal");
}

/**
* @author Romain Ortiz
* @brief	Ajoute un département à la liste
**/
function add_dep(inputID, dept)
{
	var str = String($(inputID).val());
	var id = $(inputID).attr("id");

	if(str.indexOf(dept) < 0)
	{
		if(str && str != $("label[for='"+id+"']").html())
		{
			if(str.indexOf(",") < 0)
				$(inputID).val(str+","+dept+",");
			else
				$(inputID).val(str+dept+",");
		}
		else
			$(inputID).val(dept+",");
	}
}

/**
 * @author Romain Ortiz
 * @brief	Valide le formulaire de recherche
**/
function validSearch(divID, formID, alertID)
{
	/* Au moins une des deux valeurs doit être définie correctement (non nulle et différente du label) */
	if(
			( $('#search-ou').val() && ( $("[for='search-ou']").html() != $('#search-ou').val() ) )
			||
			( $('#search-societe').val() && ( $("[for='search-societe']").html() != $('#search-societe').val() ) )
		)
	{
		$(alertID).hide();

		if($('#search-societe').val())
		{
			if(($("[for='search-societe']").html()) == ($('#search-societe').val()))
				var s_societe = "";
			else
				var s_societe = $('#search-societe').val();
		}
		else
			var s_societe = '';

		if($('#search-ou').val())
		{
			if(($("[for='search-ou']").html()) == ($('#search-ou').val()))
				var s_ou = "";
			else
				var s_ou = $('#search-ou').val();
		}
		else
			var s_ou = '';

		if($('#search-caan_id').val())
			var s_caan_id = $('#search-caan_id').val();
		else
			var s_caan_id = 2;

		if($('#search-page').val())
			var s_page = $('#search-page').val();
		else
			var s_page = 2;

		if($('#search-dmac').val())
			var s_dmac = $('#search-dmac').val();
		else
			var s_dmac = 0;

		$(divID).html('<img src="http://media.xpair.com/img/activityIndicator.gif" border="0" />');

		$(divID).load('http://annuaire.xpair.com/result.htm', {nom: s_societe, ou: s_ou, caan_id: s_caan_id, page: s_page, dmac: s_dmac});

		return false;
	}
	else
	{
		$(alertID).show();

		return false;
	}

	return false;
}

/**
 * @author Romain Ortiz
 * @brief	Valide le formulaire de recherche
**/
function validHiddenSearch(divID, formID)
{
	if( $('#search-ou-hidden').val() || $('#search-societe-hidden').val() )
	{
		//alert(divID);
		if($('#search-societe-hidden').val())
			var s_societe = $('#search-societe-hidden').val();
		else
			var s_societe = '';

		/*if($('#search-ville-hidden').val())
			var s_ville = $('#search-ville-hidden').val();
		else
			var s_ville = '';

		if($('#search-dept-hidden').val())
			var s_dept = $('#search-dept-hidden').val();
		else
			var s_dept = '';*/

		if($('#search-ou-hidden').val())
			var s_ou = $('#search-ou-hidden').val();
		else
			var s_ou = '';

		if($('#search-caan_id-hidden').val())
			var s_caan_id = $('#search-caan_id-hidden').val();
		else
			var s_caan_id = 2;

		if($('#search-page-hidden').val())
			var s_page = $('#search-page-hidden').val();
		else
			var s_page = 2;

		if($('#search-dmac-hidden').val())
			var s_dmac = $('#search-dmac-hidden').val();
		else
			var s_dmac = 0;

		$(divID).html('<img src="http://media.xpair.com/img/activityIndicator.gif" border="0" />');

		$(divID).load('http://annuaire.xpair.com/result.htm', {nom: s_societe, ou: s_ou, caan_id: s_caan_id, page: s_page, dmac: s_dmac});

		return false;
	}
	else
		return false;

	return false;
}

/** Valide un champs **/
function validateInput(inputID, type, messageID)
{
	var val = $(inputID).val();
	var result = false;

	switch(type)
	{
		case 'exists':
		default:
			if(val)
				result = true;
		break;

		case 'null':
			if(val != 0)
				result = true;
		break;

		case 'digits':
			result = digits_regexp.test(val);
		break;

		case 'email':
			result = email_regexp.test(val);
		break;

		case 'phone':
			result = phone_regexp.test(val);
		break;

		case 'multiple':
			result = $(inputID+' > option:selected').size();
		break;
	}

	if(messageID)
	{
		if(!result)
			$(messageID).show();
		else
			$(messageID).hide();
	}

	return result;
}

/**
 * @author Romain Ortiz
 * @brief Affiche le formulaire de contact
 */
function validEmploiSearch(formID, alertID)
{
	if(
		( $('#search_poste').val() && ( $("[for='search_poste']").html() != $('#search_poste').val() ) )
		||
		( $('#search_lieu').val() && ( $("[for='search_lieu']").html() != $('#search_lieu').val() ) )
	)
	{
		return true;
	}
	else
	{
		$(alertID).show();

		return false;
	}
}

/**
 * @author Romain Ortiz
 * @brief	Affiche le formulaire de contact
**/
function contactForm(annu_id)
{
	if(!$('#contact-form-div').html())
		$('#contact-form-div').load('annuaire-contactForm-'+annu_id+'.html', function(){toggle_div('#contact-form-div');});
	else
		toggle_div('#contact-form-div');

	return false;
}

/**
 * @author Romain Ortiz
 * @brief Traite les résultats de l'autocomplete - alias vers autoTraitement (pour la compatibilité)
 **/
function autoLoc(data, deptID)
{
	return autoTraitement(data, deptID);
}

/**
 * @author Romain Ortiz
 * @brief Traite les résultats de l'autocomplete
 **/
function autoTraitement(data, divID)
{
	var str = String(data);

	var tab = str.split(" (");

	//récupère le champs actuel
	var cur_str = String($(divID).val());
	var cur_tab = cur_str.split(",");

	var str_return = "";

	for(i = 0;i < (cur_tab.length - 1);i++)
		str_return = str_return + cur_tab[i] + ",";

	return str_return+tab[0]+",";
}

/**
 * @author Romain Ortiz
 * @brief	Valide le formulaire de recherche d'un référencement
**/
function validRefSearch(divID, formID)
{
	if( $('#search-societe').val() )
	{
		if($('#search-societe').val())
			var s_societe = $('#search-societe').val();
		else
			var s_societe = '';

		if($('#search_caan_titre').val())
			var s_search_caan_titre = $('#search_caan_titre').val();
		else
			var s_search_caan_titre = '';

		$(divID).html('<img src="img/activityIndicator.gif" border="0" />');

		$(divID).load('http://annuaire.xpair.com/refResult.htm', {societe: s_societe, search_caan_titre: s_search_caan_titre});

		return false;
	}
	else
		return false;

	return false;
}

/**
 * Fonctions emploi.xpair.com
 **/

/* Variables globales pour la rotation */
ROT_OFFSET = 0;
ROT_TIMEOUT = 3000;


/**
 * Effectue la rotation entre les annonces
 **/
function rotation(ulID, num)
{
	obj = $(ulID).children();

	obj.eq(ROT_OFFSET).fadeOut(	"normal",
															function()
															{
																if(ROT_OFFSET == (num-1))
																	ROT_OFFSET = 0;
																else
																	ROT_OFFSET++;

																obj.eq(ROT_OFFSET).fadeIn("normal",
																		function()
																		{
																			setTimeout("rotation('"+ulID+"',"+num+")",ROT_TIMEOUT);
																		});
															});
}

/**
 * Ajoute l'offre au classeur
 */
function addClasseur(repID, url)
{
	loadandfade(repID, url);
}

/**
 * Réponds à l'offre
 */
function repondre(repID, url)
{
	loadandfade(repID, url);
}

/**
 * Charge un div et l'affiche
 */
function loadandfade(divID, url)
{
	$(divID).load(url, function(e) { $(divID).fadeIn("normal");});
}

/**
 * Valide un formulaire et post le résultat dans un div
 **/
function validForminDiv(formID, divID, url)
{
	if(!formID || !divID)
		return false;

	var set = $(formID+ ' *[value]');
	var action = $(formID).attr("action");

	$(divID).html('<img src="http://media.xpair.com/img/activityIndicator.gif" />');

	if(url)
		$(divID).load(url, set);
	else
		$(divID).load(action, set);

	return false;
}

/**
 * Valide le formulaire d'emploi express
 **/
function validEmploiExpress(formID)
{
	if( $(formID + " *[name='nom']").val() && ($(formID + " *[for='nom']").html() != $(formID + " *[name='nom']").val()) )
	{
		$('#NomMessage').hide();
		var nom_ok = true;
	}
	else
	{
		$('#NomMessage').show();
		var nom_ok = false;
	}

	if( $(formID + " *[name='prenom']").val() && ($(formID + " *[for='prenom']").html() != $(formID + " *[name='prenom']").val()) )
	{
		$('#PrenomMessage').hide();
		var prenom_ok = true;
	}
	else
	{
		$('#PrenomMessage').show();
		var prenom_ok = false;
	}

	if( $(formID + " *[name='fonction']").val() && ($(formID + " *[for='fonction']").html() != $(formID + " *[name='fonction']").val()) )
	{
		$('#FonctionMessage').hide();
		var fonction_ok = true;
	}
	else
	{
		$('#FonctionMessage').show();
		var fonction_ok = false;
	}

	if( $(formID + " *[name='tel']").val() && ($(formID + " *[for='tel']").html() != $(formID + " *[name='tel']").val()) )
	{
		$('#TelMessage').hide();
		var tel_ok = true;
	}
	else
	{
		$('#TelMessage').show();
		var tel_ok = false;
	}

	if(email_regexp.test($(formID + " *[name='madresse']").val()))
	{
		$('#EmailMessage').hide();
		var email_ok = true;
	}
	else
	{
		$('#EmailMessage').show();
		var email_ok = false;
	}

	return (nom_ok && prenom_ok && fonction_ok && tel_ok && email_ok);
}

/**
 * Valide le formulaire d'inscription
 */
function validInscription(formID)
{
	if(email_regexp.test($(formID + " *[name='madresse']").val()))
	{
		$('#EmailMessage').hide();
		var email_ok = true;
	}
	else
	{
		$('#EmailMessage').show();
		var email_ok = false;
	}

	/*if($(formID + " *[name='password']").val())
	{
		$('#PasswordMessage').hide();
		var pass_ok = true;
	}
	else
	{
		$('#PasswordMessage').show();
		var pass_ok = false;
	}

	if($(formID + " *[name='password']").val() == $(formID + " *[name='password_confirm']").val())
	{
		$('#PasswordMatchMessage').hide();
		var passmatch_ok = true;
	}
	else
	{
		$('#PasswordMatchMessage').show();
		var passmatch_ok = false;
	}*/

	if($(formID + " *[name='nom']").val())
	{
		$('#NomMessage').hide();
		var nom_ok = true;
	}
	else
	{
		$('#NomMessage').show();
		var nom_ok = false;
	}

	if($(formID + " *[name='prenom']").val())
	{
		$('#PrenomMessage').hide();
		var prenom_ok = true;
	}
	else
	{
		$('#PrenomMessage').show();
		var prenom_ok = false;
	}

	if($(formID + " *[name='activite_id']").val() > 0)
	{
		$('#ActiviteMessage').hide();
		var activite_ok = true;
	}
	else
	{
		$('#ActiviteMessage').show();
		var activite_ok = false;
	}
  
  /* préférences utilisateurs */

	if($(formID + " *[name='appli_1']").val() != '00')
	{
		$('#AppliMessage').hide();
		var appli_ok = true;
	}
	else
	{
		$('#AppliMessage').show();
		var appli_ok = false;
	}

	if($(formID + " *[name='categorie_1']").val() != '00')
	{
		$('#interet1Message').hide();
		var interet1_ok = true;
	}
	else
	{
		$('#interet1Message').show();
		var interet1_ok = false;
	}
/*
	if($(formID + " *[name='categorie_2']").val() != '00')
	{
		$('#interet2Message').hide();
		var interet2_ok = true;
	}
	else
	{
		$('#interet2Message').show();
		var interet2_ok = false;
	}

	if($(formID + " *[name='categorie_3']").val() != '00')
	{
		$('#interet3Message').hide();
		var interet3_ok = true;
	}
	else
	{
		$('#interet3Message').show();
		var interet3_ok = false;
	}
	*/
  /*
  var appli_1 = $(formID + " *[name='appli_1']").val();
  var categorie_1 = $(formID + " *[name='categorie_1']").val();
  var categorie_2 = $(formID + " *[name='categorie_2']").val();
  var categorie_3 = $(formID + " *[name='categorie_3']").val();
  
  if(appli_1 != '00')
		var appli_ok = true;
	else
		var appli_ok = false;

	if(categorie_1 != '00')
		var interet1_ok = true;
	else
		var interet1_ok = false;

	if(categorie_2 != '00')
		var interet2_ok = true;
	else
		var interet2_ok = false;
    
	if(categorie_3 != '00')
		var interet3_ok = true;
	else
		var interet3_ok = false;
    
  var pref_ok =   (appli_ok && interet1_ok && interet2_ok && interet3_ok)
                  && (categorie_1 != categorie_2)
                  && (categorie_1 != categorie_3)
                  && (categorie_2 != categorie_3);
  
  if(pref_ok)
		$('#PrefMessage').hide();
  else    
		$('#PrefMessage').show();
  
  /* fin préférences utilisateurs appli_ok && interet1_ok && interet2_ok && interet3_ok && */

	return (email_ok && activite_ok && nom_ok && prenom_ok && appli_ok && interet1_ok);
}


/** Fin fonctions emploi.xpair.com **/


/**
 * Valide le formulaire de contact/projet
 */
function validProjet(formID)
{
	if(email_regexp.test($(formID + " *[name='email']").val()))
	{
		$('#EmailMessage').hide();
		var email_ok = true;
	}
	else
	{
		$('#EmailMessage').show();
		var email_ok = false;
	}

	if($(formID + " *[name='fonction']").val())
	{
		$('#FonctionMessage').hide();
		var fonction_ok = true;
	}
	else
	{
		$('#FonctionMessage').show();
		var fonction_ok = false;
	}

	if($(formID + " *[name='descriptif']").val())
	{
		if($('#Message'))
			$('#Message').hide();

		if($('#Message'))
			$('#Message').hide();
		var desc_ok = true;
	}
	else
	{
		if($('#Message'))
			$('#Message').show();

		if($('#Message'))
			$('#Message').show();
		var desc_ok = false;
	}

	return (email_ok && desc_ok && fonction_ok);
}

/*
 * Valide un formulaire
 * TODO : à corriger
 */
function validateForm(formID, champs)
{
	result = true;
	for(var i=0;i=champs.length;i++)
	{
		champ = champs[i];
		if(!validateInput(formID+champ[0], champ[1], champ[2]))
			result = false;
	}

	return result;
}

/**
 * Valide le formulaire d'enregistrement d'une demande d'emploi
 */
function validDemandeForm(formID)
{
	var titre_ok = validateInput(formID+" *[name='titre']", "exists", "#TitreMessage");
	var cv_ok = validateInput(formID+" *[name='cv_id']", "null", "#CVMessage");
	var resume_ok = validateInput(formID+" *[name='resume']", "exists", "#ResumeMessage");

	return (titre_ok && cv_ok && resume_ok);
}

/**
 * Valide le formulaire de création/modification d'offre
 */
function validOffreForm(formID)
{
	var diplome_ok = validateInput(formID+" *[name='diplome']", "exists", "#DiplomeMessage");
	var societe_ok = validateInput(formID+" *[name='societe']", "exists", "#SocieteMessage");
	var contact_nom_ok = validateInput(formID+" *[name='contact_nom']", "exists", "#ContactMessage");
	var email_ok = validateInput(formID+" *[name='email']", "email", "#EmailMessage");
	var tel_ok = validateInput(formID+" *[name='tel']", "exists", "#TelMessage");
	var titre_ok = validateInput(formID+" *[name='titre']", "exists", "#TitreMessage");
	var remuneration_ok = validateInput(formID+" *[name='remuneration']", "exists", "#RemunerationMessage");
	var desc_ok = validateInput(formID+" *[name='fiche']", "exists", "#DescriptionMessage");

	return (diplome_ok && societe_ok && contact_nom_ok && email_ok && tel_ok && titre_ok && remuneration_ok && desc_ok);
}

/**
 * Valide le formulaire de référencement
 */
function validRefSoc(formID, caan_id)
{
	var societe_ok = validateInput(formID+" *[name='nom']", "exists", "#SocieteMessage");
	var adresse_ok = validateInput(formID+" *[name='adresse']", "exists", "#AdresseMessage");
	var cp_ok = validateInput(formID+" *[name='cp']", "digits", "#CodePostalMessage");
	var ville_ok = validateInput(formID+" *[name='ville']", "exists", "#VilleMessage");
	var tel_ok = validateInput(formID+" *[name='tel']", "phone", "#TelMessage");
	var email_ok = validateInput(formID+" *[name='mail']", "email", "#EmailMessage");

	if(caan_id == 1 || caan_id == 3 || caan_id == 5 || caan_id == 6)
		var dmac_ok = validateInput("#dmac", "multiple", "#DmacMessage");
	else
		var dmac_ok = true;

	return (societe_ok && adresse_ok && cp_ok && ville_ok && tel_ok && dmac_ok);
}

/**
 * Fonctions produits.xpair.com
 */

/**
 * @author Romain Ortiz
 * @brief	Affiche le formulaire de contact
**/
function contactForm(annu_id)
{
	if(!$('#contact-form-div').html())
		$('#contact-form-div').load('annuaire-contactForm-'+annu_id+'.html', function(){toggle_div('#contact-form-div');});
	else
		toggle_div('#contact-form-div');

	return false;
}

/**
 * Charge la liste des produits
 */
function affProduits(sub_cate, divID)
{
	$(divID).load('produits-liste-'+sub_cate+'.html');
}

/** Fin fonctions produits.xpair.com **/


/** Fonctions statistiques **/

/**
 * @author Romain Ortiz
 * Appelle la fonction d'enregistrement d'un lien
 */
function enrClic(lien, urlStat)
{
	name = lien.attr('name');
	id = lien.attr('id').substr(4, lien.attr('id').length);
	url = lien.attr('href');

	if(name)
		$.post(urlStat, {params: name});
	else if(id)
		$.post(urlStat, {id: id});
	else
		$.post(urlStat, {url: url});
}


/**
 * Appelle la fonction d'enregistrement de clic Estat
 */
function i_estat(compte,typelien,destination,pageorigine)
{
var elink="http://prof.estat.com/m/web/"+compte+"?n="+Math.round(Math.random()*1000000000)+"&g=256056128110&svc_mode=E&svc_campaign="+typelien+"&svc_partner="+destination+"&svc_position="+pageorigine+"&svc_misc=&estat_url=noredirection";
 send=function(IMG){var _IM=new Image(1,1);_IM.src=IMG;};
send(elink);
}

/** Fin fonctions statistiques **/

