// JavaScript Document

var NumPhoto = 1;

function UpdatePost(IdPost, LibPost)
{
	var XHR = new XHRConnection();
	XHR.appendData("IdPost", IdPost);
	XHR.appendData("LibPost", LibPost);
	
	XHR.sendAndLoad("AjaxUpdatePost.php", "POST", returnUpdatePost);	
}

function returnUpdatePost()
{
	//window.location.reload();
}

function DeletePost(IdPost)
{
	if (IdPost != "")
	{
		if (confirm("Etes vous sur de vouloir supprimer ce post ?"))
		{
			var XHR = new XHRConnection();
			XHR.appendData("IdPost", IdPost);
			
			XHR.sendAndLoad("AjaxDeletePost.php", "GET", returnDeletePost);
		}
	}
}

function returnDeletePost(obj)
{
	alert("Le post a été correctement supprimé !");
	window.location.reload();
}

function CheckCaptchaCode()
{
	var CaptchaCode = document.getElementById("CaptchaCode").value;
	
	if (CaptchaCode == "")
	{
		alert("Le code de validation est un champs obligatoire !");
	}
	else
	{
		var XHR = new XHRConnection();
		XHR.appendData("CaptchaCode", CaptchaCode);
		
		XHR.sendAndLoad("AjaxCheckCaptchaCode.php", "GET", returnCheckCaptchaCode);		
	}
}

function returnCheckCaptchaCode(obj)
{
	if (obj.responseText == "0")
	{
		alert("Le code de validation n'est pas correct !");
	}
	else
	{
		PostComment();
	}
}


function UpdateCatchaCode()
{
	document.getElementById("FrameCaptcha").src = "Captcha.php";
	document.getElementById("CaptchaCode").value = "";
}

function PostComment()
{
	var CivilitePosteur = document.getElementById("CivilitePosteur").value;
	var NomPosteur = document.getElementById("NomPosteur").value;
	var LibPost = document.getElementById("LibPost").value;

	if (NomPosteur == "" || LibPost == "")
	{
		alert("Le nom et le message sont des champs obligatoires !");
	}
	else
	{
		var XHR = new XHRConnection();
		XHR.appendData("CivilitePosteur", CivilitePosteur);
		XHR.appendData("NomPosteur", NomPosteur);
		XHR.appendData("LibPost", LibPost);
		
		XHR.sendAndLoad("AjaxPostComment.php", "POST", returnPostComment);
	}
}

function returnPostComment(obj)
{
	alert("Votre message a correctement été posté !");
	window.location.reload();
}

function ShowImage()
{
	document.getElementById("Fond").style.width = document.getElementById("Body").offsetWidth + "px";
	document.getElementById("Fond").style.height = document.getElementById("Body").offsetHeight + "px";
	document.getElementById("Fond").style.visibility = "visible";
	document.getElementById("DivPhoto").style.visibility = "visible";
}

function ShowFond(Img)
{
	if (document.getElementById("Body").offsetHeight < screen.availHeight)
	{
		var Hauteur = screen.availHeight;
	}
	else
	{
		var Hauteur = document.getElementById("Body").offsetHeight;
	}

	Largeur = (document.getElementById("Body").offsetWidth - 16);

	document.getElementById("Fond").style.width = Largeur + "px";
	document.getElementById("Fond").style.height = Hauteur + "px";
	document.getElementById("Fond").style.visibility = "visible";
	/*
	document.getElementById("PhotoZoom").src = Img.src;
	document.getElementById("PhotoZoom").style.visibility = "visible";
	alert(document.getElementById("PhotoZoom").src);
	*/
	
	document.getElementById("PhotoZoom").src = Img.src;
	document.getElementById("ContenerImage").style.width = "600px";
	document.getElementById("ContenerImage").style.height = "600px";
	document.getElementById("ContenerImage").style.left = (screen.availWidth - document.getElementById("ContenerImage").style.width.replace("px", "")) / 2;
	document.getElementById("ContenerImage").style.visibility = "visible";
	document.getElementById("PhotoZoom").style.visibility = "visible";
	
	//document.getElementById("ContenerImage").style.left = 0;//(screen.availWidth - document.getElementById("ContenerImage").style.width.replace("px", "")) / 2;
	//document.getElementById("ContenerImage").style.visibility = "visible";
}

