<!-- hide

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}
function movemenu() {

  var pos=0;

  if (window.innerHeight) {
    pos = window.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop) {
    pos = document.documentElement.scrollTop;
  } else if (document.body) {
    pos = document.body.scrollTop;
  }
  //     alert(pos + " ddd");

  var v=villeecole.obj.offsetHeight +350;

  if (pos > v ) {
    //     alert("pos " + pos + " ddd v " + v + " menu " + menu.style.top + " villeecole.obj.offsetHeight  " + villeecole.obj.offsetHeight);
     menu.obj.className='floating';
  } else {
     menu.obj.className='nofloating';
  }


  //  v=+ 137 ;
  //  pos=pos-v;

  //  if (pos < theTop) pos = theTop;
  //  else pos += 0;


  //  if (pos == old) {
    // alert("pos " + pos + " ddd v " + v + " menu " + menu.style.top + " villeecole.obj.offsetHeight  " + villeecole.obj.offsetHeight);

    //	alert(menu + " " + pos + " heigh " + menu.obj.offsetHeight + " pagebottom  " + f);
    //        menu.style.top = pos+"px";
    //    alert(menu.style.postion);
    //        menu.style.postion = "fixed";


    //        menu.style.top = "0px";
  //  }
  //  old = pos;
  var temp = setTimeout('movemenu()',20);
}

function getformSlot(myform,counter) {
 for (var i = 0; i < myform.length; i++) {
  if (myform[i].name == counter) {
    return myform[i];
  }
 }
 return ;
}

function change_date(id_dest) {

  // on verifie hs
  var myform=document.forms['formSubscribe'];
  
  var date_html =new getObj('date_hb_'+id_dest);
  var date=new getObj("date_sel_"+id_dest);
  date_html.obj.innerHTML=date.obj.options[date.obj.selectedIndex].parentNode.label

  var heberg_duree_html =new getObj('heberg_duree');

  modifprix_hbg(document.forms['formSubscribe'].DEVIS_ID_LIEU_REF_HBG_FIX.value,heberg_duree_html.obj.innerHTML);
  modifprix(id_dest,0,0);
}
function change_option() {

 var myform=document.forms['formSubscribe'];
 var id_dest=myform.DEVIS_ID_DEST_FIX.value;
 if (! id_dest) { return true }

 modifprix(id_dest,0,0);
 return true;	
}

function change_transfert(id) {
 var myform=document.forms['formSubscribe'];
 var id_dest=myform.DEVIS_ID_DEST_FIX.value;
 if (! id_dest) { var form_c=getformSlot(myform,"DEVIS_TRANSFERT.PRIX_"+id);form_c.checked=false; return true }
 var id_heb=myform.DEVIS_ID_LIEU_HBG_FIX.value;
 if (id_heb == 0) { var form_c=getformSlot(myform,"DEVIS_TRANSFERT.PRIX_"+id);form_c.checked=false; return true }

 var form_id=getformSlot(myform,"DEVIS_TRANSFERT.PRIX_"+id);	
 var value_id = form_id.value.split('@');

 for (var i = 0; i < myform.length; i++) {
   if (myform[i].name.search(/^DEVIS_TRANSFERT.NOM_/) >= 0) {
      var opt=myform[i];
      var c=opt.name.replace(/DEVIS_TRANSFERT.NOM_/,"");
      if (id != c) {
	var form_c=getformSlot(myform,"DEVIS_TRANSFERT.PRIX_"+c);	
	var value_c = form_c.value.split('@');
	if (value_id[4] == value_c[4]) {
	   form_c.checked=false;
	}
      }	
   }
 }
 modifprix(id_dest,0,0);
 return true;	
}

function increment_hbg(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_hbg(id_lieu_hbg,dureemax) ) {
    return false 
 }

 var myform=document.forms['formSubscribe'];
 var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

 var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBSH_"+id_lieu_hbg);

 if (! form_id_lieu_hbg) { return false }

 var cours_duree_html =new getObj('cours_duree');
 var duree_cours=(cours_duree_html.obj.innerHTML * 1);

 var re= /\D/g;
 var temp=form_id_lieu_hbg.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   modifprix_hbg(id_lieu_hbg,duree_cours);

   return false;
 } 

 var id_dest=myform.DEVIS_ID_DEST_FIX.value;
 if (! id_dest) { return false }
 var date=getformSlot(myform,"DEVIS.DAT_DEB_"+id_dest);

 var forfait="";
 var supplement=""; 	
 var unitaire=""; 	
 var duree_actu=(form_id_lieu_hbg.value * 1);
 var xx =  prix_hbg.split(/\%\%/);
 for (k=1;k<xx.length;k++) {
    var prixvalue= xx[k].split('@');
    if (verifdata_hbg(date.value,prixvalue[6],prixvalue[7])) {
     if (prixvalue[3] == 'sem') {
      if (prixvalue[1] == 'unitaire') {
	unitaire=prixvalue[2];
	break;
      } else {
	if (prixvalue[1] == 'forfait') {
	  if (prixvalue[2] > duree_actu) {
	    forfait=prixvalue[2];
	    break;
	  }
	} else {
	  supplement=prixvalue[2];
	  break;
	}
      }
    }
   }
 }
 var new_duree=0;
 if (forfait) { 
   new_duree=(forfait * 1);
 } else {
   if (supplement) {
     new_duree=duree_actu+(supplement *1);
   } else {
     if (unitaire) {
	new_duree=duree_actu+(unitaire*1);
     }
   }
 }

