/**
* Change l'état d'un champ (passe en rouge ou l'inverse)
* et empeche le form de se valider
* param o 			: 	objet (input ou select)
    erreurinit  : 	Valeur de la variable erreur au moment de l'appel
*/

window.addEvent('domready', function(){
	addEventClear();
	selectOnglet();
});

function ouvre_popup(page)
{
	window.open(page,"nom_popup","menubar=no, status=no, scrollbars=yes, menubar=no, width=750, height=500");
}

function ouvre_popup2(page)
{
	window.open(page,"nom_popup","menubar=no, status=no, scrollbars=yes, menubar=no, width=800, height=700");
}

var display_numberOnly = false;

function changeEtat(o, erreurinit)
{
	var type_element = o.get('tag');
	var lbl = choppeLabel(o);
	switch(type_element)
	{
		case 'input':
			if(o.type == "checkbox")
			{
				if(!o.checked)
				{
					if(o.getParent().tagName == "DIV")
						o.getParent().addClass('highlight_champ');
					else
						o.addClass('highlight_champ');
					return true;
				}
				else
				{
					if(o.getParent().tagName == "DIV")
						o.getParent().removeClass('highlight_champ');
					else
						o.removeClass('highlight_champ');
					return erreurinit;
				}
			}
			else
			{
				if(o.type == "text") {

					if (o.hasClass('numberOnly'))
					{
						//console.log(o);
						if (o.hasClass('obligatoire'))
						{
							if (o.hasClass('zero_autorise'))
							{
								if(isNaN(o.value) || o.value=="" )
								{
									display_numberOnly = true;
									if(lbl)
										lbl.addClass('highlight_champ');
									return true;
								}
								else
								{
									if(lbl)
										lbl.removeClass('highlight_champ');
									return erreurinit;
								}
							}
							else
							{
								if(o.value == 0 || isNaN(o.value))
								{
									display_numberOnly = true;
									if(lbl)
										lbl.addClass('highlight_champ');
									return true;
								}
								else
								{
									if(lbl)
										lbl.removeClass('highlight_champ');
									return erreurinit;
								}
							}

						}
						else
						{
							if(o.value != '' && isNaN(o.value))
							{
								display_numberOnly = true;
								if(lbl)
									lbl.addClass('highlight_champ');
								return true;
							}
							else
							{
								if(lbl)
									lbl.removeClass('highlight_champ');
								return erreurinit;
							}
						}
					}

					if(o.value.trim().length == 0) {
						if(lbl)
							lbl.addClass('highlight_champ');
						return true;
					}
					else {
						if(lbl)
							lbl.removeClass('highlight_champ');
						return erreurinit;
					}
				}
			}
		break;



		case 'select':
			if(o.options[o.selectedIndex].value == "")
			{
				if(lbl)
					lbl.addClass('highlight_champ');
				return true;
			}
			else
			{
				if(lbl)
					lbl.removeClass('highlight_champ');
				return erreurinit;
			}
		break;

		case 'textarea':
			if(o.value.trim().length == 0) {
				if(lbl)
					lbl.addClass('highlight_champ');
				return true;
			}
			else {
				if(lbl)
					lbl.removeClass('highlight_champ');
				return erreurinit;
			}
		break;
	}
}

function choppeLabel(element) {

	var labels = $$('label[for='+element.id+']');
	if($defined(labels[0])) {
		//console.log('choppelbl '+labels[0].getProperty('for'));
		return labels[0];
	}
	else
	{
		var conteneur = element.getParent();
		while(!conteneur.hasClass('ligne') && conteneur.tagName != "BODY") {
		    conteneur = conteneur.getParent();
		}
		if(conteneur)
		{
			var labels = conteneur.getElements('label');
			if($defined(labels[0])){
			  //console.log('choppe pas lbl '+labels[0].getProperty('for'));
			  return labels[0];
		  	}
		}

	}
	return false;
}

function verifValidMail(erreur, mail1, mail2)
{
  if(mail1.value != mail2.value)
  {
    alert('Les adresses emails entrées sont différentes');
	erreur = true;
  }
  else
  {
    if(mail1.value!='' && mail2.value!='')
    {
      mail1.removeClass('highlight_champ');
      mail2.removeClass('highlight_champ');
    }
    else
    {
      mail1.addClass('highlight_champ');
      mail2.addClass('highlight_champ');
      erreur = true;
    }
  }

  return erreur;
}

