// Copyright (C) 2003-2006 by Mestrona GbR - www.mestrona.net
// Alle Rechte vorbehalten.

var selectoropen = false;
var selectorediting = false;
var mode = "suchen";
var lastcontrol = "";

function MFnum_add(ctrl,ofs,minval,maxval) {
	var newval = Number(ctrl.value) + ofs;
	if (newval < minval) newval = minval;
	if (newval > maxval) newval = maxval;	
	ctrl.value = newval;
}

function MFdbselector(site, ctrlname) {
	url = site +  "?mf_browser=" + ctrlname;
	if(screen.width >= 1024) {
		w = 600;
		h = 550;
	}
	else {
		w = 400;
		h = 300;
	}
	selectoropen = true;
	selectorwnd = window.open(url, ctrlname + '_browser',"width="+w+",height="+h+",scrollbars=yes,resizable=yes,dependent=yes");
}

function MFfastdbselector(site, ctrlname, form) {
	if (selectoropen == true) {
		return;
	}
	selectorediting = false;
//	mode = eval("document.forms."+form+"."+ctrlname+"_button.value");
	if (mode == "ausw?hlen") {
		query = eval("document.forms."+form+"."+ctrlname+"_edit.value");
		if (query=='<Datenbanksuche...>')
			query = ''
		eval("document.forms."+form+"."+ctrlname+"_edit.value = '<Datenbanksuche...>'");
//		eval("document.forms."+form+"."+ctrlname+".value = 'searchincomplete'");	
		url = site +  "?mf_browser=" + ctrlname + "&query=" + query;
		selectoropen = true;
		selectorwnd = window.open(url, ctrlname + '_browser',"width=200,height=20,scrollbars=yes,resizable=yes,dependent=yes");
	} else {
		MFdbselector(site,ctrlname);
	}
}

function MFfastdbselector_key(ctrlname, form) {
	val = eval("document.forms."+form+"."+ctrlname+"_edit.value");
	oldval = eval("document.forms."+form+"."+ctrlname+"_oldtxt.value");	
	if (val != oldval) {
		selectorediting = true;
		lastcontrol = ctrlname;
		eval("document.forms."+form+"."+ctrlname+"_edit.style.color = 'blue'");
//		eval("document.forms."+form+"."+ctrlname+"_button.value = 'ausw?hlen'");		
		mode = 'ausw?hlen';
		eval("document.forms."+form+"."+ctrlname+"_button.style.color = 'blue'");						
	}
}

function MFfastdbselector_focus(site, ctrlname,form,selectproc) {
	if (ctrlname == lastcontrol) return;
	
	error = '';
	if (selectorediting) {
		error = "Problem: Ihre Eingaben müssen zuerst mit der Datenbank abgeglichen werden.\n"+
			"Lösung: Klicken Sie beim entsprechenden Feld auf die Schaltfläche 'auswählen'.\n"+
			"- Falls es mehrere passende Einträge in der Datenbank gibt, erscheint ein neues Fenster. Dort m?ssen Sie dann einen Eintrag anklicken.\n"+
			"- Sie können mit der Schaltfläche 'x' das Feld leeren (nichts auswählen)";
	}
	if(selectoropen) {
		error = "Problem: Ihre Eingabe in einem Feld war nicht eindeutig und es wurde ein Auswahlfenster geöffnet. Prüfen Sie ggf. in der Taskleiste ob ein solches Fenster (Titel enthält 'Browser') übersehen wurde und wählen Sie dort einen Eintrag aus.\n";
	}

	if (error != "") {
		error = "Sie können nicht zu diesem Datenbankgestützen Feld wechseln.\n " + error;
		window.alert(error);
	if (selectorediting)
		eval("document.forms."+form+"."+lastcontrol+"_button.focus();");
		
	}

}

function MFfastreset(ctrlname,form) {
	selectorediting = false;
	eval("document.forms."+form+"."+ctrlname+"_edit.style.color = 'black'");
	mode = 'suchen';
//	eval("document.forms."+form+"."+ctrlname+"_button.value = 'suchen'");		
	eval("document.forms."+form+"."+ctrlname+"_button.style.color = '#000066'");						
}

function MFclosereset(ctrlname,form) {
	selectoropen = false;
	if (eval("document.forms."+form+"."+ctrlname+"_edit.value") == '<Datenbanksuche...>') {
		MFfastreset(ctrlname,form);
		edit = eval("document.forms."+form+"."+ctrlname+"_edit");
		edit.value = eval("document.forms."+form+"."+ctrlname+"_oldtxt.value");	

	}
}

function MFdbselect(formname, ctl, id, txt) {
	eval("document.forms."+formname+"."+ctl+".value = '" + id+"'");
	edit = eval("document.forms."+formname+"."+ctl+"_edit");
	edit.value = txt;
	ot = eval("document.forms."+formname+"."+ctl+"_oldtxt");
	ot.value = txt;
	
	MFfastreset(ctl,formname);	
	selectorwnd.close();
	selectoropen = false;
}

