var timer = new Array();

function changeStyle(element, property, value){
  //alert("change "+ element+"-"+property+" to "+value)
  if(property.indexOf("-") != -1){
    var propArr = property.split("-");
    property = propArr[0]+propArr[1].substr(0,1).toUpperCase()+propArr[1].substr(1);
  }
  if(document.getElementById){
    if(document.getElementById(element)){
      document.getElementById(element).style[property] = value;
    }
  }
  else if(document.all){
    if(document.all[element]){
      document.all[element].style[property] = value;
    }
  }
}

function openWindow(url, t, width, height, properties){
  var left = screen.width/2 - width/2;
  var top = screen.height/2 - height/2;
  var props = "left="+left+", top="+top+", width="+width+", height="+height+", "+properties;
  win = window.open(url, t, props);
}

function confirmLink(link, text){
  if(confirm(text)){
    self.location.href = link;
  }
}

//Start PULLDOWN-MENU
function mainmenuHideSub(menuitem){
  changeStyle("pulldownmenu_"+menuitem, "visibility", "hidden");
}

function mainmenuOut(menuitem){
  timer[menuitem] = setTimeout("mainmenuHideSub('"+menuitem+"')", 50);
}

function mainmenuIn(menuitem){
  changeStyle("pulldownmenu_"+menuitem, "visibility", "visible");
  clearTimeout(timer[menuitem]);
}
//End PULLDOWN-MENU

//Start MOUSE FUNCTIONS
var dragObj = null;
//position in div
var dragx = null;
var dragy = null;
//mouse startposition
var mouseStartX = null;
var mouseStartY = null;
//mouse-position
var posx = 0;
var posy = 0;
//temp-html
var tempHTML = tempHeight = tempWidth = null;
//scroll
var scrollX = null;
var scrollY = null;

document.onmousemove = mouseMove;
document.onmouseup = click;
//document.onmousedown = dragstart;

function click(e){
  //close all menu-divs
  //closeContextMenus();
  mouseUp();

  var clickObj = (document.all && event.srcElement) ? event.srcElement : e.target;
  var clickObjID = (clickObj) ? clickObj.id : "";

  var getIDObj = clickObj;

  nonHideAjaxDivArr = new Array();
  while(getIDObj){
    if(getIDObj.id && getIDObj.tagName.toUpperCase() == "DIV"){
      for(var i = 0; i < ajaxDivArr.length; i++){
        if(ajaxDivArr[i] == getIDObj.id){
          nonHideAjaxDivArr[i] = ajaxDivArr[i];
        }
      }
    }
    getIDObj = (getIDObj.parentElement) ? getIDObj.parentElement : ((getIDObj.parentNode) ? getIDObj.parentNode : null);
  }
  var str = "";
  for(var i = 0; i < ajaxDivArr.length; i++){
    str += ajaxDivArr[i]+"\n";
    if(ajaxDivArr[i]){
      var inArray = false;
      for(var a = 0; a < nonHideAjaxDivArr.length; a ++){
        if(nonHideAjaxDivArr[a] == ajaxDivArr[i]){
          inArray = true;
        }
      }
      if(!inArray){
        changeStyle(ajaxDivArr[i], "visibility", "hidden");
      }
    }
  }
  //alert(str);
  /*if(getIDObj.parentElement && !getIDObj.id){
    while((!getIDObj.id || getIDObj.tagName.toUpperCase() != "DIV") && getIDObj.parentElement){
      getIDObj = getIDObj.parentElement;
    }
  }
  else if(getIDObj.parentNode && !getIDObj.id){
    while((!getIDObj.id || getIDObj.tagName.toUpperCase() != "DIV") && getIDObj.parentNode){
      getIDObj = getIDObj.parentNode;
    }
  }
  if(getIDObj && getIDObj.id){
    for(var i = 0; i < ajaxDivArr.length; i++){
      if(ajaxDivArr[i] != getIDObj.id){
        changeStyle(ajaxDivArr[i], "visibility", "hidden");
      }
      //setTimeout("alert('"+i+": "+ajaxDivArr[i]+"/"+getIDObj.id+" - "+ajaxDivArr.length+"')", 200);
    }
    //setTimeout("alert('"+getIDObj.id+"')", 500);
  }*/

  return;
  if(clickObj){
    var rightClick = ((document.getElementById && window.netscape) && (e.which == 2 || e.which == 3)) || (document.all && (event.button == 2 || event.button == 3));

    if(rightClick){
      //get id from parent elem
      var getIDObj = clickObj;
      if(getIDObj.parentElement && !getIDObj.id){
        while((!getIDObj.id) && getIDObj.parentElement){
          getIDObj = getIDObj.parentElement;
        }
      }
      else if(getIDObj.parentNode && !getIDObj.id){
        while((!getIDObj.id) && getIDObj.parentNode){
          getIDObj = getIDObj.parentNode;
        }
      }
      //alert(getIDObj.id);
      if(getIDObj.id){
        var id = getIDObj.id;
        var last_underline = id.lastIndexOf("_");
        contextMenuRowID = id.substring(last_underline+1);
        menuname = id.substring(0, last_underline);
        menuID = "CONTEXTMENU_"+menuname;
        tt_Hide();
        changeStyle(menuID, "visibility", "visible");
        changeStyle(menuID, "left", (posx+scrollX)+"px");
        changeStyle(menuID, "top", (posy+scrollY)+"px");
      }
    }
  }
  //return false;
}