// alert ("test inc new " + new_duree + " duree cours "  + duree_cours);
 if ((new_duree == 0) || (new_duree > duree_cours)) {
   new_duree=form_id_lieu_hbg.value;	
 }

 modifprix_hbg(id_lieu_hbg,new_duree);

 return false;
}

function decrement_hbg(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_hbg(id_lieu_hbg,dureemax) ) {
    return false 
 }
 var myform=document.forms['formSubscribe'];
 var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

 var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBSH_"+id_lieu_hbg);

 if (! form_id_lieu_hbg) { return false }

 var cours_duree_html =new getObj('cours_duree');
 var duree_cours=(cours_duree_html.obj.innerHTML * 1);

 var re= /\D/g;
 var temp=form_id_lieu_hbg.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   modifprix_hbg(id_lieu_hbg,duree_cours);
   return false;
 } 

 var id_dest=myform.DEVIS_ID_DEST_FIX.value;
 if (! id_dest) { return false }
 var date=getformSlot(myform,"DEVIS.DAT_DEB_"+id_dest);

 var forfait="";
 var supplement=""; 	
 var unitaire=""; 	
 var max_forfait=0;	
 var min_forfait=1000;	
 var duree_actu=(form_id_lieu_hbg.value * 1);
 var xx =  prix_hbg.split(/\%\%/);
 for (var k=1;k<xx.length;k++) {
   var prixvalue= xx[k].split('@');
    if (verifdata_hbg(date.value,prixvalue[6],prixvalue[7])) {
     if (prixvalue[3] == 'sem') {
      if (prixvalue[1] == 'unitaire') {
	unitaire=prixvalue[2];
	break;
      } else {
	if (prixvalue[1] == 'forfait') {
	  if (prixvalue[2] > max_forfait) {max_forfait=prixvalue[2];}	
	  if (prixvalue[2] < min_forfait) {min_forfait=prixvalue[2];}	
	  if (prixvalue[2] < duree_actu) {
	    forfait=prixvalue[2];
	  }
	} else {
	  supplement=prixvalue[2]; 	
	  break;
	}
      }
    }
   }
 }
 var new_duree=0;
 if (duree_actu == min_forfait)  { 
     new_duree=0;
 } else  {
     if (duree_actu> max_forfait) {	
      if (supplement || unitaire) {
	if (supplement) {
	  new_duree=duree_actu-(supplement *1);
        } else {
	  new_duree=duree_actu-(unitaire *1);
        }
      } else {
       new_duree=(forfait * 1);
      }
     } else {
       new_duree=(forfait * 1);
     }
 }

 if (new_duree <= 0) {
   new_duree=0;
 }
 modifprix_hbg(id_lieu_hbg,new_duree);

 return false;
}

function changeprix_hbg(id_lieu_hbg,objradio) {

  if (id_lieu_hbg) {
    var myform=document.forms['formSubscribe']
    for (var i = 0; i < myform.length; i++) {
	  if (myform[i].name.search(/^DEVIS.SEM_NBSH_/) >= 0) {
	      var $c=myform[i].name.replace(/DEVIS.SEM_NBSH_/,"");
	      if ($c != id_lieu_hbg) {
		myform[i].value='0';
	        myform[i].blur();
              }
	  }
	  if (myform[i].name.search(/^DEVIS.SEM_NBNH_/) >= 0) {
	      var $c=myform[i].name.replace(/DEVIS.SEM_NBNH_/,"");
	      if ($c != id_lieu_hbg) {
		myform[i].value='0';
	        myform[i].blur();
              }
	  }
    }
    var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_lieu_hbg);
    if (form_id_lieu_hbg) {	
	{ form_id_lieu_hbg.focus(); }
    }	
    var form_id_lieu_nuit=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBNH_"+id_lieu_hbg);
    if (form_id_lieu_nuit) {
      modifprix_nuit(id_lieu_hbg,form_id_lieu_nuit.value);
    }
  }
  
  document.forms['formSubscribe'].DEVIS_ID_LIEU_HBG_FIX.value=objradio.value;
  document.forms['formSubscribe'].DEVIS_ID_LIEU_REF_HBG_FIX.value=id_lieu_hbg;

  var xx = objradio.value.split(/\%\%/);
  var prixvalue= xx[0].split('@');

  var heberg_lieu_html =new getObj('heberg_lieu');
  var heberg_type_html =new getObj('heberg_type');
  
  heberg_lieu_html.obj.innerHTML=prixvalue[1];
  heberg_type_html.obj.innerHTML=prixvalue[2] + " - " + prixvalue[3] + " - " + prixvalue[4];

  var cours_duree_html =new getObj('cours_duree');
  var duree_cours=(cours_duree_html.obj.innerHTML * 1);

  modifprix_hbg(id_lieu_hbg,duree_cours);
}


