
function dynamicsearch(field, targetdiv) {

	var sourceobj;
	var searchvalueraw;
	var targetobj;
  var code_targetdiv = "";
	var search_result_ids;
	var searchvaluessplit;
  var data_to_check;
  var data_to_check_serialized;
  var all_terms_found;
  var show_results = 0;
  
  var i;
  var j;
  var temp;

	if (field) {
		if (targetdiv) {
			
			sourceobj = document.getElementById('inputfields[forms][fahrt_buchen][specialsearchinput][]');
			
			// alert(sourceobj);

			searchvalueraw = sourceobj.value;
			
			// convert to lower case
			searchvalueraw = searchvalueraw.toLowerCase() 
			
			targetobj = document.getElementById(targetdiv);

      
			// gather search terms
			
      search_result_ids = new Array();

	    
	    // split search input along spaces

	    searchvaluessplit = searchvalueraw.split(" ");

	    
	    // ignore multiple spaces in searchstring

	    temp = Array();
	    for (i = 0; i < searchvaluessplit.length; i ++) {
	    	if (searchvaluessplit[i] != "") {
	    		temp[temp.length] = searchvaluessplit[i];
	    	}
	    }
      
      searchvaluessplit = temp;
      
      if (searchvaluessplit.length > 0) {
      
				// search for text in workdata['arztstandorte']
	
				for (i = 0; i < workdata['arztstandorte'].length; i ++) {
	
	      	data_to_check = workdata['arztstandorte'][i];
	      	
	      	data_to_check_serialized = "";
	      	data_to_check_serialized +=	data_to_check['name'].toLowerCase() +" ";


					if (data_to_check['fachbereich1'] != "" && data_to_check['fachbereich1'] != "0") {
		      	for (j = 0; j < workdata['fachbereiche'].length; j ++) { 
		      		if (workdata['fachbereiche'][j]['id'] == data_to_check['fachbereich1']) {
				      	data_to_check_serialized +=	workdata['fachbereiche'][j]['bezeichnung'].toLowerCase() +" ";
		      		}
		      	}
					}

					if (data_to_check['fachbereich2'] != "" && data_to_check['fachbereich2'] != "0") {
		      	for (j = 0; j < workdata['fachbereiche'].length; j ++) { 
		      		if (workdata['fachbereiche'][j]['id'] == data_to_check['fachbereich2']) {
				      	data_to_check_serialized +=	workdata['fachbereiche'][j]['bezeichnung'].toLowerCase() +" ";
		      		}
		      	}
					}
					
					if (data_to_check['fachbereich3'] != "" && data_to_check['fachbereich3'] != "0") {
		      	for (j = 0; j < workdata['fachbereiche'].length; j ++) { 
		      		if (workdata['fachbereiche'][j]['id'] == data_to_check['fachbereich3']) {
				      	data_to_check_serialized +=	workdata['fachbereiche'][j]['bezeichnung'].toLowerCase() +" ";
		      		}
		      	}
					}
					
					data_to_check_serialized +=	data_to_check['leiter'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['strasse'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['hausnr'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['plz'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['ort'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['tel'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['fax'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['email'].toLowerCase() +" ";
					data_to_check_serialized +=	data_to_check['web'].toLowerCase();
		      
		      all_terms_found = 1;
		      
		      for (j = 0; j < searchvaluessplit.length; j ++) {
			      if (data_to_check_serialized.indexOf(searchvaluessplit[j]) == -1) {
				      all_terms_found = 0;
			      }
					}

					if (all_terms_found == 1) search_result_ids[search_result_ids.length] = i;
				}      
			}
			

			// only show results if any of the searchterms is longer than 2 characters

      for (i = 0; i < searchvaluessplit.length; i ++) {
      	if (searchvaluessplit[i].length > 1) {
      		show_results = 1;
      	}
      }
      
      
      // generate display of results

			targetobj = document.getElementById(targetdiv);
			

			// empty result div

			while (targetobj.hasChildNodes()) targetobj.removeChild(targetobj.firstChild);



			// show results
			
			if (search_result_ids.length > 0 && show_results == 1) {
        
				var containerdiv =  new Array();
	
				for (i = 0; i < search_result_ids.length; i ++) {
	
				  containerdiv[i] = document.createElement('div');
	
				  // IE < 8 cannot fill "style" attribute using setAttribute
				  
				  // clear:both for first element
				  
				  if (i == 0) {
					  containerdiv[i].style.cssText = 'clear:both; float:left; margin:0.5em; padding:0.25em; border:0px solid #000000; width:45%;'; 
					  containerdiv[i].setAttribute('style', 'clear:both; float:left; margin:0.5em; padding:0.25em; border:0px solid #000000; width:45%;');
				  }
				  else {
					  containerdiv[i].style.cssText = 'float:left; margin:0.5em; padding:0.25em; border:0px solid #000000; width:45%;'; 
					  containerdiv[i].setAttribute('style', 'float:left; margin:0.5em; padding:0.25em; border:0px solid #000000; width:45%;');
					}
		
					
					// icon to select
					var containericon = document.createElement('div');

				  // IE < 8 cannot fill "style" attribute using setAttribute
				  containericon.style.cssText = 'float:left; margin:1em 0em 0em 0em; padding:0.5em; background-color:#aaaaaa;'; 
				  containericon.setAttribute('style', 'float:left; margin:1em 0em 0em 0em; padding:0.5em; background-color:#aaaaaa;');
				  containericon.setAttribute('id', 'resultcontainer1');

					var icontoselectlink = document.createElement('a');
				  icontoselectlink.setAttribute('href', 'javascript:step_form_fahrt_buchen(1,'+i+','+workdata['arztstandorte'][search_result_ids[i]]['id']+');');
					
					var iconbreak = document.createElement('br'); 
					icontoselectlink.appendChild(iconbreak);
					
					icontoselectlink.appendChild(document.createTextNode('hierhin'));

					
					var icontoselect = document.createElement('p');
				  icontoselect.style.cssText = 'width:4em; height:4em; border:1px solid #000000; background-color:#00dd00; text-align:center;'; 
					icontoselect.setAttribute('style', 'width:4em; height:4em; border:1px solid #000000; background-color:#00dd00; text-align:center;');
				  

/*
					var icontoselect = document.createElement('img');
				  icontoselect.setAttribute('src', 'images/button_check_all.gif');
				  icontoselect.style.cssText = 'border:0px solid #000000;'; 
				  icontoselect.setAttribute('style', 'border:0px solid #000000;');
*/
					icontoselect.appendChild(icontoselectlink);

					containericon.appendChild(icontoselect);
					
					
					
					// container fpr text data
					var containterdata = document.createElement('div');

				  // IE < 8 cannot fill "style" attribute using setAttribute
				  containterdata.style.cssText = 'float:left; width:70%; margin:1em; padding:0.5em; border:1px solid #000000; '; 
				  containterdata.setAttribute('style', 'float:left; width:70%; margin:1em; padding:0.5em; border:1px solid #000000; ');
					
					
					var artzpraxisname = document.createElement('p'); 
					
					// show only first 40 characters of name
					artzpraxisname.appendChild(document.createTextNode(workdata['arztstandorte'][search_result_ids[i]]['name'].substring(0, 40)));

					
					var temp_fachbereich1 = "";
					if (workdata['arztstandorte'][search_result_ids[i]]['fachbereich1'] != "") {
						//alert(workdata['arztstandorte'][search_result_ids[i]]['fachbereich1']);
						var temp_fachbereich1_index = workdata['arztstandorte'][search_result_ids[i]]['fachbereich1']; 
						
						// look for this id in field workdata[fachbereiche]
						for (j = 0; j < workdata['fachbereiche'].length; j ++) {
							if (workdata['fachbereiche'][j]['id'] == temp_fachbereich1_index) {
								temp_fachbereich1 = workdata['fachbereiche'][j]['bezeichnung'];
							}
						}
						
					}
					
					var artzpraxisfachbereich = document.createElement('p'); 
					artzpraxisfachbereich.appendChild(document.createTextNode(temp_fachbereich1));

					var artzpraxisstrasse = document.createElement('p'); 
					artzpraxisstrasse.appendChild(document.createTextNode(workdata['arztstandorte'][search_result_ids[i]]['strasse'] + " " + workdata['arztstandorte'][search_result_ids[i]]['hausnr']));

					var artzpraxisort = document.createElement('p'); 
					artzpraxisort.appendChild(document.createTextNode(workdata['arztstandorte'][search_result_ids[i]]['plz'] + " " + workdata['arztstandorte'][search_result_ids[i]]['ort']));

					
					// generate a clearing br

					var breakaftercontainer = document.createElement('p');

				  // IE < 8 cannot fill "style" attribute using setAttribute
				  breakaftercontainer.style.cssText = 'clear:both;'; 
				  breakaftercontainer.setAttribute('style', 'clear:both;');
					breakaftercontainer.appendChild(document.createTextNode(''));
					
		
					containterdata.appendChild(artzpraxisname);
					containterdata.appendChild(artzpraxisfachbereich);
					containterdata.appendChild(artzpraxisstrasse);
					containterdata.appendChild(artzpraxisort);
					
					containerdiv[i].appendChild(containericon);
					containerdiv[i].appendChild(containterdata);
					containerdiv[i].appendChild(breakaftercontainer);

		
					document.getElementById(targetdiv).appendChild(containerdiv[i]);
			  }
			}			
		}
	}
}
