  // add javascript elements, when body ready
  window.addEvent('domready', function() {
    // define search element
    var element_search_box     = $('search_values');
    var element_search_button  = $('search_button');
    var element_search_listing = $('search_results_listing');
    var element_search_close   = $('search_results_close');
    var element_search_result  = $('search_results');		
		var element_search_result_lable = $('search_results_lable');
		var element_search_result_close = $('search_results_close');
		var element_search_result_links = $('search_results_links');
    
    // main site elements
    var element_body_content    = $('page_body_content');
    var element_body_navigation = $('page_body_navigation');
    var element_body_tabs       = $('page_body_tabs');
        
		// define effects for output items
	  var effects_search_result  = new Fx.Tween(element_search_result);
		var effects_search_listing = new Fx.Tween(element_search_listing);
		var effects_search_result_lable = new Fx.Tween(element_search_result_lable);
		var effects_search_result_close = new Fx.Tween(element_search_result_close);
		var effects_search_result_links = new Fx.Tween(element_search_result_links);
        
    var effects_body_content    = new Fx.Tween(element_body_content);
    var effects_body_tabs       = new Fx.Tween(element_body_navigation);
    var effects_body_navigation = new Fx.Tween(element_body_tabs);
   
    // secure errors
    try {
    	// set click on search button
    	element_search_button.addEvent('click', function(element) {
    		// stop effects
        element.stop();
        
        // set main effects        
        effects_body_tabs.start('margin-top', 200);
        effects_body_content.start('margin-top', 200);
        effects_body_navigation.start('margin-top', 200);
        
				// set first main effect
				effects_search_result.start('opacity', 0, 1).chain(function(){
					// set fade into visible
					effects_search_result.start('height', 0, 250);
				}).chain(function(){
					// set height and fade into visible
					effects_search_listing.start('height', 0, 250);
					effects_search_listing.start('opacity', 0, 1);
					// set fade into visible
					effects_search_result_lable.start('opacity', 0, 1);
					effects_search_result_close.start('opacity', 0, 1);
					effects_search_result_links.start('opacity', 0, 1);
          
          // define request 
					var request = new Request.JSON({
						// set url and secure communication
						url: 'http://www.de-nrw.de/index.php?id=226&terms=' + element_search_box.value,
						secure: true,
						// set content of search results into results listing
						onComplete: function(jsonObj) { 
							// proceed thru json objects
							for(var x_json=0; x_json<jsonObj.search.length; x_json++){
                // check background highlight using modulu
                if(x_json%2){ var row_highlight = 'background-color:#F0F0F0;'; }else{ var row_highlight = null; }
                // create search result elements into results listing
			          var search_results_items = new Element('div', {'class': 'search_result_item'});
                
                // define name container                
                var search_results_name = null;
                // check for needed fields
                if(search_results_name == null && jsonObj.search[x_json].site != null){ search_results_name = jsonObj.search[x_json].site; }
                if(search_results_name == null && jsonObj.search[x_json].subtitle != null){ search_results_name = jsonObj.search[x_json].site; }
                // check valid length of name
                if(search_results_name.length > 75){ search_results_name = search_results_name.substr(0, 75) + " ..."; }

                // define link container
                var search_results_link = null;
                    search_results_link = jsonObj.search[x_json].link;
                // check valid length of link
                if(search_results_link.length > 55){ search_results_link = search_results_link.substr(0, 55) + " ..."; }
                
                // output needed elements
			          var search_results_title = new Element('div', {'class': 'search_result_title', 'style': row_highlight, 'html': '<a href="' + jsonObj.search[x_json].link + '">' + search_results_name + '</a>'}).inject(search_results_items);
			          // var search_results_texts = new Element('div', {'class': 'search_result_texts', 'style': row_highlight, 'html': '<a href="' + jsonObj.search[x_json].link + '">' + jsonObj.search[x_json].subtitle + '</a>'}).inject(search_results_items);
			          var search_results_links = new Element('div', {'class': 'search_result_link',  'style': row_highlight, 'html': '<a href="' + jsonObj.search[x_json].link + '">' + search_results_link + '</a>'}).inject(search_results_items);
			          var search_results_clear = new Element('div', {'class': 'search_result_clear', 'style': row_highlight, 'text': ' '}).inject(search_results_items);

                // add search link items
                search_results_items.inject(element_search_result_links);
							}              							
						}
					}).send();
				}); 	
      }); 
     
      // set click on close button
    	element_search_close.addEvent('click', function(element) {
        // hide search box elements
        effects_search_result.start('opacity', 1, 0);
				effects_search_listing.start('opacity', 1, 0);
				effects_search_result_lable.start('opacity', 1, 0);
				effects_search_result_close.start('opacity', 1, 0);
				effects_search_result_links.start('opacity', 1, 0);
        
        // set margins and hights
        effects_search_result.start('height', 250, 0);
				effects_search_listing.start('height', 250, 0);
        
        effects_body_tabs.start('margin-top', 0);
        effects_body_content.start('margin-top', 0);
        effects_body_navigation.start('margin-top', 0);
      });
    }catch(error){ alert(error); };
  });