function increment(id_dest,prix,dureemax,duree,dureesemmax) {

 var DUREE_INC=duree || 1;

 if (! changeSupSem(id_dest,dureemax) ) {
    return false 
 }
 var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);

 if (! form_id_dest) { return false }

 var re= /\D/g;
 var temp=form_id_dest.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   form_id_dest.value='0';
   modifprix(id_dest,document.forms['formSubscribe'].DEVIS_DUREE_FIX.value,document.forms['formSubscribe'].DEVIS_PRIX_FIX.value);
   return false;
 } 
 if (dureesemmax) {
     dureesemmax-=dureemax ;
 } else {
     dureesemmax=20;
 }
 var xx_sem=(form_id_dest.value * 1);
 // alert ("ddd " + id_dest + "duree " + dureemax + " dureesemmax " + dureesemmax + " xx_sem " + xx_sem);
 if (xx_sem == dureesemmax) {
     return false;
 }

 var cours_prix_html =new getObj('cours_prix');

 form_id_dest.value=(form_id_dest.value * 1)+DUREE_INC;
 modifprix(id_dest,(document.forms['formSubscribe'].DEVIS_DUREE_FIX.value * 1) + (form_id_dest.value * 1),(document.forms['formSubscribe'].DEVIS_PRIX_COURS_FIX.value*1) +  prix);

 return false;
}
function decrement(id_dest,prix,dureemax,duree) {

 var DUREE_INC=duree || 1;
 if (! changeSupSem(id_dest,dureemax) ) {
    return false 
 }
 var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);

 if (! form_id_dest) { return false }

 var re= /\D/g;
 var temp=form_id_dest.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   form_id_dest.value='0';
   modifprix(id_dest,document.forms['formSubscribe'].DEVIS_DUREE_FIX.value,document.forms['formSubscribe'].DEVIS_PRIX_FIX.value);
   return false
 }
 if (form_id_dest.value == '0') {
   modifprix(id_dest,document.forms['formSubscribe'].DEVIS_DUREE_FIX.value,document.forms['formSubscribe'].DEVIS_PRIX_FIX.value);
   return false 
 }

// alert (document.forms['formSubscribe'].DEVIS_DUREE_FIX.value);

 var cours_prix_html =new getObj('cours_prix');

 form_id_dest.value=(form_id_dest.value * 1)-DUREE_INC;
 modifprix(id_dest,(document.forms['formSubscribe'].DEVIS_DUREE_FIX.value *1) + (form_id_dest.value * 1),(document.forms['formSubscribe'].DEVIS_PRIX_COURS_FIX.value*1) - prix);
 return false;
}

function changeSupSem_hbg(id_lieu_hbg,duree_sup) {

  var prix_hbg=document.forms['formSubscribe'].DEVIS_ID_LIEU_HBG_FIX.value;

  if (! prix_hbg ) { return false }

  if (id_lieu_hbg) {
    var prixvalue = prix_hbg.split('@');
    if (prixvalue[0] != id_lieu_hbg) {
      //      alert(id_lieu_hbg + " ddddd " + prix_hbg);
      var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSH_"+id_lieu_hbg);
      form_id_lieu_hbg.blur();
      var form_id_nuit_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBNH_"+id_lieu_hbg);
      if (form_id_nuit_hbg) {	
        form_id_nuit_hbg.blur();
      }
      return false;
    }
  }
 return true; 
}

function changeSupSemOut_hbg(id_lieu_hbg,duree_sup) {

  if (! changeSupSem_hbg(id_lieu_hbg,duree_sup) ) {
      var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSH_"+id_lieu_hbg);
      form_id_lieu_hbg.blur();
      return false;	
  }
  return true;	
}

function changeSupSemBlur_hbg(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_hbg(id_lieu_hbg,dureemax) ) {
    return false 
 }
 var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSH_"+id_lieu_hbg);

 if (! form_id_lieu_hbg) { return false }

 var cours_duree_html =new getObj('cours_duree');
 var duree_cours=(cours_duree_html.obj.innerHTML * 1);

// cours_prix=;
 var temp=form_id_lieu_hbg.value;
 if (! temp ) {
  modifprix_hbg(id_lieu_hbg,0);
  return false;	
 }
 var re= /\D/g;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   modifprix_hbg(id_lieu_hbg,duree_cours);
   return false;
 } 
 if (form_id_lieu_hbg.value > duree_cours) {
   modifprix_hbg(id_lieu_hbg,duree_cours);
   return false;
 }

 modifprix_hbg(id_lieu_hbg,form_id_lieu_hbg.value);
 return false;
}

function changeSupSem(id_dest,duree_sup) {

 if (((document.forms['formSubscribe'].DEVIS_ID_DEST_FIX.value *1)!= id_dest) || 
     ((document.forms['formSubscribe'].DEVIS_DUREE_FIX.value *1) !=duree_sup)) { 
      var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);
      form_id_dest.value='0';
      return false;	
 }
 return true; 
}

function changeSupSemOut(id_dest,duree_sup) {

  if (! changeSupSem(id_dest,duree_sup) ) {
      var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);
      form_id_dest.blur();
      return false;	
 }
 return true; 
}

function changeSupSemBlur(id_dest,prix,dureemax) {

 if (! changeSupSem(id_dest,dureemax) ) {
    return false 
 }
 var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);

 if (! form_id_dest) { return false }

