var cm_isIE = document.all;
var cm_isNN = !document.all && document.getElementById;
var cm_isHot = false;
var cm_layer;
var cm_seconds = 0;
var cm_threshold = 120;
var cm_timerID;

function ddInit(e){
  var cm_topElement=cm_isIE ? "BODY" : "HTML";
  var cm_event=cm_isIE ? event.srcElement : e.target;

  while ((cm_event.id != "callMeTitleBar") && (cm_event.tagName != cm_topElement)) {
    cm_event=cm_isIE ? cm_event.parentElement : cm_event.parentNode;
  }  
  if (cm_event.id=="callMeTitleBar") {
    offsetx=cm_isIE ? event.clientX : e.clientX;
    offsety=cm_isIE ? event.clientY : e.clientY;
    nowX=parseInt(cm_layer.style.left);
    nowY=parseInt(cm_layer.style.top);
    ddEnabled=true;
    document.onmousemove=dd;
  }
}

function dd(e){
  if (!ddEnabled) {
    return;
  }
  cm_layer.style.left=cm_isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx; 
  cm_layer.style.top=cm_isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
  return false;  
}

function hideCallMe() {
  if (cm_isIE || cm_isNN) {
    cm_layer.style.visibility="hidden";
  }
}

function showCallMe() {
  if (cm_isIE || cm_isNN) {
    // Attempt to align to middle
    var frameWidth = 0;
    if (self.innerWidth) {
      frameWidth = self.innerWidth;
    } else if (document.documentElement && document.documentElement.clientWidth) {
      frameWidth = document.documentElement.clientWidth;
    } else if (document.body) {
      frameWidth = document.body.clientWidth;
    }
    if ((frameWidth > 0) && cm_layer.offsetWidth) {
      cm_layer.style.left = (frameWidth - cm_layer.offsetWidth) / 2;
    }

    cm_layer.style.visibility="visible";
  }
  // Make sure it will not be show again
  if (cm_timerID) {
    clearInterval(cm_timerID);
    cm_timerID = 0;
    cm_seconds = 0;
  }
}

function callMeTimer() {
  cm_seconds++;
  if (cm_seconds > cm_threshold) {
    showCallMe();
  }
}

function callMeReset() {
  cm_seconds = 0;
}

function callMeInit(threshold) {
  cm_threshold = threshold;
  cm_layer = document.getElementById("callMeLayer");  
  document.onmousedown=ddInit;
  document.onmouseup=Function("ddEnabled=false");
  cm_timerID = setInterval("callMeTimer()", 1000);
}
