
/**************************************************************
 * SCRIPTS.JS
 **************************************************************
 * http://www.koama.com/
 **************************************************************
 * BUT : Scripts généraux pour les sites koama.
 **************************************************************/

/**************************************************************
 * viderChamp
 * BUT :
 * vider un champ lors de son focus
 * E :
 * string champ : l'id du champ à vider
 * string vinit : la valeur initiale du champ
 **************************************************************/
function viderChamp(champ,vinit) {
	//alert("champ : " + champ + "\n vinit : " + vinit)
	if (document.getElementById(champ).value == vinit) {
		document.getElementById(champ).value = "";
	}
}

/**************************************************************
 * ouvrir
 * BUT :
 * ouvrir une popup avec contenu et taille variable
 * E :
 * str url
 * int largeur
 * int hauteur
 * S :
 * popup, l'identificateur de la popup ouverte
 **************************************************************/
function ouvrir(url, largeur, hauteur) {
	var param = "width=" + largeur + ",height=" + hauteur + ",menubar=yes,scrollbars=yes,resizable=yes,statusbar=yes,left=20,top=20";
	popup = window.open(url, "popup", param);
	popup.focus();
	return popup;
}

/**************************************************************
 * zoom
 * BUT :
 * ouvrir une fenêtre de zoom
 * E :
 * str img, le nom de l'image à zoomer
 * int site, l'id du site à laquelle appartient l'image
 **************************************************************/
function zoom(img, site) {
	ouvrir("zoom.asp?img=" + img + '&site=' + site, 300, 300);
}


/**************************************************************
 * plus
 * BUT :
 * Masquer un bouton "plus" et afficher une zone précédemment masquée
 * E :
 * str afficher, l'id du div a afficher
 * str masquer, l'id du div a masquer
 **************************************************************/
function plus(afficher, masquer) {
	document.getElementById(afficher).style.display = "block";
	document.getElementById(masquer).style.display = "none";
}

/**************************************************************
 * imprimer
 * BUT :
 * Lancer l'impression d'une page
 **************************************************************/
function imprimer() {
	window.print();
}

/**************************************************************
 * veriflogin
 * BUT :
 * vérifier que les champs du login sont bien remplis
 * S :
 * bool valide, le formulaire est-il valide
 **************************************************************/
function veriflogin() {
	var valide = true;
	with (document.getElementById('formIdentification')) {
		if (login.value == "" || passwd.value == "") {
			valide = false;
		}
	}
	if (!valide) {
		window.alert("Veuillez remplir le login ET le mot de passe.");
	}
	return valide;
}

/**************************************************************
 * focuschamp
 * BUT :
 * mettre le focus dans un champ particulier
 * E :
 * str formulaire, le formulaire dans lequel est le champ
 * str champ, le champ sur lequel faire un focus
 **************************************************************/
function focuschamp(formulaire, champ) {
	document.forms[formulaire].elements[champ].focus();
}


/**************************************************************
 * isDate
 * BUT :
 * Tester si un champ est bien une date
 * E :
 * str DateToCheck, la date à vérifier
 * COM :
 * http://www.apriori-it.co.uk/FormatDate.asp
 **************************************************************/
function isDate(DateToCheck){
	if(DateToCheck==""){
		return true;
	}
	var m_strDate = FormatDate(DateToCheck);
	if(m_strDate==""){
		return false;
	}
	var m_arrDate = m_strDate.split("/");
	var m_DAY = m_arrDate[0];
	var m_MONTH = m_arrDate[1];
	var m_YEAR = m_arrDate[2];
	if(m_YEAR.length > 4){
		return false;
	}
	m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
	var testDate=new Date(m_strDate);
	if(testDate.getMonth()+1==m_MONTH){
		return true;
	} else{
		return false;
	}
}


/**************************************************************
 * FormatDate
 * BUT :
 * Formater une date selon un pattern
 * E :
 * str DateToFormat, la date à formater
 * S :
 * str, la date formatée
 * COM :
 * http://www.apriori-it.co.uk/FormatDate.asp
 **************************************************************/
