//-------------------------------------------------------------------------------------------
function init_all()		// Initialisation des parametres
//-------------------------------------------------------------------------------------------
{
	ns=(document.getElementById)?0:1;
	passage = 0;
	init_layers();
}

//-------------------------------------------------------------------------------------------
function precedent(page) 	// Changement du param "action" du "main_form"
//-------------------------------------------------------------------------------------------
{
	document.main_form.action=page;
	add_To_Main_Form();
	document.main_form.submit();
}

//-------------------------------------------------------------------------------------------
function get_radio_value(obj)		// Permet de recuperer la valeur de l'element radio selectionee
					// passe en parametre. Ex: get_radio_value(document.form_name.radio_name);
//-------------------------------------------------------------------------------------------
{	
	for (i=0; i<obj.length;i++)	{
		if (obj[i].checked) {return obj[i].value;}
	}	
	return -1;
}

function get_select_value(obj)
{
	return obj.options[obj.selectedIndex].value;
}


//-------------------------------------------------------------------------------------------
function Reset_radio(obj)		// Permet d'initialiser les champs radios (met .checked a 0)
					// Ex: Reset_radio(document.form_name.radio_name);
//-------------------------------------------------------------------------------------------
{	
	for (i=0; i < obj.length ;i++)	{
		obj[i].checked=0;
	}
	return 0;	
}

//-------------------------------------------------------------------------------------------
function init_radio(obj,val)	// Initialisation d'un radio si sa valeur correspond a "val"
//-------------------------------------------------------------------------------------------
{
	if (val.length != 0) {
		for (i=0; i<obj.length;i++) {
			if (obj[i].value == val) {
					obj[i].checked=true; break;
			}
		}
	}
}

//-------------------------------------------------------------------------------------------
function init_select(obj,val)	// Initialisation d'un radio si sa valeur correspond a "val"
//-------------------------------------------------------------------------------------------
{
	if (val.length != 0) {
		for (i=0; i<obj.length;i++) {
			if (obj[i].value == val)  { obj.selectedIndex=i; break; }
		}
	}
}

//-------------------------------------------------------------------------------------------
function isNumeric(strSaisie) 		// Verification du valeur numerique d'une ligne
//-------------------------------------------------------------------------------------------
{	
	pattern = /^\d*$/
	return pattern.test(strSaisie)
}

//-------------------------------------------------------------------------------------------
function isNumericNonVide(strSaisie) 		// Returne "True" si le parametre est numerique et non null
//-------------------------------------------------------------------------------------------
{
	if (strSaisie.length == 0) return false;
	return isNumeric(strSaisie);
}

//-------------------------------------------------------------------------------------------
function numeric_valide(champ_value,message,longueur) 		// Validation du champ numerique
//-------------------------------------------------------------------------------------------
{	
	if (longueur == null) {
		if (!isNumeric(champ_value)){
		 	flag_Error=1; 
		 	str_Error += "\n\t- "+message+ " (chiffres uniquement)";
		}
	}else{
		if (!isNumeric(champ_value) || (champ_value.length != longueur && champ_value.length != 0)){
		 	flag_Error=1; 
		 	str_Error += "\n\t- "+message+ " ("+longueur+" chiffres)";
		}
	}
}


//-------------------------------------------------------------------------------------------
function float_valide(champ_value,message) 		// Validation du champ numerique
//-------------------------------------------------------------------------------------------
{
	if ( champ_value.length != 0 )
	{
		if ( !is_float(champ_value) || champ_value > 15 )
		{
	 		flag_Error=1; 
	 		str_Error += "\n\t- "+message+ " (Format 11.12 et inférieur à 15.00)";
		}
	}
}


//-------------------------------------------------------------------------------------------
function is_float(Element)
//-------------------------------------------------------------------------------------------
{
	pattern = /^(\d+)([.,]{1}(\d*))?$/
	if (pattern.test(Element))
	{
		return Element.replace(",",".");
	}
	return false;
}

//-----------------------------------------------------------------------------------------
function verifEmail(val,message) {
//-----------------------------------------------------------------------------------------

	pattern = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/i
	if ( pattern.test(val) )
	{
		return;
	}
	else
	{
		flag_Error=1; 
		str_Error += "\n\t- "+message;
		return;	
	}
}

//-------------------------------------------------------------------------------------------
function verifAnnee(strSaisie,message,debut,fin) 	{	// Verification du valeur numerique d'une ligne
//-------------------------------------------------------------------------------------------

	if (strSaisie.length == '') return true;
	if (strSaisie.length != "4" || !isNumeric(strSaisie)) {	
		flag_Error=1; 
		str_Error += "\n\t- "+message;
	} else {
		if (strSaisie < debut || strSaisie > fin){
			flag_Error=1; 
			str_Error += "\n\t- "+message;
		}
	}
}

