// JavaScript Document
//////////////////////////////////////////////////////////////////////////////////
// Auteur: Martin Blanchette et Simon Arnold Laliberté                          //
// Date: 14 mars 2007                                                           //
// Version: 1.0                                                                 //
//////////////////////////////////////////////////////////////////////////////////

//Transformer le texte
function changerFormat(pObjet,pFormat) {
	if (! pObjet.isContentEditable) return;
	pObjet.setAttribute("modif",true);
	document.execCommand(pFormat);//exécuter la commande passé en paramètre
}

//Mettre un titre (h4 ou h3)
function putT(quel) {
	var sel = document.selection;//mémoriser la sélection
	var txtSelection = sel.createRange().text;//prendre le texte sélectionné

	
	if (sel!=null) 
	{
		var rng = sel.createRange();
		if (rng!=null)
		{
			rng.pasteHTML('<h'+quel+'>'+txtSelection+'</h'+quel+'>');//transformer le texte sélectionné en titre et le coller dans le texte
		}
	}
}

//Mettre un lien vers une page web ou un document sur le réseau
function putURL() {
	var adresse = prompt("Entrer l'adresse du lien", 'http://');//demande de l'adresse url ou du path du fichier
	var leTitre = prompt("Entrer la description (title) du lien", '');//demande de la description du lien (title)
	var sel = document.selection;//mémoriser la sélection
	var txtSelection = sel.createRange().text;

	if (sel!=null) 	{
		var rng = sel.createRange();
		if (rng!=null)	{
			rng.pasteHTML('<a href="'+adresse+'" title="'+leTitre+'">'+txtSelection+'</a>');//transformer le texte sélectionné en lien et le coller dans le texte
		}
	}
}


//Vérification du formulaire... si les champs sont vide
function trim(val) {
	if (!val) return val;

		while(val.charAt(0) == ' ') val = val.substring(1,val.length);
		while(val.charAt(val.length  )==' ')  
		{
			val = val.substring(0,val.length-1);
		}
		
	 return val;
}

function est_la(le_id, retour, msg)
{
	var nobug = retour[0];
	var obj = document.getElementById( le_id );
	
	if(trim(obj.value) == "" || trim(obj.value) == msg)
		{
			retour[1] += msg;
			// si le champs est vide... renvoyer que ce champs doit être rempli
			if (nobug == true)
			{
				// insérer dans le html le texte informant que c'est un champs obligatoire
				document.getElementById("div"+le_id).insertAdjacentHTML('beforeBegin', "<p>"+msg);
				document.getElementById("div"+le_id).insertAdjacentHTML('afterEnd', '</p>');
				obj.focus();// mettre le focus sur le champs à remplir
			}
			retour[0] = false;	
		}
}

function valider_form(action)
{
	nobug = true;
	msg = "";	
	var tableau = new Array(true,'');

	//Wysiwyg... (le nom du champs, ajouter dans quel array, et le message d'erreur)
	est_la("section", tableau, "Vous devez sélectionner une section");
	est_la("nomSection", tableau, "La saisie du nom de la section est obligatoire");
	est_la("titreSection", tableau, "La saisie du titre de la section est obligatoire");
	
	if(tableau[0] != false)
	{
		submitForm(action);
	}
	
	return tableau[0];
}
//Fin de vérification du formulaire
///////////////////////////////////////////////////////////////////////


//Mettre le contenu des champs du formulaire d'ajout de section... dans les champs respectifs du formulaire chaché
function submitForm(action)
{
	// si une sous-section est sélectionnée
	if (document.getElementById("sousSection").options.value != 0)
	{		
		chaine = document.getElementById("sousSection").options.value;
		chaine = chaine.substring(0, 2);
		
		// si aucune section n'est sélectionné... erreur, il doit  y avoir une section de sélectionné
		if (chaine != document.getElementById("section").options.value)
		{
			document.getElementById('divsousSection').insertAdjacentHTML('beforeBegin', '<p>Cette sous-section ne correspond pas à la section');
			document.getElementById('divsousSection').insertAdjacentHTML('afterEnd', '</p>');
		}
		else // si une section est sélectionnée
		{
			document.frmCacheAjout.txtNom.value = document.getElementById("nomSection").value;
			document.frmCacheAjout.txtHierarchie.value = document.getElementById("sousSection").options.value;
			document.frmCacheAjout.txtTitre.value = document.getElementById("titreSection").value;
			document.frmCacheAjout.txtText.value = document.getElementById("texteSection").innerHTML;
			document.frmCacheAjout.txtAction.value = action;
			document.frmCacheAjout.submit();//soumette le formulaire
		}
	}
	else// si aucune sous-section n'est sélectionnée
	{
			document.frmCacheAjout.txtNom.value = document.getElementById("nomSection").value;
			document.frmCacheAjout.txtHierarchie.value = document.getElementById("section").options.value;
			document.frmCacheAjout.txtTitre.value = document.getElementById("titreSection").value;
			document.frmCacheAjout.txtText.value = document.getElementById("texteSection").innerHTML;
			document.frmCacheAjout.txtAction.value = action;
			document.frmCacheAjout.submit();//soumette le formulaire
	}
}