/**
* Change l'état d'un champ date (passe en rouge ou l'inverse)
* et empeche le form de se valider
* param o 			: 	objet (input ou select)
    erreurinit  : 	Valeur de la variable erreur au moment de l'appel
*/
function checkDate(o, erreurinit)
{
	var itm=new RegExp(/^[0-3][0-9]{1,2}\/[0-1][0-9]{1,2}\/[0-9]{4}$/);
	lbl = choppeLabel(o);
	if(((o.value).search(itm)) == -1)
	{
		if(lbl)
			lbl.addClass('highlight_champ');
		return true;
	}
	else
	{
		if(lbl)
			lbl.removeClass('highlight_champ');
		return erreurinit;
	}
}






function checkForm(idform)
{
	//Variable d'erreur si true, on ne valide pas le form
	var erreur = false;

	var msg_erreur = '' ;



	//On teste d'abord tous les input
	$(idform).getElements('input').each(function(o) {
		//Pour le type date, on check avec une regExp le format de la date
		if(o.hasClass('date'))
		{
			if(o.value.trim().length != 0) {
				erreur = checkDate(o, erreur);
			}
			else {
				var lbl = choppeLabel(o);
				if(lbl)
					lbl.addClass('highlight_champ');
			}
		}
		else {
				if(o.hasClass('date_non_oblig')){
						erreur = checkDate(o, erreur);
				}
				else {
					if(o.hasClass('obligatoire') || o.hasClass('numberOnly'))
						erreur = changeEtat(o, erreur);
				}
		}
	});



	//On teste ensuite tous les select
	$$('select.obligatoire').each(function(o){
		erreur = changeEtat(o, erreur);
	});

	//On test ensuite les textarea
	$$('textarea.obligatoire').each(function(o){
		erreur = changeEtat(o, erreur);
	});


	//Traitement spécifique pour le formulaire des locataires
	if(idform == 'locataire')
	{
		erreur = verifFormLocataire(erreur);
		erreur = checkChampsConditionnes('locataire', erreur);
	}

	//Traitement spécifique pour le formulaire des garants
	if(idform == 'fiche_garant')
	{
		erreur = verifFormGarant(erreur);
		erreur = checkChampsConditionnes('fiche_garant', erreur);
	}

	//Traitement spécifique au dossier locataire : vérif de la bonne saisie du password
	if(idform == 'dossier_locataire')
	{
		var client_email = $('client_email');
		var client_email_confirm = $('client_email_confirm');

		if(client_email)
		{
			erreur = verifValidEmail(erreur);
		}

		erreur = verifCoherenceIdentifiant(erreur);
		erreur = verifValidPassword(erreur);
		erreur = verifierVousEtes(erreur);
	}

	rubrique_investir = $('rubrique_investir');
	//Traitement spécifique au dossier locataire : vérif de la bonne saisie du password
	if(idform == 'formulaire_contact' && !rubrique_investir)
	{
		var mail1 = $('mail1');
		var mail2 = $('mail2');
		var lbl1 = choppeLabel(mail1);
		var lbl2 = choppeLabel(mail2);
		var cp = $('cp');
		var lblcp = choppeLabel(cp);
		var possede_fixe = $('possede_fixe');
		var possede_mobile = $('possede_mobile');
		var date_lointaine = false;
		var date_entree = $('dateentree');

		if(date_entree.value)
		{
			val_date = date_entree.value ;
			aDate = val_date.split('/');
			date_jour = aDate[0];
			date_mois = aDate[1] - 1;
			date_annee = aDate[2];
			oDateEntree = new Date(date_annee, date_mois, date_jour) ;

			oDateToday =  new Date();

			var nb_mois = (oDateEntree.getTime() - oDateToday.getTime()) / (1000 * 60 * 60 * 24 * 30); // + " mois";
			if (nb_mois > 9)
				date_lointaine = true;
		}



		erreur = verifTelephone(erreur);

		if(possede_fixe.checked === true || possede_mobile.checked === true)
		{
			if (verifTelephone(false) === true) // Super moche désolé
			{
				msg_erreur = msg_erreur+'\r\n - Téléphone incorrect';
			}
		}

		if (!checkCp(cp.value, cp.hasClass('obligatoire')))
		{
			lblcp.addClass('highlight_champ');
			msg_erreur = msg_erreur+'\r\n - Code postal incorrect';
			erreur = true;
		}
		else
			lblcp.removeClass('highlight_champ');



		if((mail1.value != mail2.value) || !checkEmail(mail1.value) || !checkEmail(mail1.value)){
			if(lbl1){
				mail1.addClass('highlight_champ');
				lbl1.addClass('highlight_champ');
			}
			if(lbl2) {
				mail2.addClass('highlight_champ');
				lbl2.addClass('highlight_champ');
			}
			erreur = true;
		}
		else {
			if(lbl1) {
				mail1.removeClass('highlight_champ');
				lbl1.removeClass('highlight_champ');
			}
			if(lbl2) {
				mail2.removeClass('highlight_champ');
				lbl2.removeClass('highlight_champ');
			}
		}

		//on efface le commentaire si c'est celui du début
		var message = $('message');
		if(message)
			if(message.get('html') == 'Laissez un commentaire ...')
				message.empty();
	}

	if(idform == 'formulaire_contact' && rubrique_investir)
	{
		erreur = verifTelephone(erreur);

		var label_civilite = $('label_civilite');
		var ischecked = false;

		$$('input[type=radio][name=civilite_id]').each(function(o) {
		 if (o.checked === true)
		 	ischecked = true;
		});

		if (ischecked == false)
		{
			erreur == true;
			label_civilite.addClass('highlight_champ');
		}
		else
		{
			label_civilite.removeClass('highlight_champ');
		}
	}


	//Si erreur pas de validation du formulaire
	if(erreur)
	{
		if(display_numberOnly === true)
		{
			msg_erreur = msg_erreur+'\r\n - Le(s) champ(s) numériques doivent être supérieurs à 0 et ne doivent contenir que des chiffres (caractere espace non autorisé).  ';
		}
		display_numberOnly = false;

		alert('Les champs marqués en rouge sont obligatoires'+msg_erreur);
		return false;
	}
	else
	{
		if (date_lointaine === true)
			return confirm("Vous souhaitez un logement pour le "+date_entree.value+" ?");
	}
}