// cours_prix=;
 var temp=form_id_dest.value;
 if (! temp ) {
  modifprix(id_dest,document.forms['formSubscribe'].DEVIS_DUREE_FIX.value,document.forms['formSubscribe'].DEVIS_PRIX_FIX.value);
  return false;	
 }
 var re= /\D/g;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   form_id_dest.value='0';
   modifprix(id_dest,document.forms['formSubscribe'].DEVIS_DUREE_FIX.value,document.forms['formSubscribe'].DEVIS_PRIX_FIX.value);
   return false;
 } 

 modifprix(id_dest,(document.forms['formSubscribe'].DEVIS_DUREE_FIX.value *1) + (form_id_dest.value * 1),(document.forms['formSubscribe'].DEVIS_PRIX_FIX.value *1) + (form_id_dest.value * prix));

}
function changeprix(xduree,xprix,id_dest,dureemax) {

//  alert (xduree + " , "+ xprix  + " , "+ id_dest  + " , "+ dureemax);

  document.forms['formSubscribe'].DEVIS_DUREE_FIX.value=xduree;
  document.forms['formSubscribe'].DEVIS_PRIX_FIX.value=xprix;
  document.forms['formSubscribe'].DEVIS_ID_DEST_FIX.value=id_dest;

  if (id_dest) {
    var myform=document.forms['formSubscribe']
    for (var i = 0; i < myform.length; i++) {
	  if (myform[i].name.search(/^DEVIS.SEM_NBSC_/) >= 0) {
		myform[i].value='0';
	        myform[i].blur();
	  }
	  if (myform[i].name.search(/^DEVIS.SEM_NBSH_/) >= 0) {
		myform[i].value='0';
	        myform[i].blur();
	  }
	  if (myform[i].name.search(/^DEVIS.SEM_NBNH_/) >= 0) {
		myform[i].value='0';
	        myform[i].blur();
	  }
    }
    var form_id_dest=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBSC_"+id_dest);
    if (form_id_dest) {	
	if (xduree == dureemax) { form_id_dest.focus(); }
    }	
    var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;
    if (prix_hbg != 0) {
       var prixvalue = prix_hbg.split('@');
       var id_lieu_hbg= prixvalue[0];
       // alert(" ds modifprix xxx " + prix_hbg + " id_lieu_hbg " + id_lieu_hbg + " duree " + xduree + " prix " + xprix);
       modifprix(id_dest,xduree,xprix);
       modifprix_hbg(id_lieu_hbg,xduree);
       return; 	
    }	
  }
  modifprix(id_dest,xduree,xprix);
}

function prix_hs(base,id_dest,date_deb,duree,prix) { // haute saison
  // duree en sem. date_deb lundi
  var date_fin=date_add(date_deb,(duree*7)); // un dimanche

//      alert(" prix_hs::entry " + base + " > date fin duree " + duree + "  date fin " + date_fin);

  var form_hs = getformSlot(document.forms['formSubscribe'],"DEVIS."+base);
  var form_hs_id = getformSlot(document.forms['formSubscribe'],"DEVIS."+base+"_"+id_dest);

  var myvalue = ""; 
  if (form_hs_id) {
      myvalue =form_hs_id.value.split(/\%\%/);
  } else {
      if (form_hs) {
	 myvalue =form_hs.value.split(/\%\%/);
      } else {
        return prix;
      }
  }

  var HS="";
  var PRIX_TOTAL_HS=0;
  var PRIX_SEM=prix / duree;

  for (var k=0;k<myvalue.length;k++) {
    var prixvalue = myvalue[k].split('@');
    var id=(prixvalue[1] * 1);

    if (id && (id != id_dest)) {  continue }

    var date_deb_hs=prixvalue[4];
    var date_fin_hs=prixvalue[5];
    var duree=prixvalue[2];

    if (((date_deb_hs <= date_deb) && (date_deb < date_fin_hs)) || ((date_deb <= date_deb_hs) && (date_deb_hs < date_fin))) {
      if (date_deb_hs <= date_deb) {
	if (date_fin_hs <= date_fin) {
//	  	  alert("prix_hs 1");
	  var res=get_week(date_fin_hs, date_deb);
	  if ((duree > 1) && (res.delta != duree)) { continue}
	  date_deb=res.date;
	  PRIX_TOTAL_HS+=prix_hs_major(res.delta,PRIX_SEM,prixvalue[3],prixvalue[0]);
	  HS="ok";
//  	alert (" ddd prix_hs 1 " + PRIX_TOTAL_HS  + " rest " + res.delta);
	} else {
//	  	  alert("prix_hs 2 ");
	  var res=get_week(date_fin, date_deb);
	  if ((duree > 1) && (res.delta != duree)) { continue}
	  date_deb=res.date;
	  PRIX_TOTAL_HS+=prix_hs_major(res.delta,PRIX_SEM,prixvalue[3],prixvalue[0]);
//	alert (" ddd prix_hs 2 " + PRIX_TOTAL_HS  + " rest " + res.delta);
	  break;
	}
      } else {
//	alert("prix_hs 3");
	var res_hs=get_week(date_deb_hs, date_deb);
	PRIX_TOTAL_HS+=(res_hs.delta * PRIX_SEM);
	if (date_fin_hs <= date_fin) {
	  var res=get_week(date_fin_hs, res_hs.date);
	  if ((duree > 1) && (res.delta != duree)) { continue}
	  date_deb=res.date;
	  PRIX_TOTAL_HS+=prix_hs_major(res.delta,PRIX_SEM,prixvalue[3],prixvalue[0]);
//        alert (" ddd prix_hs 3 " + PRIX_TOTAL_HS);

	  HS="ok";
	} else {
	  var res=get_week(date_fin, res_hs.date);
	  if ((duree > 1) && (res.delta != duree)) { continue}
	  date_deb=res.date;
	  PRIX_TOTAL_HS+=prix_hs_major(res.delta,PRIX_SEM,prixvalue[3],prixvalue[0]);
//        alert (" ddd prix_hs 4 " + PRIX_TOTAL_HS);
	  HS="ok";
	}
      }
    }
  }
  if (HS) {
    if (date_deb < date_fin) {
      var res=get_week(date_fin, date_deb);
// alert ("prix_hs 5 date_deb >> " + date_deb + " date_fin  " + date_fin + " rest " + res.delta);
      PRIX_TOTAL_HS+=(res.delta * PRIX_SEM);
    }
  }
// alert("Prix finale " +PRIX_TOTAL_HS);

  if (! PRIX_TOTAL_HS) { return prix }

  return Math.ceil(PRIX_TOTAL_HS);
}
function prix_hs_major(delta,PRIX_SEM,TypeSup,prix) {

  var r=delta * PRIX_SEM;
  prix=(prix *1);
  if (TypeSup == "%") {
    r+=(r * prix)/100;
  } else {
    r+=(delta * prix);
  }
  return r;
}
function date_heb(prix_hbg,date) {

  if (! prix_hbg ) { return date }

  var yy =prix_hbg.split(/\%\%/);
  var hbgvalue= yy[0].split('@');

  var year1  = date.substring(0,4) - 0;
  var month1 = date.substring(4,6) - 1;
  var day1   = date.substring(6,8) - 0;

  var xdate1 = new Date(year1,month1,day1);

  var d=xdate1.getDay();
  var hbgd=0; // 0: dimanche
  if (hbgvalue[5]) { hbgd=(hbgvalue[5]*1)};
  if (hbgd == 7) { hbgd=0 } 
  var delta=d - hbgd;
  if (delta < 0) { delta+=7 } else { delta=0}

  if (delta > 0) {
      var new_date=date_add(date,1-delta);
      // alert(" ddd date " + date  + " day " +d + " jour " + hbgd + " >>> " + delta + " new date " + new_date);      
      return new_date;
  }
  return date;
}
function get_week(date1,date2) {
  
  var year1  = date1.substring(0,4) - 0;
  var month1 = date1.substring(4,6) - 1;
  var day1   = date1.substring(6,8) - 0;

  var xdate1 = new Date(year1,month1,day1);

  var year2  = date2.substring(0,4) - 0;
  var month2 = date2.substring(4,6) - 1;
  var day2   = date2.substring(6,8) - 0;

  var xdate2 = new Date(year2,month2,day2);

//   alert ("get_week " + date1 + " " + date2);
  var one_day=1000*60*60*24;
  var day= ((Math.abs(xdate2.getTime()-xdate1.getTime()))/one_day)  ;
// alert(" day " + day);
  var day_reste=day%7;
  var nbre_sem=Math.ceil(day/7);
  if (day<5) {
    nbre_sem=0;
  }

// alert(" nbre_sem " + nbre_sem);
  if (day_reste > 0) {
    date1=date_add(date2,nbre_sem*7 +1);
  }
//    alert ("get_week newdate " + date1 + " " + date2 + " " + nbre_sem +  " day " + day_reste );
  return {date:date1,delta:nbre_sem}
}
function date_add(date,jour) {

  var year  = date.substring(0,4) - 0;
  var month = date.substring(4,6) - 1;
  var day   = date.substring(6,8) - 0;

  var test = new Date(year,month,day);
  test.setDate(test.getDate()+jour -1);
  var mois="" + (test.getMonth()+101);mois=mois.substring(1,3);
  var xjour="" + (test.getDate() +100);xjour=xjour.substring(1,3);

// alert(" date_add " + date + " jour " + jour + " resultat " + mois + xjour);
  return "" + test.getFullYear() + mois + xjour;
}

