
function forms_select(formname, fields, mode) {

	var formtocheck;
	var test;
	var i;

	if (document.getElementById(formname)) {

		formtocheck = document.getElementById(formname);
		
		test = '';

		for (i = 0; i < formtocheck.elements.length; i++) {
			if(formtocheck.elements[i].name == 'inputfields[id][]') {
				test += formtocheck.elements[i].name;
				formtocheck.elements[i].checked = mode;
			}
		}
	}
}



function update_forms(inputobj) {
  
	var i;
	var j;
	var targetform;
	var targetelement;
	var targetobj;
	var newdata = new Array();
	var source_data_to_search;


	// Get a reference to the form which contains this element and the name of form and element
	
	var formobj = inputobj.form;
	var elementname = inputobj.name;
	var formname = inputobj.form.name; 
	
	var selectedIndex = inputobj.selectedIndex;
	var selectedValue = inputobj.options[inputobj.options.selectedIndex].value;
	 
	
	if (formname == 'fahrt_buchen') {

  	if (elementname == 'inputfields[forms][fahrt_buchen][zielortplz][]') {
			
			workdata['current_data_praxis'] = new Array();

			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][praxen_frontend_id][]';
      

			newdata[newdata.length] = Array('Bitte wählen', '');

			var values_to_look_for = selectedValue.split(',');
      
			for (i = 0; i < workdata['arztstandorte'].length; i ++) {
				if (workdata['arztstandorte'][i]['plz'] == values_to_look_for[0]) {
					newdata[newdata.length] = Array(workdata['arztstandorte'][i]['name'], workdata['arztstandorte'][i]['id']);
					workdata['current_data_praxis'][workdata['current_data_praxis'].length] = workdata['arztstandorte'][i];
				}
			}

			fill_select_field(targetform, targetelement, newdata);

			document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielstrasse][]'].value = "";
			document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielhausnr][]'].value = "";

			document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][fachbereiche][]'].selectedIndex = 0;
			
  	}
  	
  	else if (elementname == 'inputfields[forms][fahrt_buchen][fachbereiche][]') {

			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][praxen_frontend_id][]';
			
			targetobj = document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][praxen_frontend_id][]'];
			
			var values_to_look_for = selectedValue;

			// if workdata['current_data_praxis'] is empty, search the original array (no location was selected yet)
			source_data_to_search = workdata['arztstandorte'];
      
			if (workdata['current_data_praxis'].length > 0) {
				source_data_to_search = workdata['current_data_praxis'];
			}
			
			newdata[newdata.length] = Array('Bitte wählen', '');
   
			for (i = 0; i < source_data_to_search.length; i ++) {
				
				if (source_data_to_search[i]['fachbereich1'] == values_to_look_for || source_data_to_search[i]['fachbereich2'] == values_to_look_for || source_data_to_search[i]['fachbereich3'] == values_to_look_for || source_data_to_search[i]['fachbereich4'] == values_to_look_for || source_data_to_search[i]['fachbereich5'] == values_to_look_for) {
					newdata[newdata.length] = Array(source_data_to_search[i]['name'], source_data_to_search[i]['id']);
				}
			}


			fill_select_field(targetform, targetelement, newdata);

			document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielstrasse][]'].value = "";
			document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielhausnr][]'].value = "";

  	}

  	else if (elementname == 'inputfields[forms][fahrt_buchen][praxen_frontend_id][]') {
  		
			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][praxen_frontend_id][]';
			
			targetobj = document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][praxen_frontend_id][]'];

			for (i = 0; i < workdata['arztstandorte'].length; i ++) {
				if (workdata['arztstandorte'][i]['id'] == selectedValue) {
					document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielstrasse][]'].value = workdata['arztstandorte'][i]['strasse'];
					document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][zielhausnr][]'].value = workdata['arztstandorte'][i]['hausnr'];
				}
			}

  	}

  	else if (elementname == 'inputfields[forms][fahrt_buchen][datumtermintag][]') {
  		
			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][datumrueckfahrttag][]';
			
			targetobj = document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][datumrueckfahrttag][]'];
			targetobj.selectedIndex = selectedIndex;
			
		}  	

  	else if (elementname == 'inputfields[forms][fahrt_buchen][datumterminmonat][]') {
  		
			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][datumrueckfahrtmonat][]';
			
			targetobj = document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][datumrueckfahrtmonat][]'];
			targetobj.selectedIndex = selectedIndex;
			
		}  	

  	else if (elementname == 'inputfields[forms][fahrt_buchen][datumterminjahr][]') {
  		
			targetform = 'fahrt_buchen';
			targetelement = 'inputfields[forms][fahrt_buchen][datumrueckfahrtjahr][]';
			
			targetobj = document.forms['fahrt_buchen'].elements['inputfields[forms][fahrt_buchen][datumrueckfahrtjahr][]'];
			targetobj.selectedIndex = selectedIndex;
			
		}  	
  }
}




function fill_select_field(targetform, targetelement, newdata) {

	var i;
	
	document.forms[targetform].elements[targetelement].options.length = 0;
	
	for (i = 0; i < newdata.length; i ++) {
		document.forms[targetform].elements[targetelement].options[i] = new Option(newdata[i][0], newdata[i][1]);
	}
}




function step_form_fahrt_buchen(step, parameter2, parameter3) {
  
  var i;
  var backupobj;
  
  // doctor selected => remove all other search results and select the clicked one in form
  // step = 1, parameter2 = index of childNode to preserve in results, parameter3 = id of selected doctor in workdata['arztstandorte'][0]['id']

  if (step == 1) {

		
		var targetobj = document.getElementById('autocompletetarget1');
		
			// delete nodes before the clicked one
			
			for (i = 0; i < parameter2; i ++) {
				targetobj.removeChild(targetobj.firstChild);
			}
			
			
			// delete nodes after the clicked one
			
			while (targetobj.childNodes.length > 1) {
				targetobj.removeChild(targetobj.lastChild);
			}

			targetobj.firstChild.removeChild(targetobj.firstChild.firstChild);

			// show rest of form
			
			document.getElementById('extendedform').style.display = 'block';
			

			// add id of selected doctor to form

			var idfield;
			if (document.getElementById('inputfields[forms][fahrt_buchen][arztid][]')) {
				idfield = document.getElementById('inputfields[forms][fahrt_buchen][arztid][]');
			}
			
			idfield.value = parameter3;
			 
		
		
/*		
		backupobj = targetobj.childNodes[parameter2];

		// empty result div
		while (targetobj.hasChildNodes()) targetobj.removeChild(targetobj.firstChild);
		
		targetobj.appendChild(backupobj.childNodes[parameter2*3]);
		targetobj.appendChild(backupobj.childNodes[(parameter2*3)+1]);
		targetobj.appendChild(backupobj.childNodes[(parameter2*3)+2]);
*/		
	}
}
