$("document").ready(function()
{   
    //
    // Freitextfeld für Hersteller standardmäßig ausblenden
    //
    $("#mch_manufacturer_name").hide();
    
    //
    // Button zur einfachen Suche ausblenden
    //
    $("#simpleSearch").hide();
    
    //
    // Nur 2 Unterkategorien anzeigen, daher den Rest ausblenden
    //
    $(".div_category_hide").hide();
    
    // Ausblenden Buttons verbergen
    $(".link_category_hide_all").hide();
   
    //
    // Anzeigen aller Unterpunkte einer Kategorie
    //
    $(".link_category_show_all").click(function (i) {
    	var id = $(this).attr('id').replace('show_category_','');
    	// Alle Links wieder einblenden
   // 	$(".link_category_show_all").show();
    	// Alle geöffneten Unterkategorien schliessen
   // 	$(".div_category_hide").hide();
    	// Kategorie komplett anzeigen
    	$("#div_category_"+id).children().each(function (i) { $(this).show();} );
    	// Anzeigen-Button der Kategorie verbergen
    	$(this).hide();
    	$("#hide_category_"+id).show();
    	return false;
    });
    
       //
   // Ausblenden aller Unterpunkte einer Kategorie
   //
   $(".link_category_hide_all").click(function (i) {
   	var id = $(this).attr('id').replace('hide_category_','');
   	// Alle Links wieder einblenden
   	//$(".link_category_show_all").show();
   	// Alle geöffneten Unterkategorien schliessen
   	//$(".div_category_hide").hide();
   	// Kategorie komplett anzeigen
   	$("#div_category_"+id).children().each(function (i) { $(this).hide();} );
   	// Anzeigen-Button der Kategorie verbergen
   	$(this).hide();
   	// Zuklappen-Button anzeigen
   	$("#show_category_"+id).show();
   	return false;
   }); 
    
});
// var exSearchFormInput = new Object();
var fromKw, toKw;

$("document").ready (function ()
{
		var list = $('select#machine_type_id optgroup');	

   $("#regionalSearchForm").hide();
   
   $("#hide_category_all").hide();
   
   // Link, um alle Kategorien auszuklappen
   $('#show_category_all').click(function () {
	  $("#hide_category_all").show();
	  $('#show_category_all').hide();
   	  $(".div_category_hide").show();
   	  $('.link_category_show_all').hide();
   	  $('.link_category_hide_all').show();
   	  return false;
   });
   
   // Link, um alle Kategorien auszuklappen
   $('#hide_category_all').click(function () {
	  $("#hide_category_all").hide();
	  $("#show_category_all").show();
   	  $(".div_category_hide").hide();
   	  $('.link_category_show_all').show();
   	  $('.link_category_hide_all').hide();
   	  return false;
   });

  //
  // Kategoriewechsel
  //
  $("#machine_type_id").change (function ()
  {
		var value = $(this).val();
	if(value > 0)
	{
		$.getJSON("/default/index/checkmachinetypeforps",
					{ machineTypeId: value },
				    function(responseData){
						if(responseData.hasAttributePs == true)
						{
							$.get ("/search/search/loadenginepowerinputs/", function (response)
							{
								$('#exSearchForm').show();
								$('#exSearchForm').html(response);
								/**
								 * Methoden zur Umrechnung der Motorleistung
								 */
								$("input#424_min").change(KWtoPS);
								$("input#424_min").val(fromKw);
								$("input#424_min").trigger('change');
								$("input#424_max").change(KWtoPS);
								$("input#424_max").val(toKw);
								$("input#424_max").trigger('change');
								$("input#PS_min").change(PStoKW);
								// $("input#PS_min").val(fromPs);
								$("input#PS_max").change(PStoKW);
								// $("input#PS_max").val(toPs);
							});
						}
						
					}
				);
	}
    $(this).css ('background-color', '#FFFFFF');
      
   	 //Button zur einfachen suche ausblenden
   	 //$("#simpleSearch").hide();
   	 // Button zur erweiterten Suche einblenden
   	 //$("#exSearch").show();
   	 
   	 if ($("#exSearchForm").children().length) {
   	    // Elemente des erweiterten Suchformulars lÃ¶schen
   	 	$("#exSearchForm").children().each(function (i)
     	{ 
     		$(this).remove();
     	});
     	loadexSearchForm();
   	 }
   	 
   	 // Erweitertes Suchformular ausblenden
     // $("#exSearchForm").hide();
     
     // Gruppe zur Kategorie vorselektieren
     var category =  $(this).find("option:selected").parent().attr("label");
     $("#machine_group_id").val(category);
     
     // EinschrÃ¤nkung der Herstellerliste
     if ($(this).val() > 0 ) {
     	load_items($(this).val(),"type_id");
     }
     else {
     	load_items($("#machine_group_id").val(),"group_id");
     }
  });
  
  //
  // Herstellerwechsel
  //
  $("#manufacturer_id").change(
        function()
        {
            if($(this).val() == -1)
            {
                // Freitextfeld fÃ¼r Herstellersuche
                $("#mch_manufacturer_name").show();   
            }
            else
            {
                $("#mch_manufacturer_name").hide();
            }
        }
    );
  
  
   //
   // Gruppenwechsel
   //
   $("#machine_group_id").change(function()
       {
            if($(this).val() > 0)
            {
            	var maschinentyp = this.options[this.selectedIndex].text;
            	            	list.appendTo('select#machine_type_id');
            	$.each(list, function(i,item) {
                	if(!isNaN(parseInt(i)))
                	{
            			if(item.label != maschinentyp)
            			{
            				//der "delete obj.property" Ansatz kann nicht funktionieren, weil DOM Objekte Readonly sind.
            				//Daher muss der Zugriff ueber DOM erfolgen
            				$("#machine_type_id optgroup[label=\""+ item.label +"\"]").remove();
            			}
                	}
                });
            }
            else
            {
            	list.appendTo('select#machine_type_id');
            }
            $("option:first", "#machine_type_id").attr("selected","selected");
            
            if ($("#exSearchForm").children().length) {
			   	    // Elemente des erweiterten Suchformulars lÃ¶schen
			   	 	$("#exSearchForm").children().each(function (i)
			     	{ 
			     		$(this).remove();
			     	});
		     		$('#exSearch').show();
		     		$('#simpleSearch').hide();
            }
            
            load_items($(this).val(),"group_id");
        }
    );

  //
  // Aufruf der erweiterten Suche
  //
  $("#exSearch").click (function ()
  {
    if ($("#machine_type_id").val() < 1)
    {
      alert ("Bitte wÃ¤hlen Sie zuerst eine Kategorie aus!");
      
      $("#machine_type_id").css('background-color', '#FFAAAA')
        .fadeOut("slow").fadeIn("fast");
      
      return false;
    }

	loadexSearchForm();
    $("#regionalSearchForm").show();
          
    return false;
  });
  
  
   $("#simpleSearch").click(function ()
   {
   	 //Button zur einfachen suche ausblenden
   	 $("#simpleSearch").hide();
   	 // Button zur erweiterten Suche einblenden
   	 $("#exSearch").show();
   	 
   	 // Elemente des erweiterten Suchformulars lÃ¶schen
   	 $("#exSearchForm").children().each(function (i)
     	{ $(this).remove();
     });
     
     // Erweitertes Suchformular ausblenden
     $("#exSearchForm").hide();
     $("#regionalSearchForm").hide();
     return false;
   });
});

