function submitLink(formname, infovar, infoval)
{
	var frm = eval('document.' + formname);
	var info = frm.elements[infovar];
	if (typeof(infoval) != 'undefined') {
		info.value = infoval;
	}
	frm.submit();
}
 
function submitEntry(formname, what, entry_id, action_type)
{
	var frm = eval('document.' + formname);
	var obj_id = frm.elements[what + '_id'];
	var obj_action = frm.elements[what + '_action'];
	
	if (obj_id.value == entry_id && action_type != 'del') {
		switch (what) {
			case 'schule':
			case 'studium':
			case 'ausbildung':
			case 'fortbildung':
			case 'berufe':
			case 'projekte':
			case 'wehrdienst':
			case 'praktika':
				var zeitraum = frm.elements[what + '_zeitraum'];
				zeitraum.select();
				zeitraum.focus();
				return;
			
			case 'sprachen':
				var sprache = frm.elements[what + '_sprache'];
				sprache.focus();
				return;
				
			case 'edvsysteme':
				var system = frm.elements[what + '_system'];
				system.focus();
				return;
				
			case 'edvsprachen':
				var edvsprache = frm.elements[what + '_sprache'];
				edvsprache.focus();
				return;
				
			case 'edvsoftware':
				var software = frm.elements[what + '_software'];
				software.focus();
				return;
			
			case 'person':
				var anrede = frm.elements[what + '_geschlecht'];
				anrede.focus();
				return;

			case 'wvorlage':
				var wvart = frm.elements['wvn_art'];
				wvart.focus();
				return;
		}
	}
	
	obj_id.value = entry_id;
	obj_action.value = action_type;
	
	if (action_type == 'del') {
		if (what == 'person') {
			var result = confirm('Wollen Sie den Ansprechpartner wirklich löschen?');
			if (result == false) {
				obj_action.value = 'rejected';				
				return;
			}
		}
		clearEntry(formname, what, false);
	}
	
	frm.submit();
}
	
