/* --------------------------------------------------------------------
			CONSTANTES
 -------------------------------------------------------------------- */
var global_val_session = null;

BASEHREF = "http://www.tcmennecy.fr";

MESG_NO_XMLHTTPREQUEST = "Votre navigateur ne permet pas l'utilisation de toutes les fonctionnalités de ce site !";
MESG_NO_CONNECT_SERVER = "Impossible de contacter le serveur actuellement. Veuillez essayer à nouveau dans un instant.\n Détail de l'erreur : ";
MESG_NO_HTTP_RESPONSE = "Un problème est survenu dans la communication entre votre navigateur et le serveur !";
MESG_RESPONSE_MALFORMED = "Le format de la réponse renvoyée par le serveur est invalide !";
MESG_ERROR_SESSION = "Impossible de restaurer correctement votre session !";
MESG_NO_CHILDNODES = "Aucune réponse à traiter !";


/* --------------------------------------------------------------------
			FONCTIONS GENERIQUES
 -------------------------------------------------------------------- */
/*
 *
*/
function OpenWin( url )
{
	window.open( url , "othersite" );
	// alert( url );
}

/*
 *
*/
function GetValCookie( namecookie )
{
	namecookie += "=";
	var pos = document.cookie.indexOf( namecookie );

	if( pos == -1 ) return( false );

	var start = pos + namecookie.length;
	var end = document.cookie.indexOf( ";" , start );

	if( end == -1 ) end = document.cookie.length;

	var value = unescape( document.cookie.substring( start , end ) );

	return( value );
}

/*
 *
*/
function ShowHideObj( id , val )
{
	var foobar = document.getElementById( id ).style.visibility;
	if( foobar != val ) document.getElementById( id ).style.visibility = val;
}

/*
 *
*/
function DisplayObj( id , val )
{
	var foobar = document.getElementById( id ).style.display;
	if( foobar != val )  document.getElementById( id ).style.display = val;
}

/*
 *
*/
function InnerHtml( id , val )
{
	document.getElementById( id ).innerHTML = val;
}



/* --------------------------------------------------------------------
			FONCTIONS GENERIQUES (XMLHttpRequest)
 -------------------------------------------------------------------- */

/*
 *
*/
var request = null;
function HttpRequest( method , url , async , resp_handle )
{
	try {
		request = new XMLHttpRequest( ); /* No Microsoft */
	} 
	catch ( newxmlhttp ) { /* Yes Microsoft */
		try {
			request = new ActiveXObject( "Msxml2.XMLHTTP" );
		}
		catch ( oldxmlhttp ) {
			try {
				request = new ActiveXObject( "Microsoft.XMLHTTP" );
			}
			catch ( err ) {
				request = null;
			}
		}
	}

	if( !request )
	{
		alert( MESG_NO_XMLHTTPREQUEST );
		return( false );
	}

	InitReq( method.toLowerCase( ) , url , async , resp_handle , arguments[4] );
	
	return( true );
}

/*
 *
*/
function InitReq( method , url , async , resp_handle , args )
{
	try {
		request.onreadystatechange = resp_handle;
		request.open( method , url , async );
		if( method == "post" ) request.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=iso-8859-15" );
		request.send( args );
	}
	catch ( err ) {
		alert( MESG_NO_CONNECT_SERVER + err.message );
	}
}

/*
 *
*/
function HttpResponse( )
{
// alert( "readyState : " + request.readyState + "\nstatus : " + request.status );

	if( request.readyState != 4 ) return( false );

	if( request.status != 200 ) 
	{
		alert( MESG_NO_HTTP_RESPONSE );
		return( false );
	}

// alert(request.responseText);

	if( ! request.responseXML )
	{
		alert( MESG_RESPONSE_MALFORMED );
		return( false );
	}

	return( true );
}



/* --------------------------------------------------------------------
			FONCTIONS SPECIFIQUES
 -------------------------------------------------------------------- */