//AJOUER IMAGE
//wysiwyg.php--
function ajouter_image()
{
	// si une sous-section est sélectionnée
	if (document.getElementById("sousSection").options.value != 0)
	{
		document.frmCacheImg.txtSection.value = document.getElementById("section").options.value;
		document.frmCacheImg.txtSousSection.value = document.getElementById("sousSection").options.value;
		document.frmCacheImg.txtNomImg.value = document.getElementById("nomSection").value;
		document.frmCacheImg.txtTitreImg.value = document.getElementById("titreSection").value;
		document.frmCacheImg.txtTextImg.value = document.getElementById("texteSection").innerHTML;	
	}
	else // si aucune sous-sections n'est sélectionnée
	{
		document.frmCacheImg.txtSection.value = document.getElementById("section").options.value;
		document.frmCacheImg.txtNomImg.value = document.getElementById("nomSection").value;
		document.frmCacheImg.txtTitreImg.value = document.getElementById("titreSection").value;
		document.frmCacheImg.txtTextImg.value = document.getElementById("texteSection").innerHTML;
	}
	document.frmCacheImg.submit(); // soumettre le formulaire
}

//ajouterImg.php---
//CHECK si les champs sont bien rempli
function valid_champs()
{
	nobug = true;
	msg = "";	
	var tableau = new Array(true,'');

	//Wysiwyg
	est_la("fichier", tableau, "Vous devez insérer une image");
	est_la("txtDesc", tableau, "Vous devez mettre une description de l'image");
	
	if(tableau[0] != false)
	{
		document.getElementById('frmAddImg').submit();
	}
	
	return tableau[0];
}


//Annule l'ajout d'une image
function annuler()
{
	//soumet le formulaire pour ravoir tout les éléments du champs
	document.frmAnnule.submit();
}



//ajouterInfoRAAQ.php---
function addInfoRAAQ()
{
	nobug = true;
	msg = "";	
	var tableau = new Array(true,'');

	//Wysiwyg
	est_la("fichier", tableau, "Vous devez insérer un fichier");
	
	if(tableau[0] != false)
	{
		document.frmAddInfo.submit();
	}
	
	return tableau[0];
}


//////////////////////// Partie de Simon Arnold Laliberté //////////////////////


//---Éditeur HTML-----------------------------------------------------------------------------------
function valider_textearea()
{
	if (document.getElementById("contenuDeLaPage").value.length > 0)
	{
		document.frmTextArea.contenuDeLaPageInput.value = document.getElementById("contenuDeLaPage").value;
		document.frmTextArea.submit();
	}
}