function FormatDate(DateToFormat){

	// Si la date n'a pas été rentrée, on annule
	if(DateToFormat == ""){
		return "";
	}
	// Déclaration des variables
	var strReturnDate;
	DateToFormat = DateToFormat.toLowerCase();
	var arrDate
	var Separator = "/";
	
	/*
	 * Récupération des dates et test du format d'entrée
	 */
	
	// Retrouver le séparateur utilisé dans la date originale
	if(DateToFormat.indexOf("-")>-1){
		Separator = "-";
	}
	if(DateToFormat.indexOf("/")>-1){
		Separator = "/";
	}
	// On passe la date à formater dans un tableau, en éclatant la chaîne par le séparateur
	arrDate = DateToFormat.split(Separator);
	DateToFormat = "";
	// On repasse le tableau de la date dans une chaîne, mais en testant à chaque élément si il est vide
	for(var iSD = 0;iSD < arrDate.length;iSD++){
		if(arrDate[iSD]!=""){
			DateToFormat += arrDate[iSD] + Separator;
		}
	}
	// Suppression du dernier séparateur (ajouté en trop à la fin)
	DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
	// On ré-éclate la date dans un tableau
	arrDate = DateToFormat.split(Separator);
	// Si la date n'a pas 3 éléments, on arrête
	if(arrDate.length < 3){
		return "";
	}
	// Récupération du jour, mois et année dans des variables, à partir de la date en tableau (par défaut, jj/mm/aaaa)
	var DAY = arrDate[0];
	var MONTH = arrDate[1];
	var YEAR = arrDate[2];
	// si le mois est supérieur à 12, on inverse le mois et le jour (format mm/jj/aaaa)
	if(parseFloat(arrDate[1]) > 12){
		DAY = arrDate[1];
		MONTH = arrDate[0];
	}
	// Si le jour fait 4 chiffres, c'est une année (format aaaa/mm/jj)
	if(parseFloat(DAY) && DAY.toString().length==4){
		YEAR = arrDate[0];
		DAY = arrDate[2];
		MONTH = arrDate[1];
	}
	
	/*
	 * Modification des dates (un chiffre -> deux chiffres)
	 */
	
	// Modification de l'année : format aa ou aaaa
	var strTemp = YEAR.toString();
	// Si la taille de l'année est égale à 2
	if(strTemp.length==2){
		if(parseFloat(YEAR)>40){ // Si l'année est supérieurs à 40 : on considère qu'on est en 19xx
			YEAR = "19" + YEAR;
		} else { // Si l'année est inférieure à 40 : on considère qu'on est en 20xx
			YEAR = "20" + YEAR;
		}
	}
	// si la taille du mois est inférieure à deux, on ajoute un 0 devant
	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
		MONTH = "0" + MONTH;
	}
	// Si la taille du jour est inférieure à deux, on ajoute un 0 devant
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
		DAY = "0" + DAY;
	}
	
	// Renvoi de la date au format jj/mm/aaaa
	return DAY + "/" + MONTH + "/" + YEAR;
}


/**************************************************************
 * editercomposant
 * BUT :
 * Editer un composant à partir du front
 * E :
 * str formulaire, le nom du formulaire à modifier lié au
 *	composant à modifier
 **************************************************************/
function editercomposant(formulaire) {
	var popup = ouvrir("",600,500);
	document.forms[formulaire].target = "popup";
	popup.focus();
}


/**************************************************************
 * montrerMenu
 * BUT :
 * Montrer un sous-menu
 * E :
 * id, le sous-menu à afficher
 **************************************************************/
function montrerMenu(ssmenu,menu) {
	// Variables utilisées
	var d = document.getElementById(ssmenu);
	var m = document.getElementById(menu);
	// Parcours des menus et sous-menus
	for (var i = 1; i<=10; i++) {
		// Masquage de tous les sous-menus
		if (document.getElementById('ssmenu'+i)) {
			document.getElementById('ssmenu'+i).style.visibility = 'hidden';
		}
		// Changement de couleur de fond en normal de tous les menus
		/*if (document.getElementById('menu'+i)) {
			if (document.getElementById('menu'+i).className == 'menu-on') {
				document.getElementById('menu'+i).style.background = '#3F4461';
			} else {
				document.getElementById('menu'+i).style.background = '#339';
			}
		}*/
	}
	// Affichage du sous-menu demandé
	if (d) {
		d.style.visibility = 'visible';
	}
	// Changement de couleur de fond du menu
	/*if (m) {
		if (m.className == 'menu-on') {
			m.style.background = '#BD9E53';
		} else {
			m.style.background = '#66c';
		}
	}*/
}

