// scriptsCommuns.js

//	fonctions javascript utilisables
// APPEL
// <SCRIPT language="JavaScript" src= "Scripts/scriptsCommuns.js"></SCRIPT>
// a inserer derriere la balise body

// Exemples dans le projet Maquettes/charteGraphique

//_____________________________
// effets de roll-over
//_____________________________
function surLien(el) {
	el.style.color = "#ff4500";
	el.style.cursor = "hand";}

// effet de roll-over	
function horsLien(el) {
	el.style.color = "#942d0c";}


// effet de roll-over	
function horsLienBlanc(el) {
	el.style.color = "#ffffff";}
		
// effet lien sur image
function curseurMain(el)	{
	el.style.cursor = "hand";}
	
	
//_____________________________
// fenetre pop up 
//_____________________________
	
//urlServletOuHTML = chemin page HTML ou alias servlet avec ses parametres
// nom de la fenetre obligatoire pour ouvrir toujours la meme avec le meme bouton
// nom ="" pour avoir autant de fenetres que que de clics du bouton

function ouvrirPopUp(x, y, w, h, urlServletOuHTML, nom){
fenetre=  window.open(urlServletOuHTML, nom, "left="+ x+", top=" + y+", width="+ w + ", height="+ h +",resizable=yes, scrollbars=yes , toolbar=no ,menubar=no");
//fenetre.moveTo(x,y);
fenetre.resizeTo(w,h);
fenetre.focus();
return fenetre;}
	
function fermerPopUp(fenetrePopUp){
	try	
		{if (fenetrePopUp != null)
			{if (! fenetrePopUp.closed)
				fenetrePopUp.close();}}
	catch (ex)
		{};}	
		
function ouvrirFenetreHautGauche(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY(0, 0, urlServletOuHTML, nom,  proportionX, proportionY);
}
function ouvrirFenetreHautDroite(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY(screen.width - (largeurFenetre() * proportionX), 0, urlServletOuHTML, nom, proportionX, proportionY);
}
function ouvrirFenetreBasGauche(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY(0, screen.height - (hauteurFenetre() * proportionY), urlServletOuHTML, nom, proportionX, proportionY);
}
function ouvrirFenetreBasDroite(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY(screen.width - (largeurFenetre() * proportionX), screen.height  - (hauteurFenetre() * proportionY), urlServletOuHTML, nom, proportionX, proportionY);
}
// Positionnement PopUp calendrier édition liste engagements.
function ouvrirFenetreCalendrierDebutEng(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-800) - (largeurFenetre() * proportionX),100, urlServletOuHTML, nom, proportionX, proportionY);
}
function ouvrirFenetreCalendrierFinEng(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-250) - (largeurFenetre() * proportionX),100, urlServletOuHTML, nom, proportionX, proportionY);
}
// Positionnement PopUp calendrier Proces Verbaux.
function ouvrirFenetreCalendrierDebut(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-500) - (largeurFenetre() * proportionX),292, urlServletOuHTML, nom, proportionX, proportionY);
}
function ouvrirFenetreCalendrierFin(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-250) - (largeurFenetre() * proportionX),292, urlServletOuHTML, nom, proportionX, proportionY);
}

// Positionnement PopUp calendrier Conditions Course.
function ouvrirFenetreCalendrierDebutCS(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-550) - (largeurFenetre() * proportionX),420, urlServletOuHTML, nom, proportionX, proportionY);
}
function ouvrirFenetreCalendrierFinCS(urlServletOuHTML, nom, proportionX, proportionY){
return ouvrirFenetreXY((screen.width-300) - (largeurFenetre() * proportionX),420, urlServletOuHTML, nom, proportionX, proportionY);
}

 function ouvrirFenetreXY(x, y, urlServletOuHTML, nom, proportionX, proportionY){
// proportion est un float  exemple  0.33
//modif du 25/05 pour avoir une taille minimum des fenetres pops-up de 400/300
var largeur = largeurFenetre() * proportionX ;
var hauteur = hauteurFenetre() * proportionY ;
if(largeur<400) largeur = 400;
if(hauteur<300) hauteur = 300;
return ouvrirPopUp(
 	x,
 	y, 
 	largeur, 
 	hauteur,
 	urlServletOuHTML, 
 	nom);}	
 	
 	
//supprimer suivantes
function ouvrirDemiFenetreGauche(urlServletOuHTML, nom){
return ouvrirPopUp(
 	origineFenetreX(),
 	origineFenetreY(), 
 	largeurFenetre() / 2 , 
 	hauteurFenetre(),
 	urlServletOuHTML, 
 	nom);}
