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");
  //document.getElementById('mainmenu_item_'+menuitem).className = '';
  if(document.getElementById('mainmenu_item_'+menuitem).className == "active"){
    document.getElementById('mainmenu_item_'+menuitem).style.backgroundImage = 'url(images/mainmenu_item_active.gif)';
    document.getElementById('mainmenu_item_'+menuitem).style.paddingTop = '16px';
    document.getElementById('mainmenu_item_'+menuitem).style.paddingBottom = '14px';
    document.getElementById('mainmenu_item_'+menuitem).style.color = '#000000';
  }
  else{
    document.getElementById('mainmenu_item_'+menuitem).style.backgroundImage = 'url(images/mainmenu_item.gif)';
    document.getElementById('mainmenu_item_'+menuitem).style.paddingTop = '19px';
    document.getElementById('mainmenu_item_'+menuitem).style.paddingBottom = '11px';
    document.getElementById('mainmenu_item_'+menuitem).style.color = '#FFFFFF';
  }
}

function mainmenuOut(menuitem){
  timer[menuitem] = setTimeout("mainmenuHideSub('"+menuitem+"')", 50);
}

function mainmenuIn(menuitem){
  changeStyle("pulldownmenu_"+menuitem, "visibility", "visible");
  //document.getElementById('mainmenu_item_'+menuitem).className = 'mainmenu_hover';
  document.getElementById('mainmenu_item_'+menuitem).style.backgroundImage = 'url(images/mainmenu_item_active.gif)';
  document.getElementById('mainmenu_item_'+menuitem).style.paddingTop = '16px';
  document.getElementById('mainmenu_item_'+menuitem).style.paddingBottom = '14px';
  document.getElementById('mainmenu_item_'+menuitem).style.color = '#85371E';
  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;
//document.onclick = click;

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(target, y, mode, query){
  var m = document.forms[target + "_ajax_date_picker_form"].monthSelect.options[document.forms[target + "_ajax_date_picker_form"].monthSelect.selectedIndex].value;
  //ajaxRequest("ajax/date_picker.php?y="+y+"&m="+m+"&mode="+mode+query, "ajax_date_picker");
  new Ajax.Updater(target, "ajax/date_picker.php?y="+y+"&m="+m+"&mode="+mode+query);
}

function changeYear(target, m, mode, query){
  var y = document.forms[target + "_ajax_date_picker_form"].yearSelect.options[document.forms[target + "_ajax_date_picker_form"].yearSelect.selectedIndex].value;
  new Ajax.Updater(target, "ajax/date_picker.php?y="+y+"&m="+m+"&mode="+mode+query);
}

var datepicker = new Array();
function calendarChooseDay(date, value, dateField, valueField){
  if(document.getElementById(dateField)){
    document.getElementById(dateField).value = date;
  }
  if(document.getElementById(valueField)){
    document.getElementById(valueField).value = value;
  }
  datepicker[dateField].hide();
  
  datepicker[dateField] = new Tip(document.getElementById(dateField+'_button'), '', {title:'test', className: 'datepicker', target: dateField+'_value', hook:{target:'bottomLeft', tip:'topLeft'}, showOn: 'click', closeButton:true, hideOn:{element:'.close', event:'click'}, effect:'appear', ajaxRequest:{ source:'ajax/date_picker.php?valueField='+dateField+'_value&dateField='+dateField+'&active_date='+document.getElementById(dateField).value, width:200, height:207, name:dateField} });
}

function airportPickerSubmit(target, field, display_field){
  $(target).innerHTML = "<table style='width:100%; height:100%'><tr><td style='text-align:center'><img src='images/ajax_process.gif' style='width:; height:; border:0px' alt='' /></td></tr></table>";
  new Ajax.Updater(target, "ajax/airport_picker_list.php?field="+field+"&display_field="+display_field+"&target="+target+"&search=" + escape(document.getElementById(field + "_airport_search_field").value));
  return false;
}

function airportPickerReturn(field, display_field, airport, icao){
  if(document.getElementById(field)){
    document.getElementById(field).value = airport;
  }
  if(document.getElementById(display_field)){
    document.getElementById(display_field).value = icao;
  }
  datepicker[field].hide();
  
  datepicker[field] = new Tip(document.getElementById(field+'_button'), '', {className: 'airportpicker', target: field+'_value', hook:{target:'bottomLeft', tip:'topLeft'}, showOn: 'click', closeButton:true, hideOn:{element:'.close', event:'click'}, effect:'appear', ajaxRequest:{ source:'ajax/airport_picker.php?airport='+airport+'&display_field='+display_field+'&field='+field+'&value='+document.getElementById(field).value, width:375, height:180, name:field} });
}

//SELECT BOX FUNCTIONS
function selectAllOptions(sel)
{
	for(i=0; i<sel.length; i++){
	  sel.options[i].selected=true;	
	}
}

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  
  theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}

