var ns6	= document.getElementById && !document.all;
var overpopupmenu = false;
var menuTimeout = false;
var curEvent = null;
var menuItems = Array("LinkTo", "Edit","Delete");

// POP UP MENU
function	ItemSelMenu(e) {
  var obj = ns6 ? e.target : event.srcElement;
  if (obj.id.substr(0,7)=="mdiCal_") {
    var showMenu = false;
    for (var i=0;i<menuItems.length;i++) {
      showMenu = showMenu || (obj.getAttribute("mdiCal" + menuItems[i])=="true");
    }
    if (showMenu) {
    	if (ns6) {
    		document.getElementById('mdiCalEventMenu').style.left = e.clientX+document.body.scrollLeft;
    		document.getElementById('mdiCalEventMenu').style.top = e.clientY+document.body.scrollTop;
    	} else {
    		document.getElementById('mdiCalEventMenu').style.pixelLeft = event.clientX+document.body.scrollLeft;
    		document.getElementById('mdiCalEventMenu').style.pixelTop = event.clientY+document.body.scrollTop;
    	}
    	document.getElementById('mdiCalEventMenu').style.display = "block";
    	
      for (var i=0;i<menuItems.length;i++) {
      	document.getElementById('mdiCalEventMenu_'+menuItems[i].toLowerCase()).style.display = ((obj.getAttribute("mdiCal" + menuItems[i])=="true") ? 'block' : 'none');
      	document.getElementById('mdiCalEventMenu_'+menuItems[i].toLowerCase()).style.backgroundColor = '#FFFFFF';
      }
    }

  	curEvent = obj;
  } else if (obj.id.substr(0,16)=="mdiCalEventMenu_") {
    // do action
    var curEventLocal = curEvent;
    var idEvent = curEventLocal.id.substr(18);
    if (obj.id.substr(16)=="edit") {
      if (curEventLocal.getAttribute("mdiCalEdit") == "true") {
        // launch add/edit window
        window.open ("/calendars/addEvent.php?idEvent="+idEvent, "EditEvent","status=no,toolbar=no,resizable=no,location=no,scrollbars=yes");
      }
    } else if (obj.id.substr(16)=="delete") {
      if (curEventLocal.getAttribute("mdiCalDelete") == "true") {
        if (confirm("Really delete this event?")) {
          // call responder to mark event deleted in database, then remove from document
          var oXmlHttp = zXmlHttp.createRequest();
          oXmlHttp.open ("post","/calendars/includes/mdiCalResponder.inc.php",false);
          oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          oXmlHttp.send('fn=eventDelete&idEvent=' + idEvent); 
          if (oXmlHttp.responseText.substr(0,1)=='0') {
            // success
            var n = curEventLocal;
            var p = n.parentNode;
            p.removeChild(n);
          } else {
            // error
            alert ("Error deleting event\n" + oXmlHttp.responseText);
          }
        }
      }
    } else if (obj.id.substr(16)=="linkto") {
      window.open ("/schedule.htm#"+idEvent, "EventDetails");
    }
    hideMenu();
  } else {
    hideMenu();
  }
}

function hideMenu(timeout) {
  if (!timeout) {
  	overpopupmenu = false;
  	document.getElementById('mdiCalEventMenu').style.display = "none" ;
  	curEvent = null;
  } else {
    if (!overpopupmenu) {
    	document.getElementById('mdiCalEventMenu').style.display = "none" ;
    	curEvent = null;
    }
  }
}

function divOut() {
  overpopupmenu=false;
  menuTimeout = setTimeout("hideMenu(true)",150);
}

function divIn() {
  overpopupmenu=true;
  if (menuTimeout) {
    clearTimeout(menuTimeout);
    menuTimeout=false;
  }
}

document.onmousedown = ItemSelMenu;
