/*

var parameter_list = "";
var url = document.location.href;
var pos = url.indexOf('filter.php');

if (pos >= 0) {
  parameter_list = url.substr(pos + 11);
}
if (parameter_list.length == 0){
  parameter_list = "%3Ax0search_mode=";
}
*/
function scrollPage(j) {

  document.search_filter.first_rec.value = j;

  document.search_filter.submit();
  
  //if (regio)
    //document.search_filter.action = window.location.href;
  
  //document.search_filter.sort_select.value = $("#sort select").val();
  //document.search_filter.show_regio.value = regio;

/*
  var show_regio = $('input[name$=":x0show_regio"]').val();
  
  if (show_regio >= 1) {
    var key = $("input.search_key:last").val();
    var typ = $('select[name$=":c0Typ"]').val();
    
    //document.search_filter.action = "/filter.php?region=" + key + "&typ=" + typ;
    document.search_filter.action = window.location.href;
  }

  document.getElementsByName(":x0show_regio")[0].value = show_regio;
*/  
  //var parameter_list = $("form").serialize(); alert (parameter_list);
  
  //alert(document.search_filter.%3Ac0Typ.value);
  //alert ($('select[name$="Typ"]').val());
}


// ************************************************************************************************
// setFilter()
// -----------
// setzt eine neue Variable ans Ende der Parameterliste, wenn dieser noch nicht gesetzt war oder
// ersetzt den alten Parameter mit einem neuen Wert 
//    
//    var_name : Parameter-Name
//    value    : Parameter-Wert
//    
/***********************************************************************************************  
function setFilter (var_name, value){

  var parameter = "&" + var_name + "="+ value; 
  var pos = parameter_list.indexOf("&" + var_name);
  
  if (pos >= 0){
    var prefix = parameter_list.substr(0, pos);
    var suffix = parameter_list.substr(pos + 1);
    var pos1 = suffix.indexOf("="); 
    
    pos = suffix.indexOf("&");

    
    if (pos >= 0){
      // Parameter stand mitten in der Parameterliste
      parameter_list = prefix + parameter + suffix.substr(pos);
      old_value = suffix.substring(pos1 + 1, pos);
    } else {
      // Parameter stand am Ende der Parameterliste
      parameter_list = prefix + parameter;
      old_value = suffix.substr(pos1 + 1);
    }
    return (old_value != value);
    
  } else {
    // Parameter an die Liste anhängen
    parameter_list = parameter_list + parameter;    
  }      
  
  return true;    

}


function XXXgetInputData(){

  var n = document.forms[0].elements.length;
  parameter_list = '';
  
  for (i=0;i<n;i++){
    input = document.forms[0].elements[i];

    switch (input.type) {
      case "checkbox":
        if (input.checked == true)
          parameter_list += input.name + ' = ' + input.value + ', ';  
        break;
      case "select-one":
        if (input.value != '0')
          parameter_list += input.name + ' = ' + input.value + ', ';  
        break;
      case "text":
        if (input.value.length > 0)
          parameter_list += input.name + ' = ' + input.value + ', ';
        break;
    }  
  }
}


function getInputData(){

//  alert(p);
  return p; 
  
  parameter_list = '';
  parameters = new Array();

  $("input[type=checkbox]").each(function(i) {
    if ($(this).is(':checked')){
      var var_name = escape($(this).attr("name"));
      // Parameter an die Liste anhängen
//      parameter_list += var_name + ': "on" , ';     
      parameters[var_name] = "on";     
    } 
  });

  $("input[type=text]").each(function(i) {
      
    var value = $(this).val();
    var var_name = escape($(this).attr("name"));
    if (value.length > 0)
      parameters[var_name] = value;     
//      parameter_list += var_name + ': "' + value + '", ';     
  });

  $("input[type=hidden]").each(function(i) {
      
    var value = $(this).val();
    var var_name = escape($(this).attr("name"));
    if (value.length > 0)
      parameters["var_name"] = value;     
//      parameter_list += var_name + ': "' + value + '", ';     
  });

  $("#num_input select").each(function(i) {
    var value = $(this).val();
    var var_name = escape($(this).attr("name"));

    if ((value.length > 0) && (value != '0'))
      parameters[var_name] = value;     
//      parameter_list += var_name + ': "' + value + '", ';     
  });
  
  parameters["sort_select"] = $("#sort select").val();     
  
  return paramters;
  
//  var sort = $("#sort select").val();
//  parameter_list += 'sort_select: "' + sort + '"';

}
*/

