// ======================================== PAGES ==========================================

$(function() {
	// ---------------------------------------- IE 6 ?
	var ieVers = msieVersion();
	if (ieVers > 0 && ieVers < 7) $('#erreurIE').text("<?=trad('erreurIE')?> " + ieVers);
	
	// ---------------------------------------- hauteur "1ere ligne" page
	/* plus besoin : réglé par des CSS
	var corrPadding = (ieVers > 0)? 35 : 0;
	var hauteurCorps = Math.max((713 - corrPadding),Math.floor(($(window).height())*75/100));
	//$('#leftcol').height(hauteurCorps);
	*/
	
	// ---------------------------------------- affichage menu Series avec effet ?
	if (etatMenuSeries == 0) setTimeout('menuSeriesVisible(true)',1000); // affichage avec effet si non encore défini en SESSION
});

// ======================================== DIVERS ==========================================

// Renvoit la version majeure d'IE ou 0 si non IE
function msieVersion() {
	var ua = window.navigator.userAgent;
	var msie = ua.indexOf("MSIE");
	if (msie > 0) {
		return parseInt (ua.substring (msie+5, ua.indexOf (".", msie ))); // If Internet Explorer, return version number
	}else{
		return 0; // If another browser, return 0
	}
}

// Changement de langue
function switchLangue() {
	// -------- AJAX
	ajaxPostJson('_php/a_langue.php', {langue : ''}, function(data) {
		if (!data.hasOwnProperty('error')) {
			alert('Warning: ajax return type error!\n\n' + data);
		}else{ // re-chargement page
			document.location.reload();
		}
		},function(error){
		alert(error.msg + '\n\nError code: ' + error.code);
	}, false); // synchrone
}

function getIndexFromID(chaine,repChar) {
	// attention : repChar ne peut être un opérateur de regex (comme *) !
	// renvoit -1 si repChar n'est pas trouvé dans la chaine
	if (repChar == undefined) repChar = '_';
	if (chaine == undefined) {
		chaine = repChar;
	}else{
		chaine = chaine.toString();
		if (chaine.indexOf(repChar,0) < 0) chaine = chaine + repChar;
	}
	var regexp = new RegExp('.*' + repChar);
	var resu = chaine.replace(regexp,'');
	return (resu == '')? -1 : resu;
}

// ===================================== MENU SERIES ========================================

// Affichage ou masquage du menu des Séries (toggle clic pour btn 'Images')
function switchSeries() {
	if ($('#menuSeries').is(':hidden')) {
		menuSeriesVisible(true);
	}else{
		menuSeriesVisible(false);
	}
}

// Visibilité menu Series (getter sans paramètre, et setter avec un paramètre booléen)
function menuSeriesVisible(newEtat) {
	if (newEtat !== undefined) {
		// --------- setter
		var nouvelEtat = (newEtat)? 1 : 2;
	}else{
		// --------- getter
		var nouvelEtat = '';
	}
	// -------- AJAX
	ajaxPostJson('_php/a_menuserie.php', {etatMenu : nouvelEtat}, function(data) {
		if (!data.hasOwnProperty('error')) {
			alert('Warning: ajax return type error!\n\n' + data);
		}else{
			etatMenuSeries = data.msg;
			if (nouvelEtat != '') setVisibleMenu(newEtat);
		}
		},function(error){
		alert(error.msg + '\n\nError code: ' + error.code);
	}, true); // asynchrone
}

// Affichage ou masquage du menu des Séries par passage de paramètre
function setVisibleMenu(newEtat) { // newEtat = booléen
	var pointer = $('#menuSeries');
	if (newEtat && pointer.is(':hidden')) {
		pointer.slideDown(1000);
	}else if (!newEtat && pointer.is(':visible')) {
		pointer.slideUp(400);
	}
}

// ========================================= AJAX ===========================================

function ajaxPostJson(url,objetData,fonctionSucces,fonctionError,asynchrone) {
	// asynchrone est optionnel (vaut TRUE par defaut)
	asynchrone = (asynchrone != undefined)? asynchrone : true;
	return $.ajax({
		"async": asynchrone,
		"type": "POST",
		"url": url,
		"data": objetData,
		"success": fonctionSucces,
		"error": function(XMLHttpRequest,textStatus,errorThrown) {
				fonctionError({"msg" : XMLHttpRequest.responseText, "code" : XMLHttpRequest.status});
			},
		"dataType": 'json'
	});
}

function ajaxGetJson(url,objetData,fonctionSucces,fonctionError,asynchrone) {
	// asynchrone est optionnel (vaut TRUE par defaut)
	asynchrone = (asynchrone != undefined)? asynchrone : true;
	return $.ajax({
		"async": asynchrone,
		"type": "GET",
		"url": url,
		"data": objetData,
		"success": fonctionSucces,
		"error": function(XMLHttpRequest,textStatus,errorThrown) {
				fonctionError({"msg" : XMLHttpRequest.responseText, "code" : XMLHttpRequest.status});
			},
		"dataType": 'json'
	});
}