function signaleSpan(item, obligatoire)
{
  //SPAN
  var elt_parent = item.getParent();
  var spans = elt_parent.getElements('span.txt_rouge');
  spans.each(function(span)
  {
    if(obligatoire)
      span.removeClass('masque');
    else
      span.addClass('masque');
  });
}

//Fonction permettant d'ajouter Adele aux favoris
function addbookmark()
{
	bookmarkurl="http://www.adele.org"
	bookmarktitle="Adele - Logement étudiant"
	if (document.all)
	window.external.AddFavorite(bookmarkurl,bookmarktitle)
}

//Fonction permettant d'envoyer un mail à un ami
function EmailLink() {
	window.location = "mailto:?subject=Lien vers le site Adele" + "&body=A l\'adresse " + window.location + "%0a( " + document.title + " )";
}

function favoris()
{
	bookmarkurl="http://www.adele.org"
	bookmarktitle="Adele - Logement étudiant"

	if ( navigator.appName != 'Microsoft Internet Explorer' )
	{
		window.sidebar.addPanel(bookmarktitle, bookmarkurl,"");
	}
	else
	{
		window.external.AddFavorite(bookmarkurl, bookmarktitle);
	}
}

//Pas vraiment un timestamp mais un timestamp*1000 dd/mm/aaaa
function afficherDatePropre(timestamp)
{
  var date = new Date(timestamp);
  var dd = date.getDate()<10 ?'0'+date.getDate() : date.getDate();
  var mm = (date.getMonth()+1)<10 ?'0'+(date.getMonth()+1) : date.getMonth()+1;
  var aaaa = date.getFullYear();
  return dd+'/'+mm+'/'+aaaa;
}

function addEventClear()
{
  $$('.to_clear').each(function(item) {
    //si c'est pas ie
    if(!Browser.Engine.trident)
    {
      if(item.tagname == "INPUT" && item.getProperty('type').toString()=="password")
        item.setProperty('type', 'text');
    }
    item.addEvent('focus', function(){
      item.value = '';
      if(!Browser.Engine.trident && item.tagname == "INPUT" && (item.name.contains('password') || item.id.contains('password'))) {
        item.setProperty('type', 'password');
      }
    });
  });
}

