var familytree;

var dcTime=250;    // doubleclick time
var dcDelay=100;   // no clicks after doubleclick
var dcAt=0;        // time of doubleclick
var savEvent=null; // save Event for handling doClick().
var savEvtTime=0;  // save time of click event.
var savTO=null;    // handle of click setTimeOut
var savTarg=null;
var savId=0;

function hadDoubleClick() {
  var d = new Date();
  var now = d.getTime();
  if ((now - dcAt) < dcDelay) {
    return true;
  }
  return false;
}

function handleWisely(which, target, person_id) {
  savTarg = target;
  savId = person_id;
  switch (which) {
    case "click": 
      // If we've just had a doubleclick then ignore it
      if (hadDoubleClick()) return false;
        
      // Otherwise set timer to act.  It may be preempted by a doubleclick.
      savEvent = which;
      d = new Date();
      savEvtTime = d.getTime();
      savTO = setTimeout("doClick()", dcTime);
      break;
    case "dblclick":
      doDoubleClick();
      break;
    default:
  }
}

function doClick() {
	if (savEvtTime - dcAt <= 0)
	  return false;

	//document.location.href = '#t' + savId;
	familytree.changeOwner(savTarg, savId);
}

function doDoubleClick() {
  var d = new Date();
  dcAt = d.getTime();
  if (savTO != null) {
    clearTimeout( savTO );          // Clear pending Click  
    savTO = null;
  }
  
  document.location.href = '#p' + savId;
}
