function changePage() {
	if (self.parent.frames.length != 0){
	var string = document.location.search;
	var start  = string.indexOf("=")+1;
	var stop = string.length;
	var search = string.substring(start,stop);
	if(encode(search)!="aWxlLWRlLXJlLWxvY2F0aW9uLWltbW9iaWxpZXJlLmNvbQ==") self.parent.location=document.location;
//	else alert(search+" -- "+encode(search));
	}
}

function evalTop(name){

	if(name=='reagence_fullscreen')
	{
	result = "<BODY style=\"text-align:center;\" onLoad=\"changePage()\" align=\"center\" topmargin=30>";
	return result;
	}
	else
	{
	result = "<BODY style=\"text-align:center;\" onLoad=\"changePage()\" align=\"center\"  marginheight=0 topmargin=0>";
	return result;
	}
}

function evalPic(name){

	if(name=='reagence_fullscreen')
	{
	result = "<IMG usemap=\"#full\" SRC=\"/images/h_01_01_06_closed.gif\" WIDTH=163 HEIGHT=105>";
	return result;
	}
	else
	{
	result = "<IMG usemap=\"#full\" SRC=\"/images/h_01_01_06.gif\" WIDTH=163 HEIGHT=105>";
	return result;
	}
}

function FullScreen(name,path){

	if(name=='reagence_fullscreen')
	{
	window.close(name);
	}
	else
	{
	var topwidth  = screen.width;
	var topheight = screen.height;
	openit = window.open(""+path+"","reagence_fullscreen","width="+topwidth+",height="+topheight+",fullscreen=yes");
	openit.focus();
	return false;
	}
}

function FullScreenText(name){

	if(name=='reagence_fullscreen')
	{
	return 'Cliquer pour reduire la fenetre';
	}
	else
	{
	return 'Afficher le site en plein ecran';
	}
}

function blocking(nr,nra){

/* affiche nr, cache nra */
	if (document.layers)
	{
		document.layers[nr].display = 'block';
		document.layers[nra].display = 'none';
	}
	else if (document.all)
	{
		if(document.all[nr] && document.all[nra])
		{
		document.all[nr].style.display = 'block';
		document.all[nra].style.display = 'none';
		}
	}
	else if (document.getElementById)
	{
	document.getElementById(nr).style.display = 'block';
	document.getElementById(nra).style.display = 'none';
	}
}

function visi(nr){

	if (document.layers)
	{
		vista = (document.layers[nr].visibility == 'hide') ? 'show' : 'hide'
		document.layers[nr].visibility = vista;
	}
	else if (document.all)
	{
		vista = (document.all[nr].style.visibility == 'hidden') ? 'visible'	: 'hidden';
		document.all[nr].style.visibility = vista;
	}
	else if (document.getElementById)
	{
		vista = (document.getElementById(nr).style.visibility == 'hidden') ? 'visible' : 'hidden';
		document.getElementById(nr).style.visibility = vista;
	}
}

if (document.layers){

	if(confirm('Netscape 4 ne supporte pas certaines fonctions d\'affichage moderne.\nAfin de profiter au mieux de notre site, nous vous invitons ï¿½utiliser un navigateur plus rï¿½ent.\n\nVous trouverez les derniers navigateurs Internet ï¿½tï¿½ï¿½harger en cliquant sur le bouton Ok.'))
	{
	window.location='index.php?page=aide';
	}
}
else if (!document.getElementById && !document.all)
{
	if(confirm('Votre navigateur internet ne supporte pas le DHTML.\nAfin de profiter au mieux de notre site, nous vous invitons ï¿½utiliser un navigateur plus rï¿½ent.\n\nVous trouverez les derniers navigateurs Internet ï¿½tï¿½ï¿½harger en cliquant sur le bouton Ok.'))
	{
	window.location='index.php?page=aide';
	}
}

function subscribe_newsletter(doc){

plus = "subscribe.php?page=subscribe&x=1";
	if (doc.email.value.indexOf("@")==-1||doc.email.value.length<5)
	{
	alert("Votre email ne semble pas etre une adresse email valide.");
	doc.email.style.background='#ffff33';
	doc.email.focus();
	return false;
	}
	else
	{
	plus += "&email="+unescape(doc.email.value)+"";
		if(doc.news[0].checked)
		{
		plus += "&format=html";
		}
		else
		{
		plus += "&format=txt";
		}
	openit = window.open(""+plus+"","newsletter","width=400,height=200");
	openit.focus();
	}
return false;
}

function edit_deal(){

	openit = window.open("/contrat.php","Contrat","width=500,height=500,scrollbars=1");
	openit.focus();
	return false;
}

var lastSelection = Array();