function clearEntry(formname, what, reset_id)
{
	var clearfields = new Array();
	
	clearfields['schule'] = new Array();
	clearfields['schule']['count'] = 6;
	clearfields['schule']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'beschreibung', 'abschluss', 'abschluss_name');
	clearfields['schule']['type'] = new Array('text', 'text', 'text', 'text', 'text', 'select');
	clearfields['schule']['predef'] = new Array();
	
	clearfields['studium'] = new Array();
	clearfields['studium']['count'] = 6;
	clearfields['studium']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'abschluss', 'hauptfaecher', 'nebenfaecher');
	clearfields['studium']['type'] = new Array('text', 'text', 'text', 'text', 'text', 'text');
	clearfields['studium']['predef'] = new Array();

	clearfields['ausbildung'] = new Array();
	clearfields['ausbildung']['count'] = 5;
	clearfields['ausbildung']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'beschreibung', 'abschluss');
	clearfields['ausbildung']['type'] = new Array('text', 'text', 'text', 'text', 'text');
	clearfields['ausbildung']['predef'] = new Array();

	clearfields['fortbildung'] = new Array();
	clearfields['fortbildung']['count'] = 5;
	clearfields['fortbildung']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'beschreibung', 'taetigkeit');
	clearfields['fortbildung']['type'] = new Array('text', 'text', 'text', 'text', 'text');
	clearfields['fortbildung']['predef'] = new Array();

	clearfields['praktika'] = new Array();
	clearfields['praktika']['count'] = 4;
	clearfields['praktika']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'beschreibung');
	clearfields['praktika']['type'] = new Array('text', 'text', 'text', 'text');
	clearfields['praktika']['predef'] = new Array();

	clearfields['projekte'] = new Array();
	clearfields['projekte']['count'] = 4;
	clearfields['projekte']['name'] = new Array('zeitraum', 'sortierung', 'taetigkeit', 'beschreibung');
	clearfields['projekte']['type'] = new Array('text', 'text', 'text', 'text');
	clearfields['projekte']['predef'] = new Array();

	clearfields['wehrdienst'] = new Array();
	clearfields['wehrdienst']['count'] = 4;
	clearfields['wehrdienst']['name'] = new Array('zeitraum', 'sortierung', 'taetigkeit', 'beschreibung');
	clearfields['wehrdienst']['type'] = new Array('text', 'text', 'text', 'text');
	clearfields['wehrdienst']['predef'] = new Array();

	clearfields['berufe'] = new Array();
	clearfields['berufe']['count'] = 8;
	clearfields['berufe']['name'] = new Array('zeitraum', 'sortierung', 'lokalitaet', 'taetigkeit', 'position', 'fuehrungskraft', 'anzahl_ma', 'beschreibung');
	clearfields['berufe']['type'] = new Array('text', 'text', 'text', 'text', 'text', 'radio', 'text', 'text');
	clearfields['berufe']['predef'] = new Array();

	clearfields['sprachen'] = new Array();
	clearfields['sprachen']['count'] = 5;
	clearfields['sprachen']['name'] = new Array('sprache', 'sortierung', 'muendlich', 'schriftlich', 'muttersprache');
	clearfields['sprachen']['type'] = new Array('select', 'text', 'select', 'select', 'radio');
	clearfields['sprachen']['predef'] = new Array();

	clearfields['edvsysteme'] = new Array();
	clearfields['edvsysteme']['count'] = 3;
	clearfields['edvsysteme']['name'] = new Array('sortierung', 'system', 'kenntnis');
	clearfields['edvsysteme']['type'] = new Array('text', 'text', 'text');
	clearfields['edvsysteme']['predef'] = new Array();

	clearfields['edvsprachen'] = new Array();
	clearfields['edvsprachen']['count'] = 3;
	clearfields['edvsprachen']['name'] = new Array('sortierung', 'sprache', 'kenntnis');
	clearfields['edvsprachen']['type'] = new Array('text', 'text', 'text');
	clearfields['edvsprachen']['predef'] = new Array();

	clearfields['edvsoftware'] = new Array();
	clearfields['edvsoftware']['count'] = 3;
	clearfields['edvsoftware']['name'] = new Array('sortierung', 'software', 'kenntnis');
	clearfields['edvsoftware']['type'] = new Array('text', 'text', 'text');
	clearfields['edvsoftware']['predef'] = new Array();

	clearfields['person'] = new Array();
	clearfields['person']['count'] = 15;
	clearfields['person']['name'] = new Array('geschlecht', 'titel', 'geburtstag', 'vorname', 'nachname', 'abteilung', 'funktion', 'telefon', 'mobil', 'telefax', 'email', 'qualifiziert', 'haupt', 'mailing', 'info');
	clearfields['person']['type'] = new Array('select', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'check', 'check', 'check', 'text');
	clearfields['person']['predef'] = new Array();

	var heute = new Date();	// Objekt mit heutigem Datum
	var tag = heute.getDate();
	if (tag < 10) { tag = '0' + tag; }
	var monat = heute.getMonth() + 1;
	if (monat < 10) { monat = '0' + monat; }
	var jahr = heute.getFullYear();
	var dtext = tag + '.' + monat + '.' + jahr;
	
	clearfields['wvorlage'] = new Array();
	clearfields['wvorlage']['count'] = 7;
	clearfields['wvorlage']['name'] = new Array('art', 'user_id', 'datum', 'zeit', 'partner', 'adresse', 'anmerkung');
	clearfields['wvorlage']['type'] = new Array('select', 'select', 'text', 'text', 'text', 'text', 'text');
	clearfields['wvorlage']['predef'] = new Array('0', '0', dtext, '', '', '', '');

	var frm = eval('document.' + formname);
	var obj_id = frm.elements[what + '_id'];
	
	if (reset_id === true) {
		obj_id.value = '0';
	}
				
	var count = clearfields[what]['count'];
	var prefix = what;
	switch (what) {
		case 'wvorlage':
			prefix = 'wvn';
			break;
	}
	for (var i = 0; i < count; i++) {
		if (i == 0) {
			var focus_field = frm.elements[prefix + '_' + clearfields[what]['name'][0]];
		}
		var clear_field = frm.elements[prefix + '_' + clearfields[what]['name'][i]];
		var clear_type = clearfields[what]['type'][i];
		if (clear_type == 'text') {
			if (clearfields[what]['predef'].length > 0) {
				clear_field.value = clearfields[what]['predef'][i];
			}
			else {
				clear_field.value = '';
			}
		}
		else if (clear_type == 'select') {
			if (clearfields[what]['predef'].length > 0) {
				clear_field.selectedIndex = clearfields[what]['predef'][i];
			}
			else {
				clear_field.selectedIndex = 0;
			}
		}
		else if (clear_type == 'radio' || clear_type == 'check') {
			if (clearfields[what]['predef'].length > 0) {
				clear_field.checked = clearfields[what]['predef'][i];
			}
			else {
				clear_field.checked = false;
			}
		}
	}
	
	if (reset_id == true) {
		focus_field.focus();
	}
}