function verifIdentificationBlocIbail() {
  var login = $('mon_ibail_login');
  var password = $('mon_ibail_password');
  var msg = '';
  if((login.value == 'identifiant') || (password.value == 'mot de passe'))
  {
    msg += 'Veuillez renseigner un identifiant et un mot de passe';
  }
  else
  {
    if(login.value.trim().length == 0 && password.value.trim().length == 0)
    {
      msg += 'Veuillez renseigner un identifiant et un mot de passe';
    }
  }

  if(msg)
    alert(msg);

  return msg == '';
}

function ajouterMarqueurSurMenu(url)
{
  $$('.mini_bloc .contenu a').each(function(item){
    if(item.href.contains(url))
      item.addClass('select');
  })
}

function maj_telephone(event)
{
	var event = new Event(event);
	var o = event.target;

	//si on coche ou decoche fixe
	if(o.id == 'possede_fixe')
	{
		var inpout = $('telephone_fixe');
		var ligne_tel =  $('ligne_fixe');
	}
	else
	{
		var inpout = $('telephone_mobile');
		var ligne_tel =  $('ligne_mobile');
	}

   //on affiche la ligne si coché on la cache si décoché
	if(o.checked)
		ligne_tel.removeClass('masque');
	else
		ligne_tel.addClass('masque');
	signaleSpan(inpout, o.checked);
}


function checkEmail(email)
{
  var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
  return emailFilter.test(email);
}

function checkCp(cp, obligatoire)
{
	if (obligatoire==false)
		return (!isNaN(cp));
	else
		return (cp!='' && !isNaN(cp));
}

function verifTelephone(erreur)
{
	var possede_fixe = $('possede_fixe');
	var possede_mobile = $('possede_mobile');

	//on remplace div tel par le lbl
	var div_tel = $('lbl_div_tel');

	var telephone_fixe = $('telephone_fixe');
	var telephone_portable = $('telephone_mobile');

	if(!possede_fixe.checked && !possede_mobile.checked)
	{
		div_tel.addClass('highlight_champ');
		erreur = true;
	}
	else
	{
		div_tel.removeClass('highlight_champ');
		var lbl_telephone_fixe = choppeLabel(telephone_fixe);
		var lbl_telephone_portable = choppeLabel(telephone_portable);

		if(possede_fixe.checked && telephone_fixe.value.length == 0)
		{
			lbl_telephone_fixe.addClass('highlight_champ');
			erreur = true;
		}
		else
		{
			var itm=new RegExp(/^([0-9(). +]+)?$/);
			if((telephone_fixe.value).search(itm) == -1)
			{
				lbl_telephone_fixe.addClass('highlight_champ');
				erreur = true;
			}
			else
				lbl_telephone_fixe.removeClass('highlight_champ');
		}

		if(possede_mobile.checked && telephone_portable.value.length == 0)
		{
			lbl_telephone_portable.addClass('highlight_champ');
			erreur = true;
		}
		else
		{
			var itm=new RegExp(/^([0-9(). +]+)?$/);
			if((telephone_portable.value).search(itm) == -1)
			{
				lbl_telephone_portable.addClass('highlight_champ');
				erreur = true;
			}
			else
				lbl_telephone_portable.removeClass('highlight_champ');
		}
	}

	return erreur ;
}

function selectOnglet() {

	//on enlève toutes les classes selected des liens
	if(typeof(PAGE) != "undefined") {
		var elt_a = $('menu_'+PAGE);
		if(elt_a) {
			elt_a.addClass('selection');
		}
	}
}


function SmartAdServer(sas_pageid,sas_formatid,sas_target) {
if (sas_masterflag==1) {sas_masterflag=0;sas_master='M';} else {sas_master='S';};
document.write('<scr'+'ipt SRC="http://www3.smartadserver.com/call/pubj/' + sas_pageid + '/' + sas_formatid + '/'+sas_master + '/' + sas_tmstp + '/' + escape(sas_target) + '?"></scr'+'ipt>');
}

function proceder_a_la_redirection(url, time) {
	setTimeout("redirect('"+url+"')", time);
}

function redirect(url) {
	window.location.href = url;
}