function calculprix_hbg(id_dest,duree,TypeDuree,prix_hbg) {

  var date=getformSlot(document.forms['formSubscribe'],"DEVIS.DAT_DEB_"+id_dest);
  duree=duree*1;	

  var duree_total=duree;
  var duree_forfait_max=0;
  var prix_total=0;

  var xx = prix_hbg.split(/\%\%/);
  for (var k=1;k<xx.length;k++) {
    var prixvalue= xx[k].split('@');

    if (duree == 0) { break }

    if (prixvalue[1] == 'info') {
	return {duree:0,prix_total:0}
    }
    if (verifdata_hbg(date.value,prixvalue[7],prixvalue[8])) {
      if (prixvalue[3] == TypeDuree) {
	var duree_prix=(prixvalue[2] * 1);
	var prix=(prixvalue[4] * 1);

	if (prixvalue[1] == 'unitaire') {
	  if (duree < duree_prix) { continue }

	   var x_duree=duree;
	   var duree_min=(prixvalue[5] * 1);
	   var duree_max=(prixvalue[6] * 1);

	   if (duree_max  && (duree_total - duree > duree_max)) { continue }

           if (duree_min && duree_max) {
              var x=duree_max - duree_min +1;
	      if (prix_total == 0) { x=duree_max; }
              if (x < x_duree) { x_duree=x }
            } else {
		if (duree_min > duree_total) { continue }
	    }
            var n=Math.floor(x_duree/duree_prix)
            prix_total+=(prix * n);
            duree-=(n * duree_prix);

	} else {
	  if (prixvalue[1] == 'forfait') {
	    if (duree_prix > duree_total) { continue }
	    if (duree_forfait_max) { continue }            
	    duree_forfait_max=duree_prix;	
	    prix_total=prix;
            duree-=duree_forfait_max;
	  } else { // supplement
	      if (TypeDuree == 'sem') {
		  if (duree ==  duree_total) { continue; } // forfait ou unitaire
		  if (duree < duree_prix) { continue; }
	      }
            var n=Math.floor(duree/duree_prix)
	    prix_total+=(prix * n);
	    duree-=(n * duree_prix);

	  }
	}
      }
    }
  }
  //    alert ("calculprix duree" + duree + " ,prix_total: " + prix_total );
  return {duree:duree,prix_total:prix_total}
}
function modifprix_hbg(id_lieu_hbg,duree) {

  var myform=document.forms['formSubscribe'];
  var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

  if (! prix_hbg ) { return false }

  var id_dest=myform.DEVIS_ID_DEST_FIX.value;
  if (! id_dest) { return false }

  var res=calculprix_hbg(id_dest,duree,'sem',prix_hbg);
  var duree_possible=duree - res.duree;	
  if (id_lieu_hbg == 0) { // hebergement compris
	duree_possible=duree;
  }	
  var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBSH_"+id_lieu_hbg);
  if (form_id_lieu_hbg) {	
    if (form_id_lieu_hbg.value) {	
      form_id_lieu_hbg.value=duree_possible;
    }
  }

  var heberg_duree_html =new getObj('heberg_duree');
  var heberg_prix_html =new getObj('heberg_prix');

  var date=getformSlot(myform,"DEVIS.DAT_DEB_"+myform.DEVIS_ID_DEST_FIX.value);

  var dateHbgDeb=date_heb(prix_hbg,date.value);

  res.prix_total=prix_hs("HSC_HB",id_lieu_hbg,dateHbgDeb,duree_possible,res.prix_total);

//   alert(" duree_possible " + duree_possible + " prix_total " + res.prix_total);
  heberg_duree_html.obj.innerHTML=duree_possible;
  heberg_prix_html.obj.innerHTML=res.prix_total;

  if (duree_possible == 0) {
     modifprix_nuit(id_lieu_hbg,0);	
  }
  modifprix(id_dest,0,0);
}