/*
 *
*/
function IsError( docXML )
{
	var msg_error;
	var flag_error;
	var undefined;

	if( ! docXML.hasChildNodes( ) ) return( MESG_NO_CHILDNODES );

	flag_error = docXML.getElementsByTagName( "flag_error" )[0];
	if( flag_error == undefined ) return( undefined );
	
	flag_error = docXML.getElementsByTagName( "flag_error" )[0].firstChild.nodeValue;
	if( flag_error == 0 ) return( undefined );

	msg_error = docXML.getElementsByTagName( "msg_error" )[0];
	if( msg_error == undefined ) return( undefined );

	msg_error = docXML.getElementsByTagName( "msg_error" )[0].firstChild.nodeValue;
	return( msg_error );
}

/*
 *
*/
function Session( action , var_session , val_session )
{
	var url = BASEHREF + "/php/session.php";
	var data = "action=" + escape( action );

	switch( action ) {
	case 'unset' :
		data = data + "&var_session=" + escape( var_session );
		break;
	case 'get' :
		data = data + "&var_session=" + escape( var_session );
		break;
	case 'set' :
		data = data + "&var_session=" + escape( var_session ) + "&val_session=" + escape( val_session );
		break;
	default :
		break;
	}

	HttpRequest( "post" , url , false , Resp_Session , data );
	return;
}

/*
 *
*/
function Resp_Session( )
{
	if( HttpResponse( ) == false ) return( false );

	try {
		var docXML = request.responseXML.documentElement;
		var undefined;

		if( (msg_error = IsError( docXML )) !== undefined ) { alert( msg_error ); return( false ); }

		var action = docXML.getElementsByTagName( "action" )[0];
		if( action != undefined ) action = docXML.getElementsByTagName( "action" )[0].firstChild.nodeValue;
		else action = "";

		switch( action ) {
		case 'get' :
			global_val_session = docXML.getElementsByTagName( "val_session" )[0];
			if( global_val_session != undefined ) global_val_session = docXML.getElementsByTagName( "val_session" )[0].firstChild.nodeValue;
			else global_val_session = null;
			break;
		case 'unset' :
			break;
		case 'set' :
			break;
		default :
			break;
		}

		return( true );
	}/* try */
	catch ( err ) {
		alert( MESG_RESPONSE_MALFORMED + "\n\n" + MESG_ERROR_SESSION + "\n\n" + err.message );
		return( false );
	}/* catch */
}

/* --------------------------------------------------------------------
			FONCTIONS SPECIFIQUES :: GESTIONNAIRE D'EVENEMENT.
 -------------------------------------------------------------------- */

/*
 * Chargement de la page.
*/
window.onload = function ( )
{
	return;
}


/* --------------------------------------------------------------------
			FONCTIONS SPECIFIQUES :: CALLBACK
 -------------------------------------------------------------------- */

/* ------------------------------------
 *
*/
function Accueil( )
{
        window.location.reload();
}

/* ------------------------------------
 *
*/
function CallBack( url , action )
{
	url = BASEHREF + escape( url );
	var data = "action=" + escape( action );

	HttpRequest( "post" , url , true , Resp_CallBack , data );
	return;
}

function CallBackPhoto( url , action , cur , deb , fin )
{
	url = BASEHREF + escape( url );
	var data = "action=" + escape( action );
	data += "&cur=" + escape( cur );
	data += "&deb=" + escape( deb );
	data += "&fin=" + escape( fin );

	HttpRequest( "post" , url , true , Resp_CallBack , data );
	return;
}

/*
 *
*/
function Resp_CallBack( )
{
	if( HttpResponse( ) == false ) return( false );

	try {
		var docXML = request.responseXML.documentElement;

		if( (msg_error = IsError( docXML )) !== undefined ) { alert( msg_error ); return( false ); }

		var xhtml = docXML.getElementsByTagName( "xhtml" )[0].firstChild.nodeValue;
		InnerHtml( "cover" , xhtml );

		return( true );
	}/* try */
	catch ( err ) {
		alert( MESG_RESPONSE_MALFORMED + "\n\n" + err.message );
		return( false );
	}/* catch */
}