function loadexSearchForm () {
    var type_id = $("#machine_type_id").val();
    
    $.get ("/search/search/attributes/type_id/" + type_id, function (response)
    {
      $('#exSearchForm').show();	      
      $('#exSearchForm').html(response);
      $('#simpleSearch').show();
      $('#exSearch').hide();
	  
      	   $("input#424_min").change(KWtoPS);
	   $("input#424_min").val(fromKw);
	   $("input#424_min").trigger('change');
	   $("input#424_max").change(KWtoPS);
	   $("input#424_max").val(toKw);
	   $("input#424_max").trigger('change');
	   $("input#PS_min").change(PStoKW);
	   $("input#PS_max").change(PStoKW);
    })
}


function loadSearchRanges()
{
  var elementIDs = new Array();
  var i = 0;
  
  // IDs ermitteln, um SearchRanges aus der DB lesen zu kÃ¶nnen
  $("#exSearchForm .form_search_small_input").each(function () 
   {
		var arrayName = $(this).attr('id').split('_');
		if (arrayName[1] == 'min') 
		{ 
	    	var attribute_id = arrayName[0];
	    	elementIDs[i] = attribute_id;
	    	i++;
	    }	
   });
   
   postData = {ids: elementIDs};		
   		
   $.ajax({ 
   type: 'POST', 
   dataType: 'json', 
   url: '/search/search/searchrange', 
   data: postData, 
   success: function(result) { 
      alert (result);
   } 
}); 	
   		
}

// Nachladen der Herstellerliste
function load_items(type_id, param) 
    { 
		$("#manufacturer_id").attr("disabled","disabled");
        var url = "/search/search/manufacturerlist/" + param + "/" + type_id;
        $.get(url,
                function(data,textType) 
                    {                     
                        $("#manufacturer_id_td").html(data); 
                        //$("#manufacturer_id").removeAttr("disabled");
                    }); 
    } 

  function PStoKW () {	
		PS =parseInt($(this).attr('value'));
		
		if (isNaN(PS))
		{
			if($(this).attr('id').indexOf('min') > 0) {
				$("input#424_min").attr('value','');
				$("input#424_min").attr('value',$(this).attr('id').indexOf('min'));
			}
			else
			{
				$("input#424_max").attr('value','');
			}
			$(this).attr('value','');
		}
		else
		{
			var kWUmrechnung = 0.73549875;	
			var kW = (PS * kWUmrechnung).toFixed(0);
			if($(this).attr('id').indexOf('min') > 0) {
				$("input#424_min").attr('value',kW);
				fromKw = kW;
			}
			else
			{
				$("input#424_max").attr('value',kW);
				toKw = kW; 
			}
		}
	}
	
	
	function KWtoPS (){
		var kW = parseInt($(this).attr('value'));
		if (isNaN(kW))
		{
			if($(this).attr('id').indexOf('min') > 0) {
				$("input#PS_min").attr('value','');
			}
			else
			{
				$("input#PS_max").attr('value','');
			}
			$(this).attr ('value', '');
		}
		else
		{
			var PSUmrechnung = 1.3596216;	
			var PS = (kW * PSUmrechnung).toFixed(0);
			if($(this).attr('id').indexOf('min') > 0) {
				$("input#PS_min").attr('value',PS);
				fromKw = kW;
			}
			else
			{
				$("input#PS_max").attr('value',PS);
				toKw = kW;
			}
		}
	}     

