/*
 DDmenu with ajax
 */
function ajLoadData(gurl, obj){
  if (!this.http) {
    this.http = get_http();
    this.working = false;
  }
  if (!this.working && this.http) {
    obj.innerHTML = "<img src='files/templates/images/obj/loader.gif'>";
    var http = this.http;
    sub = Math.round(Math.random() * 99999);
    url = gurl + "&submathrand=" + sub;
    this.http.open("GET", url, true);
    this.http.onreadystatechange = function(){
      if (http.readyState == 4) {
        if (http.responseText != '') {
          obj.innerHTML = http.responseText;
        }
        this.working = false;
      }
    }
    this.http.send(null);
    this.working = false;
  }
  if (!this.http) {
    alert('Err: XMLHTTP fail!')
  }
}



function getposOffset(what, offsettype){
  var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
  var parentEl = what.offsetParent;
  while (parentEl != null) {
    totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
    parentEl = parentEl.offsetParent;
  }
  return totaloffset;
}

function iecompattest(){
  return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
}

function clearbrowseredge(obj, ddobj, whichedge){
  var edgeoffset = 0;
  if (whichedge == "rightedge") {
    var windowedge = ie4 && !window.opera ? iecompattest().scrollLeft + iecompattest().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15;
    ddobj.contentmeasure = ddobj.offsetWidth;
    if (windowedge - ddobj.x < ddobj.contentmeasure) 
      edgeoffset = ddobj.contentmeasure - obj.offsetWidth;
  }
  else {
    var topedge = ie4 && !window.opera ? iecompattest().scrollTop : window.pageYOffset;
    var windowedge = ie4 && !window.opera ? iecompattest().scrollTop + iecompattest().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18;
    dropmenuobj.contentmeasure = dropmenuobj.offsetHeight
    if (windowedge - ddobj.y < ddobj.contentmeasure) {
      edgeoffset = ddobj.contentmeasure + obj.offsetHeight;
      if ((ddobj.y - topedge) < ddobj.contentmeasure) 
        edgeoffset = ddobj.y + obj.offsetHeight - topedge;
    }
  }
  return edgeoffset
}

function showhide(ddobj, e){
  if (ie4 || ns6) 
    ddobj.style.left = ddobj.style.top = "-500px";
  if (ddobj.style.visibility == "hidden") {
    ddobj.style.visibility = "visible";
  }
  else 
    if (e.type == "click" && ddobj.style.visibility == "visible") {
      ddobj.style.visibility = "hidden";
    }
}

function clickreturnvalue(){
  if (ie4 || ns6) 
    return false
  else 
    return true
}

function ShowHideFlash(show){
  objs = document.getElementsByTagName('object');
  if (objs.length > 0) {
    for (i = 0; i < objs.length; i++) {
      objs[i].style.display = show;
    }
  }
}

function ddmn(obj, ddobj, e, gurl){
  /*
   if (window.event)
   event.cancelBubble = true
   else
   if (e.stopPropagation)
   e.stopPropagation();
   */
  evt_cancel(e);
  dropmenuobj = adv_getbyid(ddobj);
  dropmenuobj = document.getElementById(ddobj);
  if (ie4 || ns6) {
    ShowHideFlash("none");
    showhide(dropmenuobj, e);
    ajLoadData(gurl, dropmenuobj);
    dropmenuobj.style.display = 'block';
    dropmenuobj.x = getposOffset(obj, "left") - 220;
    dropmenuobj.y = getposOffset(obj, "top");
    dropmenuobj.style.left = dropmenuobj.x - clearbrowseredge(obj, "rightedge") + "px";
    dropmenuobj.style.top = dropmenuobj.y - clearbrowseredge(obj, "bottomedge") + obj.offsetHeight + "px";
  }
  return clickreturnvalue();
}

function contains_ns6(a, b){
  while (b.parentNode) 
    if ((b = b.parentNode) == a) 
      return true;
  return false;
}

function hidemenu(){
  dropmenuobj = document.getElementById("ddm");
  if (typeof dropmenuobj != "undefined") {
    if (ie4 || ns6) {
      dropmenuobj.style.display = "none";
    }
  }
}

function hdd(){
  ddobj = document.getElementById("ddm");
  if (typeof dropmenuobj != "undefined") {
  ddobj.style.display = "none";
  ShowHideFlash('block');
  }
}

nc_add_handler(document, 'click', hdd);

