/*
'---
'--- fonctions.js - Page de fonction en Javascript
'---
'--- Par Sacha Vincent
'---     www.sachavincent.com
'---
'--- RÉVISION
'--- 2008/05/07 -SJV	Création
*/
         

//-------------------------------------------------------------------------------------
// Message d'avertissement temporaire
//-------------------------------------------------------------------------------------
function DoPupDeveloppement()
{
    alert("IMPORTANT!!!\nCette section du site Internet est présentement en développement.\nElle sera fonctionnelle dans le plus bref délai. Merci!\n\nSacha Vincent\nProgrammeur Analyste\nsacha20_100@hotmail.com");    		
}

//-------------------------------------------------------------------------------------
//trouve la référence pour l'objet document
//-------------------------------------------------------------------------------------
function GetReference(id)
{
	if(document.layers) return document.layers[id];
	if(document.all && !document.getElementById) return document.all[id];
	if(document.all && document.getElementById) return document.getElementById(id);
	if(!document.all && document.getElementById) return document.getElementById(id);
	return false;
}


//---------------------------------------------------------------------
//Ouvrir une fenêtre
//---------------------------------------------------------------------
function OuvrirFenetre(iNomPage, iTitre, iWidth, iHeight)
{                  
	fenetre = window.open(iNomPage, iTitre, "top=0, left=0, width=" + iWidth + ", height=" + iHeight + ", scrollbars=yes, location=no, toolbar=no, menubar=no");
	fenetre.focus()
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* OuvrirConfidentialite() - Ouvre la page pour les politiques de confidentialité
*/
function OuvrirConfidentialite()
{         
   OuvrirFenetre("", "CONFIDENTIALITE", 630, 580);
   FormConfidentialite.submit();
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoInsertCodeHTML() - Insère le code HTML créé dans l'éditeur
*/
function DoInsertCodeHTML(iControlName, iContenu)
{                                                
	if(iControlName!='')
    {
        var ObjName=GetReference(iControlName);

		ObjName.value = iContenu;
    }
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* OuvrirEditeurHTML() - Ouvre l'éditeur HTML
*/
function OuvrirEditeurHTML(iControlName)
{
    var ObjName = GetReference(iControlName);
    var ObjTexte = GetReference("TexteContenu");
    var ObjCtrl = GetReference("Ctrl");
    
    ObjTexte.value = ObjName.value;
    ObjCtrl.value = iControlName;
    
    if(iControlName!='')
    {
	   OuvrirFenetre("", "EditeurTexte", 800, 600);
       document.EditeurHTML.submit();
    }
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * RemoveLineBreakJS() - Retourne la string sans les sauts de lignes ("\n" ou "\r\n")
 *
 *
 * Paramètres:
 *   iString - La chaine de caratère (type: String)
 *
 */
function RemoveLineBreakJS(iString)
{
    iString.replace("\r\n", "");
    iString.replace("\n", "");
    
    return iString;
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * JAVA_FormatStr() - Remplace les apostrophes (') par l'équivalent UNICODE \u0027
 *                 et les guillemets (") par l'équivalent UNICODE \u0022 pour
 *                 les fonctions JavaScript.
 */
function JAVA_FormatStr(iString)
{
    alert(iString);
    var chaine = new String(iString);

    remplace  = new RegExp("\'","g"),
    chaine = chaine.replace(remplace, "&#39;");

    remplace  = new RegExp('\"',"g"),
    chaine = chaine.replace(remplace, '&#39;');

    return chaine;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* ImprimerPage() - Lance l'impression de la fenêtre en cours
*/
function ImprimerPage(iLangue)
{       
    if (navigator.appVersion.indexOf("Mac",0)>0)
    {
        if (iLangue=="en")
            alert("This function is not available for Macintosh. Please use Apple-P.");
        else
            alert("Cette fonction n\'est pas réalisable sur Macintosh.\n\nUtilisez plutôt la combinaison de touches  « Pomme-P »");
    }
    else
    {
        window.print();
    }
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* OuvrirPrint() - Ouvre la page pour l'impression
*/
function OuvrirPrint()
{
   OuvrirFenetre("", "PRINTWINDOW", 610, 600);
   document.FormPrint.submit();
}



/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoSupprimerPhoto() - Supprimer une photo
*/
function DoSupprimerPhoto(iName, iCadre, iRemplacement)
{
    var ObjName=GetReference(iName);          	
    var ObjCadre=GetReference(iCadre);
        
    ObjName.value = "";    	    
    ObjCadre.width = "100"; 	
    ObjCadre.height = "75"; 	
    ObjCadre.src = iRemplacement;    
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoVisualiserPhoto() - Voir la photo en gros
*/
function DoVisualiserPhoto(iMembreID)
{                                  
    if(iMembreID != '')
	   	 OuvrirFenetre("image.php?M=" + iMembreID, "Photo", 600, 600);
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoVisualiserAlbumPhoto() - Voir la photo en gros
*/
function DoVisualiserAlbumPhoto(iMembreID, iPhotoID)
{
    if(iMembreID != '')
	   	 OuvrirFenetre("image.php?M=" + iMembreID + "&AP=" + iPhotoID, "Photo", 600, 600);
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoChercherPhoto() - Ouvre la fenêtre du navigateur de photo
*/
function DoChercherPhoto(iImg, iName, iModuleID)
{
    if(iImg != '' && iModuleID!= '')
  		OuvrirFenetre("navigateur_photo.php?Img=" + iImg + "&N=" + iName + "&M=" + iModuleID, "Photos", 800, 600);
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* DoInsertImage() - Insère la photo à la bonne place
*/
function DoInsertImage(iImgPath, iCadre, iName, iPrefixe)
{           
    
    var reg = new RegExp("[/\\/]+", "g");          

    var tableau = iImgPath.split(reg);    
    
    var ObjName = GetReference(iName); 
    var ObjCadre = GetReference(iCadre);    
    
    var ImgName = tableau[tableau.length - 1];  
    
    if(iPrefixe != "")
        ObjName.value = ImgName.replace(iPrefixe, "");    
    else
        ObjName.value = ImgName;
        
    var StrMesure = ResizeImageJS(iImgPath, 100);         
    
    var Dimension = StrMesure.split("||");
    
    ObjCadre.width = parseInt(Dimension[0]);
    ObjCadre.height = parseInt(Dimension[1]);
    ObjCadre.src = iImgPath; 
}


function getImgSize(imgSrc)
{
    var newImg = new Image();
    newImg.src = imgSrc;    
    
    var iWidth = 0;
    var iHeight = 0;
    
    while(iWidth == 0)
    {
        iWidth = newImg.width;
        iHeight = newImg.height;
    }
    
    return iWidth + "||" + iHeight;    
}



/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * ResizeImageJS() - Retourne de nouvelles dimensions pour une photo selon une maximum donné
 *
 *
 * Paramètres:
 *   iWidth - La largeur de la photo (type: Integer)
 *   iHeight - La hauteur de la photo (type: Integer)
 *   iGrandeurMax - La grandeur maximum à respecter (type: Integer)
 *
 * Valeur de retour:
 *   Array(Largeur,Hauteur)
 */
function ResizeImageJS(iImagePath, iGrandeurMax)
{	
    var TmpMesure = getImgSize(iImagePath);       
    
    var Mesure = TmpMesure.split("||");
    
    var iWidth = parseInt(Mesure[0]);
    var iHeight = parseInt(Mesure[1]);   
   
	if(iHeight > iWidth)
	{           
		if (iHeight > iGrandeurMax) // modifie la hauteur
		{
			reduire = iGrandeurMax / iHeight;
			Mesure[1] = iGrandeurMax; 
			Mesure[0] = Math.ceil(iWidth * reduire);
		}
	}
	else
	{           
		if (iWidth > iGrandeurMax) // modifie la largeur
		{
			reduire = iGrandeurMax / iWidth;
			Mesure[0] = iGrandeurMax;
			Mesure[1] = Math.ceil(iHeight * reduire);
		}
	}
	
    
	//alert(Mesure[0] + "||" + Mesure[1]);
	return Mesure[0] + "||" + Mesure[1];
}

function SetDateFin(iFrom, iTo)
{       
    var ObjFrom = GetReference(iFrom);
    var ObjTo = GetReference(iTo);
    
    var iDate = ObjFrom.value
    
    if(iDate != "")
    {
        var Annee = iDate.substring(0,4);
        
        Annee = parseInt(Annee) + 1;            
        var YearAfter = Annee + iDate.substring(4,10);        
        
        ObjTo.value = YearAfter;
    }
}

function getOffsetPosition(inID, inTYPE)
{
    var iVal = 0;
    var oObj = GetReference(inID);
    var sType = 'oObj.offset' + inTYPE;

    while (oObj && oObj.tagName != 'body') 
    {
        iVal += eval(sType);
        oObj = oObj.offsetParent;
    }
    
    return iVal;
}

function OuvrirCalendrier(iObject)
{   
    var PositionTop = getOffsetPosition("Calendrier" + iObject, "Top");
    var PositionLeft = getOffsetPosition("Calendrier" + iObject, "Left"); 
     
    PositionLeft = PositionLeft + 25;
    PositionTop = PositionTop - 150;
    
    EspaceCalendrier = GetReference("Calendrier");
    EspaceCalendrier.style.left = PositionLeft + "px";
    EspaceCalendrier.style.top = PositionTop + "px"; 
    EspaceCalendrier.style.display = "block";
   
    ObjPlace = GetReference("PlaceToShip");
    ObjPlace.value = iObject;    
    
} 

// Navigation dans le calendrier de la page Events & activities
function CalendrierMois(iValue)
{
    ObjNumeroMois = GetReference("NoMoisRecherche");    
    ObjNumeroMois.value = iValue;    
    
    ObjCalendrier = GetReference("ObjetCalendrier");
    ObjCalendrier.submit();
    
}  

function ShowPicture(iObject)
{   
/*  
    var PositionTop = getOffsetPosition("History" + iObject, "Top");
    var PositionLeft = getOffsetPosition("History" + iObject, "Left");
  */  
    var PositionTop = getOffsetPosition("History", "Top");
    var PositionLeft = getOffsetPosition("History", "Left"); 
     
    PositionLeft = PositionLeft;
    PositionTop = PositionTop;
     
    var Photo = GetReference("Photo");
    Photo.src = 'fichiers/image/' + "history" + iObject + "_g.jpg"; 
    
    EspacePhoto = GetReference("CadrePicture");
    EspacePhoto.style.left = PositionLeft + "px";
    EspacePhoto.style.top = PositionTop + "px"; 
    EspacePhoto.style.display = "block";    
}   

function HidePicture()
{
    EspacePhoto = GetReference("CadrePicture");   
    EspacePhoto.style.display = "none";
} 
 

// Permet de changer l'ordre dans les colonnes des listes
function ChangerOrdre(iColonne)
{
    ObjOrdreActuel = GetReference("Or" + iColonne);    
    document.formOrdreColonne.Or.value = ObjOrdreActuel.value;
    document.formOrdreColonne.submit()
}

//Décode une chaîne
function html_entity_decode(texte) 
{
	texte = texte.replace(/&quot;/g,'"'); // 34 22
	texte = texte.replace(/&amp;/g,'&'); // 38 26	
	texte = texte.replace(/&#39;/g,"'"); // 39 27
	texte = texte.replace(/&lt;/g,'<'); // 60 3C
	texte = texte.replace(/&gt;/g,'>'); // 62 3E
	texte = texte.replace(/&circ;/g,'^'); // 94 5E
	texte = texte.replace(/&lsquo;/g,'‘'); // 145 91
	texte = texte.replace(/&rsquo;/g,'’'); // 146 92
	texte = texte.replace(/&ldquo;/g,'“'); // 147 93
	texte = texte.replace(/&rdquo;/g,'”'); // 148 94
	texte = texte.replace(/&bull;/g,'•'); // 149 95
	texte = texte.replace(/&ndash;/g,'–'); // 150 96
	texte = texte.replace(/&mdash;/g,'—'); // 151 97
	texte = texte.replace(/&tilde;/g,'˜'); // 152 98
	texte = texte.replace(/&trade;/g,'™'); // 153 99
	texte = texte.replace(/&scaron;/g,'š'); // 154 9A
	texte = texte.replace(/&rsaquo;/g,'›'); // 155 9B
	texte = texte.replace(/&oelig;/g,'œ'); // 156 9C
	texte = texte.replace(/&#357;/g,'?'); // 157 9D
	texte = texte.replace(/&#382;/g,'ž'); // 158 9E
	texte = texte.replace(/&Yuml;/g,'Ÿ'); // 159 9F
	texte = texte.replace(/&nbsp;/g,' '); // 160 A0
	texte = texte.replace(/&iexcl;/g,'¡'); // 161 A1
	texte = texte.replace(/&cent;/g,'¢'); // 162 A2
	texte = texte.replace(/&pound;/g,'£'); // 163 A3
	texte = texte.replace(/&curren;/g,' '); // 164 A4
	texte = texte.replace(/&yen;/g,'¥'); // 165 A5
	texte = texte.replace(/&brvbar;/g,'¦'); // 166 A6
	texte = texte.replace(/&sect;/g,'§'); // 167 A7
	texte = texte.replace(/&uml;/g,'¨'); // 168 A8
	texte = texte.replace(/&copy;/g,'©'); // 169 A9
	texte = texte.replace(/&ordf;/g,'ª'); // 170 AA
	texte = texte.replace(/&laquo;/g,'«'); // 171 AB
	texte = texte.replace(/&not;/g,'¬'); // 172 AC
	texte = texte.replace(/&shy;/g,'­'); // 173 AD
	texte = texte.replace(/&reg;/g,'®'); // 174 AE
	texte = texte.replace(/&macr;/g,'¯'); // 175 AF
	texte = texte.replace(/&deg;/g,'°'); // 176 B0
	texte = texte.replace(/&plusmn;/g,'±'); // 177 B1
	texte = texte.replace(/&sup2;/g,'²'); // 178 B2
	texte = texte.replace(/&sup3;/g,'³'); // 179 B3
	texte = texte.replace(/&acute;/g,'´'); // 180 B4
	texte = texte.replace(/&micro;/g,'µ'); // 181 B5
	texte = texte.replace(/&para/g,'¶'); // 182 B6
	texte = texte.replace(/&middot;/g,'·'); // 183 B7
	texte = texte.replace(/&cedil;/g,'¸'); // 184 B8
	texte = texte.replace(/&sup1;/g,'¹'); // 185 B9
	texte = texte.replace(/&ordm;/g,'º'); // 186 BA
	texte = texte.replace(/&raquo;/g,'»'); // 187 BB
	texte = texte.replace(/&frac14;/g,'¼'); // 188 BC
	texte = texte.replace(/&frac12;/g,'½'); // 189 BD
	texte = texte.replace(/&frac34;/g,'¾'); // 190 BE
	texte = texte.replace(/&iquest;/g,'¿'); // 191 BF
	texte = texte.replace(/&Agrave;/g,'À'); // 192 C0
	texte = texte.replace(/&Aacute;/g,'Á'); // 193 C1
	texte = texte.replace(/&Acirc;/g,'Â'); // 194 C2
	texte = texte.replace(/&Atilde;/g,'Ã'); // 195 C3
	texte = texte.replace(/&Auml;/g,'Ä'); // 196 C4
	texte = texte.replace(/&Aring;/g,'Å'); // 197 C5
	texte = texte.replace(/&AElig;/g,'Æ'); // 198 C6
	texte = texte.replace(/&Ccedil;/g,'Ç'); // 199 C7
	texte = texte.replace(/&Egrave;/g,'È'); // 200 C8
	texte = texte.replace(/&Eacute;/g,'É'); // 201 C9
	texte = texte.replace(/&Ecirc;/g,'Ê'); // 202 CA
	texte = texte.replace(/&Euml;/g,'Ë'); // 203 CB
	texte = texte.replace(/&Igrave;/g,'Ì'); // 204 CC
	texte = texte.replace(/&Iacute;/g,'Í'); // 205 CD
	texte = texte.replace(/&Icirc;/g,'Î'); // 206 CE
	texte = texte.replace(/&Iuml;/g,'Ï'); // 207 CF
	texte = texte.replace(/&ETH;/g,'Ð'); // 208 D0
	texte = texte.replace(/&Ntilde;/g,'Ñ'); // 209 D1
	texte = texte.replace(/&Ograve;/g,'Ò'); // 210 D2
	texte = texte.replace(/&Oacute;/g,'Ó'); // 211 D3
	texte = texte.replace(/&Ocirc;/g,'Ô'); // 212 D4
	texte = texte.replace(/&Otilde;/g,'Õ'); // 213 D5
	texte = texte.replace(/&Ouml;/g,'Ö'); // 214 D6
	texte = texte.replace(/&times;/g,'×'); // 215 D7
	texte = texte.replace(/&Oslash;/g,'Ø'); // 216 D8
	texte = texte.replace(/&Ugrave;/g,'Ù'); // 217 D9
	texte = texte.replace(/&Uacute;/g,'Ú'); // 218 DA
	texte = texte.replace(/&Ucirc;/g,'Û'); // 219 DB
	texte = texte.replace(/&Uuml;/g,'Ü'); // 220 DC
	texte = texte.replace(/&Yacute;/g,'Ý'); // 221 DD
	texte = texte.replace(/&THORN;/g,'Þ'); // 222 DE
	texte = texte.replace(/&szlig;/g,'ß'); // 223 DF
	texte = texte.replace(/&agrave;/g,'à'); // 224 E0
	texte = texte.replace(/&aacute;/g,'á'); // 225 E1
	texte = texte.replace(/&acirc;/g,'â'); // 226 E2
	texte = texte.replace(/&atilde;/g,'ã'); // 227 E3
	texte = texte.replace(/&auml;/g,'ä'); // 228 E4
	texte = texte.replace(/&aring;/g,'å'); // 229 E5
	texte = texte.replace(/&aelig;/g,'æ'); // 230 E6
	texte = texte.replace(/&ccedil;/g,'ç'); // 231 E7
	texte = texte.replace(/&egrave;/g,'è'); // 232 E8
	texte = texte.replace(/&eacute;/g,'é'); // 233 E9
	texte = texte.replace(/&ecirc;/g,'ê'); // 234 EA
	texte = texte.replace(/&euml;/g,'ë'); // 235 EB
	texte = texte.replace(/&igrave;/g,'ì'); // 236 EC
	texte = texte.replace(/&iacute;/g,'í'); // 237 ED
	texte = texte.replace(/&icirc;/g,'î'); // 238 EE
	texte = texte.replace(/&iuml;/g,'ï'); // 239 EF
	texte = texte.replace(/&eth;/g,'ð'); // 240 F0
	texte = texte.replace(/&ntilde;/g,'ñ'); // 241 F1
	texte = texte.replace(/&ograve;/g,'ò'); // 242 F2
	texte = texte.replace(/&oacute;/g,'ó'); // 243 F3
	texte = texte.replace(/&ocirc;/g,'ô'); // 244 F4
	texte = texte.replace(/&otilde;/g,'õ'); // 245 F5
	texte = texte.replace(/&ouml;/g,'ö'); // 246 F6
	texte = texte.replace(/&divide;/g,'÷'); // 247 F7
	texte = texte.replace(/&oslash;/g,'ø'); // 248 F8
	texte = texte.replace(/&ugrave;/g,'ù'); // 249 F9
	texte = texte.replace(/&uacute;/g,'ú'); // 250 FA
	texte = texte.replace(/&ucirc;/g,'û'); // 251 FB
	texte = texte.replace(/&uuml;/g,'ü'); // 252 FC
	texte = texte.replace(/&yacute;/g,'ý'); // 253 FD
	texte = texte.replace(/&thorn;/g,'þ'); // 254 FE
	texte = texte.replace(/&yuml;/g,'ÿ'); // 255 FF
	return texte;
}   

