originalTag = {};
ActionsBoxTimer=false;


function ShowActionBox(id) {
  x$(id).show();
}

function ShowActions(elem,boxid,vars) { // (opt.) ,wait,dont_position
  
  var ActionsBox = ID(boxid);
  
  if(!originalTag[boxid]) {
    originalTag[boxid] = unescape(ActionsBox.innerHTML);
  }
  //tokens[i] = unescape(tokens[i]);
  //alert(originalTag);
  if(arguments.length>3 && arguments[3]) {
     clearTimeout(ActionsBoxTimer);
     ActionsBoxTimer = setTimeout("ShowActionBox('"+boxid+"')", 100);
  } else {
    x$(ActionsBox).show('block');
  }
  
  var tokens = originalTag[boxid].split(/%5B|%5D|\[|\]/g);  
 
  //alert(tokens.join("\n"));
 
  var newTag='';
  var ifs = 0;
  
  
  var msg = '';
 
  
  try {
    for(var i=0; i<tokens.length; i++) {
      
      if(i%2==0) {
        if(ifs==0) {
          newTag += tokens[i];                          // Standard text
        }
      } else {
       //alert(tokens[i]); return false;
        if(tokens[i].indexOf('/if') == 0) {             // End if
          if(ifs>0) {
            ifs>>=1;
          }
        } else if(tokens[i].indexOf('else') == 0) {             // End if
          if(ifs%2!=0) {
            ifs--;
          } else {
            ifs++;
          }
        } else if(tokens[i].indexOf('if') == 0) {       // If
          var res = (eval(tokens[i].substring(2)))
          ifs<<=1;
          ifs += res ? 0 : 1;
        } else if(ifs==0) {                           // Print value
          msg+=eval(tokens[i])+'\n';
          newTag += eval(tokens[i])+'';
        }
      }
    } 
  } catch(e) {
    var msg='';
  }
  
    ActionsBox.innerHTML = newTag;
  if(arguments.length<5 || !arguments[4]) {
    
    Position.setY(ActionsBox, (Position.Y(elem)+5));
    Position.setX(ActionsBox, (Position.R(elem)-5));
      
    if(Position.R(ActionsBox)>Position.docW()-20) {
      ActionsBox.style.left = '';
      //ActionsBox.style.right = (Position.docW()-Position.R(elem)+25)+'px';
      Position.setR(ActionsBox, (Position.docW()-Position.R(elem)+25));
    }
    
    if(Position.B(ActionsBox) > Position.pageB()) {
      Position.setY(ActionsBox, (Position.Y(ActionsBox) - Position.H(ActionsBox)));
      //ActionsBox.style.top = (Position.Y(ActionsBox) - Position.H(ActionsBox))+'px';
    }
    
  }
  
}