//---Année Départ-----------------------------------------------------------------------------------
function validerAnneeDepart()
{
	var dateCourante = new Date();
	var anneeCourante = dateCourante.getYear();
	var moisCourant = dateCourante.getMonth();
	var anneeSelect = document.getElementById("anneeDepart").options[document.getElementById("anneeDepart").options.selectedIndex].value;//+(anneeCourante-1);
	var anneeDepart = document.getElementById("anneeDepart").options.selectedIndex;

	//---Efface tout ce qui est actuellment ds la liste de mois ----------------------------
	var nbrMois = (document.getElementById("moisDepart").options.length)-1;
	for(i = nbrMois; i >= 1 ; i--)
	{
		document.getElementById("moisDepart").removeChild(document.getElementById("moisDepart").options[i]);
	}
	
	//---Regénère la liste de mois ---------------------------------------------------------
	creerListeMois("moisDepart")
	
	//---Si l'année sélectionnée est celle actuelle, efface les mois qui sont déjà passés --
	/*if(anneeDepart == 1)
	{
		for(i = moisCourant; i >= 1 ; i--)
		{
			document.getElementById("moisDepart").removeChild(document.getElementById("moisDepart").options[i]);
		}
	}*/
	
	//---Vérifie si c'est une année bissextile ----------------------------------------------
	anneeBissextile(anneeSelect, "moisDepart")

	
	//---Rend selectionnable la liste de mois de depart -------------------------------------
	if(document.getElementById("anneeDepart").options.selectedIndex == 0)
		document.getElementById("moisDepart").disabled="disabled"
	else
		document.getElementById("moisDepart").disabled=""

	//------------------------	
	if(document.getElementById("joursDepart").options.selectedIndex != 0)
	{
		var joursSelect = document.getElementById("joursDepart").options.selectedIndex;
		if(document.getElementById("moisDepart").options[2].value == 28)
			if(joursSelect  > 28)
				document.getElementById("joursDepart").options[28].selected="selected";
	}
	
	var liste = (document.getElementById("anneeFin").options.length -1)
	for(i = liste; i >= 1 ; i--)
	{
		document.getElementById("anneeFin").removeChild(document.getElementById("anneeFin").options[i]);
	}
	
	var objSelect = document.getElementById("anneeFin");
	for (i = 0; i < 5; i++)
	{	
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = parseInt(anneeSelect) + i;
	}
}
//---Mois Départ -------------------------------------------------------------------------------
function validerMoisDepart() {
	var dateCourante = new Date();
	var moisCourant = dateCourante.getMonth();
	var joursCourant = dateCourante.getUTCDate();
	
	var moisSelect = document.getElementById("moisDepart").options.selectedIndex;
	var nbrJoursMax = document.getElementById("moisDepart").options[moisSelect].value;

	//---Efface la liste des jours ---------------------------------------------- 
	var liste = (document.getElementById("joursDepart").options.length -1)
	for(i = liste; i >= 1 ; i--)
	{
		document.getElementById("joursDepart").removeChild(document.getElementById("joursDepart").options[i]);
	}
	//---Efface la liste des mois ----------------------------------------------- 
	var listeMoisFin = (document.getElementById("moisFin").options.length -1)
	for(i = listeMoisFin; i >= 1 ; i--)
	{
		document.getElementById("moisFin").removeChild(document.getElementById("moisFin").options[i]);
	}
	
	//---Génère la liste des mois pour la Fin ----------------------------------
	creerListeMois("moisFin")
	
	//---Verifie si c'est le mois actuel pour mettre juste les jours restant, sinon on met tout les jours
	if (document.getElementById("anneeDepart").options.selectedIndex == 1)
	{
		if (document.getElementById("moisDepart").options.selectedIndex == 1)
			fabriquerListeJours((joursCourant-1), nbrJoursMax, "joursDepart")
		else
			fabriquerListeJours(0, nbrJoursMax, "joursDepart")
	}
	else
		fabriquerListeJours(0, nbrJoursMax, "joursDepart")

	//---Rend la liste des jours sélectionnable ---------------------------------
	if(document.getElementById("moisDepart").options.selectedIndex == 0)
		document.getElementById("joursDepart").disabled="disabled"
	else
		document.getElementById("joursDepart").disabled=""
}
//---Jours Départ ------------------------------------------------------------------------------
function validerJoursDepart()
{
	if(document.getElementById("joursDepart").options.selectedIndex == 0)
		document.getElementById("anneeFin").disabled="disabled"
	else
		document.getElementById("anneeFin").disabled=""
}


