var ajax_loader = '<img src="/eg2/admin/images/ajax-loader.gif"/>';

function load_javascripts(node, level) { 
  if (node) {
      for (ci in node.childNodes) {
        child = node.childNodes[ci];
        if (child && child.tagName == 'SCRIPT') {
          //alert(child.innerHTML);
          if (child.getAttribute('type') == 'text/javascript')
            if (window.execScript) {
              window.execScript(child.innerHTML); // eval in global scope for IE
            } else window.eval(child.innerHTML);
        } else {
          //check subnodes recursivly according to level
        }
      }                      
  }
}

function popup(title, href, movable, ph, free) {
    if (no_fixed_positions) {
      var pos = 'position:absolute;'
    } 
    else var pos = 'position:fixed;'
    if (!free) free = false;
    popup_free = free;

    if (!$id('my_image_viel')) {
      imageViel = document.createElement('DIV');
      imageViel.id = 'my_image_viel';
      document.body.appendChild(imageViel);
    }
    if (!free) $id('my_image_viel').style.cssText = pos + 'top:0;left:0;width:100%;height:100%;z-index:9998; background:black; display:block; opacity:0.1; filter: alpha(opacity=10);';
    else imageViel.style.cssText = pos + 'top:0;left:0;width:100%;height:100%;z-index:9998; display:none; ';
    
    if (!$id('popup_wrapper')) {
      pwrap = document.createElement('DIV');
      pwrap.id = 'popup_wrapper';
      document.body.appendChild(pwrap);
    }
    
    if (free && lastMousePos) {
      var ev = { clientX:lastMousePos.x, clientY:lastMousePos.y };
      var mousePos = mouseCoords(ev);
      $id('popup_wrapper').style.cssText = pos + 'top:'+ev.clientY+'px;left:'+ev.clientX+'px;z-index:9999;';
    }
    else
      $id('popup_wrapper').style.cssText = pos + 'top:0;left:0;width:100%;height:100%;z-index:9999;';
      
    if (!free) 
    $id('popup_wrapper').innerHTML = '<table style="width:100%;height:100%"><tr><td style="width:50%"></td><td align="center"><div id="popup_win"></div></td><td style="width:50%"></td></tr></table>';
    else 
    $id('popup_wrapper').innerHTML = '<div id="popup_win"></div>';
    
    $id('popup_wrapper').style.display = 'block';
    $id('popup_win').innerHTML = '<div id="popup_header"><img onclick="popup_close()" style="float:right;padding:2px 4px 4px 4px;" src="'+eg_url_path+'/admin/images/close.png"/><span>'+title+'</span></div><div id="popup_content">' + ajax_loader + '</div>';

    if (movable) $id('popup_header').onmousedown = popup_move;
    
    if (ph) popup_handler = ph; else popup_handler = false;
    var sid = XHR.bind({  url: href,
                          handler: popup_loaded
                    });
}
var popup_free = false;
var popup_handler = false;
var popup_is_moving = false;
var onmu_backup;
var onmm_backup;
var m_offset;
function popup_move(ev) {
  ev = ev || window.event;
  var mousePos = mouseCoordsR(ev);
  if (!popup_is_moving) {
    $id('my_image_viel').style.display = 'block';
    wPos = getPosition($id('popup_win'));
    m_offset = { x:mousePos.x-wPos.x , y:mousePos.y-wPos.y, width:wPos.width, height:wPos.height };
    
    onmu_backup = document.onmouseup;
    document.onmouseup = popup_move_finish;
    onmm_backup = document.onmousemove;
    document.onmousemove = popup_move_step;
    popup_is_moving = true;
  }
}

function popup_move_step(ev) {
  ev = ev || window.event;
  if (popup_is_moving) {
    var mousePos = mouseCoordsR(ev);  
    var sxy = getScrollXY();    
    var ny = mousePos.y - m_offset.y, nx = mousePos.x - m_offset.x;
    if (mousePos.y < 0) ny = - m_offset.y;
    if (popup_free) var mo = $id('popup_wrapper');
    else {
        var mo = $id('popup_win');
        mo.style.cssText = 'position:absolute;';
    }
    mo.style.width = m_offset.width+'px';
    mo.style.height = m_offset.height+'px';    
    mo.style.top = ny + 'px';
    mo.style.left = nx + 'px';
  } 
}

function popup_move_finish(ev) {
  ev = ev || window.event;
  if (popup_is_moving) {
    if (popup_free) $id('my_image_viel').style.display = 'none';
    popup_is_moving = false;
    document.onmouseup = onmu_backup;
    document.onmousemove = onmm_backup;
  }
}

function popup_return(value) {
  if (popup_handler) popup_handler(value);
  popup_close();
}
function popup_close() {
  fade_out2('popup_wrapper');
  //$id('my_image_viel').style.display = 'none';
  setTimeout('$id(\'my_image_viel\').style.display = \'none\'', 100);
}

function popup_refresh(href, ajax) {
    document.body.style.cursor='progress';
    if (ajax) {
        var wPos = getPosition($id('popup_content'));
        $id('popup_content').innerHTML = ajax_loader;
        $id('popup_content').style.width = (wPos.width-20)+'px';
        $id('popup_content').style.height = (wPos.height-20)+'px';            
    }
    XHR.bind({  url: href,
                handler: popup_loaded
    });
}

function popup_loaded(type, data, evt) {
  document.body.style.cursor='default';
  if (type == 'error') {
  } else {
    if ($id('popup_content')) {
      $id('popup_content').innerHTML = data;
      load_javascripts($id('popup_content'));
    }
  }
}
