function displayContent (target, ctrDisplay, parameters, callback, displayLoading)
{
	new Ajax.Updater(target, ctrDisplay,
	{
		method:'post',
		parameters:parameters,
		onLoaded: function(requester) {
				createLoadingIn(target);
				//toggleBlindUp('returnField');
		},
		onComplete: function(requester) {
			//removeLoading();
			eval (callback);			
		},
		onException: function(requester) {
			alert ('Exception caught : '+this.responseText);
			//switchClass('returnField','error');
		},
		onFailure: function(requester) {
			alert ('Error ocuured : '+this.responseText);
			//switchClass('returnField','error');
		}
	});
}

function execAndDisplayContent (updateTarget, updateControl, updateParams, displayTarget, displayControl, displayParams, callback)
{
	new Ajax.Updater(updateTarget, updateControl,
	{
		method:'post',
		parameters:updateParams,
		onLoaded: function(requester) {
			createLoadingIn(displayTarget);
			toggleBlindUp('returnField');
		},
		onComplete: function(requester) {
			if (requester.responseText.match(/<br/)) {
				displayPhpError(requester.responseText);
			}
			else if (requester.responseText.match(/Success/)) {
				new Ajax.Updater(displayTarget, displayControl,
				{
					method:'post',
					parameters:displayParams,
					onComplete: function(requester) {
						eval (callback);
					},
					onException: function(requester) {
						displayAjaxError(this.responseText);
					},
					onFailure: function(requester) {
						displayAjaxError(this.responseText);
					}
				});
			}
			
		},
		onException: function(requester) {
			displayAjaxError(this.responseText);
		},
		onFailure: function(requester) {
			displayAjaxError(this.responseText);
		}
	});
}

function displayAjaxError(error) {
	alert ('Erreur Ajax : '+error);	
}

function displayPhpError(error) {
	if (DEBUG_MODE=='TRUE')
		alert ('Erreur : '+error);	
}

function createLoadingIn(target) {
	document.getElementById(target).innerHTML = '<div class="loading">Chargement en cours. Merci de patienter...</div>';
}

function toggleBlindDown(target)
{
	if (document.getElementById(target).style.display == 'none')
	{
		if (ACTIVE_EFFECTS == 'TRUE') {
			new Effect.BlindDown(target,
			{
				duration: 0.5
			});
		}
		else {
			document.getElementById(target).style.display='block';
		}
	}
}
function toggleBlindUp(target)
{
	if (document.getElementById(target).style.display != 'none')
	{
		if (ACTIVE_EFFECTS == 'TRUE') {
			new Effect.BlindUp(target,
			{
				duration: 0.5
			});
		}
		else {
			document.getElementById(target).style.display='none';
		}
	}	
}

function removeTinyMce(target)
{
	this.target=(target) ? target : 'contentText';
	if (document.getElementById(this.target))
	{
		tinyMCE.triggerSave();
		tinyMCE.execCommand('mceRemoveControl', false, this.target);
	}
}
function initTinyMce(target)
{
	this.target=(target) ? target : 'contentText';
	tinyMCE.execCommand('mceAddControl', false, this.target);
	tinyMCE.execCommand('mceFocus', false, this.target);
	//tinyMCE.idCounter++;
} //initTinyMce

function econsult_popup(url,winWidth,winHeight,winName,params) {
	var top=(screen.height-winHeight)/2;
	var left=(screen.width-winWidth)/2;
	window.open(url+'?'+params,winName,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width='+winWidth+',height='+winHeight+',left='+left+',top='+top);
}

function displayWeightChart(displayTarget, cltId) {
	 if (document.getElementById('weightGraph')) {
		 new Ajax.Updater(displayTarget, 'includes/ctrUpdate_client.php',
		 {
			method:'post',
			parameters:'section=getWeightGraphXml&cltId='+cltId+'',
			onLoaded: function(requester) {
				createLoadingIn(displayTarget);
			},
			onComplete: function(requester) {
				var chart1 = new FusionCharts("includes/FusionCharts/FusionCharts/FCF_Line.swf", "weightChart", "500", "300");
				chart1.setDataXML(""+requester.responseText+"");
				chart1.render(displayTarget);
			},
			onException: function(requester) {
				displayAjaxError(this.responseText);
			},
			onFailure: function(requester) {
				displayAjaxError(this.responseText);
			}
		});
	 }
}


function forceDownload(fileName, fileSrc, fileSize)
{
	window.location.href='download.php?fn='+fileName+'';
}

function selectMessages(myCase) {
	switch (myCase) {
		case "all":
			var elts = getElementsByClassName('chkbox');
			for (var i=0; i<elts.length; i++) {
				elts[i].checked=true;
			}
		break;
		
		case "none":
			var elts = getElementsByClassName('chkbox');
			for (var i=0; i<elts.length; i++) {
				elts[i].checked=false;
			}
		break;
		
		case "read":
			var elts = getElementsByClassName('chkbox');
			for (var i=0; i<elts.length; i++) {
				elts[i].checked=false;
			}
			var elts = getElementsByClassName('message', 'div');
			for (var i=0; i<elts.length; i++) {
				elts[i].getElementsByTagName('input')[0].checked=true;
			}
		break;
		
		case "non-read":
			var elts = getElementsByClassName('chkbox');
			for (var i=0; i<elts.length; i++) {
				elts[i].checked=false;
			}
			var elts = getElementsByClassName('newMessage', 'div');
			for (var i=0; i<elts.length; i++) {
				elts[i].getElementsByTagName('input')[0].checked=true;
			}
		break;
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function updatePrice(price) {
	new Ajax.Updater('payment', 'includes/ctrUpdate_client.php',
	 {
		method:'post',
		parameters:'section=updatePrice&price='+price+'',
		onComplete: function(requester) {
		}
	});
}

function switchClass(element_id, class_name) {
	var element = document.getElementById(element_id);
	if (element != null) {
		element.oldClassName = element.className;
		element.className = class_name;
	}
}

function selectSmiley (sId, mealId, nbSmileys) {
	for (var i=0; i<=nbSmileys; i++) {
		switchClass('s'+i+'_'+mealId,'passive');
	}
	switchClass('s'+sId+'_'+mealId,'active');
	document.getElementById('smileyId_'+mealId).value = sId;
}
