/*
    popupmenu.js
    var 2006.07.27
    scripted by kiaraumu
*/

//=======================================================
//time
//=======================================================
var hideDelay=1000;

//=======================================================
var runable  = (!document.getElementById)? (!document.all)? (!document.layers)? -1:1:2:3;
var ie       = (document.all)? true:false;
var isCompat = false;
var nowShowing = "$";
var showedMenu = "";
var onLayer = 0;
var onLink  = 0;
var flgShow = 0;
var timerID = 0;
var st = 0;
var en = 0;
var mx = 0;
var my = 0;

window.onload = function ()
{
  if (runable > 1)
  {
    document.onmousemove = function (event) {delayHideMenu(event) }
    if (document.compatMode && document.compatMode == "CSS1Compat")
    {
      isCompat = true;
    }
  }
}

//=======================================================
function showMenu(n, X, Y)
{
  if (runable < 2)
  {
    return;
  }
  
  var obj  = getElm("menu" + n, 1);
  var lnk  = getElm("menuButton" + n);
  nowShowing = n;

  if (showedMenu != "" && showedMenu != nowShowing)
  {
    hideMenu(showedMenu);
  }
  if (obj.visibility == "visible" && onLink == 1)
  {
    return;
  }
  
  lnk.onmouseout = leaveLink;
  onLayer = 1;
  onLink  = 1;
  obj.left = ((X)? X:lnk.offsetLeft) + "px";
  obj.top  = ((Y)? Y:lnk.offsetTop + lnk.offsetHeight) + "px";
  obj.visibility = "visible";
  showedMenu     = nowShowing;
  flgShow        = 1;
  clearTimeout(timerID);
  st = t();
}

//=======================================================
function leaveLink()
{
  /*
  onLink = 0;
  en     = t();
  */
}

//=======================================================
function delayHideMenu(e)
{
  mx = gmx(e);
  my = gmy(e);
  if (nowShowing == "$" || flgShow == 0 || st == 0)
  {
    return;
  }
  if (onLink == 0 && checkPosition())
  {
    en      = t();
    onLayer = 0;
    hideMenu();
  }
  else
  {
    st      = t();
    onLayer = 1;
    clearTimeout(timerID);
  }
}

//=======================================================
function hideMenu(n)
{
  clearTimeout(timerID);
  if (!n)
  {
    if (nowShowing == "$" || onLayer != 0)
    {
      return;
    }
    if (onLink==1)
    {
      timerID = setTimeout("hideMenu()", hideDelay);
      st = t();
      return;
    }
    else if (((en-st) % hideDelay) < hideDelay && st != 0)
    {
      clearTimeout(timerID);
      timerID = setTimeout("hideMenu()", hideDelay);
      st      = 0;
      return;
    }
    else if (!checkPosition())
    {
      st = t();
      return;
    }
  }
  
  getElm("menu" + ((n)? n:nowShowing), 1).visibility = "hidden";
  showedMenu = "";
  onLayer = 0;
  flgShow = 0;
}

//=======================================================
function checkPosition()
{
  /*
  if (nowShowing == "$")
  {
    return;
  }
  var obj = getElm("menu" + nowShowing);
  var x   = mx - obj.offsetLeft;
  var y   = my - obj.offsetTop;
  var w   = obj.offsetWidth;
  var h   = obj.offsetHeight;
  if (onLink == 0 && (x <= 0 || y <= 0 || x >= w || y >= h))
  {
    return true;
  }
  */
  return false;
}

//=======================================================
var ox = oy = 0;
var nowDragObj;

function dragStart(obj,e)
{
  if (ie)
  {
    e = event;
  }
  
  if (nowDragObj)
  {
    return;
  }
  
  nowDragObj = obj;
  ox = gmx(e);
  oy = gmy(e);
  if (runable > 1 && document.body)
  {
    document.body.style.cursor="move";
  }
  
  obj.onmouseup = dragEnd;
  document.onmouseup   = dragEnd;
  document.onmousemove = dragMove;
}
function dragMove(e)
{
  if (!nowDragObj)
  {
    return;
  }
  if (ie)
  {
    e=event;
  }
  var nx = gmx(e);
  var ny = gmy(e);
  nowDragObj.style.left = Math.max(0, nowDragObj.offsetLeft + (nx - ox)) + "px";
  nowDragObj.style.top  = Math.max(0, nowDragObj.offsetTop  + (ny - oy)) + "px";
  ox = nx;
  oy = ny;
}
function dragEnd()
{
  if (!nowDragObj)
  {
    return;
  }
  
  ox = oy = 0;
  nowDragObj = null;
  if (runable > 1 && document.body)
  {
    document.body.style.cursor = "auto";
  }
  
  document.onmousemove = null;
  document.onmouseup   = null;
}

//=======================================================
var flg_zoom_view = 0;
function showZoomObj(item_id, count)
{
  if (!getElm('zoomobj'))
  {
    return false;
  }
  
  if (flg_zoom_view == 0)
  {
    var obj = getElm('zoomobj');
    obj.innerHTML = (''
      +'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="500" height="545">'
      +'<param name="movie" value="/share/images/zoom.swf?id=' + item_id + '&amp;c=' + count + '">'
      +'<param name="quality" value="high">'
      +'<embed src="/share/images/zoom.swf?id=' + item_id + '&amp;c=' + count + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="545"></embed>'
      +'</object>'
    );
    flg_zoom_view = 1;
  }
        //+'<param name="movie" value="/share/images/zoom.swf?id=' + item_id + '&amp;c=' + count + '">'
      //+'<embed src="/share/images/zoom.swf?id=' + item_id + '&amp;c=' + count + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="545"></embed>'
  var doc = getDocumentBody();
  if (doc && doc.scrollWidth)
  {
    var wh = (doc.scrollWidth - 780) / 2;
    showMenu('1', wh + 193, 140);
  }
  else
  {
    showMenu('1', 200, 140);
  }
}

function getElm(name, style)
{
  var doc = self.document;
  var gobj;
  if (runable == 2)
  {
    var gobj = doc.all(name); //IE4+
  }
  else
  {
    var gobj = doc.getElementById(name); //DOM
  }
  
  if (style && runable > 1)
  {
    gobj = gobj.style;
  }
  return gobj;
}

function t()
{
  return (new Date()).getTime();
}
function gmx(e)
{
  if (ie)
  {
    return getScrollLeft() + event.clientX;
  }
  else
  {
    return e.pageX;
  }
}
function gmy(e)
{
  if (ie)
  {
    return getScrollTop() + event.clientY;
  }
  else
  {
    return e.pageY;
  }
}
function getScrollTop()
{
  var doc = getDocumentBody();
  if (doc)
  {
    return doc.scrollTop;
  }
  return 0;
}
function getScrollLeft()
{
  var doc = getDocumentBody();
  if (doc)
  {
    return doc.scrollLeft;
  }
  return 0;
}
function getDocumentBody()
{
  if (isCompat)
  {
    return document.documentElement;
  }
  else
  {
    return document.getElementsByTagName('body')[0];
  }
  return null;
}
function changeImage(target, src, w, h)
{
  var imgobj = getElm(target);
  imgobj.src = src;
  imgobj.style.width  = w + "px";
  imgobj.style.height = h + "px";
}