function dragstart(e){

  var rightClick = ((document.getElementById && window.netscape) && (e.which == 2 || e.which == 3)) || (document.all && (event.button == 2 || event.button == 3));
  if(rightClick){
    return false;
  }

  if(!e){
    var e = window.event;
  }
  e = (e.target) ? e.target : e.srcElement

  if(e.parentElement && !e.id){
    while(!e.id && e.parentElement){
      e = e.parentElement;
    }
  }
  else if(e.parentNode && !e.id){
    while(!e.id && e.parentNode){
      e = e.parentNode;
    }
  }

  if(!e || !e.id || e.id.indexOf("DRAG") == -1 || e.id.indexOf("DRAG") > 0){
    return false;
  }
  //get Object to edit and his ID
  dragObj = e;

  //manage HTML of div
  tempHeight = dragObj.style.height;
  tempWidth = dragObj.style.width;
  dragObj.style.height = dragObj.offsetHeight;
  dragObj.style.width = dragObj.offsetWidth;
  tempHTML = dragObj.innerHTML;
  dragObj.innerHTML = "";

  //capturiung events
  //document.onmouseup = mouseUp;

  //get the mouse-position in the layer
  dragx = posx - dragObj.offsetLeft;
  dragy = posy - dragObj.offsetTop;

  //get the start-position of the mouse on click
  mouseStartX = posx;
  mouseStartY = posy;
}

function mousePosition(e){
  //get actual mouse-position
  posx = document.all ? window.event.clientX : e.pageX;
  posy = document.all ? window.event.clientY : e.pageY;
  //getactual scroll-position
  scrollX = document.all ? document.body.scrollLeft : 0;//window.pageXOffset;
  scrollY = document.all ? document.body.scrollTop : 0;//window.pageYOffset;
}

function mouseMove(e){
  //get mouse-position
  //posx = document.all ? window.event.clientX : e.pageX;
  //posx = document.all ? window.event.clientY : e.pageY;
  mousePosition(e);
  //call the function which edits the object
  //drag the Object-Layer on mouse move
  if(dragObj){

    if(document.getElementById){
      document.getElementById(dragObj.id).style.left = (posx - dragx) + "px";
      document.getElementById(dragObj.id).style.top = (posy - dragy) + "px";
    }
    else if(document.all){
      dragObj.style.left = posx + "px";
      dragObj.style.top = posy + "px";
    }
  }
}

function mouseUp(){
  //set vars null
  if(dragObj){
    var arr = dragObj.id.split("_");
    var nr = arr[1];
    parent.frames["processFrame"].location.href = "process.php?postit[nr]="+nr+"&postit[left]="+(posx - dragx)+"&postit[top]="+(posy - dragy);

    //manage HTML of div
    dragObj.innerHTML = tempHTML;
    dragObj.style.height = tempHeight;
    dragObj.style.width = tempWidth;
    tempHTML = "";

    //unset obj
    dragObj = null;
  }
}
//End MOUSE FUNCTIONS


function changeMonth(y, mode, query){
  var m = document.forms["ajax_date_picker_form"].monthSelect.options[document.forms["ajax_date_picker_form"].monthSelect.selectedIndex].value;
  ajaxRequest("ajax/date_picker.php?y="+y+"&m="+m+"&mode="+mode+query, "ajax_date_picker");
}

function changeYear(m, mode, query){
  var y = document.forms["ajax_date_picker_form"].yearSelect.options[document.forms["ajax_date_picker_form"].yearSelect.selectedIndex].value;
  ajaxRequest("ajax/date_picker.php?y="+y+"&m="+m+"&mode="+mode+query, "ajax_date_picker");
}

function calendarChooseDay(date, value, dateField, valueField){
  if(document.getElementById(dateField)){
    document.getElementById(dateField).value = date;
  }
  if(document.getElementById(valueField)){
    document.getElementById(valueField).value = value;
  }
  setTimeout("closeAjaxDiv('ajax_date_picker')", 200);
}