var modal=function() {
	//============================================================
	// PUBLIC METHODS & VARS
	//============================================================
	var oPublic = {
	open:function(p_selector, p_callback_ok, p_callback_nok, p_callback_close)
		{
			// NB selector and callbacks only work for a modal which cannot launch another modal
			// apart from callback_close
			_selector=p_selector;
			_callback_ok=p_callback_ok;
			_callback_nok=p_callback_nok;
			_callback_close[p_selector]=p_callback_close;
			$(p_selector)
				.on("hidden.bs.modal", function () 
					{ 
						console.log(p_selector,'hidden');
						$(this).modal('dispose');  
						if (_callback_close[p_selector])
						{
							_callback_close[p_selector]();
							delete _callback_close[p_selector];
						}
					})
				.modal({backdrop: 'static',	keyboard: false	,}); // activate modal
		},		
	close:function(p_selector, p_result)
		{
			if (!p_selector) p_selector="";
			console.log("modal.close",p_selector,p_result)
			$(p_selector+".modal").modal('hide');
			$(".modal").css({overflow:"auto"});// need to reset this
		},		
	ok:function()
		{
			console.log("modal.ok")
			$(_selector+".modal").modal('hide');
			$(".modal").css({overflow:"auto"});// need to reset this
			if (_callback_ok) _callback_ok(_result);

		},
	nok:function()
		{
			console.log("modal.nok")
			$(_selector+".modal").modal('hide');
			$(".modal").css({overflow:"auto"});// need to reset this
			if (_callback_nok) _callback_nok(_result);

		},
	};
	//============================================================
	// PRIVATE METHODS & VARS
	//============================================================
	var _callback_ok;
	var _callback_nok;
	var _selector;
	var _result;
	var _callback_close={};
	
	return oPublic;
}();


