function getXhr(){
	var xhr = null;
	if(window.XMLHttpRequest){ // Firefox et autres
	  xhr = new XMLHttpRequest();
	}else if(window.ActiveXObject){ // Internet Explorer
	  try {
	    xhr = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (e) {
	    xhr = new ActiveXObject("Microsoft.XMLHTTP");
	  }
	}else { // XMLHttpRequest non supporte par le navigateur
	  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	  xhr = false;
	}
	return xhr;
}

function trim(str){
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}

function initCarousel(num){
	if(!hCarousel1){
		hCarousel1 = new UI.Carousel("room1");
	}
	/*
	var i = 1;
	while(document.getElementById('room'+i)){
		new UI.Carousel("room"+i);
		i = parseInt(i) + 1;
	}
	*/
}

function centerDiv(elem){
	var my_width  = 0;
	var my_height = 0;
	if ( typeof( window.innerWidth ) == 'number' ){
		my_width  = window.innerWidth;
		my_height = window.innerHeight;
	}else if ( document.documentElement && 
			 ( document.documentElement.clientWidth ||
			   document.documentElement.clientHeight ) ){
		my_width  = document.documentElement.clientWidth;
		my_height = document.documentElement.clientHeight;
	}
	else if ( document.body && 
			( document.body.clientWidth || document.body.clientHeight ) ){
		my_width  = document.body.clientWidth;
		my_height = document.body.clientHeight;
	}
	elem.style.position = 'absolute';
	elem.style.zIndex   = 99;
	
	var scrollY = 0;
	if ( document.documentElement && document.documentElement.scrollTop ){
		scrollY = document.documentElement.scrollTop;
	}else if ( document.body && document.body.scrollTop ){
		scrollY = document.body.scrollTop;
	}else if ( window.pageYOffset ){
		scrollY = window.pageYOffset;
	}else if ( window.scrollY ){
		scrollY = window.scrollY;
	}
	//alert(my_width + '@' + my_height);

	//var dimensions = Element.getDimensions(elem);
	//alert(dimensions.width + '@' + dimensions.height);
	var setX = ( my_width  - 538 ) / 2;
	var setY = ( my_height - 360 ) / 2 + scrollY;
	
	setX = ( setX < 0 ) ? 0 : setX;
	setY = ( setY < 0 ) ? 0 : setY;
	
	elem.style.left = setX + "px";
	elem.style.top  = setY + "px";
}

function initZoom(roomImgLen){
	//document.getElementById("imgRoomZoom").src = imgRooms[0]["imgRoom"+roomNb][imgRoomsIdx[0]["imgRoomZoom"]];
	if(imgRoomsIdx[0]["imgRoomZoom"] == 0){
		document.getElementById("prevImageZoom").className+="_disabled";
	}else if(imgRoomsIdx[0]["imgRoomZoom"] == (roomImgLen - 1)){
		document.getElementById("nextImageZoom").className+="_disabled";
	}else{
		document.getElementById("prevImageZoom").className = "previous_button";
		document.getElementById("nextImageZoom").className = "next_button";
	}
}

function zoom(roomNb){
//	new UI.Carousel("viewer_carousel");
	//document.getElementById('view').style.display = "none";
	document.getElementById('view').style.display = "block";
	imgRoomsIdx[0]["imgRoomZoom"] = imgRoomsIdx[0]["imgRoom"+roomNb];
	imgRoomsIdx[0]["imgRoomNb"] = roomNb;
	document.getElementById("imgRoomZoom").src = imgRooms[0]["imgRoom"+roomNb][imgRoomsIdx[0]["imgRoomZoom"]].src;
	/*
	if(imgRoomsIdx[0]["imgRoomZoom"] == 0){
		document.getElementById("prevImageZoom").className = "previous_button_disabled";
	}else if(imgRoomsIdx[0]["imgRoomZoom"] == imgRooms[0]["imgRoom"+roomNb].length - 1){
		document.getElementById("nextImageZoom").className = "next_button_disabled";
	}else{
		document.getElementById("prevImageZoom").className = "previous_button";
		document.getElementById("nextImageZoom").className = "next_button";
	}
	*/
	if(imgRooms[0]["imgRoom"+roomNb].length < 2){
		document.getElementById("prevImageZoom").className+="previous_button_disabled";
		document.getElementById("nextImageZoom").className+="next_button_disabled";
	}else{
		document.getElementById("prevImageZoom").className = "previous_button";
		document.getElementById("nextImageZoom").className = "next_button";
	}
	//document.getElementById('view').style.display = "block";
	centerDiv(document.getElementById('view'));
	//new Effect.BlindDown('view');
}

function close(){
	document.getElementById('view').style.display = "none";
	/*
	document.getElementById("prevImageZoom").className = "previous_button";
	document.getElementById("nextImageZoom").className = "next_button";
	*/
	document.getElementById("imgRoomZoom").src = "/2006/ResaB2C/img/dot.gif";
	//new Effect.SlideUp('view');
}

function preLoadImg(){
	var elem = document.getElementById('nbCarousel');
	var imgTmp;
	if(typeof elem != "undefined" && elem != null){
		var nbCarousel = parseInt(elem.innerHTML);
		for(var i = 1; i <= nbCarousel; i++){
			for(var j = 0; j < imgRooms[0]["imgRoom"+i].length; j++){
				imgTmp = imgRooms[0]["imgRoom"+i][j];
				imgRooms[0]["imgRoom"+i][j] = new Image();
				imgRooms[0]["imgRoom"+i][j].src = imgTmp;
			}
			elem = document.getElementById("imgRoom"+i);
			if(typeof elem != "undefined" && elem != null){
				document.getElementById("imgRoom"+i).src = imgRooms[0]["imgRoom"+i][imgRoomsIdx[0]["imgRoom"+i]].src;
				if(imgRooms[0]["imgRoom"+i].length < 2){
					document.getElementById("prevImage"+i).className+="previous_button_disabled";
					document.getElementById("nextImage"+i).className+="next_button_disabled";
				}
			}
		}
	}
}

function prevImage(roomNb, inZoom){
	var idx = 0;
	if(inZoom){
		idx = imgRoomsIdx[0]["imgRoomZoom"];
		roomNb = imgRoomsIdx[0]["imgRoomNb"];
	}else{
		idx = imgRoomsIdx[0]["imgRoom"+roomNb];
	}
	idx--;
	if(idx >= 0 && idx < imgRooms[0]["imgRoom"+roomNb].length){
		setImageRoom(roomNb, idx, inZoom, false);
	}else{
		idx = imgRooms[0]["imgRoom"+roomNb].length - 1;
		setImageRoom(roomNb, idx, inZoom, false);
	}
}

function nextImage(roomNb, inZoom){
	var idx = 0;
	if(inZoom){
		idx = imgRoomsIdx[0]["imgRoomZoom"];
		roomNb = imgRoomsIdx[0]["imgRoomNb"];
	}else{
		idx = imgRoomsIdx[0]["imgRoom"+roomNb];
	}
	idx++;
	if(idx < imgRooms[0]["imgRoom"+roomNb].length){
		setImageRoom(roomNb, idx, inZoom, true);
	}else{
		idx = 0;
		setImageRoom(roomNb, idx, inZoom, true);
	}
}

function setImageRoom(roomNb, idx, inZoom, isLeft){
	if(inZoom){
		document.getElementById("imgRoomZoom").src = imgRooms[0]["imgRoom"+roomNb][idx].src;
		imgRoomsIdx[0]["imgRoomZoom"] = idx;
		/*
		if(idx == 0){
			document.getElementById("prevImageZoom").className+="_disabled";
		}else if(idx == imgRooms[0]["imgRoom"+roomNb].length - 1){
			document.getElementById("nextImageZoom").className+="_disabled";
		}else{
			document.getElementById("prevImageZoom").className = "previous_button";
			document.getElementById("nextImageZoom").className = "next_button";
		}
		*/
	}else{
		if(isLeft){
			
		}
		document.getElementById("imgRoom"+roomNb).src = imgRooms[0]["imgRoom"+roomNb][idx].src;
		imgRoomsIdx[0]["imgRoom"+roomNb] = idx;
		/*
		if(idx == 0){
			document.getElementById("prevImage"+roomNb).className+="_disabled";
		}else if(idx == imgRooms[0]["imgRoom"+roomNb].length - 1){
			document.getElementById("nextImage"+roomNb).className+="_disabled";
		}else{
			document.getElementById("prevImage"+roomNb).className = "previous_button";
			document.getElementById("nextImage"+roomNb).className = "next_button";
		}
		*/
	}
}

function getPopup(divNum, url, isRoom){
	blockScreen();
	var divElem = document.getElementById('iframe'+divNum);
	if(trim(divElem.innerHTML) == ""){
		var xhr = getXhr()
		xhr.onreadystatechange =  function(){
		                            if(xhr.readyState == 4 && xhr.status == 200){
		                              	var popupHTML = xhr.responseText;
		                              	//alert(popupHTML);
		                              	if(popupHTML != ""){
											divElem.innerHTML = popupHTML;
											document.getElementById('waitImg'+divNum).style.display = "none";
											if(typeof isRoom != "undefined" && isRoom){
												new Effect.BlindDown('iframe'+divNum, {duration: 0.5, afterFinish: function(){unblockScreen();}});
											}else{
												new Effect.BlindDown('iframe'+divNum, {duration: 0.5, afterFinish: function(){unblockScreen();}});
											}
										}
		                            }
		                          }
		document.getElementById('waitImg'+divNum).style.display = "block";
		setTimeout("unblockScreen()", 5000);
		var proto = window.location.protocol;
		var fullUrl = "";
		if(proto == "https:" && typeof jsessionId != 'undefined' && jsessionId != null){
			var tmpUrl = "";
			if(url.indexOf('?') > -1){
				tmpUrl = url.substring(0, url.indexOf('?')) + ';jsessionid=' + jsessionId + url.substring(url.indexOf('?'));
			}else{
				tmpUrl = url+';jsessionid='+jsessionId;
			}
			fullUrl = proto+"//"+document.domain+tmpUrl;
		}else{
			fullUrl = proto+"//"+document.domain+url;
		}
		xhr.open("GET", fullUrl,true);
		xhr.send(null);
	}else if(divElem.style.display == "" || divElem.style.display == "block"){
		new Effect.SlideUp('iframe'+divNum, {duration: 0.5, afterFinish: function(){unblockScreen();}});
	}else{
		new Effect.BlindDown('iframe'+divNum, {duration: 0.5, afterFinish: function(){unblockScreen();}});
	}
}

function closePopup(divNum){
	blockScreen();
	new Effect.SlideUp('iframe'+divNum, {duration: 0.5, afterFinish: function(){unblockScreen();}});
}

// permet de recuperer un formulaire complet sous forme de paramètres d'url GET
function getFormAsString(formId) {
    // on choppe les valeurs du form
    var formElements = null;
    for(var i = 0; i < document.forms.length; i++){
    	if(document.forms[i].id == formId){
    		formElements = document.forms[i].elements;
    		break;
    	}
    }
    if(formElements == null){
    	return "";
    }
    // on construit l'url
    returnString = "";
    for (var i = 0; i < formElements.length; i++ ) {
    	if(formElements[i].type == "checkbox"){
    		if(formElements[i].checked){
    			returnString += escape(formElements[i].name) + "=" + escape(formElements[i].value) + "&";
    		}
    	}else{
        	returnString += escape(formElements[i].name) + "=" + escape(formElements[i].value) + "&";
        }
    }
    
    // on retourne l'url
    return returnString; 
}

// permet de recuperer un formulaire complet et de disabled les champs du form
function disableElementForm(formId,elementException) {
    // on choppe les valeurs du form
    var formElements = null;
    for(var i = 0; i < document.forms.length; i++){
    	if(document.forms[i].id == formId){
    		formElements = document.forms[i].elements;
    		break;
    	}
    }
    if(formElements == null){
    	return false;
    }else{
     for(var i = 0; i < formElements.length; i++){
     		if(elementException.indexOf(formElements[i].id)==-1){
    			formElements[i].disabled="true"; 
    		}
  	  }
  	}
}
    
  
function getXMLOgone(url,formulaire){
	var divElem = document.getElementById('blocOgone');
	
	var xhr = getXhr();
	xhr.onreadystatechange =  function(){
		                            if(xhr.readyState == 4 && xhr.status == 200){
		                              	//var xmlOgone = xhr.responseXML;
		                              	//getOgoneAction(xmlOgone);
		                               	var xmlOgone = xhr.responseXML;
		                              	if(typeof xmlOgone != 'undefined' && xmlOgone != null){
		                              		document.getElementById('loadingPayment').style.display = "none";
		                              		getOgoneAction(xmlOgone,formulaire);
		                              	}else{
		                              		document.forms[formulaire].submit();
											return false;
		                              	}
		                            }
		                          }
	document.getElementById('loadingPayment').style.display = "block";
	xhr.open("POST","https://"+document.domain+url,true);
	xhr.send(null);	
}

function getOgoneAction(xmlOgone,formulaire){
	var racine = xmlOgone.getElementsByTagName("root");
	var attributRacine = racine[0].getAttribute("isOgone");
	if(attributRacine == "submit"){
		document.getElementById(formulaire).submit();	
	}else{
		var url;
		if(typeof jsessionId != 'undefined' && jsessionId != null){
			url = "/cm/payment.do;jsessionid="+jsessionId+"?"+getFormAsString(formulaire);
		}else{
			url = "/cgi-bin/clubmed55/b2cresa/payment.do?"+getFormAsString(formulaire);
		}
		var xhr = getXhr();
		xhr.onreadystatechange =  function(){
		               if(xhr.readyState == 4 && xhr.status == 200){
		                   var xmlOgone = xhr.responseXML;
							if(typeof xmlOgone != 'undefined' && xmlOgone != null){
								document.getElementById('loadingPayment').style.display = "none";
		                    	getBlocOgone(xmlOgone,formulaire);
		                    }else{
		                    	document.forms[formulaire].submit();
								return false;
		                    }
		              }
		     }
		document.getElementById('loadingPayment').style.display = "block";
		xhr.open("POST","https://"+document.domain+url,true);
		xhr.send(null);	
		
	}				
}

function getPaymentOgone(url){
	var xhr = getXhr();
	xhr.onreadystatechange =  function(){
	               if(xhr.readyState == 4 && xhr.status == 200){
	              		var xmlReponse = xhr.responseXML;
						if(typeof xmlReponse != 'undefined' && xmlReponse != null){
	                    	getFormOgonePayment(xmlReponse);
	                    	document.getElementById('loadingPayment').style.display = "none";
	                    }else{
	                    	return false;
	                    }
	              }
	     }
	document.getElementById('loadingPayment').style.display = "block";
	xhr.open("POST","https://"+document.domain+url,true);
	xhr.send(null);			
}				


function getFormOgonePayment(xmlReponse){
	var racine = xmlReponse.getElementsByTagName("root");
	
	/* Ogone form */
	var ogoneForm = document.forms["ogoneForm"];
	var ogoneInfo = racine[0].getElementsByTagName("ogoneInfo")[0];
	ogoneForm.PSPID.value = ogoneInfo.getAttribute("codeCM");
		var alias = ogoneInfo.getAttribute("alias");
	if(typeof alias == 'undefined' || alias == null || alias == ""){
		ogoneForm.Alias.value = "";
		ogoneForm.AliasUsage.value = "";
	}else{
		ogoneForm.Alias.value = alias;
	}
	var tmpTP = ogoneForm.TP.value;
	if(typeof jsessionId != 'undefined' && jsessionId != null){
		if(tmpTP.indexOf('?') > -1){
			tmpTP = tmpTP.substring(0, tmpTP.indexOf('?')) + ';jsessionid=' + jsessionId + tmpTP.substring(tmpTP.indexOf('?'));
		}else{
			tmpTP+=';jsessionid='+jsessionId;
		}
	}else{
		if(tmpTP.indexOf('?') > -1){
			tmpTP+='&';
		}else{
			tmpTP+='?';
		}
		tmpTP+='BV_SessionID='+document.getElementsByName('BV_SessionID')[0].value;
		tmpTP+='&BV_EngineID='+document.getElementsByName('BV_EngineID')[0].value;		
	}
	ogoneForm.TP.value = tmpTP;
	ogoneForm.amount.value = ogoneInfo.getAttribute("mntOgone");
	ogoneForm.currency.value = ogoneInfo.getAttribute("currency");
	ogoneForm.orderID.value = ogoneInfo.getAttribute("numOrdrePayment");
	ogoneForm.EMAIL.value = document.getElementsByName("clientEmail")[0].value;
	//ogoneForm.CN.value = document.getElementsByName("firstName0")[0].value + " " + document.getElementsByName("lastName0")[0].value;
	ogoneForm.SHASign.value = ogoneInfo.getAttribute("SHASign");
	/* Ogone form end */
	document.forms["ogoneForm"].submit();
}

function getBlocOgone(xmlOgone,formulaire){
	var racine = xmlOgone.getElementsByTagName("root");
	if(racine == null || typeof(racine) == 'undefined'){
		document.forms[formulaire].submit();
		return false;
	}
	if(racine[0] == null || typeof(racine[0]) == 'undefined'){
		document.forms[formulaire].submit();
		return false;
	}
	var attributRacine = racine[0].getAttribute("isOgone");
	if(attributRacine != null && typeof(attributRacine) != 'undefined' && attributRacine == "traitement"){
		var montants = racine[0].getElementsByTagName("montants");
		var montantFormTtCompris = montants[0].getElementsByTagName("montantFormTtCompris")[0].firstChild.nodeValue;
		var montantAcompte = montants[0].getElementsByTagName("montantAcompte")[0].firstChild.nodeValue;
		var montantRestant;
		var tmp = montants[0].getElementsByTagName("montantRestant")[0].firstChild;
		if(typeof tmp == 'undefined' || tmp == null){
			montantRestant = "";
		}else{
			montantRestant = tmp.nodeValue;
		}
		var dates =  racine[0].getElementsByTagName("dates");
		var dateMontantRestant;
		tmp = dates[0].getElementsByTagName("dateMontantRestant")[0].firstChild;
		if(typeof tmp == 'undefined' || tmp == null){
			dateMontantRestant = "";
		}else{
			dateMontantRestant = tmp.nodeValue;
		}
		var datePrlv;
		tmp = dates[0].getElementsByTagName("datePrlv")[0].firstChild;
		if(typeof tmp == 'undefined' || tmp == null){
			datePrlv = "";
		}else{
			datePrlv = tmp.nodeValue;
		}
		if(montantAcompte==null || montantAcompte==""){
			document.getElementById('montantFormTtCompris').innerHTML = montantFormTtCompris;
			document.getElementById('formule_avecAcompte').style.display="none";
			document.getElementById('acompte').style.display="none";
			document.getElementById('resteAPayer').style.display="none";
		}else{
			document.getElementById('formule_ssAcompte').style.display="none";
			document.getElementById('montantFormTtCompris').innerHTML = montantFormTtCompris;
			document.getElementById('montantAcompte').innerHTML = montantAcompte;
			document.getElementById('montantRestant').innerHTML = montantRestant;
			var dateMontantRestantReplaced = document.getElementById('dateMontantRestant').innerHTML;
			document.getElementById('dateMontantRestant').innerHTML =dateMontantRestantReplaced.replace("$$",dateMontantRestant);
			var datePrlvReplaced = document.getElementById('datePrlv').innerHTML;
			document.getElementById('datePrlv').innerHTML =datePrlvReplaced.replace("$$",datePrlv);
			
			var modes = racine[0].getElementsByTagName("modesPaiement");
			var attributModes = modes[0].getAttribute("nbModesPaiemnt");
			if(attributModes >1){
				var amexMode = modes[0].getElementsByTagName("amex")[0].firstChild.nodeValue;
				var chequeMode = modes[0].getElementsByTagName("cheque")[0].firstChild.nodeValue;
				var virMode= modes[0].getElementsByTagName("virement")[0].firstChild.nodeValue;
				if(amexMode=="true"){
					document.getElementById('table_2_a').style.display="block";
				}
				if(chequeMode=="true"){
					document.getElementById('table_3_a').style.display="block";
				}
				if(virMode=="true"){
					document.getElementById('table_4_a').style.display="block";
				}
			}
		}
		document.getElementById('toPayment').onclick=submitPaymentResa;
		disableElementForm(formulaire,"paymentCcpaymentAmexpaymentChequepaymentVirementfinTraitement") ;
		disableElementForm("adherentForm","") ;
		document.getElementById('blocOgone').style.display="block";
	}else if(attributRacine == "appelPayment"){
		document.getElementById("finTraitement").value="yes";
		document.forms[formulaire].submit();
		return false;
	}else{
		document.forms[formulaire].submit();
		return false;
	}
}

function submitPaymentResa(){
	if(document.getElementById('loadingPayment').style.display == "block"){
		return false;
	}
	if(document.getElementById("paymentCc").checked){
		var url;
		if(typeof jsessionId != 'undefined' && jsessionId != null){
			url = "/cm/ogoneXml.do;jsessionid="+jsessionId+"?PAYS="+codePays+"&LANG="+codeLang+"&paymentOgone=y";
		}else{
			url = "/cgi-bin/clubmed55/b2cresa/ogoneXml.do?PAYS="+codePays+"&LANG="+codeLang+"&paymentOgone=y";
		}
		getPaymentOgone(url);
		
	}else if(document.getElementById("paymentAmex").checked || document.getElementById("paymentCheque").checked || document.getElementById("paymentVirement").checked){
		document.getElementById("finTraitement").value="yes";
		var formulaire ="";
		if(document.forms["clientForm"] != null){
			formulaire ="clientForm";
		}else if(document.forms["findClient"]!=null){
			formulaire ="findClient";
			}
		document.getElementById(formulaire).submit();
	}else{
		alert(selectionnezModePaiement);
	}
	return false;
}

//Rappatriee du code java du SP
function submitPaymentSP() {
	var paymentForm = document.getElementById('paymentForm');
	var okToSubmit = false;
	okToSubmit = stopDoubleClic();
	if (okToSubmit){
		if(typeof(document.getElementById("paymentOgone")) != "undefined" && document.getElementById("paymentOgone") != null){
			if(document.getElementById("paymentOgone").checked){
				document.forms["ogoneForm"].submit();
			}else if(document.getElementById("paymentAmex").checked || document.getElementById("paymentCheque").checked || document.getElementById("paymentVirement").checked){
				paymentForm.submit();
			}else{
				alert(selectionnezModePaiement);
			}
		}else{
			paymentForm.submit();
		}
	}
	return okToSubmit;
}

function toggleDivDisplay(divId){
	var divElem = document.getElementById(divId);
	if(divElem){
		if(divElem.style.display == "none"){
			divElem.style.display = "block";
		}else{
			divElem.style.display = "none";
		}
	}
}

function closeInsidePopup(popupId) {
   var pop = document.getElementById(popupId || "insidePopup");
   if (pop) pop.style.display="none";
}

function getCookieVal(name) {
	var nameEQ = name + "=" ;
	var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) { 
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0){
				return unescape(c.substring(nameEQ.length,c.length));
			}
		}
	return null;
}