function modifprix(id_dest,duree,prix) {

//  alert("modifprix " + id_dest + " , " + duree + " , " + prix);

  var myform=document.forms['formSubscribe'];
  if (myform.DEVIS_ID_DEST_FIX.value !=id_dest) { return false }

  var cours_duree_html =new getObj('cours_duree');
  var cours_prix_html =new getObj('cours_prix');
  var heberg_prix_html =new getObj('heberg_prix');
  var nuit_prix_html =new getObj('nuit_prix');

  if (duree) {
    cours_duree_html.obj.innerHTML =duree;
  } else {
    duree=(cours_duree_html.obj.innerHTML * 1);
  }

  var date=getformSlot(myform,"DEVIS.DAT_DEB_"+id_dest);
  if (prix) {
//        alert("modif prix : " +prix);
    document.forms['formSubscribe'].DEVIS_PRIX_COURS_FIX.value=prix;

    if (date) { prix=prix_hs("HSC_COURS",id_dest,date.value,duree,prix); }
    cours_prix_html.obj.innerHTML = prix;
  } else {
//        alert("new prix deb ");
    if (date) {
      var new_prix=prix_hs("HSC_COURS",id_dest,date.value,duree,document.forms['formSubscribe'].DEVIS_PRIX_COURS_FIX.value * 1);
      prix=(cours_prix_html.obj.innerHTML * 1);
      if (new_prix != prix) {
        cours_prix_html.obj.innerHTML = new_prix;
//            alert("new prix : " + new_prix);
      }
    }
  }
  var id_heb=0;
    
  // on cherche opt_prix_$c
  var TOTAL=(prix*1);
  if (heberg_prix_html.obj) {	
      id_heb=myform.DEVIS_ID_LIEU_REF_HBG_FIX.value;
      TOTAL+=(heberg_prix_html.obj.innerHTML*1);
  }
  if (nuit_prix_html.obj) {	
     TOTAL+=(nuit_prix_html.obj.innerHTML*1);
  }
  var $tab_transfert=['x','x','x','x','x','x','x','x','x','x'];
  for (var i = 0; i < myform.length; i++) {
    if (myform[i].name.search(/^DEVIS_OPTION.TYPE_\d+_\d+_\d+$/) >= 0) {
      //      $y=$1;
      var $opt=myform[i];
      var $cx=$opt.name.replace(/DEVIS_OPTION.TYPE_/,"");
      var $c=$cx.replace(/_\d$/,"");

      // alert($opt.name + " cx " + $cx + " c " + $c + " value " + $opt.value );

      var opt_html=new getObj("opt_prix_"+$c);
      if ($opt.value == 'OPTION') {
	var xx=getformSlot(myform,"DEVIS_OPTION.PRIX_"+$cx);
	if (! xx.checked) { 
	   opt_html.obj.innerHTML=0;
	   continue
        }
      }
      // pour payer verification des conditions d'apll

      var prixopt=calculprix_options_suppl($cx,duree,date,id_dest,id_heb);
      // alert(" >>>1 " + $c + " >>> " +prixopt);
      opt_html.obj.innerHTML=prixopt;

      if (! prixopt) {
	//	alert(" >>>2 " + $c + " >>> " + $opt.value);
	if ($opt.value == 'OPTION') {
	  var xx=getformSlot(myform,"DEVIS_OPTION.PRIX_"+$c+"_1");
	  if (xx) {
	    xx.checked=false;
	  }
	}
      }
      TOTAL+=prixopt;
      //            alert($TOTAL);
    } else {
      if  (myform[i].name.search(/^DEVIS_TRANSFERT.PRIX_\d+_\d+_\d+$/) >= 0) {
	var $opt=myform[i];
	var $c=$opt.name.replace(/DEVIS_TRANSFERT.PRIX_/,"");
	var $tabc = $c.split('_');

	//	alert("Transfert " + $opt.name + "  " + $c + "  " + $tabc[2] + " " + $opt.value );

	if ($tabc[2]>=$tab_transfert.length) {
	  var x=$tabc[2] - $tab_transfert.length;
	  for (var $i = 0; $i <= x; $i++) {
		$tab_transfert.push('x');
	  }
        }
	if ( $opt.checked) { 
		$tab_transfert[$tabc[2]]=$opt.value;
        } else {
	  if ($tab_transfert[$tabc[2]] == 'x') {$tab_transfert[$tabc[2]]=""; }
	}
      }
    } // if 
  } // for
  for (var $i = 0; $i < $tab_transfert.length; $i++) {
	if ($tab_transfert[$i] == 'x') { continue }
	var opt_html=new getObj("opt_transfert_"+$i);
	var opt_html_n=new getObj("opt_ntransfert_"+$i);
	if (! $tab_transfert[$i]) {
	  opt_html.obj.innerHTML=0;
	  opt_html_n.obj.innerHTML="";
	  continue
        }
	var myvalue = $tab_transfert[$i].split('@');
	var prixopt=(myvalue[0] * 1);

	opt_html.obj.innerHTML=prixopt;
	opt_html_n.obj.innerHTML=myvalue[5] + " " + myvalue[6];
	TOTAL+=prixopt;
  }
  var total_prix_html =new getObj('total_prix');
  var total_prix_base_html =new getObj('total_prix_base');

  total_prix_html.obj.innerHTML = TOTAL;
  total_prix_base_html.obj.innerHTML = TOTAL;
}
function calculprix_options_suppl(cx,duree,date,id_dest,id_heb) {

  var myform=document.forms['formSubscribe'];
  var myvalue = getformSlot(myform,"DEVIS_OPTION.PRIX_"+cx).value.split(/\%\%/);
  var prixopt=0;
  var prix_forfait_max=0;
  var prix_unitaire=0;
  var duree_unitaire=0;
  var list_dest="";

  if (! date) { return 0 }
 
  for (var k=0;k<myvalue.length;k++) {
    var prixvalue = myvalue[k].split('@');
    //    alert ("ddd d dest " + id_dest + " k " + k + " opt cx " + cx + " prix " + prixvalue[0] + " ref_dest " + prixvalue[7]);
    if (verifdata(duree,id_dest,id_heb,date.value,prixvalue[1],prixvalue[2],prixvalue[3],prixvalue[4],prixvalue[5],prixvalue[6],prixvalue[7])) {
      var duree_opt=(prixvalue[8] * 1) || 1;
      var prix=(prixvalue[0] * 1);

      var duree_min=(prixvalue[3] * 1);
      var duree_max=(prixvalue[4] * 1);
      if (list_dest) {
	  if (list_dest != prixvalue[7]) { continue; }
      }
      list_dest=prixvalue[7];
      //     alert(" xxx cx " +  cx + " >> duree " + duree + " duree de la tranche  " + duree_opt + " type " + prixvalue[2]  + " prix " + prixvalue[0]);

      if (prixvalue[2] != "forfait") {
	prix_unitaire=prix;
	duree_unitaire=duree_opt;
	if (duree < duree_opt) { continue; }

	var x_duree=duree;

	if (duree_min && duree_max) {
	  var x=duree_max - duree_min +1;
	  if (x < x_duree) { x_duree=x }
	}
	
	var n=Math.floor(x_duree/duree_opt)
	  //	  	    alert(" duree n " + n);
	prixopt+=(prix * n);
	duree-=(n * duree_opt);
      } else {
	if (duree_opt > duree) { continue }
	duree-=duree_opt;
//	if (prix_forfait_max) { continue }     

//	if (duree_min && duree_max) {
//	  var x=duree_max - duree_min +1;
//	  if (duree > x) { continue }
//	}
	prix_forfait_max=prix;  // 1 seule option forfait 
//	prixopt=prix ;
      }
    }
  }
  if (prix_unitaire && (duree > 0)) {
    if (duree < duree_unitaire) {
      prixopt+=prix_unitaire;
    }
  }
  //   alert("result " + cx + " prix unit " + prixopt + " prix forfait " + prix_forfait_max);
  return prixopt + prix_forfait_max;
}

