/*
 * Procédures JS génériques
 */

NumChars = "0123456789";

// Ouverture d'une pop-up
function OpenUrl( url, width, height) {
	window.open( url, "_blank", "width=" + width + ",height=" + height + ",toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,titlebar=no");
}

// Fonction de validation du format d'une date
function Valide_date( nDate, nA1, nA2, nFormat) {
	// Ajouter ce code dans la saisie du champs date
	//  onBlur="Valide_date(this,1950,2020,'jj/mm/aaaa')"
	// La date valide doit être entre 1950 et 2020.
	//    vous pouvez changer l'interval.
	// Format valide: (ne pas utiliser d'autre format...
	// - jj/mm/aaaa
	// - mm/jj/aaaa
	// - aaaa/mm/jj
	// Noter que vous devriez indiquer à l'usager le format valide...
	var ok = "oui";
	var nChar;
	var aDate;
	var nJ;
	var nM;
	var nA;
	var jMax = 31;
	nAccepte = "0123456789/";

	if ( nDate.value.length > 0 ) {
		if ( nDate.value.length < 8 || nDate.value.length > 10 ) ok = "non";
		for ( var i=0 ; i<nDate.value.length ; i++) {
			nChar = "" + nDate.value.substring( i, i+1);
			if ( nAccepte.indexOf(nChar) == "-1" ) ok = "non";
		}

		if ( ok == "oui" ) {
			aDate = nDate.value.split("/");
			if ( nFormat == "jj/mm/aaaa" ) {
				nJ = aDate[0];
				nM = aDate[1];
				nA = aDate[2];
			}
		  	else if ( nFormat == "mm/jj/aaaa" ) {
				nJ = aDate[1];
				nM = aDate[0];
				nA = aDate[2];
			}
			else if ( nFormat == "aaaa/mm/jj" ) {
				nJ = aDate[2];
				nM = aDate[1];
				nA = aDate[0];
			}
		  	if ( (nJ<1 || nJ>jMax) || (nM<1 || nM>12) || (nA<nA1 || nA>nA2) )
				ok = "non";
		  	else {
				if ( nM == 2 ) { 
			  		/*if ( AnneeBissex(nA) == true )
						jMax = 29;
					else */
						jMax = 28;
				}
			}
			if ( (nM == 1 || nM == 3 || nM == 5 || nM == 7 || nM == 8 || nM == 10 || nM == 12) ) jMax = 31;
			if ( (nM == 4 || nM == 6 || nM == 9 || nM == 11) ) jMax = 30;
			if ( nJ < 1 || nJ > jMax ) ok = "non";
		  }
    }

    return ( ok == "oui");
}

// Vérifie si la donnée passée est bien un numeric
function IsNumeric( Data) {
	var It = true;
	var c;

	for ( var x=0 ; x<Data.length ; x++ ) {
		if ( It ) {
			c  = Data.charAt(x);
			It = ( NumChars.indexOf(c) != -1 );
		}
	}

	return It;
}

// Validation du format de l'adresse e-mail
function CheckMail( MailData){
	correct = true;
	p = MailData.indexOf("@");

	if ( p != -1 )
		correct = ( MailData.indexOf( ".", p) != -1 );
	else
		correct = false;

	return correct;
}

function ValidateMail( FormName) {
	if ( !CheckMail(FormName.value) ){
		alert( "Format d'adresse E-mail incorrect.\nVeuillez respecter un format de la forme : login@nom_domaine.ext .");
		FormName.focus();
		return false;
	}
	else
		return true;
}

// Permet de cocher toutes les checkbox du formulaire passé en paramètre
function checkall( form) {
	var nb_elt = form.length;

	for ( i=1 ; i<nb_elt ; i++ ) {
		if ( form[i].name!="all" && form[i].type=="checkbox"  ) form[i].checked = form.all.checked;
	}
}

// Fonction permettant de redimenssioner les photos automatiquement à l'affichage
function resizeimgauto( gabaritH, gabaritW) {
	var listeimg = document.images;
	for ( var i=0 ; i<listeimg.length ; i++ ) {
		if ( listeimg[i].id.substring(0,8) == "trwebimg" ) {
			if ( gabaritH>0 && gabaritW>0 ) {
				h = gabaritH;
				w = gabaritW;
	    	} else {
				h = listeimg[i].parentNode.offsetHeight;
				w = listeimg[i].parentNode.offsetWidth;
				if ( listeimg[i].parentNode.style.border != "" ) {
					h = h - 2;
					w = w - 2;
				}
	    	}
		    resizeimg(listeimg[i], h, w);
	    }
	}
}
function resizeimg( img, gabaritH, gabaritW) {
	existImg = img;
	newImg = new Image();
	newImg.src = existImg.src;
	var h = newImg.height, w = newImg.width;
	var dh = gabaritH / h, dw = gabaritW / w, d;
	d = (dh > dw) ? dw : dh;
	var hauteur = Math.ceil(h * d);
	var margintop = Math.ceil((Math.ceil(gabaritH - hauteur)) / 2);
	existImg.height = Math.ceil(h * d);
	existImg.style.marginTop = margintop + "px";
}