// ************************************************************************************************
// doSearch()
// ----------
// ruft die Suche auf 
//    
//    var_name : Parameter-Name
//    value    : Parameter-Wert
//    
// ************************************************************************************************  
function doSearch(){

/*
  alert(parameter_list);   

  var mode = $("input.search_key:first").val();
  var key = $("input.search_key:last").val();
  var sort = $("#sort select").val();

  filter = "&:x0search_mode=" + mode + "&:x0search_key=" + key + "&sort_select=" + sort;
  alert(filter);
*/  
  var show_regio = $('input[name$=":x0show_regio"]');

  if (show_regio.val() == 2) 
    show_regio.val(1); 
      
  var parameter_list = $("form").serialize(); //alert (parameter_list);
  var sort = $("#sort select").val();

  parameter_list += "&sort_select=" + sort;
   
/* 
  if (show_regio == 1){
    parameter_list = "showRegio=1&" + parameter_list;
    //alert (parameter_list);
  }
*/
  $.ajax({
  	type: "get",	
  	url: "/search.php",
    data: parameter_list,

  	success: function(my_result) {  
  	
  	  var pre = my_result.substr(3, 9); //die ersten 6 Zeichen sind Steuerzeichen...
  	  
  	  //alert('*' + pre);

  		if (pre == '<!--OK-->')
    		$("div.result #sort").show();
  		else
    		$("div.result #sort").hide();
  		
  		$("div.result #list").hide();
      $("div.result #list").html(my_result);
  		$("div.result #list").fadeIn();

  		if (show_regio.val() <= 0)  
        $("div.result #regio_text").hide();
//      else
//        $("div.result #ftype2").hide();
        
  	}
  }); // Schließe $.ajax(      
};


function searchDomicils(mode, key){

  $("input.search_key:first").val(mode);
  $("input.search_key:last").val(key);
  $('input[name$=":x0show_regio"]').val(0);    
  
  scrollPage(1);
  //doSearch ();
}


function browseAreaSelect(mode, key) {

  if (mode == null) mode=2;
  if (mode == 3) mode=1; // mode=3 wird für Regionen ohne Unterregion (wie 'Hamburg') verwendet  

  var parameters = new Array("Land=", "Region=", "Gebiet=");
  var parameter = parameters[mode] + key;
  
  if (mode == 1) parameter = parameter + "&Land=" + key.substr(0, 2);
  
  //alert (parameter);
  

  $.ajax({
  	type: "get",	
  	url: "/regio.php",
    data: parameter ,
  
  	success: function(multi_select) {
  
      var select = multi_select.split("|");

  		//alert (select[1].length);
			
  		$("select#country-sel").html(select[0]);

      if (select[1].length > 4) {
        $("select#region-sel").html(select[1]);
        $("select#region-sel").show();
      }
      else {
        $("select#region-sel").hide();
      };
      if (select[2].length > 4) {
        $("select#area-sel").html(select[2]);
        $("select#area-sel").show();
      }
      else {
        $("select#area-sel").hide();
      };
  	}
  }); // Schließe $.ajax(      
};


$(document).ready(function(){


  $('.header-pic').cycle({
  		fx: 'fade', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
      speed:  2500,
      timeot:  16000
	});

  // an alle Checkboxen wird diese CLICK-Funktion geklebt
  $("input[type=checkbox]").each(function(i) {
    $(this).bind('click', {index:i}, function(e){
/*      
      var var_name = escape($(this).attr("name"));
      var parameter = "&" + var_name + "=on";
      
      if ($(this).is(':checked')){
        // Parameter an die Liste anhängen
        parameter_list = parameter_list + parameter;    
      } else {
        // Parameter aus der Liste entfernen
        pos = parameter_list.indexOf(parameter);  
        parameter_list = parameter_list.substr(0, pos) + parameter_list.substr(pos + parameter.length);
      }
*/
      doSearch();          
    });
  });

  // an die #num_input Select-Auswahllisten wird diese CHANGE-Funktion geklebt
  $("#num_input select").each(function(i) {
    $(this).bind('change', {index:i}, function(e){
/*      
      var value = $(this).val();
      var var_name = escape($(this).attr("name"));
      
      setFilter (var_name, value); 
*/      
      var var_name = $(this).attr("name"); //alert (var_name);
      if (var_name == ":c0Typ")
        $('input[name$=":x0show_regio"]').val(-1);  
      
      doSearch();          
    });
  });

/*
  $("input[type=text]").each(function(i) {
    $(this).bind('blur', {index:i}, function(e){
      
      var value = $(this).val();
      var var_name = escape($(this).attr("name"));

      setFilter (var_name, value);             
           
    });
  });
*/

  $("#set_filter img").click(function () {    
    doSearch();    
  });

  $("#sort select").change(function () {    
    doSearch();    
  });


  if ($("#SelectGebiet").eq(0).is(":visible")){
        
    mode = $("input.search_key:first").val();
    key = $("input.search_key:last").val();
  
    browseAreaSelect(mode, key);
/*    
    dom_type =  $("select[name$=':c0Typ']").val();
    
    if (dom_type.length > 0) {
      alert (dom_type);
      setFilter (':c0Typ', dom_type); 
    }
*/
    //$("#SelectGebiet").show();  	
  };
  

  //-----------------------------------------
  // Select-Liste für die Länder-Auswahl
  //-----------------------------------------
  $("select#country-sel").change(function () {

		var country = $('select#country-sel').val();
		//alert(country);
		
    $.ajax({

			type: "get",	
			url: "/regio.php",
			data: "Land="+country ,	//  Parameter

			success: function(multi_select) {

        var select = multi_select.split("|");
				
				$("select#country-sel").html(select[0]);
        if (select[1].length > 4) {
          $("select#region-sel").html(select[1]);
          $("select#region-sel").show();
        }
        else {
          $("select#region-sel").hide();
        };
        $("select#area-sel").hide();
        
    		searchDomicils(0, country);
			}
		}); 
  });

  //-----------------------------------------
  // Select-Liste für die Regionen-Auswahl
  //-----------------------------------------
  $("select#region-sel").change(function () {
    
    var region = $('select#region-sel').val();
		var country = $('select#country-sel').val();
    var reg_p = "";
    
    //alert(region);
 
    // eine Region wurde ausgewählt (und nicht die Option "bitte wählen Sie...")
    if (region.length > 0){
      reg_p = "&Region="+region;
    }
    
		$.ajax({

			type: "get",	
			url: "/regio.php",
			data: "Land="+ country + reg_p,	//  Parameter

			success: function(multi_select) {

        var select = multi_select.split("|");
        var area = $('select#region-sel').val();
				
				$("select#country-sel").html(select[0]);
        $("select#region-sel").html(select[1]);
        
        if (select[2].length > 4) {
          // zu der gewählten Region sind Feriengebiete hinterlegt
          $("select#area-sel").html(select[2]);
          $("select#area-sel").show();

          searchDomicils(1, area);
        }
        else {
          // zu der gewählten Region sind KEINE Feriengebiete hinterlegt
          
          
          //$("input.region_key:first").val(area);  // der region_key und ...
          
          //setAreaName (area);                     // ...  der Name der Region werden gesetzt
          
          $("select#area-sel").hide();            // verberge die (leere!) Select-Liste für das Gebiet
          
          if (region.length > 0){
            searchDomicils(2, area);
          } else {
            // eine Region wurde nicht ausgewählt (sondern die Option "bitte wählen Sie...")
        		searchDomicils(0, country);
          }
          
        };       
			}
		});      
  });

  //-----------------------------------------
  // Select-Liste für das Gebiets-Auswahl
  //-----------------------------------------
  $("select#area-sel").change(function () {

    var area = $('select#area-sel').val();      
    
    //$("input.region_key:first").val(area); // der region_key und ...
    
    //setAreaName (area); // ...  der Name der Region werden gesetzt
    
    if (area.length > 0) {
      searchDomicils(2, area);
    } else {
      area = $('select#region-sel').val();
      searchDomicils(1, area);
    }

  });

});



