// JavaScript Document
function show_hide(Obj)
      {
		  img = Obj.firstChild;
		  elt = (document.all) ? Obj.parentNode.nextSibling : Obj.parentNode.nextSibling.nextSibling;
            if ( (elt.className == '') || (elt.className == 'deplier') ) {
                  elt.className='plier';
                  img.className='imgplier';
            }
            else {
                  elt.className='deplier';
                  img.className='imgdeplier';
            }
      }

function hiding(tableau) {
	var etat = document.getElementById(tableau);
	if (etat.className == 'actif') {etat.className = 'inactif';}
	else {etat.className = 'actif';}	
}

function buildDDL(id, data, id_field, label_field, default_id, default_text) {
	if (!$(id)) return;
	$(id).options.length = 0;
	
	if (default_id != null) {
		var opt = new Option(default_text, default_id, true, true);
		$(id).options[0] = opt;
	}
	
	var j = data.length;
	if ((data == false) || (j == 0)) {
		$(id).disabled = true;
	} else {
		if (is_array(data)) {	// fix dans le cas ou on ne renvoit qu'un seul élément
			for (var i = 0; i < j; i++) {
				opt = new Option(data[i][label_field], data[i][id_field], false, false);
				$(id).options[$(id).options.length] = opt;
			}
		} else {
			opt = new Option(data[label_field], data[id_field], false, false);
			$(id).options[$(id).options.length] = opt;					
		}
		$(id).disabled = false;
	}
}

function disableDDL(id) {
	$(id).disabled = true;
}
function emptyDDL(id) {
	$(id).options.length = 0;
}

function getDDLdata(selectId, requestURL, functionName, idValue, idField, labelField, default_id, default_text, callback) {
	var parameters = 'call=' + functionName + '&id=' + idValue;
	var myAjax = new Ajax(_BASE_HREF+'lib/' + requestURL + '.php', {method: 'post', postBody: parameters, asynchronous: false, onFailure: function(e) { alert('Merci de patienter'); }, onComplete: function(req) {
		var myRep = Json.evaluate(req);
		buildDDL(selectId, myRep, idField, labelField, default_id, default_text);
		if (callback) {
			eval(callback);
		}
	}}).request();
}



/**
 * Teste si une variable donnee est un array, meme utilisation que la fonction php.
 **/
function is_array(variable)
{
	return (variable.constructor.toString().indexOf('Array') != -1);
}

/**
 * Ajoute une option dans un select
 */
function addOption(id, value, label)
{
	var opt = new Option(label, value, false, false);
	$(id).options[$(id).options.length] = opt;
}

/**
 * R�cup�re le contenu du label d'un �l�ment de formulaire
 */
function getInputLabel(id) {
	var labels = $ES('label');
	var j = labels.length;
	for (var i = 0; i < j; i++) {
		if (labels[i].htmlFor == id) {
			return labels[i].innerHTML;
		}
	}
	return null;
}

/**************************************************************************/
// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
// @param d représente la date saisie par l'utilisateur
// Le séparateur est défini dans la variable separateur // la date doit être comprise antre 1900 et 2199
/**************************************************************************/
function isDate(d)
{
	var amin = 1900; // année mini
	var amax = 2199; // année maxi
	
	if (d == "") // si la variable est vide on retourne faux
		return false;
	
	e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$");
	
	if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
		return false; // Si pas bon, retourne faux
	
	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	j = parseInt(d.split("/")[0], 10); // jour
	m = parseInt(d.split("/")[1], 10); // mois
	a = parseInt(d.split("/")[2], 10); // année
	
	if(d.split("/")[0].length != 2)
		return false;

	if(d.split("/")[1].length != 2)
		return false;

	if(d.split("/")[2].length != 4)
		return false;
	
	if (a < amin || a > amax)
		return false;
	
	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 != 0 || a%400 == 0)
		fev = 29;
	else
		fev = 28;
	
	// Nombre de jours pour chaque mois
	nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
	
	// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
	return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}


String.prototype.replaceAll = function(searchStr, replaceStr) {
	var tmpStr = this;
	while (tmpStr.indexOf(searchStr) != -1) {
		tmpStr = tmpStr.replace(searchStr, replaceStr);
	}
	return tmpStr;
}

/**
 * affiche la popup confirmant la sélection d'un stage
 */
/*function selectionneStage(cours_id) {
	window.open('fileadmin/acadomia/scripts/selectionneStage.php?cours_id=' + cours_id, 'selectionneStage', 'status=1, height=175, width=746');
}*/
/*function selectionneStage(cours_id, niveau_id, serie_id,current_application_virtual_path) {
	window.open(current_application_virtual_path+'templates/scripts/selectionneStage.php?cours_id=' + cours_id + '&niveau_id=' + niveau_id + '&serie_id=' + serie_id, 'selectionneStage', 'status=1, height=175, width=746');
}*/

function selectionneStage(cours_id, niveau_id, serie_id,current_application_virtual_path, agence_id) {
	window.open(_BASE_HREF+'reserver-en-ligne/selection-article.html?cours_id=' + cours_id + '&niveau_id=' + niveau_id + '&serie_id=' + serie_id + '&agence_id=' + agence_id, 'selectionneStage', 'status=1, height=175, width=746');
	//window.open(_BASE_HREF+'reserver-en-ligne/selection-article.html?cours_id=' + cours_id + '&niveau_id=' + niveau_id + '&serie_id=' + serie_id + '&agence_id=' + agence_id, 'selectionneStage');
}