// est ce que la periode est reservable ??
function periodeDispo(myId, fin, mois) {

	// un jour de moins a verifier toute l'annee sauf en juillet aout // 8 05 2006 -> supprime l'exception pour 07 & 08
	if (mois == 7 || mois == 8) fin = fin ;
	if (mois == 13 || mois == 14) fin = fin ;
	else fin = fin - 1;

	for (i=myId; i<fin; i++) {
		var tmp = document.getElementById(i);
		if (tmp.className == 'calendar_cell_ko' ||tmp.className == 'calendar_cell_les' ) return false;
	}
	return true;
}


function unselPeriode() {
	for (k=0; k< lastSelection.length; k++) {
		var tmp = document.getElementById(lastSelection[k]);

		// la case est elle cliquable ??
		if (tmp.className.indexOf("clickAble") == -1 ) ic = '';
		else ic = ' clickAble';

		// reaffectation de la classe d'origine en fonction de la classe actuelle
		// calendar_cell_les => calendar_cell_ko
		// calendar_cell_sel => calendar_cell_ok + 'clickAble' (le cas echeant)
		if (tmp.className.indexOf("calendar_cell_les") == -1 )
			tmp.className = 'calendar_cell_ok'+ic;
		else tmp.className = 'calendar_cell_ko'+ic;
	}
	lastSelection = Array();
}

function calculPrix(myId,jour, mois, annee) {
	var nbj = document.getElementById('nbJour');
	var j = 0;
	var total = 0;
	var jourEnPlus = 0;


	// des mois de 31/30/28/29 jours factures 28
	if (nbj.value == 28 && (mois == 1 || mois == 3 || mois == 5|| mois == 7 || mois == 8 || mois == 10 || mois == 12) && jour == 1) {
		jourEnPlus = 3;
	} else if (nbj.value == 28 && (mois == 4 || mois == 6 || mois == 9|| mois == 11 )&& jour == 1) {
		jourEnPlus = 2;
	} else if (nbj.value == 28 && (mois == 2)&& jour == 1) {
		var tmpDate = new Date (annee, 1, 29,10,00,00);
		jourEnPlus = 2 - tmpDate.getMonth();
	}

	last = (myId*1)+(nbj.value*1);

	// la 2eme 15aine de juillet/aout a 1 jour de plus
	if (nbj.value == 14 && (mois == 7 || mois == 8) && (jour==16)) {
		jourEnPlus = 1;
		last+=1;
	}

	// 1ere 15aine de juiller/aout
	if (nbj.value == 14 && (mois == 7 || mois == 8) && (jour==1)) {
		jourEnPlus = 1;
		last+=0;
	}

	// un jour de plus affichee
	if (nbj.value == 7 || nbj.value == 21 || nbj.value == 14) {
		jourEnPlus = 1 ;
	}

	var startDate = new Date (annee, mois-1, jour,10,00,00);
	var endDate = new Date (annee, mois-1, jour*1+jourEnPlus+nbj.value*1-1,10,00,00);


	var nbJourFact = last ;
	last = last + jourEnPlus;

	if (periodeDispo(myId, last, mois)) {

		var myPrix = document.getElementById('prix');
		var dateDebut = document.getElementById('dateDebut');
		var dateFin = document.getElementById('dateFin');


		dateDebut.value = startDate.getDate()+'/'+eval('startDate.getMonth()+1')+'/'+startDate.getFullYear();
		dateFin.value = endDate.getDate()+'/'+eval('endDate.getMonth()+1')+'/'+endDate.getFullYear();

		unselPeriode();
		lastSelection = Array();

		// on boucle sur le nombre de jour de la periode selectionnee
		for (i=myId; i< last ; i++){
			lastSelection[j] = i;
			j++;
			var tmp = document.getElementById(i);
			var tarif = document.getElementById("t"+i); // tarif de base
			if (tmp.className.indexOf("clickAble") == -1 ) ic = '';
			else ic = ' clickAble';

			// affectation de la classe de selection en fonction de la classe actuelle
			// calendar_cell_ok => calendar_cell_sel + 'clickAble' (le cas echeant)
			// calendar_cell_ko => calendar_cell_les + 'clickAble' (le cas echeant normalement jamais)
			if (tmp.className.indexOf('calendar_cell_ok') == -1)
			tmp.className = 'calendar_cell_les'+ic;
			else tmp.className = 'calendar_cell_sel'+ic;

			if (i < nbJourFact) {
				total += (tarif.value*1) ;
			}
		}

		// le tarif pour 1 mois est calcule de maniere un peu differente...
		if ( nbj.value == 28 ) {
			idFin = myId*1+15;
			var tarifDebut = document.getElementById("t"+myId) ;
			var tarifFin = document.getElementById("t"+idFin) ;

			total = tarifDebut.value*14 + tarifFin.value*14;
		}

		debug = false;
		// total = prixNuitee * nbJour
		total = Math.floor(total);

		if (debug) alert('7 jours: '+total);

		// com agence
		CP = 5 ;
		CC = com[mois-1] - 5 ;

		CCP = Math.floor(total * (CP / 100) );
		CCC = Math.floor(total * (CC / 100) );

		CMM = CCP + CCC;
		total += CMM;
		if (debug) alert('C = '+CCP+' + '+CCC+'='+CMM);

		// calcul de l'asssurance
		tmp = Math.floor((total * assurance ) / 100 ) ;
		if (debug) alert('assurance: '+tmp);

		total += tmp ;

		// calcul de la taxe de sejour
		nbSejour = last - myId - 1 ;
		if (nbSejour == 31) nbSejour = 30 ;


		tmp = Math.floor( ( nbSejour * taxeSejour) / 30 );
		total += tmp ;
		if (debug) alert('taxe sejour: '+tmp);

		// calcul de la taxe piscine
		tmp = Math.floor( ( nbj.value * taxePiscine ) / 28 );
		if (debug) alert('taxe piscine: '+tmp);
		total += tmp;

		// calcul de la taxe mensuelle
		tmp = Math.floor( (nbj.value * taxeMens[mois]) / 28 );
		if (debug) alert('taxe mensuelle: '+tmp);
		total += tmp

		// calcul de la taxe ecologie
		tmp = Math.floor( nbj.value * dpc );
			if (debug) alert('taxe ecologie: '+tmp);

		total += tmp;

		myPrix.innerHTML = Math.floor(total+taxeEntretien)+"&nbsp;&euro;";
		_Elem('mois').value=mois;
	} else alert('Periode non reservable');
}