//-------------------------------------------------------------------------------------------
function verifValeurMax(strSaisie,message,valeurMax) 	{
// Verification strSaisie < valeurMax
//-------------------------------------------------------------------------------------------

	if (strSaisie.length == '') return true;
	if (strSaisie > valeurMax) {	
		flag_Error=1; 
		str_Error += "\n\t- "+message;
	}
}


//--------------------------------------------------------------------------------------------
function verifDate(JJ,MM,AA,message,jj_d,mm_d,aa_d,jj_f,mm_f,aa_f) {
//--------------------------------------------------------------------------------------------

	Today = new Date();
	if (JJ=='' || MM=='' || AA=='') return true;
	if (verifFormatDate(JJ,MM,AA)){
		if (jj_d == null) { // until now
			// if (verifPeriodDate(JJ,MM,AA,0,0,1901, Today.getDate(), Today.getMonth(), Today.getFullYear()))
				return true;
		} else {
			if(verifPeriodDate(JJ,MM,AA,jj_d,mm_d,aa_d,jj_f,mm_f,aa_f))
				return true;
		}
	}	
	flag_Error=1; 
	str_Error+="\n\t- "+message;
	return false;
}
 
//--------------------------------------------------------------------------------------------
function verifPeriodDate(JJ,MM,AA,jj_d,mm_d,aa_d,jj_f,mm_f,aa_f) {
//--------------------------------------------------------------------------------------------
	var mydate,date_now;
	var date_debut=0;
	var date_fin=0;

	date_debut=jj_d*1+mm_d*31+aa_d*356;
	date_fin=jj_f*1+mm_f*31+aa_f*356;
	mydate=JJ*1+MM*31+AA*356;

	if (mydate >= date_debut && mydate <= date_fin) return true;
	return false;
}

//--------------------------------------------------------------------------------------------
function verifFormatDate(Jour,Mois,Annee) {
//--------------------------------------------------------------------------------------------
	Mois = Mois - 1
	DateRef = new Date (Annee,Mois,Jour)

	return ( ( DateRef.getDate() == Jour ) && ( DateRef.getMonth() == Mois ) && ( DateRef.getFullYear() == Annee ) )
}

//-------------------------------------------------------------------------------------------	
function obligatoire(champ_value,message) 		// Verifie si le champ est rempli.
//-------------------------------------------------------------------------------------------
{
	if (champ_value == '' || champ_value == -1 ){
	 	flag_Obligatoire=1; 
	 	str_Obligatoire += "\n\t- "+message;
	}
}

//-------------------------------------------------------------------------------------------	
function obligatoire_select(champ_value,message) 		// Verifie si le champ est rempli.
//-------------------------------------------------------------------------------------------
{
	if (champ_value.selectedIndex == 0){
	 	flag_Obligatoire=1; 
	 	str_Obligatoire += "\n\t- "+message;
	}
}

//-------------------------------------------------------------------------------------------
function visible(obj_name)		// rends visible l'objet, dont l'ID est le parametre d'entree
//-------------------------------------------------------------------------------------------
{	
	if (!ns){
		strCommand = "document.getElementById('" + obj_name + "').style.visibility= 'visible'";
		eval(strCommand);
	} else {
		strCommand = "document['" + obj_name + "'].visibility= 'show'";
		eval(strCommand);
	}
}
	
//-------------------------------------------------------------------------------------------
function hidden(obj_name)		// cache l'objet, dont l'ID est le parametre d'entree
//-------------------------------------------------------------------------------------------
{	
	if (!ns){
		strCommand = "document.getElementById('" + obj_name + "').style.visibility= 'hidden'";
		eval(strCommand);
	} else {
		strCommand = "document['" + obj_name + "'].visibility= 'hide'";
		eval(strCommand);
	}
}

function isvisible(obj_name)
{
	return eval("document.getElementById('" + obj_name + "').style.visibility == 'visible'");
}


//-------------------------------------------------------------------------------------------
function ResetAll(doc)			// Remettre tous les champs a la position initiale
//-------------------------------------------------------------------------------------------
{
	for (var i = 0; i < doc.forms.length; i++) {
		doc.forms[i].reset()       
    }
    if (ns) {
      	for (var j = 0; j < doc.layers.length; j++) {
	        ResetAll(doc.layers[j].document)      
        }                  
    }
    afficher();
}

//-------------------------------------------------------------------------------------------
function init_select_tab (obj, tabval)	// Function initialisant un select avec un tableau
//-------------------------------------------------------------------------------------------
{
	// Suppression des items
	obj.options.length=0

	// Ajout des nouvelles valeurs
	for (i=0 ; i < tabval["texte"].length ; i++)
	{
		ligne = new Option(tabval["texte"][i],tabval["valeur"][i]);
		obj.options[i] = ligne;
	}
}