function verifdata(duree,id_dest,id_heb,date,TypeOption,SemForfait,SemMin,SemMax,DateDeb,DateFin,RefDest) {

    //    alert ("verifdata id_dest " + id_dest + " id_heb " + id_heb + " duree " + duree +","+ date+","+ TypeOption+","+ SemForfait+","+ SemMin+","+ SemMax+","+ DateDeb+","+ DateFin + ",RefDest " + RefDest) ;

   if (RefDest && (RefDest!='0')) {
     // alert ("verifdata RefDest=" + RefDest);
	var alldest = RefDest.split(/\,/);
	var $ok="";
	var id_xx=id_dest;
	if (TypeOption != "cours") { id_xx=id_heb }	
	for (var k=0;k<alldest.length;k++) {
		var onedest = alldest[k];
		if (id_xx == alldest[k]) { $ok="ok";break; }
	}
	if ($ok == "") { return false }
   }

  var heberg_duree_html =new getObj('heberg_duree');
  var duree_heberg=heberg_duree_html.obj.innerHTML;

  if ((TypeOption != "cours") && (duree_heberg == '0')) { return false }	

  SemMin=SemMin * 1;
  SemMax=SemMax * 1;
  if (SemMin && SemMax ) {
    if ((duree < SemMin) || (duree > SemMax)) { return false }
    return verifdata_hbg(date,DateDeb,DateFin);
  } else {
    if (SemMin && (duree < SemMin)) { return false }
    return verifdata_hbg(date,DateDeb,DateFin);
  }

  return true;
}

