var grl_widgets=new Object;

//ci deve essere id
function grlWidget(i, arg) {
  var s=String(arg).split("&");
  for(v in s) {
    v=String(s[v]).split("=");
    i[v[0]]=v[1];
  }
  if(i.id)
    grl_widgets[i.id]=i;

  if(i.x) i.x=Number(i.x);
  if(i.y) i.y=Number(i.y);
  if(i.w) i.w=Number(i.w);
  if(i.h) i.h=Number(i.h);
  i.X=grl_getX(i.id);
  i.Y=grl_getY(i.id);
  i.W=grl_getW(i.id);
  i.H=grl_getH(i.id);
}

function resizeWidget(i) {
 if(i.x) {
   i.X=i.x; i.Y=i.y;
   if(i.x>0 && i.x<1) i.X = grl_W*i.x;
   if(i.y>0 && i.y<1) i.Y = grl_H*i.y;  
   if(i.x<0) i.X=grl_W+i.x;
   if(i.y<0) i.Y=grl_H+i.y;
 } else {
   i.X = grl_getX(i.id);
   i.Y = grl_getY(i.id);
 }
 if(i.w) {
   i.W=i.w; i.H=i.h;
   if(i.w<0) i.W=grl_W-i.X+i.w;
   if(i.h<0) i.H=grl_H-i.Y+i.h;
 }
 if(i.resize) i.resize(i);
}
function drawWidget(i) { 
 grl_move(i.id,i.Y,i.X);	
 if(i.draw) i.draw();
}

function hideWidget(i) { 
 grl_hide(i.id); 
 if(i.hide) i.hide(i);
}
function showWidget(i) { 
 grl_show(i.id);
 if(i.show) i.show(i);
} 

function grl_drawAll(reloadmaps) {
 if(reloadmaps==null) reloadmaps=1;
 grl_GetWindowSize();
 for(var i in grl_widgets)
  resizeWidget(grl_widgets[i]);
 for(var i in grl_widgets) {
   if(reloadmaps || grl_maps[i] == null)
     drawWidget(grl_widgets[i]);
 }
}
 
function grlCustom(arg) {
  grlWidget(this,arg);  
}