//-------------------------------------------------------------------------------------------
function popup(page,hauteur,largeur)  // Fonction ouvrant un popup
//-------------------------------------------------------------------------------------------
{
	window.open(page,'',"top=10,left=10,width="+largeur+",height="+hauteur+",menubar=no,scrollbars=yes,statusbar=no");
}


//-------------------------------------------------------------------------------------------
function bulle_relais()  // Fonction afficahnt l'info bulle pour un relais
//-------------------------------------------------------------------------------------------
{
	roll_width=350;
	dcc("Prêt de 24 mois au maximum et destiné à constituer tout ou partie de l'apport personnel dans l'attente de la revente d'un bien.<br>Les remboursements peuvent être différés et payables sur vos fonds perçus le jour de votre revente.",'','Relais','FFFFFF','433989','0000FF')
	return true;
}


//-------------------------------------------------------------------------------------------
function bulle_restantdu()  // Fonction afficahnt l'info bulle pour un capital restant du
//-------------------------------------------------------------------------------------------
{
	roll_width=350;
	dcc("Le prêt relais peut rembourser le prêt immobilier de votre bien mis en vente afin d'éviter un cumul de charges avec le bien acquis.<br>Le solde du relais est retenu comme apport personnel.<br><br>Pénalités de remboursement anticipé<br>3% au maximum du capital restant dû. Vérifiez sur votre contrat et modifiez le montant si besoin.",'','Solde du prêt restant dû','FFFFFF','433989','0000FF')
	return true;
}

//-------------------------------------------------------------------------------------------
function bulle_penalite()  // Fonction afficahnt l'info bulle pour les pénalités
//-------------------------------------------------------------------------------------------
{
	roll_width=350;
	dcc("3% au maximum du capital restant dû. Vérifiez sur votre contrat et modifiez le montant si besoin.",'','Pénalités de remboursement anticipé','FFFFFF','433989','0000FF')
	return true;
}

//-------------------------------------------------------------------------------------------
function bulle_fraisgtie()  // Fonction afficahnt l'info bulle pour les frais de garantie
//-------------------------------------------------------------------------------------------
{
	roll_width=350;
	dcc("Hypothèque ou caution bancaire destinées à garantir le nouveau prêteur.",'','Frais de garantie','FFFFFF','433989','0000FF')
	return true;
}


//-------------------------------------------------------------------------------------------
function change_pret(ligne)  // Fonction effectuant les changements sur les prets cochés
//-------------------------------------------------------------------------------------------
{
 	pret_f = (ns)? document['pret'].document.pret_form : document.pret_form;
	obj = eval("pret_f."+ligne+".checked");

	if ( obj )
	{
		input = "inputenabled"
	}
	else
	{
		input = "inputdisabled"
	}	

	eval("pret_f.prets_"+ligne+"_mnt.disabled="+(!obj));
	eval("pret_f.prets_"+ligne+"_mnt.className='"+input+"'");
	eval("pret_f.prets_"+ligne+"_mens.disabled="+(!obj));
	eval("pret_f.prets_"+ligne+"_mens.className='"+input+"'");
	eval("pret_f.prets_"+ligne+"_duree.disabled="+(!obj));
	eval("pret_f.prets_"+ligne+"_duree.className='"+input+"'");
}


//-------------------------------------------------------------------------------------------
function add_pret_To_Main_Form(pret_f)  // Fonction ajoutant les prêts au formulaire
//-------------------------------------------------------------------------------------------
{
	with(pret_f)
	{
		if ( isvisible("pret") )
		{
			var j = 0
			for ( var i = 0 ; i < pret_f.elements.length ; i++ )
			{
				if ( pret_f.elements[j].type == "checkbox" && pret_f.elements[j].checked && pret_f.elements[i].value != '')
				{
					eval("document.main_form."+pret_f.elements[i].name+".value="+pret_f.elements[i].value)
				}
			
				if ( ((j+1+i)%4) == 0 )
				{
					j += 4;
				}
			}
		}
	}
}


//-------------------------------------------------------------------------------------------
function cloture()  // Fonction effectuant la fermeture du pop-up de la demande
//-------------------------------------------------------------------------------------------
{
	//window.opener.verifcloture(passage);
}


//-------------------------------------------------------------------------------------------
function convertisseur()  // Fonction afficahnt en popup le convertisseur francs/euros
//-------------------------------------------------------------------------------------------
{
	fenetre = window.open("convertisseur.php",'',"top=10,left=10,width=400,height=180,menubar=no,scrollbars=yes,statusbar=no");
}