function parseDate(datum)
{
	var fmtdat = "";
	var test1 = 0;
	var test2 = 0;
	
	datum = datum.toString();
	
	if (datum.length < 2) {
		return datum;
	}

	var jetzt = new Date();
	
	switch (datum.length) {
			
		case 2:
			fmtdat = '0' + datum.substr(0, 1) + '.0' + datum.substr(1, 1) + '.' + jetzt.getFullYear();
			break;
			
		case 3:
			test1 = parseInt(datum.substr(0,2), 10);
			test2 = parseInt(datum.substr(1,2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}				
			if (test1 < 32) {
				fmtdat = datum.substr(0, 2) + '.0' + datum.substr(2, 1) + '.' + jetzt.getFullYear();
			}
			else if (test2 < 13) {
				fmtdat = '0' + datum.substr(0, 1) + '.' + datum.substr(1, 2) + '.' + jetzt.getFullYear();
			}
			else {
				fmtdat = '0' + datum.substr(0, 1) + '.0' + datum.substr(1, 1) + '.';
				var jahr = jetzt.getFullYear();
				fmtdat += jahr.toString().substr(0, 2) + '0' + datum.substr(2, 1);
			}
			break;
				
		case 4:
			test1 = parseInt(datum.substr(0, 2), 10);
			test2 = parseInt(datum.substr(2, 2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}	
			if (test1 < 32) {
				if (test2 < 13) {
					fmtdat = datum.substr(0, 2) + '.' + datum.substr(2, 2) + '.' + jetzt.getFullYear();
				}
				else {
					fmtdat = datum.substr(0, 2) + '.0' + datum.substr(2, 1) + '.';
					var jahr = jetzt.getFullYear();
					fmtdat += jahr.toString().substr(0, 2) + '0' + datum.substr(3, 1);
				}
			}
			else {
				test2 = parseInt(datum.substr(1, 2), 10);
				if (test2 == NaN) {
					return;
				}
				if (test2 < 13) {
					fmtdat = '0' + datum.substr(0, 1) + '.' + datum.substr(1, 2) + '.';
					var jahr = jetzt.getFullYear();
					fmtdat += jahr.toString().substr(0, 2) + '0' + datum.substr(3, 1);
				}
				else {
					fmtdat = '0' + datum.substr(0, 1) + '.0' + datum.substr(1, 1) + '.';
					test1 = parseInt(datum.substr(2, 2), 10);
			 		if (test1 < 32) {
			 			fmtdat += '20' + datum.substr(2, 2);
			 		}
			 		else {
			 			fmtdat += '19' + datum.substr(2, 2);
			 		}
				}
			}	 
			break;
				
		case 5:
			test1 = parseInt(datum.substr(0, 2), 10);
			test2 = parseInt(datum.substr(2, 2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}	
			if (test1 < 32) {
				if (test2 < 13) {
					fmtdat = datum.substr(0, 2) + '.' + datum.substr(2, 2) + '.';
					var jahr = jetzt.getFullYear();
					fmtdat += jahr.toString().substr(0, 2) + '0' + datum.substr(4, 1);
				}
				else {
					fmtdat = datum.substr(0, 2) + '.0' + datum.substr(2, 1) + '.';
					test1 = parseInt(datum.substr(3, 2), 10);
			 		if (test1 < 32) {
			 			fmtdat += '20' + datum.substr(3, 2);
			 		}
			 		else {
			 			fmtdat += '19' + datum.substr(3, 2);
			 		}
				}
			}
			else {
				fmtdat = '0' + datum.substr(0, 1) + '.' + datum.substr(1, 2) + '.';
				test1 = parseInt(datum.substr(3, 2), 10);
		 		if (test1 < 32) {
		 			fmtdat += '20' + datum.substr(3, 2);
		 		}
		 		else {
		 			fmtdat += '19' + datum.substr(3, 2);
		 		}
			}
			break;
			
		case 6:
			fmtdat = datum.substr(0, 2) + '.' + datum.substr(2, 2) + '.';
			test1 = parseInt(datum.substr(4, 2), 10);
	 		if (test1 < 32) {
	 			fmtdat += '20' + datum.substr(4, 2);
	 		}
	 		else {
	 			fmtdat += '19' + datum.substr(4, 2);
	 		}
			break;
			
		case 7:
			fmtdat = datum.substr(0, 2) + '.' + datum.substr(2, 2) + '.';
			test1 = parseInt(datum.substr(5, 2), 10);
	 		if (test1 < 32) {
	 			fmtdat += '20' + datum.substr(5, 2);
	 		}
	 		else {
	 			fmtdat += '19' + datum.substr(5, 2);
	 		}
			break;
			
		case 8:
			fmtdat = datum.substr(0, 2) + '.' + datum.substr(2, 2) + '.' + datum.substr(4, 4);
			break;
	}

	return fmtdat;
}

function parseTime(zeit)
{
	var fmtts = "";
	var test1 = 0;
	var test2 = 0;
	
	zeit = zeit.toString();
	
	if (zeit.length == 0) {
		return zeit;
	}

	switch (zeit.length) {
			
		case 1:
			fmtts = '0' + zeit + ':00:00';
			break;
			
		case 2:
			test1 = parseInt(zeit, 10);
			if (test1 == NaN) {
				return;
			}				
			if (test1 < 25) {
				fmtts = zeit + ':00:00';
			}
			else {
				fmtts = '0' + zeit.substr(0, 1) + ':0' + zeit.substr(1, 1) + ':00';
			}
			break;
			
		case 3:
			test1 = parseInt(zeit.substr(0,2), 10);
			test2 = parseInt(zeit.substr(1,2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}				
			if (test1 < 25) {
				fmtts = zeit.substr(0, 2) + ':0' + zeit.substr(2, 1) + ':00';
			}
			else if (test2 < 60) {
				fmtts = '0' + zeit.substr(0, 1) + ':' + zeit.substr(1, 2) + ':00';
			}
			else {
				fmtts = '0' + zeit.substr(0, 1) + ':0' + zeit.substr(1, 1) + ':0' + zeit.substr(2, 1);
			}
			break;
				
		case 4:
			test1 = parseInt(zeit.substr(0, 2), 10);
			test2 = parseInt(zeit.substr(2, 2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}	
			if (test1 < 25) {
				if (test2 < 60) {
					fmtts = zeit.substr(0, 2) + ':' + zeit.substr(2, 2) + ':00';
				}
				else {
					fmtts = zeit.substr(0, 2) + ':0' + zeit.substr(2, 1) + ':0' + zeit.substr(3, 1);
				}
			}
			else {
				test2 = parseInt(zeit.substr(1, 2), 10);
				if (test2 == NaN) {
					return;
				}
				if (test2 < 60) {
					fmtts = '0' + zeit.substr(0, 1) + ':' + zeit.substr(1, 2) + ':0' + zeit.substr(3, 1);
				}
				else {
					fmtts = '0' + zeit.substr(0, 1) + ':0' + zeit.substr(1, 1) + ':' + zeit.substr(2, 2);
				}
			}	 
			break;
				
		case 5:
			test1 = parseInt(zeit.substr(0, 2), 10);
			test2 = parseInt(zeit.substr(2, 2), 10);
			if (test1 == NaN || test2 == NaN) {
				return;
			}	
			if (test1 < 25) {
				if (test2 < 60) {
					fmtts = zeit.substr(0, 2) + ':' + zeit.substr(2, 2) + ':0' + zeit.substr(4, 1);
				}
				else {
					fmtts = zeit.substr(0, 2) + ':0' + zeit.substr(2, 1) + ':' + zeit.substr(3, 2);
				}
			}
			else {
				fmtts = '0' + zeit.substr(0, 1) + ':' + zeit.substr(1, 2) + ':' + zeit.substr(3, 2);
			}
			break;
			
		case 6:
			fmtts = zeit.substr(0, 2) + ':' + zeit.substr(2, 2) + ':' + zeit.substr(4, 2);
			break;			
	}

	return fmtts;
}

function fillDate(sFormName, theField)
{
	var theForm = eval('document.' + sFormName);
	var datum = theForm.elements[theField].value.toString();
	
	if (datum.indexOf('.') == -1) {
		datum = parseDate(datum);
	}
				
	datum = datum.split('.');
	if (datum.length < 2 || datum.length > 3) {
		return;
	}

	var jetzt = new Date();
	var filled = new Array(3);
	
	if (datum.length == 2) {	
		filled[2] = jetzt.getFullYear();
	}
	else {
	 	if (datum[2].length == 2) {
	 		var chk = parseInt(datum[2]);
	 		if (chk < 32) {
	 			datum[2] = '20' + datum[2];
	 		}
	 		else {
	 			datum[2] = '19' + datum[2];
	 		}
	 	} 	
		filled[2] = datum[2];
	}

	filled[0] = ((datum[0].length == 1) ? '0' + datum[0] : datum[0]);
	filled[1] = ((datum[1].length == 1) ? '0' + datum[1] : datum[1]);
	
	var jahr = parseInt(filled[2], 10);
	var monat = parseInt(filled[1], 10) - 1;
	var tag = parseInt(filled[0], 10);
	var d = new Date(jahr, monat, tag);
 	 	
 	if (d.getDate() == tag && d.getMonth() == monat && d.getFullYear() == jahr) {
		theForm.elements[theField].value = filled[0] + '.' + filled[1] + '.' + filled[2];
	}	
}

function fillTime(sFormName, theField)
{
	var theForm = eval('document.' + sFormName);
	var zeit = theForm.elements[theField].value.toString();
	
	if (zeit.indexOf(':') == -1) {
		zeit = parseTime(zeit);
	}
				
	zeit = zeit.split(':');
	if (zeit.length < 2 || zeit.length > 3) {
		return;
	}

	var filled = new Array(3);
	
	if (zeit.length == 2) {
		filled[2] = '00';
	}
	else {
		filled[2] = ((zeit[2].length == 1) ? '0' + zeit[2] : zeit[2]);
	}

	filled[0] = ((zeit[0].length == 1) ? '0' + zeit[0] : zeit[0]);
	filled[1] = ((zeit[1].length == 1) ? '0' + zeit[1] : zeit[1]);
	
	// Sonderfall 24:00:00
	if (filled[0] == '24' && filled[1] == '00' && filled[2] == '00') {
		theForm.elements[theField].value = filled[0] + ':' + filled[1];
	}
	else {
		var stunden = parseInt(filled[0], 10);
		var minuten = parseInt(filled[1], 10);
		var sekunden = parseInt(filled[2], 10);
		var d = new Date(2003, 0, 1, stunden, minuten, sekunden);
 	 	if (d.getHours() == stunden && d.getMinutes() == minuten && d.getSeconds() == sekunden) {
			theForm.elements[theField].value = filled[0] + ':' + filled[1]; // + filled[0]
		}
	}
}

function checkEmail(email)
{
	var proto  = "(mailto:)?";
  	var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
  	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
  	var regex  = "^" + proto + "?" + usr + "\@" + domain + "$";
  	var rgx = new RegExp(regex);
  	return rgx.exec(email) ? true : false;
}

function setSelectIndex(theForm, theSelect, selIndex)
{
	theForm.elements[theSelect].selectedIndex = selIndex;
}

function changeToSelect(theForm, theSelect, theField)
{
	var choice = theForm.elements[theSelect].selectedIndex;
	if (choice >= 0) {
		var selval = theForm.elements[theSelect].options[choice].value;
		if (selval != '') {
			theForm.elements[theField].value = selval;
		}
	}
}

function strToUpper(theForm, theField)
{
	var theValue = theForm.elements[theField].value.toUpperCase();
	theForm.elements[theField].value = theValue;
}

function syncSelect(theForm, theField, theSelect, exactOn)
{
	var i, found;
	var theValue = theForm.elements[theField].value.toString();
	
	found = false;
	
	for (i = 0; i < theForm.elements[theSelect].length; i++) {
		
		var check1 = theValue;
		var check2 = theForm[theSelect].options[i].value.toString();
		
		if (exactOn == false) {
			check2 = check2.slice(0, check1.length);
		}
			
		if (check2 == check1) {
			found = true;
			break;
		}
	}
	
	if (found == false) {
		i = 0;
	}
	theForm.elements[theSelect].selectedIndex = i;
}