function moveOptions(theSelFrom, theSelTo)
{
  
  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--)
  {
    if(theSelFrom.options[i].selected)
    {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }
  
  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }
}

//AIRCRAFT TYPE FUNCTIONS
function toggleAircraftTypeSelection(){
  for( i = 0; i < document.flight_request_form.aircraft_type_selection.length; i++ ){
    if( document.flight_request_form.aircraft_type_selection[i].checked == true )
    var value = document.flight_request_form.aircraft_type_selection[i].value;
  }
  
  document.getElementById('preferred_aircraft_types').disabled = (value == "all") ? true : false;
  document.getElementById('available_aircraft_types').disabled = (value == "all") ? true : false;
}

//Lightbox Edit DB Row
function submitLightboxEditDBRow(){
  return false;
}

function sendAjaxForm(f, action, div, no_loading_img){
  var dataArr = new Array();
  if(!f || !f.elements){
	alert("no form");
	return false;
  }
  for(i = 0; i < f.elements.length; i ++){
    var e = f.elements[i];
    var type = e.type;
    if(type.toUpperCase().indexOf("SELECT") != -1){
      dataArr[dataArr.length] = e.name + "=" + e.options[e.selectedIndex].value;
    }
    else{
      switch(type.toUpperCase()){

        case "TEXT":
          dataArr[dataArr.length] = e.name + "=" + escape(e.value);
          break;

        case "TEXTAREA":
          dataArr[dataArr.length] = e.name + "=" + e.value;
          break;

        case "PASSWORD":
          dataArr[dataArr.length] = e.name + "=" + e.value;
          break;

        case "HIDDEN":
          dataArr[dataArr.length] = e.name + "=" + e.value;
          break;

        case "SUBMIT":
          if(e.name && e.name != "" && e.value && e.value != ""){
            dataArr[dataArr.length] = e.name + "=" + e.value;
          }
          break;

        case "BUTTON":
          break;

        case "RESET":
          break;

        case "RADIO":
          if(e.checked == true && e.value != ""){
            dataArr[dataArr.length] = e.name + "=" + e.value;
          }
          break;

        case "CHECKBOX":
          if(e.checked == true && e.value != ""){
            dataArr[dataArr.length] = e.name + "=" + e.value;
          }
          break;

        default:
          alert(e.type + "-Felder können zur Zeit noch nicht verarbeitet werden!");
      }
    }
  }
  
  //alert(dataArr.join("&"));
  
  /*
  if(!no_loading_img) var no_loading_img = false;
  ajaxRequest(action, div, dataArr.join("&"), 2, no_loading_img);
  */
  
  $(div).innerHTML = "<table style='width:100%; height:100%'><tr><td style='text-align:center; vertical-align:middle; background-color:#FFFFFF'><img src='images/ajax_process.gif' style='width:32px; height:32px; border:0px' alt='' /></td></tr></table>";
  
  new Ajax.Updater(div, action, {method: 'post', parameters: dataArr.join("&")});
  return false;
}