//---Jours Fin --------------------------------------------------------------------------------
function validerAnneeFin()
{
	var dateCourante = new Date();
	var anneeCourante = dateCourante.getYear();
	var anneeSelect = (document.getElementById("anneeFin").options.selectedIndex)+(anneeCourante-1);
	var anneeFin = document.getElementById("anneeFin").options.selectedIndex;
	var anneeSelectFin = anneeFin + anneeSelect -1
	
	var nbrMois = (document.getElementById("moisFin").options.length)-1;
	for(i = nbrMois; i >= 1 ; i--)
	{
		document.getElementById("moisFin").removeChild(document.getElementById("moisFin").options[i]);
	}
	
	//---Regénère la liste de mois ----------------------------------
	creerListeMois("moisFin");
	
	if(anneeFin == 1)
	{
		var moisSelect = document.getElementById("moisDepart").options.selectedIndex;
		var moisSelectText = document.getElementById("moisDepart").options[moisSelect].text;
		var moisSelectChiffre =  quelMois(moisSelectText)
		/*for(i = (moisSelectChiffre-1); i >= 1 ; i--)
		{
			document.getElementById("moisFin").removeChild(document.getElementById("moisFin").options[i]);
		}*/
	}
	//---Vérifie si c'est une année bissextile ----------------------
	anneeBissextile(anneeSelect, "moisFin")
		
	if(document.getElementById("anneeFin").options.selectedIndex == 0)
		document.getElementById("moisFin").disabled="disabled"
	else
		document.getElementById("moisFin").disabled=""
	
}
//---Mois Fin ---------------------------------------------------------------------------------
function validerMoisFin()
{	
	var moisSelect = document.getElementById("moisFin").options.selectedIndex;
	var nbrJoursMax = document.getElementById("moisFin").options[moisSelect].value;
	var nbrDepart = 0;
	
	//---Efface la liste des jours de fin ----------------------------
	var liste = (document.getElementById("joursFin").options.length -1)
	for(i = liste; i >= 1 ; i--)
	{
		document.getElementById("joursFin").removeChild(document.getElementById("joursFin").options[i]);
	}
	
	//---Efface les jours qui sont déjà passé si le mois courant est sélectionné
	/*var anneeFin = document.getElementById("anneeFin").options.selectedIndex;
	var moisFin = document.getElementById("moisFin").options.selectedIndex;
	if (anneeFin == 1)
	{
		if (moisFin == 1)
		{
			joursSelect = document.getElementById("joursDepart").options.selectedIndex;
			nbrJoursTxt = document.getElementById("joursDepart").options[joursSelect].text;
			nbrDepart = eval(parseInt(nbrJoursTxt));
		}
	}*/
	fabriquerListeJours(nbrDepart, nbrJoursMax, "joursFin");
	
	//---Rend sélectionnable la liste des jours de fin ---------------
	if(document.getElementById("moisFin").options.selectedIndex == "")
		document.getElementById("joursFin").disabled="disabled"
	else
		document.getElementById("joursFin").disabled=""
}
//---Générer la liste des mois---------------------------------------
function creerListeMois(pQuelleListe) {
		var objSelect = document.getElementById(pQuelleListe);	
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Janvier";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Février";
		nod.setAttribute("value", 28)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Mars";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Avril";
		nod.setAttribute("value", 30)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Mai";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Juin";
		nod.setAttribute("value", 30)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Juillet";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Août";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Septembre";
		nod.setAttribute("value", 30)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Octobre";
		nod.setAttribute("value", 31)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Novembre";
		nod.setAttribute("value", 30)
		var nod=document.createElement("option");
		objSelect.insertBefore(nod);
		nod.innerText = "Décembre";
		nod.setAttribute("value", 31)
}
//-------Générer la liste des jours--------------------------------------
function fabriquerListeJours(nbrDepart, nbrJours, quelleListe)
{
	var objSelect = document.getElementById(quelleListe);
	for (i = nbrDepart; i < nbrJours; i++)
	{	
	    var nod=document.createElement("option");
    	objSelect.insertBefore(nod);
		nod.innerText = i + 1;
	}
}
//---Vérifie que tout les champs sois remplis avant de soumettre la nouvelle---------------
function valider_nouvelle()
{
	var moisSelectDepart = document.getElementById("moisDepart").options.selectedIndex;
	var moisSelectDepart = document.getElementById("moisDepart").options[moisSelectDepart].text;
	var moisSelectFin = document.getElementById("moisFin").options.selectedIndex;
	var moisSelectFin = document.getElementById("moisFin").options[moisSelectFin].text;
	
	document.getElementById("txtDateDepart").value = quelMois(moisSelectDepart);
	document.getElementById("txtDateFin").value = quelMois(moisSelectFin);
	document.getElementById("txtContenuText").value = document.getElementById("texteSection").innerHTML;
	document.getElementById("txtTitre").value = document.getElementById("titreSection").value;

	document.getElementById("frmCMS").submit();
}
//---Donne l'équivalent d'un mois format texte en chiffre ----------------------------------
function quelMois(mois)
{
	var moisChiffre = 0
	if(mois == "Janvier")
	{moisChiffre = 01}
	if(mois == "Février")
	{moisChiffre = 02}
	if(mois == "Mars")
	{moisChiffre = 03}
	if(mois == "Avril")
	{moisChiffre = 04}
	if(mois == "Mai")
	{moisChiffre = 05}
	if(mois == "Juin")
	{moisChiffre = 06}
	if(mois == "Juillet")
	{moisChiffre = 07}
	if(mois == "Août")
	{moisChiffre = 08}
	if(mois == "Septembre")
	{moisChiffre = 09}
	if(mois == "Octobre")
	{moisChiffre = 10}
	if(mois == "Novembre")
	{moisChiffre = 11}
	if(mois == "Décembre")
	{moisChiffre = 12}
	
	return moisChiffre
}
//---Change le nombre de jours du mois de Février si c'est une année Bissextile ------
function anneeBissextile(pAnnee, pQuelleListe)
{
	if(eval(pAnnee%4)==0)
	{
		if(eval(pAnnee%100)==0)
		{
			 if(eval(pAnnee%400)==0)
				document.getElementById(pQuelleListe).options[2].value = 29;
			 else
				document.getElementById(pQuelleListe).options[2].value = 28;
		}
		else
		 document.getElementById(pQuelleListe).options[2].value = 29;
	}
	else
		document.getElementById(pQuelleListe).options[2].value = 28;
}
	