function SwapMainImage(Img)
{
	var Hauteur = Img.height;
	var Width = Img.width;
	var ImgMain = document.getElementById("PhotoMain");
	
	if (Hauteur > Width)
	{
		ImgMain.src = Img.src;
		ImgMain.width = 330;
		ImgMain.height = 440;
	}
	else
	{
		ImgMain.src = Img.src;
		ImgMain.width = 330;
		ImgMain.height = 247;
	}
}

function Gauche()
{
	if(NumPhoto > 1)
	{
		//alert(NumPhoto);
		NumPhoto--;
		document.getElementById("Mini1").src = "Images/Villa/Diaporama/Photo" + (NumPhoto) + ".jpg";
		document.getElementById("Mini2").src = "Images/Villa/Diaporama/Photo" + (NumPhoto + 1) + ".jpg";
		document.getElementById("Mini3").src = "Images/Villa/Diaporama/Photo" + (NumPhoto + 2) + ".jpg";
		
	}
}

function Droite()
{
	if(NumPhoto < 48)
	{
		//alert(NumPhoto);
		NumPhoto++;
		document.getElementById("Mini1").src = "Images/Villa/Diaporama/Photo" + (NumPhoto) + ".jpg";
		document.getElementById("Mini2").src = "Images/Villa/Diaporama/Photo" + (NumPhoto + 1) + ".jpg";
		document.getElementById("Mini3").src = "Images/Villa/Diaporama/Photo" + (NumPhoto + 2) + ".jpg";
	}
}

function UpdateCalendar()
{
	var YearMonth = document.getElementById("YearMonth").value;
	var Chambre = document.getElementById("IdChambre").value;

	document.getElementById("Calendar").src = "CalendarAdmin.php?DateParam=" + YearMonth + "&IdChambre=" + Chambre;
}

function UpdateAllCalendar()
{
	for (var i = 1; i <= 5; i++)
	{
		UpdateCalendarDispo(i);
	}
}

function UpdateCalendarDispo(Chambre)
{
	var YearMonth = document.getElementById("YearMonth").value;

	document.getElementById("Calendar-" + Chambre).src = "Calendar.php?DateParam=" + YearMonth + "&IdChambre=" + Chambre;
}

function UpdateCalendarDetail(IdChambre)
{
	var YearMonth = document.getElementById("YearMonth").value;

	document.getElementById("CalendarDetail").src = "CalendarDetail.php?DateParam=" + YearMonth + "&IdChambre=" + IdChambre;	
}

function ValideEtRappelContact()
{
	if (document.getElementById("Rappel").checked == true)
	{
		document.getElementById("HeureAsap").setAttribute('disabled', '');
		document.getElementById("HeureAsap").disabled = false;
		document.getElementById("HeurePlanned").setAttribute('disabled', '');
		document.getElementById("HeurePlanned").disabled = false;	

		if (document.getElementById("HeureAsap").checked == true)
		{
			document.getElementById("HeureMaxi").setAttribute('disabled', '');
			document.getElementById("HeureMaxi").disabled = false;
			document.getElementById("JourRDV").setAttribute('disabled', 'disabled');
			document.getElementById("JourRDV").disabled = true;
			document.getElementById("HeureRappel").setAttribute('disabled', 'disabled');		
			document.getElementById("HeureRappel").disabled = true;
		}
		else if (document.getElementById("HeurePlanned").checked == true)
		{
			document.getElementById("HeureMaxi").setAttribute('disabled', 'disabled');
			document.getElementById("HeureMaxi").disabled = true;
			document.getElementById("JourRDV").setAttribute('disabled', '');
			document.getElementById("JourRDV").disabled = false;
			document.getElementById("HeureRappel").setAttribute('disabled', '');	
			document.getElementById("HeureRappel").disabled = false;
		}
	}
	else
	{
		document.getElementById("HeureAsap").setAttribute('disabled', 'disabled');
		document.getElementById("HeureAsap").disabled = true;
		document.getElementById("HeurePlanned").setAttribute('disabled', 'disabled');
		document.getElementById("HeurePlanned").disabled = true;
		document.getElementById("HeureMaxi").setAttribute('disabled', 'disabled');
		document.getElementById("HeureMaxi").disabled = true;
		document.getElementById("JourRDV").setAttribute('disabled', 'disabled');
		document.getElementById("JourRDV").disabled = true;
		document.getElementById("HeureRappel").setAttribute('disabled', 'disabled');	
		document.getElementById("HeureRappel").disabled = true;
	}
}