function MFdbselectclear(formname, ctl) {
	eval("document.forms."+formname+"."+ctl+".value = ''");
	eval("document.forms."+formname+"."+ctl+"_edit.value = ''");	
	eval("document.forms."+formname+"."+ctl+"_oldtxt.value = ''");		
	selectoropen = false;
	if (selectorediting)
		MFfastreset(ctl,formname);
}

function MFdateselector(site, formname, ctrlname) {
	edit = eval("document.forms."+formname+"."+ctrlname);
	url = site +  "?mf_browser=" + ctrlname + "&mf_browservalue=" + edit.value;
	selectorwnd = window.open(url, ctrlname + '_browser',"width=250,height=190,scrollbars=no,resizable=yes,dependent=yes");
}

function MFselect(formname, ctl, txt) {
	edit = eval("document.forms."+formname+"."+ctl);
	edit.value = txt;
	selectorwnd.close();
	selectoropen = false;
}

function MFconfirm(message,url) {
	if (confirm(message)) { 
		window.location.href = url;
	}
}

function MFsetfilter(caption,colname,preset) {
	Filter = prompt("Geben Sie einen Suchbegriff f?r die Spalte "+caption+" ein.",preset);
	document.forms.mbdbbrws_frm.mdbbrws_newfilter_col.value = colname;
	document.forms.mbdbbrws_frm.mdbbrws_newfilter.value = Filter;
	document.forms.mbdbbrws_frm.submit();
}

function MFclearfilter(colname) {
	document.forms.mbdbbrws_frm.mdbbrws_newfilter_col.value = colname;
	document.forms.mbdbbrws_frm.mdbbrws_newfilter.value = "";
	document.forms.mbdbbrws_frm.submit();
}

function MFhelp(url) {
	helpwindow = window.open(url,"popUpHelp","width=350,height=250,scrollbars=yes,resizable=yes,dependent=yes");
	helpwindow.focus();
	return false;
}

function MFformconfirm() {
	error = '';
	if (selectorediting) {
		error = "Problem: Ihre Eingaben müssen zuerst mit der Datenbank abgeglichen werden.\n"+
			"Lösung: Klicken Sie bei dem entsprechenden Feld auf die Schaltfläche 'auswählen'.\n"+
			"- Falls es mehrere passende Einträge in der Datenbank gibt, erscheint ein neues Fenster. Dort müssen Sie dann einen Eintrag anklicken.\n"+
			"- Sie können mit der Schaltfläche 'x' das Feld leeren (nichts auswählen)";
	}
	if(selectoropen) {
		error = "Problem: Ihre Eingabe in einem Feld war nicht eindeutig und es wurde ein Auswahlfenster ge?ffnet. Pr?fen Sie ggf. in der Taskleiste ob ein solches Fenster (Titel enth?lt 'Browser') übersehen wurde und wählen Sie dort einen Eintrag aus.\n";
	}
	if (error != "") {
		error = "Das Formular kann noch nicht abgesendet werden.\n " + error + "\nSenden Sie dann das Formular erneut ab. Sollten weiterhin Probleme auftreten, prüfen Sie bitte, ob Ihr Webbrowser Popups blockiert, deaktivieren Sie die Blockierung und laden Sie diese Seite neu.";
		window.alert(error);
	}
	return !(selectoropen || selectorediting);
}

function MFdbNmAdd(formname, ctl, id, txt) {
	
	var new_item = new Option();
	new_item.value = id;
	new_item.text = txt;
	
	field = eval("document.forms."+formname+"."+ctl+"");
	field.options[field.options.length] = new_item;
	
	hidden_field = eval("document.forms."+formname+".nm_values_"+ctl+"");
	hidden_field.value = MFdbGetHiddenString(field);
	
	selectorwnd.close();
	selectoropen = false;
	
}

function MFdbGetHiddenString(field){
	var hidden_string = "";
	for( var i = 0; i < field.options.length; i++ ) {
		if( i > 0 ){
			hidden_string = hidden_string+",";
		}
		hidden_string = hidden_string+field.options[i].value;
	}
	return hidden_string;
}

function MFdbNmDelete(formname, ctl){

	field = eval("document.forms."+formname+"."+ctl+"");
	for( var i = 0; i < field.options.length; i++ ) {
		if( field.options[i].selected && field.options[i] != "" ) {
			field.options[i].value = "";
			field.options[i].text = "";
		}
	}
	MFlistBumpUp(field);
	
	hidden_field = eval("document.forms."+formname+".nm_values_"+ctl+"");
	hidden_field.value = MFdbGetHiddenString(field);
	
}

function MFlistBumpUp(field) {
	for( var i = 0; i < field.options.length; i++ ) {
		if( field.options[i].value == "" )  {
			for( var j = i; j < field.options.length - 1; j++ )  {
				field.options[j].value = field.options[j + 1].value;
				field.options[j].text = field.options[j + 1].text;
			}
		var ln = i;
		break;
	   }
	}
	if(ln < field.options.length)  {
		field.options.length -= 1;
		MFlistBumpUp(field);
	}
}

function mdbbrws_all_records(form){
   
	for (var counter = 0; counter < form.elements.length; counter++) {
		var element = form.elements[counter];
		if (element.name != 'select_all_records') {
			element.checked = form.select_all_records.checked;
		}
	}
}


