function newPopupAddInst(_args){
	var _table 			= _args != undefined && _args['table'] != undefined 			? _args['table']			: '';
	var _url 			= _args != undefined && _args['url'] != undefined 				? _args['url'] 				: '';
	var _className		= _args != undefined && _args['className'] != undefined 		? _args['className']	 	: 'alphacube';
	var _width			= _args != undefined && _args['width'] != undefined 			? _args['width'] 			: 1200;
	var _height			= _args != undefined && _args['height'] != undefined 			? _args['height'] 			: 910;
	var _title			= _args != undefined && _args['title'] != undefined 			? _args['title'] 			: '';
	var _statusbar		= _args != undefined && _args['statusbar'] != undefined 		? _args['statusbar'] 		: '&nbsp;';
	var _showCenter		= _args != undefined && _args['showCenter'] != undefined	 	? _args['showCenter']		: false;
	var _maximize		= _args != undefined && _args['maximize'] != undefined 			? _args['maximize'] 		: false;
	var _close_callback = _args != undefined && _args['close_callback'] != undefined	? _args['close_callback'] 	: null;

	if(getElem('id', 'add_'+_table))
		var effect = new PopupEffect(getElem('id', 'add_'+_table), {className: "popup_effect1", duration: 1.0, fromOpacity: 0.1, toOpacity: 0.6});
	var win = new Window( 	"popupAdd_"+_table,
							{	className: _className,
								width:_width,
								height:_height,
								resizable: true,
								title: _title,
								showEffect:(getElem('id', 'add_'+_table) ? effect.show.bind(effect) : Effect.Appear),
								hideEffect: (getElem('id', 'add_'+_table) ? effect.hide.bind(effect) : Effect.Fade),
								draggable:true,
								wiredDrag: false,
								destroyOnClose:true
							});
	try{
		win.setAjaxContent(_url, {method:'get',asynchronous:true,evalScripts:true});
		win.setStatusBar(_statusbar);
		_close_callback != null ? win.setCloseCallback(_close_callback) : null;
		_showCenter ? win.showCenter() : win.show();
		_maximize ? win.maximize() : null;
	} catch(e){}
	return win;
}
function newPopupModInst(_id, _args){
	var _table 			= _args != undefined && _args['table'] != undefined 			? _args['table']			: '';
	var _url 			= _args != undefined && _args['url'] != undefined 				? _args['url'] 				: '';
	var _className		= _args != undefined && _args['className'] != undefined 		? _args['className']	 	: 'alphacube';
	var _width			= _args != undefined && _args['width'] != undefined 			? _args['width'] 			: 800;
	var _height			= _args != undefined && _args['height'] != undefined 			? _args['height'] 			: 600;
	var _title			= _args != undefined && _args['title'] != undefined 			? _args['title'] 			: '';
	var _statusbar		= _args != undefined && _args['statusbar'] != undefined 		? _args['statusbar']	 	: '&nbsp;';
	var _showCenter		= _args != undefined && _args['showCenter'] != undefined 		? _args['showCenter']		: false;
	var _maximize		= _args != undefined && _args['maximize'] != undefined 			? _args['maximize'] 		: false;
	var _close_callback = _args != undefined && _args['close_callback'] != undefined	? _args['close_callback'] 	: null;

	if(getElem('id', 'inst_'+_table+'_'+_id))
		var effect = new PopupEffect(getElem('id', 'inst_'+_table+'_'+_id), {className: "popup_effect1", duration: 1.0, fromOpacity: 0.1, toOpacity: 0.6});
	var win = new Window( 	"popupMod_"+_table+"_"+_id,
							{	className: _className,
								width:_width,
								height:_height,
								resizable: true,
								title: _title,
								showEffect:(getElem('id', 'inst_'+_table+'_'+_id) ? effect.show.bind(effect) : Effect.Appear),
								hideEffect: (getElem('id', 'inst_'+_table+'_'+_id) ? effect.hide.bind(effect) : Effect.Fade),
								draggable:true,
								wiredDrag: false,
								destroyOnClose:true
							});
	try{
		win.setAjaxContent(_url+_id, {	method:'get',
										onComplete:function(){},
										onSuccess: function(t) {},
										asynchronous:true,
										evalScripts:true
									});
		win.setStatusBar(_statusbar);
		_close_callback != null ? win.setCloseCallback(_close_callback) : null;
		_showCenter ? win.showCenter() : win.show();
		_maximize ? win.maximize() : null;
	} catch(e){}
	return win;
}
function newPopup(_args){
	var _id 			= _args != undefined && _args['id'] != undefined 				? _args['id'] 				: '';
	var _url 			= _args != undefined && _args['url'] != undefined 				? _args['url'] 				: '';
	var _className		= _args != undefined && _args['className'] != undefined 		? _args['className'] 		: 'alphacube';
	var _iframe			= _args != undefined && _args['iframe'] != undefined	 		? _args['iframe'] 			: false;
	var _width			= _args != undefined && _args['width'] != undefined 			? _args['width'] 			: 500;
	var _height			= _args != undefined && _args['height'] != undefined 			? _args['height'] 			: 500;
	var _title			= _args != undefined && _args['title'] != undefined 			? _args['title'] 			: '';
	var _statusbar		= _args != undefined && _args['statusbar'] != undefined 		? _args['statusbar'] 		: '&nbsp;';
	var _maximize		= _args != undefined && _args['maximize'] != undefined 			? _args['maximize'] 		: false;
	var _showCenter		= _args != undefined && _args['showCenter'] != undefined 		? _args['showCenter']		: false;
	var _closable		= _args != undefined && _args['closable'] != undefined 			? _args['closable']			: true;
	var _minimizable	= _args != undefined && _args['minimizable'] != undefined 		? _args['minimizable']		: true;
	var _maximizable	= _args != undefined && _args['maximizable'] != undefined 		? _args['maximizable']		: true;
	var _draggable		= _args != undefined && _args['draggable'] != undefined 		? _args['draggable']		: true;
	var _close_callback = _args != undefined && _args['close_callback'] != undefined	? _args['close_callback'] 	: null;

	var url = _iframe ? _url : null;

	var param = Object.extend({	className: _className,
								width:_width,
								height:_height,
								resizable: true,
								closable: _closable,
								minimizable: _minimizable,
								maximizable: _maximizable,
								draggable: _draggable,
								title: _title,
								url: url,
								showEffect:Effect.Appear,
								hideEffect: Effect.Fade,
								draggable:true,
								wiredDrag: false,
								destroyOnClose:true
							});

	if(_id != ""){
		var win = new Window( _id,	param);
	} else {
		var win = new Window( 	param);
	}
	try{
		if(!_iframe){
			win.setAjaxContent(_url, {	method:'get',
											onComplete:function(){},
											onSuccess: function(t) {},
											asynchronous:true,
											evalScripts:true
										});
		}
		win.setStatusBar(_statusbar);
		_showCenter ? win.showCenter() : win.show();
		_close_callback != null ? win.setCloseCallback(_close_callback) : null;
		_maximize ? win.maximize() : null;
	} catch(e){}
	return win;
}
function newAjaxInPlaceEditor(_table, _row, _id, _args){

	var _url 			= _args != undefined && _args['url'] != undefined 			? _args['url'] 			: 'inc/ajax.submit.php?id=';
	var _type 			= _args != undefined && _args['type'] != undefined 			? _args['type'] 		: 'default';
	var _size 			= _args != undefined && _args['size'] != undefined 			? _args['size'] 		: 30;
	var _rows 			= _args != undefined && _args['rows'] != undefined 			? _args['rows'] 		: 1;
	var _ac_minChar 	= _args != undefined && _args['ac_minChar'] != undefined 	? _args['ac_minChar'] 	: 0;
	var _ac_url 		= _args != undefined && _args['ac_url'] != undefined 		? _args['ac_url'] 		: '';
	var _ac_callback 	= _args != undefined && _args['ac_callback'] != undefined 	? _args['ac_callback'] 	: null;
	var _ac_tokens 		= _args != undefined && _args['ac_tokens'] != undefined 	? _args['ac_tokens'] 	: [];
	var _onComplete 	= _args != undefined && _args['onComplete'] != undefined 	? _args['onComplete'] 	: function(){};
	var _loadTextURL 	= _args != undefined && _args['loadTextURL'] != undefined 	? _args['loadTextURL'] 	: null;

	var _cancelLink 	= (_type == 'calendar' || _type == 'calHour' || _type == 'autocompleter');
	var _submitOnBlur 	= !(_type == 'calendar' || _type == 'calHour' || _type == 'autocompleter');

	new Ajax.InPlaceEditor(
		_table + '_' + _id + '_' + _row,
		_url + _id + "&table=" + _table + "&row=" + _row, {
			cancelLink:_cancelLink,
			okButton:false,
			type:_type,
			ac_minChar:_ac_minChar,
			ac_url:_ac_url,
			ac_callback:_ac_callback,
			ac_tokens:_ac_tokens,
			onComplete:_onComplete,
			cancelText:"Annuler",
			savingText:'<img src="img/loading6.gif" />',
			clickToEditText:"Cliquez ici pour modifier",
			size:_size,
			cols:_size,
			loadTextURL:_loadTextURL,
			loadingText:'Chargement...',
			submitOnBlur:_submitOnBlur,
			onFailure:function(){ alert("Enregistrement impossible");},
			rows:_rows
		}
	);
}
function newAjaxInPlaceCollectionEditor(_table, _row, _id, _collection, _args){

	var _value 			= _args != undefined && _args['value'] != undefined 		? _args['value'] 		: '';
	var _url 			= _args != undefined && _args['url'] != undefined 			? _args['url'] 			: 'inc/ajax.submit.php?id=';
	var _size 			= _args != undefined && _args['size'] != undefined 			? _args['size'] 		: 30;
	var _onComplete 	= _args != undefined && _args['onComplete'] != undefined 	? _args['onComplete'] 	: function(){};

	new Ajax.InPlaceCollectionEditor(
		_table + '_' + _id + '_' + _row,
		_url + _id + "&table=" + _table + "&row=" + _row, {
			cancelLink:true,
			okButton:true,
			collection:_collection,
			value:_value,
			onComplete:_onComplete,
			cancelText:"Annuler",
			savingText:'<img src="img/loading6.gif" />',
			clickToEditText:"Cliquez ici pour modifier",
			size:_size,
			loadingText:'<img src="img/loading6.gif" />',
			submitOnBlur:false,
			onFailure:function(){ alert("Enregistrement impossible");},
			ajaxOptions: {method: 'post'}
		}
	);
}
function ajaxSubmitForm(F, _args){

	var _url 		= _args != undefined && _args['url'] != undefined 			? _args['url'] 			: '';
	var _iframe		= _args != undefined && _args['iframe'] != undefined 		? _args['iframe']		: 'iframe';
	var _msg_ok 	= _args != undefined && _args['msg_ok'] != undefined 		? _args['msg_ok'] 		: '';
	var _url_return = _args != undefined && _args['url_return'] != undefined 	? _args['url_return'] 	: '';
	var _callback 	= _args != undefined && _args['callback'] != undefined 		? _args['callback'] 	: null;

	if (_url_return != "" && b && b[0] && b[0].href) {	_url_return =  b[0].href + _url_return; 	}

	new Ajax.Request(_url, 	{
			method:'post',
			asynchronous:true,
			parameters:Form.serialize(F),
			onSuccess: function(t) {
				if(t.responseText != ""){alert(t.responseText);}
				else{
					if(_callback != null) _callback.call();
					if(_url_return != "") location.href=_url_return;
					if(_msg_ok != "") alert(_msg_ok);
				}
			},
			onComplete: function(){},
			evalScripts:true
		}
	);
	return false;
}
function setVille(id, elem){
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=ville&id='+id,
		{	method:'get', onSuccess: function(t) { elem.value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
}
function setDepartement(id, elem){
	new Ajax.Request(	'ajax.inc.get_infos_departement.php?elem=dpt&id='+id,
		{	method:'get', onSuccess: function(t) { elem.value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
}
function setRegion(id, elem){
	new Ajax.Request(	'ajax.inc.get_infos_region.php?elem=region&id='+id,
		{	method:'get', onSuccess: function(t) { elem.value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
}
function updateVille(text, li) {
	document.body.style.cursor = 'wait';
	if(getElem('id', 'pays'))
	getElem('id', 'pays').value = "France";
	if(getElem('id', 'region'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=region&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'region').value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
	if(getElem('id', 'dpt'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=dpt&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'dpt').value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
	if(getElem('id', 'cp'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=cp&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'cp').value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
	if(getElem('id', 'ville'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=ville&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'ville').value = t.responseText; document.body.style.cursor = 'default'; }, asynchronous:true, evalScripts:true	}
	);
	if(getElem('id', 'maplng'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=maplng&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'maplng').value = t.responseText; document.body.style.cursor = 'default'; }, asynchronous:true, evalScripts:true	}
	);
	if(getElem('id', 'maplat'))
	new Ajax.Request(	'ajax.inc.get_infos_ville.php?elem=maplat&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'maplat').value = t.responseText; document.body.style.cursor = 'default'; }, asynchronous:true, evalScripts:true	}
	);
}
function updateDpt(text, li) {
	document.body.style.cursor = 'wait';
	getElem('id', 'pays').value = "France";
	new Ajax.Request(	'ajax.inc.get_infos_departement.php?elem=region&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'region').value = t.responseText; }, asynchronous:true, evalScripts:true	}
	);
	new Ajax.Request(	'ajax.inc.get_infos_departement.php?elem=dpt&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'dpt').value = t.responseText; document.body.style.cursor = 'default'; }, asynchronous:true, evalScripts:true	}
	);
}
function updateRegion(text, li) {
	document.body.style.cursor = 'wait';
	getElem('id', 'pays').value = "France";
	new Ajax.Request(	'ajax.inc.get_infos_region.php?elem=region&id='+li.id,
		{	method:'get', onSuccess: function(t) { getElem('id', 'region').value = t.responseText; document.body.style.cursor = 'default'; }, asynchronous:true, evalScripts:true	}
	);
}
function updateTags(text, li) {
	lib = trim(li.id);
	toto = (text.value == -1 ? "" : text.value);
	if(toto != ""){
		pos = toto.lastIndexOf(',');
		if(pos > 0) toto = toto.substring(0,(pos));
		else toto = "";
	} else toto='';
	if(toto != "") toto += ", "+lib;
	else toto = lib;
	text.value = toto;
}