function UpdateDispo(IdChambre, DateDispo)
{
	var XHR = new XHRConnection();
	XHR.appendData("IdChambre", IdChambre);
	XHR.appendData("DateDispo", DateDispo);

	XHR.sendAndLoad("AjaxUpdateDispo.php", "GET", returnUpdateDispo);		
}

function returnUpdateDispo(obj)
{
	var Retour = obj.responseText;
	var Tableau = Retour.split("||");
	
	var IdChambre = Tableau[0];
	var DateDispo = Tableau[1];
	var Dispo = Tableau[2];
	
	var Table = DateDispo.split("-");
	
	var Year = Table[0];
	var Month = Table[1];
	var Day = Table[2];
	
	var Id = Day;
	
	if (Dispo == "True")
	{
		document.getElementById(Id).style.backgroundColor = "#009900";
	}
	else
	{
		document.getElementById(Id).style.backgroundColor = "#EE0000";
	}
}

function SendMailContact()
{
	var Civilite = document.getElementById("Civilite").value;
	var Nom = document.getElementById("Nom").value;
	var Prenom = document.getElementById("Prenom").value;
	var Adresse = document.getElementById("Adresse").value;
	var CodePostal = document.getElementById("CodePostal").value;
	var Ville = document.getElementById("Ville").value;
	var Telephone = document.getElementById("Telephone").value;
	var Email = document.getElementById("Email").value;	
	var Message = document.getElementById("Message").value;
	var Rappel = document.getElementById("Rappel").checked;
	var HeureAsap = document.getElementById("HeureAsap").checked;
	var HeurePlanned = document.getElementById("HeurePlanned").checked;
	var HeureMaxi = document.getElementById("HeureMaxi").value;
	var JourRDV = document.getElementById("JourRDV").value;
	var HeureRappel = document.getElementById("HeureRappel").value;
	
	if (Nom == "" || Email == "" || Message == "")
	{
		alert("Veuillez renseigner tous les champs obligatoires avant de continuer !");
	}
	else
	{
		if (IsEmail("Email", Email))
		{
			var XHR = new XHRConnection();
			XHR.appendData("Civilite", Civilite);
			XHR.appendData("Nom", Nom);
			XHR.appendData("Prenom", Prenom);
			XHR.appendData("Adresse", Adresse);
			XHR.appendData("CodePostal", CodePostal);
			XHR.appendData("Ville", Ville);
			XHR.appendData("Telephone", Telephone);
			XHR.appendData("Email", Email);
			XHR.appendData("Message", Message);
			XHR.appendData("Rappel", Rappel);
			XHR.appendData("HeureAsap", HeureAsap);
			XHR.appendData("HeurePlanned", HeurePlanned);
			XHR.appendData("HeureMaxi", HeureMaxi);
			XHR.appendData("JourRDV", JourRDV);
			XHR.appendData("HeureRappel", HeureRappel);
			
			XHR.sendAndLoad("AjaxSendMailContact.php", "POST", returnSendMailContact);
		}
	}
}

function returnSendMailContact(obj)
{
	alert("Votre message a bien été envoyé ! Une réponse vous sera adressée dans les plus bref délais.");
}