function ouvrirDemiFenetreDroite(urlServletOuHTML, nom){
return ouvrirPopUp(
 	origineFenetreX() + (largeurFenetre() / 2),
 	origineFenetreY(), 
 	largeurFenetre() / 2 , 
 	hauteurFenetre(),
 	urlServletOuHTML, 
 	nom);}
function ouvrirDemiFenetreHaute(urlServletOuHTML, nom){
return ouvrirPopUp(
 	origineFenetreX(),
 	origineFenetreY(), 
 	largeurFenetre(),
 	hauteurFenetre() /2,
 	urlServletOuHTML, 
 	nom);}
function ouvrirDemiFenetreBasse(urlServletOuHTML, nom){
 return ouvrirPopUp(
 	origineFenetreX(),
 	origineFenetreY() + (hauteurFenetre() /2), 
 	largeurFenetre() , 
 	hauteurFenetre() / 2,
 	urlServletOuHTML, 
 	nom);} 
 	
 function ouvrirQuartFenetreHaute(urlServletOuHTML, nom){
 return ouvrirPopUp(
 	origineFenetreX()+ (largeurFenetre()-200 ),
 	origineFenetreY(), 
 	largeurFenetre() - 670, 
 	hauteurFenetre() / 3,
 	urlServletOuHTML, 
 	nom);} 
 	
 	
 	
 //fin des suppressions	
 		 			
function largeurFenetre() {
//netscape
if (top.outerWidth)
	return top.outerWidth;
//ie
if (top.document.body && top.document.body.offsetWidth) 
	return (top.document.body.offsetWidth-200);
//inconnu
return 600;}
		
function hauteurFenetre() {
//netscape
if (top.outerHeight)
	return top.outerHeight;
//ie
if (top.document.body && top.document.body.offsetHeight) 
	return top.document.body.offsetHeight;
 
//inconnu
return 550;}	

function origineFenetreX() {
//netscape
if (top.screenX)
	return top.screenX;
//ie
if (top.screenLeft)
	return top.screenLeft;
//inconnu
return 0;}	

function origineFenetreY() {
//netscape
if (top.screenX)
	return top.screenX;
//ie
if (top.screenTop)
	return top.screenTop;
//inconnu
return 0;}	

			
//_____________________________
// controles de saisie
//_____________________________
// appel sur la balise FORM
//  onsubmit="return verifierChampsSaisis(this,['nom1', 'nom2']);"
// nom1, nom2, nomn sont les noms des champs a verifier


function verifierChampsSaisis(formulaire, liste){
	var tableauErreurs = new Array();
	for (var i = 0; i< liste.length; i++)
		{nomChampEtMessage = liste[i];
		nomChamp = nomChampEtMessage[0];
		messageErreur = nomChampEtMessage[1];
		listeChamps = formulaire.elements;
		for (var j = 0; j< listeChamps.length; j++)
			{champ= formulaire.elements[j];
			if (champ.name == nomChamp)
				break;};	
		valeurChamp = champ.value;
		if (nonSaisi(valeurChamp))
			tableauErreurs.push(messageErreur);};
	if (tableauErreurs.length != 0 )
		{var msgErreur = "";
		for (var i= 0; i< tableauErreurs.length; i++)
			{if (i != tableauErreurs.length )
				msgErreur = msgErreur + "\n" ;
			msgErreur = msgErreur + tableauErreurs[i];};
		alert(msgErreur);
		return false;}
	else
		{return true;}		
}
	
function nonSaisi(txt) {
	if (txt == null) return true;
	var ctr = 0;
	for (var i=0; i< txt.length; i++)
		{ if (txt.charAt(i) != " ")
			ctr = ctr + 1;
			break;}
	return (ctr == 0);}
	
//_____________________________
// checks box
//_____________________________	
function selectionGlobale(chkbox, nomFormulaire, nomChkBox ){
liste = document.forms;
for (i=0; i<liste.length; i++)
	{form = liste[i];
	if(form.id == nomFormulaire)
		{toutBasculer(form, nomChkBox, chkbox.checked);};
	}
}
function toutBasculer(form, nomChkBox, etat) {
liste = form.elements;
for (i=0; i<liste.length; i++)
	{element = liste[i];
	if (element.name == nomChkBox)
		{element.checked = etat;}};}
		
//_____________________________
// Pagination
//_____________________________

function pagination(valeur){
//var form = document.getElementById('formulairePagination');
var form = document.forms[0];//('formulairePagination');
form.pagination.value = valeur;
form.submit();}

function pageDebut(){
pagination('debut');}	

function pagePrecedente(){
pagination('precedente');}

function pageSuivante(){
pagination( 'suivante');}

function pageFin(){
pagination( 'fin');}


//_____________________________
// Liste des distances de course
// pour combobox (+)  (-)
//_____________________________