function verifdata_hbg(date,DateDeb,DateFin) {

  if ((DateDeb != '00000000') && (DateFin != '00000000')) {
      if ((date < DateDeb) || (date > DateFin)) { return false }
  } else {
    if ((DateDeb != '00000000') && (date < DateDeb)) { return false }
    if ((DateFin != '00000000') && (date > DateFin)) { return false }
  }

  return true;
}

// nuit
function increment_nuit(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_nuit(id_lieu_hbg,dureemax) ) {
    return false 
 }

 var myform=document.forms['formSubscribe'];
 var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

 var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBSH_"+id_lieu_hbg);
 if (form_id_lieu_hbg.value == '0') { 
    modifprix_nuit(id_lieu_hbg,0);
    return false 
 }	

 form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBNH_"+id_lieu_hbg);
 if (! form_id_lieu_hbg) { return false }

// cours_prix=;

 var re= /\D/g;
 var temp=form_id_lieu_hbg.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   form_id_lieu_hbg.value='0';
   modifprix_nuit(id_lieu_hbg,0);

   return false;
 } 

 var new_duree=(form_id_lieu_hbg.value *1)+1;

 if (new_duree > dureemax) {
   return false;
 }
 form_id_lieu_hbg.value=new_duree;
 modifprix_nuit(id_lieu_hbg,form_id_lieu_hbg.value);

 return false;
}

function decrement_nuit(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_nuit(id_lieu_hbg,dureemax) ) {
    return false 
 }
 var myform=document.forms['formSubscribe'];
 var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

 var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBSH_"+id_lieu_hbg);
 if (form_id_lieu_hbg.value == '0') { 
    modifprix_nuit(id_lieu_hbg,0);
    return false 
 }	

 form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBNH_"+id_lieu_hbg);

 if (! form_id_lieu_hbg) { return false }

// cours_prix=;

 var re= /\D/g;
 var temp=form_id_lieu_hbg.value;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   form_id_lieu_hbg.value='0';
   modifprix_nuit(id_lieu_hbg,0);
   return false;
 } 

 var new_duree=(form_id_lieu_hbg.value *1) -1;
 if (new_duree < 0) {
	return false;
 }
 form_id_lieu_hbg.value=new_duree;
 modifprix_nuit(id_lieu_hbg,form_id_lieu_hbg.value);

 return false;
}

function changeSupSemOut_nuit(id_lieu_hbg,duree_sup) {

  if (! changeSupSem_nuit(id_lieu_hbg,duree_sup) ) {
      var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBNH_"+id_lieu_hbg);
      form_id_lieu_hbg.blur();
      return false;	
  }
  return true;	
}

function changeSupSemBlur_nuit(id_lieu_hbg,prix,dureemax) {

 if (! changeSupSem_nuit(id_lieu_hbg,dureemax) ) {
    return false 
 }
 var form_id_lieu_hbg=getformSlot(document.forms['formSubscribe'],"DEVIS.SEM_NBNH_"+id_lieu_hbg);

 if (! form_id_lieu_hbg) { return false }

// cours_prix=;
 var temp=form_id_lieu_hbg.value;
 if (! temp ) {
  modifprix_hbg(id_lieu_hbg,0);
  return false;	
 }
 var re= /\D/g;
 var tempewstr = temp.replace(re,"");
 if (tempewstr.length != temp.length) {
   // ce n'est pas un nombre
   modifprix_nuit(id_lieu_hbg,0);
   return false;
 } 
 if (form_id_lieu_hbg.value > dureemax) {
   modifprix_nuit(id_lieu_hbg,dureemax);
   return false;
 }

 modifprix_nuit(id_lieu_hbg,form_id_lieu_hbg.value);
 return false;
}

function changeSupSem_nuit(id_lieu_hbg,duree_sup) {

  return  changeSupSem_hbg(id_lieu_hbg,duree_sup);	

}

function modifprix_nuit(id_lieu_hbg,duree) {

  var myform=document.forms['formSubscribe'];
  var prix_hbg=myform.DEVIS_ID_LIEU_HBG_FIX.value;

  if (! prix_hbg ) { return false }

  var id_dest=myform.DEVIS_ID_DEST_FIX.value;
  if (! id_dest) { return false }

  var res=calculprix_hbg(id_dest,duree,'nuit',prix_hbg);
  var duree_possible=duree - res.duree;	
  var form_id_lieu_hbg=getformSlot(myform,"DEVIS.SEM_NBNH_"+id_lieu_hbg);
  if (form_id_lieu_hbg) {	
    if (form_id_lieu_hbg.value) {	
      form_id_lieu_hbg.value=duree_possible;
    }
  } else {
    return 
  }

  var nuit_duree_html =new getObj('nuit_duree');
  var nuit_prix_html =new getObj('nuit_prix');

  nuit_duree_html.obj.innerHTML=duree_possible;
  nuit_prix_html.obj.innerHTML=res.prix_total;

  modifprix(id_dest,0,0);
}

// -->