/************************************************************************************************************************************/
/* Fonction qui permet de determiner si la chaine passée en paramètre est au format email */
function IsEmail(Champ, Valeur)
{
	// Si l'email est vide
	if (IsVide(Valeur))
	{
		// On insulte et la fonction renvoit false
		alert("Le champ " + Champ + " est vide !");
		return false;
	}
	
	// Si l'email n'est pas vide
	else
	{
		// Si l'email ne contient pas d'@
		if (! Instr(Valeur, "@"))
		{
			// On insulte et la fonction renvoit false
			alert("Le format du champ " + Champ + " n'est pas correct !");
			return false;
		}
		
		// Si l'email contient un @
		else
		{
			// On le split avec le @
			var Tableau = Valeur.split("@");
			
			// Si le tableau retourné ne contient pas 2 variables
			if (Tableau.length != 2)
			{
				// On insulte et la fonction renvoit false
				alert("Le format du champ " + Champ + " n'est pas correct !");				
				return false;
			}
			
			// Si le tableau retourné contient bien 2 cellules
			else
			{
				// On recupere ces 2 cellules
				var Adresse = Tableau[0];
				var Reste = Tableau[1];
				
				// Si le reste ne contient pas de .
				if (! Instr(Reste, "."))
				{
					// On insulte et la fonction renvoit false
					alert("Le format du champ " + Champ + " n'est pas correct !");				
					return false;
				}			
				
				// Si le reste contient bien un .
				else
				{
					// On splitte le reste avec le .
					Tableau = Reste.split(".");			
					
					// Si le tableau retourné ne contient pas 2 variables
					if (Tableau.length != 2)
					{
						// On insulte et la fonction renvoit false
						alert("Le format du champ " + Champ + " n'est pas correct !");							
						return false;
					}
					
					// Si le tableau retourné contient bien 2 variables
					else
					{
						// On recupere ces 2 variables
						var Domaine = Tableau[0];
						var Extension = Tableau[1];
						
						// Si une des 3 variables est vide
						if (IsVide(Adresse) || IsVide(Domaine) || IsVide(Extension))
						{
							// On insulte et la fonction renvoit false
							alert("Le format du champ " + Champ + " n'est pas correct !");							
							return false;
						}
						
						// Si toutes les variables sont définis
						else
						{
							// Si le format de l'une de ces 3 variables n'est pas correct
							if (Adresse.length < 3 || Domaine.length < 3 || Extension.length < 2)
							{
								// On insulte et la fonction renvoit false
								alert("Le format du champ " + Champ + " n'est pas correct !");								
								return false;
							}
							
							// Si le format des 3 variables est bon
							else
							{
								// La fonction renvoit true
								return true;
							}
						}						
					}
				}
			}
		}
	}
}


/************************************************************************************************************************************/
/* Fonction qui permet de determiner si la chaine passée en paramètre est au format téléphone */
function IsTelephone(Champ, Valeur)
{
	// Si le parametre est vide
	if (IsVide(Valeur))
	{
		// On insulte et la fonction renvoit false
		alert("Le champ " + Champ + " est vide !");
		return false;
	}
	else
	{
		// Quand la longueur du numero est differente de 10
		if (Valeur.length != 10)
		{
			// On insulte et la fonction renvoit false
			alert("Le format du champ " + Champ + " n'est pas correct !");							
			return false;
		}
		
		// Quand le numero fait bien 10 caracteres
		else
		{
			// On extrait la 1ere lettre
			var Debut = Valeur.substring(0, 1);
			var Fin = Valeur.substring(1, 10);
			
			// Si la 1ere lettre n'est pas un 0
			if (Debut != "0")
			{
				// On insulte et la fonction renvoit false
				alert("Le format du champ " + Champ + " n'est pas correct !");							
				return false;					
			}
			
			// Si la 1ere lettre est bien un 0
			else
			{
				// Si la fin du numero est bien un entier
				if (! IsInt(Champ, Valeur))
				{
					// On insulte et la fonction renvoit false
					//alert("Le format du champ " + Champ + " n'est pas correct !");							
					return false;						
				}
				
				// Quand tout est bon
				else
				{
					// La fonction renvoit true
					return true;
				}
			}
		}
	}
}


