
// defaults
var dba_overlay_duration=100;
var dba_overlay_opacity=50;


function js_overlay_on(params)
{
 var html=params.html;
 var duration=getarraykey(params,'duration',dba_overlay_duration,dba_overlay_duration);
 var opacity =getarraykey(params,'opacity',dba_overlay_opacity,dba_overlay_opacity);
 var xposition =getarraykey(params,'position','CC');
 switch(xposition)
 {
   case 'CC' : position=[0,0]; break;
   case 'TL' : position=['0px','0px']; break;
   case 'CR' : var r = $(window).width()-str2int(getarraykey(params,'width',0));
               position=['0',r]; break;
   default   : position=[]; break;
 }
 var modal =getarraykey(params,'modal',true);
 $.modal(html,{opacity:opacity,
               overlayCss: {backgroundColor:'#000'},
			   position:position,
			   focus1:false,
			   modal:modal,
			   onOpen:  function (dialog) {js_overlay_onopen(dialog,duration,params);},
			   onClose: function (dialog) {js_overlay_onclose(dialog,0,params);}
			  });
}
function js_overlay_off()
{
 $.modal.close();
}
function js_overlay_onopen(dialog,duration,params) 
{
 dialog.overlay.fadeIn(duration, function () 
 {
  dialog.data.hide();
  dialog.container.fadeIn(duration, function () 
  {
   dialog.data.slideDown(duration, function () 
   {
	var afteropen=getarraykey(params,'afteropen',false);
    if (afteropen) js_execute(afteropen,params);
   });
 
  });
 });	
}
function js_overlay_onclose(dialog,duration,params) 
{
 dialog.data.fadeOut(duration, function () 
 {
  dialog.container.hide(duration, function () 
  {
   dialog.overlay.slideUp(duration, function () 
   {
	$.modal.close();
	var afterclose_location=getarraykey(params,'afterclose_location',false);
    if (afterclose_location)  window.location.href=afterclose_location;
	var afterclose=getarraykey(params,'afterclose',false);
    if (afterclose)  js_execute(afterclose,params);
   });
  }); 
 }); 
}



function js_execute(obj,params)
{
 if(jQuery.isFunction(obj)) return obj(params);
 if(typeof(obj)=='string') eval(obj);
}

function js_overlay_lupe(params)
{
 params.duration=0;
 params.modal=false;
 return js_overlay_on(params);
}


function overlay_command(cmd,data)
{
 if(typeof data == 'undefined') data={};
 var params={};
 params.data=data;
 params.command=cmd;
 ajaxrequest(params,{rawdisp:'xxxmessage',loadmode:'overlay'});
}



