/****************************************************************************
 * Inhalt eines Reiters holen
 * 
 * @param param
 ***************************************************************************/ 
function ajaxGetContent(param)
{
  // Reiter animiert zusammenklappen und Inhalte mittels
  // einer CallbackFkt der Animation von jQuery
  // holen
  var nav = '';
  if(param) {
    nav = param.nav;
    param.expand = false;
  }
  if(nav && nav != '#') {
    bannerRefresh();
    return animateNav(param, ajaxGetContentCallback);
  } else {
    return animateNav({expand: true});
  }
}

function ajaxGetContentCallback(param) // (nav, searchString)
{
  var nav = param.nav;
  var searchString = param.searchString;
  var isExact = param.isExact;
  var filter = param.filter;
  // Reiter (Tab) in Suche öffnen
  var searchTab = 0;
  if(nav.match(/#/)) {
    arrNav = nav.split("#");
    nav = arrNav[0];
    searchTab = arrNav[1];
  }
  if(nav == 'nomenkl') {
    // Einen Zweig des Nomenklaturbaumes ausklappen (expand)
    var expandRegexp = /expand=([\d\.]+)/;
    var resultRegexp = expandRegexp.exec(searchString);
    sParam = 'nav=nomenkl';
    if(resultRegexp) {
      sParam += '&expand=' + resultRegexp[1];
    }
    var t = setTimeout(function(){
      $.ajax({
      type: "POST",
      url: "includes/ajaxRequest.php",
      data: sParam,
      async: true,
      success: function(data) {
        $('#inside').html(data).slideDown('slow', function() {
          expandRegexp = /nid=([\d]+)/;
          expandRegexp.exec(searchString);
          var nomenklId = RegExp.$1;
          return ajaxGetExibToNomenkl(nomenklId);
        });
      }
      });
    }, 100); // timeout damit die Ausstellerliste später da, als Nomenklaturbaum
  } else {
    var navParam = "&nav=" + nav;
    var sParam = '';
    var url = "includes/ajaxRequest.php";

    //Aufruf des Hallenplanes aus der Ergebnissuchliste
    if(searchString && searchString.match(/.*halle=.*/)) {
      halleRegexp = /halle=([\w])/;
      halleRegexp.exec(searchString);
      var halleId = RegExp.$1;
      sParam = sParam + '&' + searchString;
    }
    for (var i in param) {
      if(param[i] != undefined && i != 'nav') {
        sParam += '&' + i + '=' + param[i];
      }
    }

    if (nav == "messe")  {
      url = "index.php";
      //sParam = "controller=favorite&action=index&ajax=true&searchTab=" + searchTab;
      navParam = '';
      sParam += "&controller=dashboard&action=planner&ajax=true";
    }

    sParam += navParam + '&searchTab=' + searchTab;
    //alert(sParam);
    
    $.ajax({
      type: "POST",
      url: url,
      data: sParam,
      async: false,
      success: function(data){
      $('#inside').html(data).slideDown('slow');
      $('input[name=isExact]').val(isExact);
      $('input[name=filter]').val(filter);
      // Sofort noch Suche ausführen?
        if(nav == 'search' && typeof searchString != 'undefined') {
          // Liste suchen?
          if(searchString.match(/.*list=/)) {
            listRegexp = /list=(.+)&*/;
            listRegexp.exec(searchString);
            var list = RegExp.$1;
            return getList(list);
          }
          // Alle Suchfelder mit dem Suchbegriff füllen            
          $('input[name=s]').val(searchString);
          return searchSubmit();
        }
      }
    });
  }
  //return ajaxGetContent(hash);
  return false;
}

function ajaxFavInsAll(link)
{
  confirmDialog(t('txt_fav_nomenkl_add'), confirmedFavInsAll, link);

  function confirmedFavInsAll(link){
    var param = 'favInsAll=' + link.attr('data-id');
    $('a.favoriteNomenkl').removeClass('favInsAll').addClass('favDelAll');
    $.ajax({
      type: "POST",
      url: "includes/ajaxRequest.php",
      dataType: 'json',
      data: param,
      success: function(data) {
        $.each(data, function(i, item){
          $('a.favorite[data-id=' + item.id + '][data-veid=' + item.veid + ']')
            .data('isFavorite', true)
            .removeClass('favins')
            .addClass('favsel');
        });
        var message = aText['txt_favHinzugefuegt'];
        ajaxFavInsDelRequest(message);
      }
    });
    return false;
  }
  return false;
}

function ajaxFavDelAll(link)
{
  var param = 'favDelAll=' + link.attr('data-id');
  $('a.favoriteNomenkl').removeClass('favDelAll').addClass('favInsAll');
  $.ajax({
    type: "POST",
    url: "includes/ajaxRequest.php",
    dataType: 'json',
    data: param,
    success: function(data) {
      $.each(data, function(i, item){
        $('a.favorite[data-id=' + item.id + '][data-veid=' + item.veid + ']')
          .data('isFavorite', false)
          .removeClass('favsel')
          .addClass('favins');
      });
      var message = aText['txt_favGeloescht'];
      ajaxFavInsDelRequest(message);
    }
  });
}

function ajaxFavIns(param)
{
  $.ajax({
    type: "POST",
    url: "includes/ajaxRequest.php",
    data: param,
    success: function(data){
      ajaxFavInsDelRequest(data)
    }
  });
}

function ajaxFavDel(param)
{
  id = param.favdel;
  $.ajax({
    type: "POST",
    url: "includes/ajaxRequest.php",
    data: param,
    success: function(data){
      ajaxFavCount();
      $('#alert').hide();
    }
  });
  //
  $divid = $('#divMyPlanner' + param.favdel + param.veid + '_1');
  $headerDiv = $divid.parent();
  $divid.remove();
  if($headerDiv.children().find('div[id^=divMyPlanner]').length == 0) {
    $headerDiv.remove();
  }
  // Wenn Planer leer ist
  $mainDiv = $('#aussteller-box');
 
  countHeaders = $('.planerHeader', $mainDiv).length;
  if(param.favdel == 'all' || countHeaders == 0) {
    $mainDiv.children().remove(':not(.shade-v)');
    $mainDiv.append("<div class='p10'>" + t('txt_no_favorites') + "</div>");
  }
}

function ajaxFavInsDelRequest(message)
{
  if(message) {
    title = t('txt_hinweis');
    alertBox(title, message);
  } else {
    $('#alert').hide('slow');
  }
  //Anzahl Favoriten abfragen
  ajaxFavCount();
}

function ajaxFavCount()
{
  var param = 'favcount=1';
  $.ajax({
  type: "POST",
  url: "includes/ajaxRequest.php",
  data: param,
  success: function(data){
    //Favoritenzähler nicht highlighten
		$(".fav-num-h").addClass("fav-num").removeClass("fav-num-h");
		//animiertes Pfeil ausblenden
		window.setTimeout("$('.arr-counter').removeClass('arr-counter-v').fadeOut('slow');", 1000);
		//Favoritenzähler updaten
		$(".fav-num span").html(data);
  }
 });
}

var oldDivID = '';
var oldNomenklId = '';
function ajaxGetExibToNomenkl(nomenklId)
{
  closeBranch(oldNomenklId);
  liId = $("#div" + nomenklId).parent();
  if(!liId.hasClass('opened') && oldNomenklId != nomenklId) {
    $("#div" + nomenklId).parent().addClass('opened');
    $("#div" + nomenklId).parent().children('a:first').addClass('opened');
    param = 'nid=' + nomenklId + '&nav=nomenkl'
    ajaxGetExhibList(param, '#div' + nomenklId);
    oldNomenklId = nomenklId;
  } else {
    oldNomenklId = '';
  }
  return true;
}

function closeBranch(nomenklId)
{
  oldLiId = $("#div" + nomenklId).parent();
	oldLiId.removeClass('opened');
	oldLiId.children('a:first').removeClass('opened');
	$("#div" + nomenklId).slideUp('slow');
	return true;
}

/***********************************************************************
 * Anfrage Senden
 * 
 * @param param - Parameter
 * @param divID - DIV mit Ergebnissen   
 **********************************************************************/ 
function ajaxGetExhibList(param, divID)
{
  bannerRefresh();
  if(!divID) {
    divID = oldDivID;
  }
  oldDivID = divID;
  if(param.match(/.*div=.*/)) {
    var divRegexp = /div=(.+)(&|$)/; //Div ID ermitteln
    divID = divRegexp.exec(param);
    divID = divID[1];
  }
  $.ajax({
   type: "POST",
   url: "includes/ajaxRequest.php",
   data: param,
   async: true,
   success: function(data){
    $(divID).html(data);
    var divRegexp = /(^#\S+)/; //Div ID ermitteln
    divRegexp.exec(divID);
    divID = RegExp.$1;
    $(divID).slideDown('slow');
    return false;
   }
 });
}

function searchSubmit($form, $container)
{
  if(!$form || !$form.length) {
    $form = activeForm();
  }
  if(!$container) {
    $container = $('#trefferliste');
  }
  if($form.attr('name') == "formSearchNav") {
    // jQuery History Plugin (Back Button)
    // Suche von der Startseite aus
    //$.history.load('search', $('#searchNav').val());
    $.historyLoad({nav: 'search',
                    searchString: $('#searchNav').val(),
                    isExact: $('#isExact', $form).val(),
                    filter: $('input[name=filter]', $form).val()});
    return false;
    //return ajaxGetContent('search', $('#searchNav').val());
  }
  if($form.attr('name') == "formSearchAdvanced") {
    if(!checkSearchErw()) {
      return false;
    }
    $('#searchIn1, #searchIn2, #searchIn3').slideUp('slow');
    $('#schalterSuche').addClass('schalterSucheAuf').removeClass('schalterSucheZu');
  }
  if($form.attr('name') == "formPlan") {
    $container = $('#exhib-liste-plan');
  }
  if($form.attr('name').match(/formNomenclature/)) {
    $container = $('#div' + $('input[name=nid]', $form).val());
  }
  if($form.attr('name') == "formNomenclature") {
    $container = $('#inside');
  }

  $.ajax({
   type: "POST",
   url: "includes/ajaxRequest.php",
   data: $form.serialize(),
   async: true,
   success: function(data){
    $container.html(data);
    $container.slideDown('slow');
    return false;
   }
 });
 return false;
}

function ajaxGetExhibDetails(param)
{
  $.ajax({
    type: "POST",
    url: "index.php",
    data: {
      r: 'exhibitor/popup',
      id: param.id,
      veid: param.veid,
      ajax: true
    },
    success: function(data){
      return showPopup(data);
    },
    error:function (xhr, ajaxOptions, thrownError){
      alertBox("error", xhr.status + " " + xhr.statusText);
    }
  });
  return false;
}

function ajaxGetList(list)
{
  $('input#list', 'form#formSearchList').val(list);
  $('input[name=page]', 'form#formSearchList').val(1);
  searchSubmit();
  return;
  param = "list=" + list;
  $.ajax({
  type: "POST",
  url: "includes/ajaxRequest.php",
  data: param,
  async: false,
  success: function(data){
    $('#trefferliste').html(data);
  }
  });
}

function ajaxMailSend(form)
{
  $form = $('form[name=' + form.name + ']');
  var param = 'mail=1';
  $('input:not(:button), textarea, select', form).each(function() {
    if(($(this).val() != '' && $(this).attr('type') != 'radio') ||
      ($(this).attr('type') == 'radio' && $(this).attr('checked'))) {
      param += '&' + $(this).attr('name') + '=' + $(this).val();
    } 
  });
  $.ajax({
   type: "POST",
   url: "includes/ajaxRequest.php",
   data: 'mail=1&' + $form.serialize(),
   success: function(data){
    $('#meeting').fadeOut('slow');
    title = t('txt_mail_send');//"E-Mail Senden";
    message = data + "<div class=\"p10 middle\"><input type=\"button\" onClick=\"$('#alert')." + 
    "fadeOut('slow');\" value=\"OK\" /></div>";
    alertBox(title, message);
   }
  });
  return false;
}

function ajaxPlanReset()
{ 
  $('#tab-plan tr[id]').removeClass('highlighted highlighted-stay highlightedStrong');
  $('a.mark-stand').removeClass('mark-stand-selected');
  zeigeStand(0, 0, 0);
  $.ajax({
   type: "POST",
   url: "includes/ajaxRequest.php",
   data: "planExhib=reset",
   success: function(data){
    //nothing
    return false;
   }
  });
}

function ajaxGetPlanDetails(place)
{
  
  param = 'plandetails=' + place;
  $.ajax({
  type: "POST",
  url: "includes/ajaxRequest.php",
  data: param,
  success: function(data){
    $('#planDetails').html(data).show('slow');
    }
  });
}

function ajaxMeetingForm(firma, kontakt)
{
  param = "meetingmail[" + escape(firma) + "]=" + kontakt;
  $.ajax({
  type: "POST",
  url: "includes/ajaxRequest.php",
  data: param,
  success: function(data){
    if($('#meeting').size()) {
      $('#meeting').remove();
    }
    $('body').prepend(data);
    $('#meeting').show('slow');    
  }
  });
}

function ajaxNomenklReset(param)
{
  if(param) {
    var paramString = param;
  } else {
    var paramString = 'nav=nomenkl';
  }
  $.ajax({
  type: "POST",
  url: "includes/ajaxRequest.php",
  data: paramString,
  success: function(data){
    if(param) {
      $('#trefferliste').html(data);
    } else {
      $('#inside').html(data);
    }
  }
  });
}



function warnNotLogged()
{
  $('#alert').hide();
  $.ajax({
    type: 'POST',
    url: 'includes/ajaxRequest.php',
    data: 'warnNotLogged=0'
  });
}