/************************************************************************************************************************************/
/* Fonction qui permet de determiner si la chaine passée en paramètre est au format code postal */
function IsCodePostal(Champ, Valeur)
{
	// Si le nombre est vide
	if (IsVide(Valeur))
	{
		// On insulte et la fonction renvoit false
		alert("Le champ " + Champ + " est vide !");							
		return false;		
	}
	
	// Si le nombre n'est pas vide
	else
	{
		// Si la taille du champ est differente de 5 caracteres
		if (Valeur.length != 5)
		{
			// On insulte et la fonction renvoit false
			alert("Le format du champ " + Champ + " n'est pas correct !");							
			return false;		
		}
		
		// Si la taille du champ est bien de 5 caracteres
		else
		{
			// Si le code postal n'est pas composé que de chiffres
			if (! IsInt(Champ, Valeur))
			{
				// On insulte et la fonction renvoit false
				//alert("Le format du champ " + Champ + " n'est pas correct !");							
				return false;		
			}
			
			// Si tout est bon
			else
			{
				// La fonction renvoit true
				return true;
			}
		}
	}
}

/************************************************************************************************************************************/
/* Fonction qui permet de determiner si la chaine passée en paramètre est vide ou pas */
function IsVide(Valeur)
{
	// Si la chaine est vide
	if (Valeur == "" || Valeur == null)
	{
		// La fonction renvoit True
		return true;
	}
	
	// Si la chaine n'est pas vide
	else
	{
		// La fonction renvoit False
		return false;
	}
}

/* Fonction qui permet de determiner si la chaine passée en paramètre est au format nombre entier */
function IsInt(Champ, Valeur) 
{
	// Si le nombre est vide
	if (IsVide(Valeur))
	{
		// On insulte et la fonction renvoit false
		alert("Le champ " + Champ + " est vide !");							
		return false;					
	}
	
	// Si le nombre n'est pas vide
	else
	{		
		// Si le nombre ne contient pas que des chiffres
		if (Valeur.toString().search(/^-?[0-9]+$/) != 0)
		{
			// On insulte et la fonction renvoit false
			alert("Le format du champ " + Champ + " n'est pas correct !");							
			return false;					
		}
		
		// Si le nombre ne contient que des chiffres
		else
		{
			// La fonction renvoit true
			return true;
		}
	}
}


/************************************************************************************************************************************/
/* Fonction qui permet de determiner si la chaine passée en paramètre est au format nombre entier ou numérique */
function IsNumeric(Champ, Valeur)
{
	// Si le nombre est vide
	if (IsVide(Valeur))
	{
		// On insulte et la fonction renvoit false
		alert("Le champ " + Champ + " est vide !");							
		return false;					
	}
	
	// Si le nombre n'est pas vide
	else
	{
		// On multiplie le parametre
		Valeur = Valeur * 1;
		
		// Si la multiplication retourne une erreur
		if (Valeur.toString() == "NaN")
		{
			// On insulte et la fonction renvoit false
			alert("Le format du champ " + Champ + " n'est pas correct !");							
			return false;		
		}
		
		// Si la multiplication ne retourne pas d'erreur
		else 
		{
			// La fonction renvoit true
			return true;
		}
	}
}

// Fonction qui permet de dire si une chaine contient bien une sous chaine
function Instr(Chaine, SousChaine)
{
	// On definit les variables d'algo
	TailleChaine = Chaine.length;
	TailleSousChaine = SousChaine.length;
	Diff = TailleChaine - TailleSousChaine;
	
	// Valeur de retour par defaut
	retval = false;
	
	// Quand tout est vide
	if (TailleChaine == 0 || TailleSousChaine == 0)
	{
		// La fonction renvoit faux
		retval = false;
	}
	
	// Quand les infos sont bien defini
	else
	{
		// On scanne la chaine principale
		for (i = 0; i < TailleChaine; i++)
		{
			// On en extrait toutes les sous chaine
			Sub = Chaine.substr(0 + i, TailleSousChaine);
			
			// Si la sous chaine scannée correspond bien a la sous chaine recherchée
			if (SousChaine == Sub)
			{
				// La fonction renvoit vrai
				retval = true;
				return retval;
			}
		}
		
		// Si a la fin de la boucle la sous chaine n'a pas été trouvée, la fonction renvoit faux
		return retval;
	}
}

