////////////////////////////////////////////////////////////////////////
function doAction( phpclass, method, params, jsobj )
	{
	$.ajax({
		type:"GET",
		url:"/ajax.request.php5",
		data:'&action=method&phpclass=' + escape( phpclass ) + '&method=' + escape( method ) + '&params=' + escape( params ),
		success:function(response){actionComplete( response, phpclass, method, params, jsobj );},
		error:function(response){actionNotComplete( response, phpclass, method, params, jsobj );}
		});
	}

////////////////////////////////////////////////////////////////////////
function doJson( phpclass, method, params, jsobj )
	{
	$.ajax({
		type:"GET",
		url:"/ajax.request.php5",
		data:'&action=json&phpclass=' + escape( phpclass ) + '&method=' + escape( method ) + '&params=' + escape( params ),
		success:function(response){actionComplete( response, phpclass, method, params, jsobj );},
		error:function(response){actionNotComplete( response, phpclass, method, params, jsobj );}
		});
	}

////////////////////////////////////////////////////////////////////////
function doHTML( phpclass, method, params, jsobj )
	{
	$.ajax({
		type:"GET",
		url:"/ajax.request.php5",
		data:'&action=html&phpclass=' + escape( phpclass ) + '&method=' + escape( method ) + '&params=' + escape( params ),
		success:function(response){actionComplete( response, phpclass, method, params, jsobj );},
		error:function(response){actionNotComplete( response, phpclass, method, params, jsobj );}
		});
	}

////////////////////////////////////////////////////////////////////////
function actionComplete( response, phpclass, action, params, jsobj )
	{
	obj = eval( '(' + response + ')' );
	if( obj.status == 0 )
		{
		messageBox( 'mbOK', unescape( obj.message ) );
		}
	else
	if( obj.status == 1 )
		{
		}
	else
	if( obj.status == 2 )
		{
		if( obj.message != '' )
			{
			messageBox( 'mbOK', unescape( obj.message ) );
			}
		eval( action + 'OnComplete( response, phpclass, action, params, jsobj );' );
		}
	}
	


////////////////////////////////////////////////////////////////////////
function actionNotComplete( response, phpclass, action, params, jsobj )
	{
	obj = eval( '(' + response + ')' );
	if( obj.status == 0 )
		{
		messageBox( 'mbOK', unescape( obj.message ) );
		}
	else
	if( obj.status == 1 )
		{
		}
	else
	if( obj.status == 2 )
		{
		if( obj.message != '' )
			messageBox( 'mbOK', unescape( obj.message ) );
		eval( action + 'OnNotComplete( response, phpclass, action, params, jsobj );' );
		}
	}


////////////////////////////////////////////////////////////////////////
function sendRequest( phpclass, action, keyid, jsobj, formid )
	{
	var toQS = "";
	if(formid)
		{
		var frm_div = document.getElementById(formid);
		var flds    = frm_div.getElementsByTagName("input");
		for( var i=0; i<flds.length; i++ )
			{
			elt = flds[i];
			toQS +='&' + elt.name + '='+escape( elt.value );
			}
		flds = frm_div.getElementsByTagName("select");
		for( var i=0; i<flds.length; i++ )
			{
			elt = flds[i];
			toQS +='&' + elt.name + '='+escape( elt[elt.selectedIndex].value );
			}
		}

	$.ajax({
		type:"GET",
		url:"/ajax.request.php5",
		data:'&phpclass=' + escape( phpclass ) + '&action=' + escape( action ) + '&keyid=' + escape( keyid ) + toQS,
		success:function(response){requestComplete( response, phpclass, action, keyid, jsobj, formid );return true;},
		error:function(response){requestFailure( response, phpclass, action, keyid, jsobj, formid );return true;}
		});
	return false;
	}


////////////////////////////////////////////////////////////////////////
function requestComplete( response, phpclass, action, keyid, jsobj, formid )
	{
	obj = eval( '(' + response + ')' );
	if( obj.status == 0 )
		{
		messageBox( 'mbOK', unescape( obj.message ) );
		}
	else
	if( obj.status == 1 )
		{
		}
	else
	if( obj.status == 2 )
		{
		if( obj.message != '' )
			messageBox( 'mbOK', unescape( obj.message ) );
		if(action != undefined)
			{
			eval(action + "OnComplete('" + phpclass + "','" + action + "'," + keyid + ",'" + jsobj + "','" + formid + "');");
			}
		if(formid != undefined)
			{
			eval(formid + "OnComplete(null ,'" + jsobj + "');");
			}
		}
	}


////////////////////////////////////////////////////////////////////////
function aswChangeAction( phpclass, newaction, keyid, jsobj )
	{
	$('#' + jsobj).unbind('click');
	$('#' + jsobj).click(function() {
		sendRequest( phpclass, newaction, keyid, jsobj );
		});
	}
	

////////////////////////////////////////////////////////////////////////
function aswChangeChildImage( url, jsobj )
	{
	$('#'+jsobj).find(":nth-child(1)").attr('src', url );
	}

	
////////////////////////////////////////////////////////////////////////
function publishOnComplete( phpclass, action, keyid, jsobj )
	{
	aswChangeAction( phpclass, 'unpublish', keyid, jsobj );
	aswChangeChildImage( '/manager/images/btn-act-cacher.gif', jsobj );
	}

	
////////////////////////////////////////////////////////////////////////
function unpublishOnComplete( phpclass, action, keyid, jsobj )
	{
	aswChangeAction( phpclass, 'publish', keyid, jsobj );
	aswChangeChildImage( '/manager/images/btn-act-afficher.gif', jsobj );
	}


////////////////////////////////////////////////////////////////////////
function normalOnComplete( phpclass, action, keyid, jsobj )
	{
	aswChangeAction( phpclass, 'important', keyid, jsobj );
	aswChangeChildImage( '/manager/images/normal.png', jsobj );
	}

	
////////////////////////////////////////////////////////////////////////
function importantOnComplete( phpclass, action, keyid, jsobj )
	{
	aswChangeAction( phpclass, 'normal', keyid, jsobj );
	aswChangeChildImage( '/manager/images/important.png', jsobj );
	}

	
////////////////////////////////////////////////////////////////////////
function messageBox( type, message )
	{
	switch( type )
		{
		case 'mbOK':
			alert( message );
			return true;
			break;
		case 'mbYesNo':
			return confirm( message );
			break;
		default:
			alert( 'messageBox : type inconnu !' );
			return false;
			break;
		}
	}

	
////////////////////////////////////////////////////////////////////////
function requestFailure( response, phpclass, action, keyid )
	{
	alert( 'requestFailure : ' + response );
	}

