/*SITE DE CONSULTATION DES RESULTATS SPORTIFSSOHO INFORMATIQUE - METZ - FRANCE09-2008*/// MODULES DRAGGABLES + RESIZABLES -------------------------------------------------------------------------------------------------------------------------------/*$(document).ready(function() {	var zIndex									= 1000;	$('.drag').draggable({		grid: [25, 25],		opacity: 0.5,		zIndex: 10000,		containment: $('#generalContener'),		stop: function(e, ui) {			zIndex++;			$(ui.helper).css({ zIndex: zIndex});			EcrireCookie(ui.helper.attr('id')+'-top', 		ui.position.top+'px');		// cookie position top			EcrireCookie(ui.helper.attr('id')+'-left', 		ui.position.left+'px');		// cookie position left		}	});	$('.drag').resizable({		grid: [25, 25],		containment: $('#generalContener'),		stop: function(e, ui) {			zIndex++;			$(ui.helper).css({ zIndex: zIndex});			EcrireCookie(ui.helper.attr('id')+'-width', 	document.getElementById(ui.helper.attr('id')).style.width);			// cookie size width			EcrireCookie(ui.helper.attr('id')+'-height', 	document.getElementById(ui.helper.attr('id')).style.height);		// cookie size height		}	});	$('.drag').click(function() {				// clic sur le module le fait passer en premier plan		zIndex++;		$(this).css({ zIndex: zIndex});	});});*/// VARIABLES GLOBALES -------------------------------------------------------------------------------------------------------------------------------var Debug										= '';var SohoSports_ParametresModule					= new Array;var SohoSports_CssPrefix						= new Array;var SohoSports_TypeModule						= new Array;var SohoSports_TempoRefresh						= new Array;var SohoSports_TimerRefresh						= new Array;var SohoSports_ModulesEnfants					= new Array;// association des types de modules aux methodes du web servicevar SohoSports_MethodeWebService								= new Array;SohoSports_MethodeWebService['titreEntite']						= 'GetEntite';SohoSports_MethodeWebService['tableauResultatsGroupe']			= 'GetTableauResultatsJournee';SohoSports_MethodeWebService['tableauClassementsGroupe']		= 'GetTableauDernierClassement';SohoSports_MethodeWebService['sousEntites']						= 'GetSousEntites';SohoSports_MethodeWebService['journeeCouranteGroupe']			= 'GetJourneeCourante';SohoSports_MethodeWebService['journeesGroupe']					= 'GetJournees';SohoSports_MethodeWebService['journeesGroupeComplet']			= 'GetJournees';SohoSports_MethodeWebService['feuilleDeMatch']					= 'GetFeuilleDeMatch';SohoSports_MethodeWebService['tableauCompositionEquipe']		= 'GetEffectifEquipe';SohoSports_MethodeWebService['numeroJournee']					= 'GetNumJournee';// FUNCTIONS -------------------------------------------------------------------------------------------------------------------------------// edition de contenu dans le documentfunction edit(content) {	document.write(content);	}// creation d'un nouveau module (vide)/* 	id Module			: l'identifiant alphanumerique unique du module	parametresModule	: parametres de personnalisation du module ('param1,param2,...')	cssPrefixe			: prefixe des classes CSS utilisees pour la mise en forme du module	typeModule			: le type de module construit -> se referer  la liste des modules disponibles	tempoRefresh		: 	0 -> le module ne se rafraichit pas automatiquement							n -> le module se rafraichit toutes les n secondes (n entier) (n mini de 10)	modulesEnfants		: la liste des identifiants des modules qui seront pilotes par ce module ('idMod1,idMod2,...')*/function createSportsModule(idModule, parametresModule, cssPrefix, typeModule, tempoRefresh, modulesEnfants) {	// verification des entrees	var verifOK									= '';	if (idModule == '')							verifOK = 'Identifiant de module obligatoire.';					// idModule obligatoire	if (typeModule == '')						verifOK = 'Type de module obligatoire.';						// typeModule obligatoire	if (SohoSports_TypeModule[idModule])		verifOK = 'L\'identifiant de module '+idModule+' existe deja';	// idModule unique	if (verifOK != '') {		window.alert(verifOK);	} else {		// valeur mini de la tempo (10s)		if ((tempoRefresh < 10) && (tempoRefresh != 0)) {			tempoRefresh						= 10;		}		// conversion en ms de la tempo		tempoRefresh							= tempoRefresh * 1000;		// maj des globals		SohoSports_ParametresModule[idModule]	= parametresModule;		SohoSports_CssPrefix[idModule]			= cssPrefix;		SohoSports_TypeModule[idModule]			= typeModule;		SohoSports_TempoRefresh[idModule]		= tempoRefresh;		SohoSports_ModulesEnfants[idModule]		= modulesEnfants;		// gestion de l'autorefresh		if (tempoRefresh != 0) {							// si autorefresh			SohoSports_TimerRefresh[idModule]	= 1;		} else {											// si pas d'autorefresh			SohoSports_TimerRefresh[idModule]	= 0;		}		// construction du contener div		var content								= '<div id="'+idModule+'" class="'+cssPrefix+'contener">'+ModuleVideContent+'</div>';		// lecture du cookie de position et resize		var topPosition							= LireCookie('drag-'+idModule+'-top');		var leftPosition						= LireCookie('drag-'+idModule+'-left');		if (topPosition != null) {			$('#drag-'+idModule).css({ top: topPosition, left: leftPosition });		}		var widthSize							= LireCookie('drag-'+idModule+'-width');		var heightSize							= LireCookie('drag-'+idModule+'-height');		if (widthSize != null) {			$('#drag-'+idModule).css({ width: widthSize, height: heightSize });		}		// renvois le code contener		return(content);	}}// pilotage de module par un module maitre/* jeu de 2 functions recursives qui rafraichit les modules enfants, petits enfants, etc... du module idModule */function piloteSportsModules(idModule, arg1) {	// recuperation de la liste des modules enfants du module pilote	var listeModulesEnfants						= SohoSports_ModulesEnfants[idModule];	// execution de la recursivite	if (listeModulesEnfants != '') {		piloteRecursifSportsModules(listeModulesEnfants, arg1);	}}function piloteRecursifSportsModules(listeModulesEnfants, arg1) {	var module									= listeModulesEnfants.split(',');	var listeSuivante							= '';	for (i=0; module[i]; i++) {		// rafraichissement du module		argSportsModule(module[i], arg1);		// on recherche si le module a des enfants, et on complete la liste suivante si necessaire		if (SohoSports_ModulesEnfants[module[i]] != '') {			if (listeSuivante != '') {			// s'il y a deja des elements dans la liste, on rajoute d'abord une virgule (separateur)				listeSuivante					+= ',';			}			// on complete la liste			listeSuivante						+= SohoSports_ModulesEnfants[module[i]];		}	}		// si la liste suivante n'est pas vide, on relance une recursion, mais sans passage d'arguments	if (listeSuivante != '') {		piloteRecursifSportsModules(listeSuivante, '');	}}// passage d'arguments a un module cible par son idfunction argSportsModule(idModule, arg1) {	if (moduleExiste(idModule) == true) {		// refresh du module		refreshSportsModule(idModule, SohoSports_TypeModule[idModule], arg1);		// gestion de l'autorefresh si necessaire		if (SohoSports_TimerRefresh[idModule] != 0) {			window.clearInterval(SohoSports_TimerRefresh[idModule]);			SohoSports_TimerRefresh[idModule]	= window.setInterval("refreshSportsModule('"+idModule+"', '"+SohoSports_TypeModule[idModule]+"', '"+arg1+"')", SohoSports_TempoRefresh[idModule]);		}	}}// modification d'un type de module avec passage d'argumentfunction urlSportsModule(idModule, typeModule, arg1) {	if (moduleExiste(idModule) == true) {		// maj globals		SohoSports_TypeModule[idModule]	= typeModule;		// refresh du module		refreshSportsModule(idModule, typeModule, arg1);		// gestion de l'autorefresh si necessaire		if (SohoSports_TimerRefresh[idModule] != 0) {			window.clearInterval(SohoSports_TimerRefresh[idModule]);			SohoSports_TimerRefresh[idModule]	= window.setInterval("refreshSportsModule('"+idModule+"', '"+SohoSports_TypeModule[idModule]+"', '"+arg1+"')", SohoSports_TempoRefresh[idModule]);		}	}}// requeteur ajax de modulefunction refreshSportsModule(idModule, typeModule, arg1) {	if (moduleExiste(idModule) == true) {			if (typeModuleExiste(typeModule) == true) {					$('#'+idModule).html('<img src="images/loader01.gif">');			// preparation URL WS et arguments			var urlWS							= UrlWebService+SohoSports_MethodeWebService[typeModule];			var argWS							= arg1;			// requeteur en fonction du type de data renvoye par le WS -> ne fonctionne qui si au moins 1 argument est passe			if (argWS != '') {				// requeter PHP				if (phpRequeter == true) {					argWS						= argWS + '&' + 'urlWS=' + urlWS;	// on passe url du WS dans les arguments					$.ajax({						type: 'GET',						cache: false,						dataType: 'text',						url: 'requeters/requeterPHP.php',						data: argWS,						success: function(xml) {							if (EnableDebug == true) {			// affiche info debugage								Debug = Debug + ' -- ' + idModule + ' (<a href="' + UrlWebService + SohoSports_MethodeWebService[SohoSports_TypeModule[idModule]] + '?' + arg1 + '" target="_blank">'+ SohoSports_MethodeWebService[SohoSports_TypeModule[idModule]] + '?' + arg1 + '</a>)<br>';								$('#debug').html(Debug);							}							var html = getHtmlFromXml(idModule, typeModule, xml);							$('#'+idModule).html(html);						}, 						error: function() {							$('#'+idModule).html('erreur : pas de contenu disponible. Le module ne parvient pas a communiquer avec le web service.');						}					});				// requeter par defaut (non cross-domain)				} else {					// recupere en fait une string avec du xml encapsule dans <string> et interprete en html					$.ajax({						type: 'GET',						cache: false,						dataType: 'text',						url: urlWS,						data: argWS,						success: function(xml) {							if (EnableDebug == true) {			// affiche info debugage								Debug = Debug + ' -- ' + idModule + ' (<a href="' + UrlWebService + SohoSports_MethodeWebService[SohoSports_TypeModule[idModule]] + '?' + arg1 + '" target="_blank">'+ SohoSports_MethodeWebService[SohoSports_TypeModule[idModule]] + '?' + arg1 + '</a>)<br>';								$('#debug').html(Debug);							}							var html = getHtmlFromXml(idModule, typeModule, xml);							$('#'+idModule).html(html);						}, 						error: function() {							$('#'+idModule).html('erreur : pas de contenu disponible. Le module ne parvient pas a communiquer avec le web service.');						}					});				}			} else {				// si pas d'argument passe				$('#'+idModule).html(ModuleVideContent);			}		}	}}// testeur d'existance de module -> retourne une alerte javascript en cas de non existancefunction moduleExiste(idModule) {	if ($('#'+idModule).html()) {		return(true);	} else {		window.alert('le module '+idModule+' n\'existe pas.');		return(false);	}}// testeur d'existance de type de module -> retourne une alerte javascript en cas de non existancefunction typeModuleExiste(typeModule) {	if ((SohoSports_MethodeWebService[typeModule]) && (SohoSports_MethodeWebService[typeModule] != '')) {		return(true);	} else {		window.alert('le type de module '+typeModule+' n\'existe pas.');		return(false);	}}// recherche et remplace dans une stringfunction replaceAll(search, replace, target) {	while(target.indexOf(search, 0) != -1) {		target = target.replace(search, replace);	}	return(target);}// inverse les termes d'une date (aa-mm-jj -> jj-mm-aa) (date avec - separateur uniquement)function inverseDate(date) {	tempDate							= date.split('-');	return(tempDate[2] + '-' + tempDate[1] + '-' + tempDate[0]);}// convertion des principaux caracteres accentues en encodage htmlfunction HTMLentities(text) {	var caractCommun					= String.fromCharCode(195);	text								= replaceAll(caractCommun + String.fromCharCode(162),	'&acirc;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(174),	'&icirc;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(169),	'&eacute;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(168),	'&egrave;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(170),	'&ecirc;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(32),	'&agrave;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(167),	'&ccedil;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(171),	'&euml;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(185),	'&ugrave;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(339),	'&Uuml;',		text);		// 	text								= replaceAll(caractCommun + String.fromCharCode(8211),	'&Ouml;',		text);		// 	return(text);}// ecriture cookiefunction EcrireCookie(nom, valeur) {	var argv							= EcrireCookie.arguments;	var argc							= EcrireCookie.arguments.length;	var expires							= (argc > 2) ? argv[2] : null;	var path							= (argc > 3) ? argv[3] : null;	var domain 							= (argc > 4) ? argv[4] : null;	var secure							= (argc > 5) ? argv[5] : false;	document.cookie						= nom+"="+escape(valeur)+((expires==null) ? "" : ("; expires="+expires.toGMTString()))+((path==null) ? "" : ("; path="+path))+((domain==null) ? "" : ("; domain="+domain))+((secure==true) ? "; secure" : "");}// lecture cookiefunction getCookieVal(offset) {	var endstr							=	document.cookie.indexOf (";", offset);	if (endstr==-1) 					endstr=document.cookie.length;	return unescape(document.cookie.substring(offset, endstr));}function LireCookie(nom) {	var arg								= nom + "=";	var alen							= arg.length;	var clen							= document.cookie.length;	var i								= 0;	while (i<clen) {		var j							= i + alen;		if (document.cookie.substring(i, j) == arg) return getCookieVal(j);		i								= document.cookie.indexOf(" ",i) + 1;		if (i==0) break;	}	return null;}