function ConvertOctal(Chaine)
{
	var Retour = Chaine;
	
	Retour = Retour.replace("¢", "\242");
	Retour = Retour.replace("£", "\243");
	Retour = Retour.replace("€", "\244");
	Retour = Retour.replace("¥", "\245");
	Retour = Retour.replace("°", "\260");
	Retour = Retour.replace("¼", "\274");
	Retour = Retour.replace("Œ", "\274");
	Retour = Retour.replace("½", "\275");
	Retour = Retour.replace("œ", "\275");	
	Retour = Retour.replace("¾", "\276");	
	Retour = Retour.replace("Ÿ", "\276");	
	Retour = Retour.replace("¡", "\241");	
	Retour = Retour.replace("«", "\253");	
	Retour = Retour.replace("»", "\273");	
	Retour = Retour.replace("¿", "\277");	
	Retour = Retour.replace("À", "\300");	
	Retour = Retour.replace("Á", "\301");	
	Retour = Retour.replace("Â", "\302");	
	Retour = Retour.replace("Ã", "\303");	
	Retour = Retour.replace("Ä", "\304");	
	Retour = Retour.replace("Å", "\305");	
	Retour = Retour.replace("Æ", "\306");	
	Retour = Retour.replace("Ç", "\307");	
	Retour = Retour.replace("È", "\310");	
	Retour = Retour.replace("É", "\311");	
	Retour = Retour.replace("Ê", "\312");	
	Retour = Retour.replace("Ë", "\313");	
	Retour = Retour.replace("Ì", "\314");	
	Retour = Retour.replace("Í", "\315");	
	Retour = Retour.replace("Î", "\316");
	Retour = Retour.replace("Ï", "\317");	
	Retour = Retour.replace("Ð", "\320");	
	Retour = Retour.replace("Ñ", "\321");	
	Retour = Retour.replace("Ò", "\322");	
	Retour = Retour.replace("Ó", "\323");	
	Retour = Retour.replace("Ô", "\324");	
	Retour = Retour.replace("Õ", "\325");	
	Retour = Retour.replace("Ö", "\326");	
	Retour = Retour.replace("Ø", "\330");	
	Retour = Retour.replace("Ù", "\331");	
	Retour = Retour.replace("Ú", "\332");	
	Retour = Retour.replace("Û", "\333");	
	Retour = Retour.replace("Ü", "\334");	
	Retour = Retour.replace("Ý", "\335");	
	Retour = Retour.replace("Þ", "\336");	
	Retour = Retour.replace("ß", "\337");	
	Retour = Retour.replace("à", "\340");	
	Retour = Retour.replace("á", "\341");	
	Retour = Retour.replace("â", "\342");	
	Retour = Retour.replace("ã", "\343");	
	Retour = Retour.replace("ä", "\344");	
	Retour = Retour.replace("å", "\345");	
	Retour = Retour.replace("æ", "\346");	
	Retour = Retour.replace("ç", "\347");	
	Retour = Retour.replace("è", "\350");	
	Retour = Retour.replace("é", "\351");	
	Retour = Retour.replace("ê", "\352");	
	Retour = Retour.replace("ë", "\353");	
	Retour = Retour.replace("ì", "\354");	
	Retour = Retour.replace("í", "\355");	
	Retour = Retour.replace("î", "\356");	
	Retour = Retour.replace("ï", "\357");	
	Retour = Retour.replace("ð", "\360");	
	Retour = Retour.replace("ñ", "\361");	
	Retour = Retour.replace("ò", "\362");	
	Retour = Retour.replace("ó", "\363");	
	Retour = Retour.replace("ô", "\364");	
	Retour = Retour.replace("õ", "\365");	
	Retour = Retour.replace("ö", "\366");	
	Retour = Retour.replace("ø", "\370");	
	Retour = Retour.replace("ù", "\371");	
	Retour = Retour.replace("ú", "\372");	
	Retour = Retour.replace("û", "\373");	
	Retour = Retour.replace("ü", "\374");	
	Retour = Retour.replace("ý", "\375");	
	Retour = Retour.replace("þ", "\376");	
	Retour = Retour.replace("ÿ", "\377");	

	return Retour;
}