function selectDuree (duree) {
	var durees = Array (7,14,21,28);

	for (i=0; i<4; i++) {
		tmp = document.getElementById('d'+durees[i]);
		tmp.className="dureeSel";
	}

	tmp = document.getElementById('d'+duree);
	tmp.className = "dureeSelActif";
	tmp = document.getElementById('nbJour');
	tmp.value = duree;
	tmp = document.getElementById('dateDebut');
	tmp.value = 0 ;
	tmp = document.getElementById('dateFin');
	tmp.value = 0 ;

	unselPeriode();

}

function checkReservation() {
	myForm = _Elem('tarif');
	with(myForm) {
		if (myForm.dateDebut.value == 0) {
			alert('Vous devez selectionner une periode avant de reserver.');
			return false;
		}
		tmp = dateDebut.value;
		tmp2 = tmp.split('/');
		tmp = tmp2[1];
		mois.value = tmp;
	}


		if(_Elem('prix').innerHTML.indexOf("&")<0)
		{
			var is_T = _Elem('prix').innerHTML.indexOf("")-1;
		}
		else
		{
			var is_T = _Elem('prix').innerHTML.indexOf("&");
		}

	_Elem('tarifPeriode').value=_Elem('prix').innerHTML.substring(0,is_T);

	if(_Elem('tarifPeriode').value>0)
	{
//		alert(_Elem('tarifPeriode').value);
		// 1 : Supprime la session reservation bien s'il elle existe
		if(_Elem("f_exec") == null)
		{
			displayTmpIframe('_exec','uid','none');
		}

		_exec.window.location.href="/_exec/unsetSession.php";

		// 2. Si la session est bien supprimee, on
		if(_Elem('session').value=='ok')
		{
			myForm.submit();
		}
	}
	else
		alert("La réservation en ligne de ce bien n'est pas possible pour le moment.\n\nNous vous invitons à nous contacter au  05 46 29 88 19 pour tout renseignement complémentaire.");
}

var base64s =
 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

function encode(decStr){
decStr=escape(decStr);		//line add for chinese char
  var bits, dual, i = 0, encOut = '';
  while(decStr.length >= i + 3){
    bits =
    (decStr.charCodeAt(i++) & 0xff) <<16 |
    (decStr.charCodeAt(i++) & 0xff) <<8  |
     decStr.charCodeAt(i++) & 0xff;
    encOut +=
     base64s.charAt((bits & 0x00fc0000) >>18) +
     base64s.charAt((bits & 0x0003f000) >>12) +
     base64s.charAt((bits & 0x00000fc0) >> 6) +
     base64s.charAt((bits & 0x0000003f));
    }
  if(decStr.length -i > 0 && decStr.length -i < 3){
    dual = Boolean(decStr.length -i -1);
    bits =
     ((decStr.charCodeAt(i++) & 0xff) <<16) |
     (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
    encOut +=
      base64s.charAt((bits & 0x00fc0000) >>18) +
      base64s.charAt((bits & 0x0003f000) >>12) +
      (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') +
      '=';
    }
  return encOut
  }