/*
function checkPeriod () {

  var von = parseDate($("input[name$=':d0VonDat']").val());
  var bis = parseDate($("input[name$=':d0BisDat']").val());
  
  if (von == false || bis == false) // "von" oder "bis" nicht oder falsch gesetzt ==> DB-Filterung nicht erforderlich!
    return false; 
  if (bis > von)
    return true;  

  SetDateMsg(1, 10);

  return false;
}


function checkDate (var_name, value) {

  var_name = unescape(var_name);
  
  // Preis von-bis braucht nicht geprüft werden
  if (var_name.substr(0, 3) != ':d0')
    return true;
   
  var date = parseDate(value);

  if (date == false){
    SetDateMsg(0, 10); // falsches Datumsformat
    return false;  
  }
  
  if (var_name == ':d0VonDat'){
    var bis = parseDate($("input[name$=':d0BisDat']").val());
    //alert(bis);
    
    if (bis == false) // "bis" nicht oder falsch gesetzt ==> DB-Filterung nicht erforderlich!
      return false; 
    if (bis > date)
      return true;  
  }
  if (var_name == ':d0BisDat'){
    var von = parseDate($("input[name$=':d0VonDat']").val());
    //alert(von);
    
    if (von == false) // "von" nicht oder falsch gesetzt ==> DB-Filterung nicht erforderlich!
      return false; 
    if (date > von)
      return true;  
  }
  
  SetDateMsg(1, 10);

  return false;
}


function SetDateMsg (n, sec) {
  
  msg = new Array("Ung&uuml;ltiges Datumsformat!", "Ung&uuml;ltiger Reisezeitraum!");
  
  $("#date_error").html(msg[n]); 
  $("#date_error").show(); 
  $("#date_error").fadeOut(sec * 1000);
}

function parseDate (s_date) {

	var re_date = /^\s*(\d{1,2})\.(\d{1,2})\.(\d{2,4})\s*$/;
	if (!re_date.exec(s_date))
		return false; //alert ("Invalid date: '" + s_date + "'.\nAccepted format is dd-mm-yyyy.")
	var n_day = Number(RegExp.$1),
		n_month = Number(RegExp.$2),
		n_year = Number(RegExp.$3);

	if (n_year < 100)
		n_year += (n_year < this.a_tpl.centyear ? 2000 : 1900);
	if (n_month < 1 || n_month > 12)
		return false; // alert ("Invalid month value: '" + n_month + "'.\nAllowed range is 01-12.");
	var d_numdays = new Date(n_year, n_month, 0);
	if (n_day > d_numdays.getDate())
		return false; // alert("Invalid day of month value: '" + n_day + "'.\nAllowed range for selected month is 01 - " + d_numdays.getDate() + ".");

	return new Date (n_year, n_month - 1, n_day);
}
*/