/**
 * affiche la popup confirmant la sélection d'un PHS
 */
function selectionnePHS(produit_id) {
	window.open('templates/scripts/selectionnePHS.php?produit_id=' + produit_id, 'selectionnePHS', 'status=1, height=175, width=746');
}

/** 
* ouverture d'une nouvelle popup centrée
*/
function NewWindow(mypage,myname,w,h){
	var win = null;
	LeftPosition	= (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition 	= (screen.height) ? (screen.height-h)/2 : 0;
	settings 		= 'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=no'+',resizable'
	win 			= window.open(mypage,myname,settings)
	if(win.window.focus){
		win.window.focus();
	}
}

function ajaxError() {
	alert('Le service est actuellement indisponible, réessayez ultérieurement');
}

function xt_med(type,section,page,x1,x2,x3,x4,x5){
	document.location = x2;
}

/*
	get Data from database 
*/
function getDDLdataOptionGroup(selectId, requestURL, functionName, idValue, idField, labelField,groupField,default_id, default_text, callback) {

	var matiereOption = document.getElementById(selectId);

	if (matiereOption){
		matiereOption.options.length = 0;
		matiereOption.innerHTML='';
		matiereOption.disabled=true;
		
		var parameters = 'call=' + functionName + '&id=' + idValue;
		var myAjax = new Ajax('templates/scripts/ajax/' + requestURL + '.php', {method: 'post', postBody: parameters, asynchronous: false, onFailure: function(e) { alert('Merci de patienter'); }, onComplete: function(req) {
			var myRep = Json.evaluate(req);
			buildDDLOptionGroup(matiereOption, myRep, idField, labelField, groupField,default_id, default_text);
			if (callback) {
				eval(callback);
			}
		}}).request();
	}
}
/*
	build a combobox with option group
*/
function buildDDLOptionGroup(objOption,data,id_field,label_field,group_field, default_id, default_text) {
	
	if (objOption){
		objOption.options.length = 0;
		objOption.innerHTML='';
		
		
		if (default_id != null) {
			var opt = new Option(default_text, default_id, true, true);
			objOption.options[0] = opt;
		}
		if (is_array(data)){// fix dans le cas ou on ne renvoit qu'un seul élément
			var optionGroupName='*';
			var oOptionGroup;
			for (var i = 0; i < data.length ; i++) {
				if (data[i][group_field]!=optionGroupName){
					oOptionGroup = document.createElement("OPTGROUP");
					objOption.appendChild(oOptionGroup);
					oOptionGroup.label = data[i][group_field];
					optionGroupName=data[i][group_field];
				}
				if (oOptionGroup){
					var oOption = document.createElement("OPTION");
					oOption.innerHTML = data[i][label_field];
					oOption.value = data[i][id_field];
					oOptionGroup.appendChild(oOption);
				}
			}
			objOption.disabled = false;	
		}
	}	
}
/*
*/
function buildListCheck(id,titleId,data, id_field, label_field){
	
	if (!$(id)) return;
	var j = data.length;
	if ((data == false) || (j == 0)) {
		$(id).style.display = 'none';
	}

	var matiereLeftHtml='';
	var matiereRightHtml='';
	if (is_array(data)) {	// fix dans le cas ou on ne renvoit qu'un seul élément
		for (var i = 0; i <Math.round(j/2); i++) {
			matiereLeftHtml += '<tr><td align="left"><input type="checkbox" id="matiere1" name="matiere1[]" value="'+n+'_'+data[i][id_field]+'" >'+data[i][label_field]+'</td></tr>';
		} 
		for (var i = Math.round(j/2); i <j; i++) {
			matiereRightHtml += '<tr><td align="left"><input type="checkbox" id="matiere1" name="matiere1[]" value="'+n+'_'+data[i][id_field]+'" >'+data[i][label_field]+'</td></tr>';
		} 
	} else {
		matiereLeftHtml += '<tr><td align="left"><input type="checkbox" id="matiere1" name="matiere1[]" value="'+n+'_'+data[id_field]+'" >'+data[label_field]+'</td></tr>';
	}
	$(id).innerHTML = '<table width="90%" >'+
		'<tr><td width="50%" style="padding-left:2px" valign="top" >'+
				'<table width="100%">'+matiereLeftHtml+'</table>'+
			 '</td>'+
			 '<td width="50%" style="padding-left:2px"  valign="top">'+
 				'<table width="100%">'+matiereRightHtml+'</table>'+
			 '</td>'+
		'</tr></table>';	 
	$(id).style.display='block';	
	$(titleId).style.display='block';
}
/*
*/
function getListCheckData(selectId,selectTitleId, requestURL, functionName, idValue, idField, labelField, default_id, default_text, callback){
	var parameters = 'call=' + functionName + '&id=' + idValue;
	var myAjax = new Ajax('templates/scripts/ajax/' + requestURL + '.php', {method: 'post', postBody: parameters, asynchronous: false, onFailure: function(e) { alert('Merci de patienter'); }, onComplete: function(req) {
		var myRep = Json.evaluate(req);
		buildListCheck(selectId,selectTitleId, myRep, idField, labelField, default_id, default_text);
		if (callback) {
			eval(callback);
		} 
	}}).request();
}
/*
	remove this function from article.js file
*/
function popup(url, width, height){
	window.open(url, "acadomia", "width="+width+", height="+height);
}