function distanceCoursePlusMini(fieldDistance)
{var i=fieldDistance.value*1 ;
	if(i==1100){ document.critere.distanceMin.value=1500;}
		else{if (i<3500 & i >1400){ document.critere.distanceMin.value=i+100;}
			else{if(i<5000 & i>3400){document.critere.distanceMin.value=i+500;}
				else{if (i==5000){document.critere.distanceMin.value=i;}}
			}
		}
}
function distanceCourseMoinsMini(fieldDistance)
{var i=fieldDistance.value*1 ;
		if(i==1100){ document.critere.distanceMin.value=1100;}
		else{if (i<3600 & i >1500){ document.critere.distanceMin.value=i-100;}
			else{if(i<5100 & i>3500){document.critere.distanceMin.value=i-500;}
				else{if (i==1500){document.critere.distanceMin.value=1100;}}
			}
		}
}
function distanceCoursePlusMax(fieldDistance)
{var i=fieldDistance.value*1 ;
	if(i==1100){ document.critere.distanceMax.value=1500;}
		else{if (i<3500 & i >1400){ document.critere.distanceMax.value=i+100;}
			else{if(i<5000 & i>3400){document.critere.distanceMax.value=i+500;}
				else{if (i==5000){document.critere.distanceMax.value=i;}}
			}
		}
}
function distanceCourseMoinsMax(fieldDistance)
{var i=fieldDistance.value*1 ;
		if(i==1100){ document.critere.distanceMax.value=1100;}
		else{if (i<3600 & i >1500){ document.critere.distanceMax.value=i-100;}
			else{if(i<5100 & i>3500){document.critere.distanceMax.value=i-500;}
				else{if (i==1500){document.critere.distanceMax.value=1100;}}
			}
		}
}


//-----------------------------------------------------------------
//Fonction qui affiche un texte qui 'suit' le scroll dans une page
//-----------------------------------------------------------------

function setTR(){
 document.getElementById('top_ret').style.top = 0 + document.body.scrollTop;
 x = document.getElementById('top_ret').style.top;
 x = x.replace(/px/g,'');
 if(x < 0){ x = 0; }
 document.getElementById('top_ret').style.top = x;
}
//-----------------------------------------------------------------
//Fonction qui affiche change le mois des calendriers de Engagement
//-----------------------------------------------------------------
function changerMois(p) {
document.getElementById('mois').value = p; 
//alert(document.getElementById('mois').value) ;
document.getElementById('formulaire').submit();}


//-------------------------------------------------------------------
// Fonction pour tester que le champs saisie est un numérique entier
//--------------------------------------------------------------------

function verifEntier(obj)
{
	if (isNaN(obj.value)) {
		alert('Veuillez saisir un entier');
	} else {
		if ((obj.value % 1)!=0) {
			alert('Ce champs de saisie doit contenir un entier (Number can not be a floating-point)');
		} else {
			return true;
		}
		return false;
	}
}


//-------------------------------------------------------------------
// TKT TKT: Fonction pour tester que le champs saisie ne dépasse pas une limite fixée
//--------------------------------------------------------------------
//trouvé sur: www.portugal-tchat.com// et adapté à notre utilisation

var ns6=document.getElementById&&!document.all

function restrictinput(maxlength,e,placeholder){
	if (window.event&&event.srcElement.value.length>=maxlength)
		return false;
	else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
		var pressedkey=/[a-zA-Z0-9\.\,\/]/ ;
		if (pressedkey.test(String.fromCharCode(e.which)))
			e.stopPropagation();
	}
}

function countlimit(maxlength,e,textAreaObj, counterDisplayObj){
	var lengthleft=maxlength-textAreaObj.value.length
	if (window.event||e.target&&e.target==eval(textAreaObj)){
		if (lengthleft<0)
			textAreaObj.value=textAreaObj.value.substring(0,maxlength)
		
		var texte = '<FONT color="green">(' + lengthleft + ' Caractères restants)</FONT>';
		if(lengthleft <= 0 )
			texte = '<FONT color="red">Vous ne pouvez plus saisir de caractères</FONT>';
		counterDisplayObj.innerHTML= texte;
	}
}

function displaylimit(textAreaObj, theid, thelimit, counterDisplayObj){
	var texte = '<FONT color="green">(' + thelimit + ' Caractères Maximum)</FONT>';
	counterDisplayObj.innerHTML= texte;
	if (document.all){
		eval(textAreaObj).onkeypress=function(){ return restrictinput(thelimit,event,textAreaObj)}
		eval(textAreaObj).onkeyup=function(){ countlimit(thelimit,event,textAreaObj, counterDisplayObj)}
	}
	else if (ns6){
		document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,textAreaObj) }, true); 
		document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,textAreaObj, counterDisplayObj) }, true); 
	}
}
