function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function cboval(cbo){
	slctd=-1;
	for (i=0;i<cbo.length;i++)
		{if (cbo.options[i].selected) slctd=i};
	if ((slctd==-1) ||(cbo.options[slctd].value == - 1)){
		return -1;
	}else{
		return cbo.options[slctd].value;
	}
}

//Versucht den Wert des übergebenen Uhrzeit-Feldes
//in eine formatierte Form der Art "23:59:59" zu bringen.
function TimeWizard(element)
{
	var timeString = element.value;
	
	//Alle erlaubten Uhrzeittrennzeichen angeben:
	var time = timeString.replace(/[:.,\/;-]/g, ":");
	//Nur numerische Zeichen und Doppelpunkt als Uhrtrennzeichen erlauben
	time = time.replace(/[^0-9:]/g, "");	

	var fragments = time.split(':');
	
	//Wenn keine Trennzeichen angegeben z.B. 700
	if(fragments.length == 1)
	{		
		//Nur ein Zeichen 1 --> 1:00:00
		if (time.length == 1)
		{
			fragments = new Array (time.slice(0,1), "00", "00")
		}
		//Bei 2 Zeichen
		else if (time.length == 2)
		{
			//24 --> 24:00:00
			if(isHour(time.slice(0,2)))
			{
				fragments = new Array(time.slice(0, 2), "00", "00")
			}
			//25 --> 2:4:00
			else
			{
				fragments = new Array(time.slice(0, 1), time.slice(1, 2), "00")				
			}
		}
		//Bei 3 Zeichen
		else if (time.length == 3)
		{
			//249 --> 24:9:00
			if(isHour(time.slice(0,2)))
			{
				fragments = new Array(time.slice(0, 2), time.slice(2, 3), "00")
			}
			else
			{
				//259 --> 2:59:00
				if(isMinuteOrSecond(time.slice(1,3)))
				{
					fragments = new Array(time.slice(0, 1), time.slice(1, 3), "00")
				}
				//269 --> 2:6:9
				else
				{
					fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2,3))
				}
			}
		}
		//Bei 4 Zeichen
		else if (time.length == 4)
		{
			if(isHour(time.slice(0,2)))
			{
				//2459 --> 24:59:00
				if(isMinuteOrSecond(time.slice(2,4)))
				{
					fragments = new Array(time.slice(0, 2), time.slice(2, 4), "00")
				}
				//2469 --> 24:6:9
				else
				{
					fragments = new Array(time.slice(0, 2), time.slice(2, 3), time.slice(3,4))
				}
			}
			else
			{
				//2599 --> 2:59:9
				if(isMinuteOrSecond(time.slice(1,3)))
				{
					fragments = new Array(time.slice(0, 1), time.slice(1, 3), time.slice(3,4))
				}				
				else
				{
					//2719 --> 2:7:19
					if(isMinuteOrSecond(time.slice(2,4)))
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2,4))
					}
					//2799 --> 2:7:9 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2,3))
					}
				}
			}
		}
		//Bei 5 Zeichen
		else if (time.length == 5)
		{
			if(isHour(time.slice(0,2)))
			{
				if(isMinuteOrSecond(time.slice(2, 4)))
				{
					fragments = new Array(time.slice(0, 2), time.slice(2, 4), time.slice(4, 5))
				}
				else
				{
					//246159 --> 24:6:15 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(3, 5)))
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 3), time.slice(3, 5))
					}
					//246660 --> 24:6:6 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 3), time.slice(3, 4))
					}
				}
			}
			else
			{
				if(isMinuteOrSecond(time.slice(1, 3)))
				{
					//635590 --> 6:35:59 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(3, 5)))
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 3), time.slice(3, 5))
					}
					//635960 --> 6:35:9 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 3), time.slice(3, 4))
					}
				}
				else
				{
					//675590 --> 6:7:55 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(2, 4)))
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2, 4))
					}
					//676590 --> 6:7:6 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2, 3))
					}
				}
			}
		}
		else if (time.length >= 6)
		{
			if(isHour(time.slice(0,2)))
			{
				if(isMinuteOrSecond(time.slice(2, 4)))
				{
					//245959 --> 24:59:59
					if(isMinuteOrSecond(time.slice(4, 6)))
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 4), time.slice(4, 6))
					}
					//245960 --> 24:59:6
					else
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 4), time.slice(4, 5))
					}
				}
				else
				{
					//246159 --> 24:6:15 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(3, 5)))
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 3), time.slice(3, 5))
					}
					//246660 --> 24:6:6 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 2), time.slice(2, 3), time.slice(3, 4))
					}
				}
			}
			else
			{
				if(isMinuteOrSecond(time.slice(1, 3)))
				{
					//635590 --> 6:35:59 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(3, 5)))
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 3), time.slice(3, 5))
					}
					//635960 --> 6:35:9 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 3), time.slice(3, 4))
					}
				}
				else
				{
					//675590 --> 6:7:55 (Rest wird weggeschnitten)
					if(isMinuteOrSecond(time.slice(2, 4)))
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2, 4))
					}
					//676590 --> 6:7:6 (Rest wird weggeschnitten)
					else
					{
						fragments = new Array(time.slice(0, 1), time.slice(1, 2), time.slice(2, 3))
					}
				}
			}
		}
		else
		{
			fragments = new Array("00", "00", "00");
		}
	}

	if (fragments.length == 2)
	{
		if(fragments[0].length == 1)
		{
			fragments[0] = "0" + fragments[0];
		}
		else if (fragments[0].length == 0)
		{
			fragments[0] = "00" + fragments[0];
		}
		if(fragments[1].length == 1)
		{
			fragments[1] = "0" + fragments[1];
		}
		else if (fragments[1].length == 0)
		{
			fragments[1] = "00" + fragments[1];
		}	
		fragments = new Array(fragments[0], fragments[1], "00")
	}
	else if (fragments.length >= 3)
	{
		if(fragments[0].length == 1)
		{
			fragments[0] = "0" + fragments[0];
		}
		else if (fragments[0].length == 0)
		{
			fragments[0] = "00" + fragments[0];
		}
		if(fragments[1].length == 1)
		{
			fragments[1] = "0" + fragments[1];
		}
		else if (fragments[1].length == 0)
		{
			fragments[1] = "00" + fragments[1];
		}	
		if(fragments[2].length == 1)
		{
			fragments[2] = "0" + fragments[2];
		}
		else if (fragments[2].length == 0)
		{
			fragments[2] = "00" + fragments[2];
		}	
	}

	element.value = fragments[0] + ":" +fragments[1] + ":" +fragments[2];
	return true;
}



function checkGAFormInfoCenterINFO(gnr, sprache)
{
	var ibsel;
	ibsel = cboval(document.infocenter.ZUSTAENDIGKEIT);
	if (ibsel == "") ibsel = -1;
	if (ibsel != -1)
		document.location.href='service/zustaendigkeit_detail.asp?gnr=' + gnr + '&sprache=' + sprache + '&obj=' + ibsel;
}

function checkGAFormInfoCenterWORT()
{
	if (isEmpty(document.infocenter.WORT.value) == false)
		document.infocenter.submit();
	else
		alert(InfoCenterEmpty);
}

//ist auch in valid.js vorhanden, konnte aber nicht 2 javascript function-dateien im header einbinden, darum wurde die funktion verdoppelt
function isEmail (s)
{   if (isEmpty(s))
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function checkAnfrageForm()
{
	var fehler;
	fehler = 0;
	if (isEmpty(document.anfrageform.EMAIL_EMAIL.value) == false) {
		if (isEmail(document.anfrageform.EMAIL_EMAIL.value) == false) {
			fehler = 5;
		}
	}
	if (isEmpty(document.anfrageform.EMAIL_ANFRAGE.value)) fehler = 4;
	if (isEmpty(document.anfrageform.EMAIL_BETREFF.value)) fehler = 3;
	if (isEmpty(document.anfrageform.EMAIL_TELEFON.value) == true && isEmpty(document.anfrageform.EMAIL_ANSCHRIFT.value) == true && isEmpty(document.anfrageform.EMAIL_EMAIL.value) == true)
		fehler = 2;
	if (isEmpty(document.anfrageform.EMAIL_NAME.value)) fehler = 1;
	if (fehler == 1) { document.anfrageform.EMAIL_NAME.focus(); alert(InfoCenterEmpty); }
	if (fehler == 2) { document.anfrageform.EMAIL_EMAIL.focus(); alert(notEmptyAnfrage); }
	if (fehler == 3) { document.anfrageform.EMAIL_BETREFF.focus(); alert(InfoCenterEmpty); }
	if (fehler == 4) { document.anfrageform.EMAIL_ANFRAGE.focus(); alert(InfoCenterEmpty); }
	if (fehler == 5) { document.anfrageform.EMAIL_EMAIL.focus(); alert(UngueltigeEmail); }

	if (fehler == 0) document.anfrageform.submit();

}

//führt den link zum upload einer datei von einer übersichtsseite (bei gegebener l_list) durch
//@param gnr				- Gemeindenummer
//@param sprachid			- Sprachid
//@param backlink			- Backlink
//@param table_name			- name der tabelle
//@param name				- name spalte in der tabelle
//@param frmObj				- form objekt; muss die selectbox l_list mit dem selektierten element enthalten!
//@param bChangeFilename	- wenn TRUE, dann wird der dateiname des übertragenen files in table_name + "_" + objektnummer umbenannt
//@param sFilenamePrefix	- prefix vor den dateinamen, der übertragen wird
//@param iFileSprache		- wenn > 0 dann ist das File sprachabhängig und es wird noch ... + "_" + iFileSprache an das File drangehängt
//@param bUseT				- wenn 0 dann wird gibt es keine _T Tabelle
//@param sDestDir			- wo die upload.asp Datei liegt z.B.: ../
function goUploadDundasPRE(gnr,sprachid,backlink,table_name, name, frmObj, bChangeFilename, sFilenamePrefix, iFileSprache, bUseT, sDestDir)
{

	var dateiname = new String();
	var sHrefLocation = new String();

	slctd=-1;
	for (i=0;i<frmObj.l_list.length;i++)
		{if (frmObj.l_list.options[i].selected) slctd=i};
	if ((slctd==-1) ||(frmObj.l_list.options[slctd].value == - 1) || (frmObj.l_list.options[slctd].value == 0)){
		alert(selErr);
		return false;
	}
	dateiname = '';
	if (sFilenamePrefix != '') {
		dateiname = sFilenamePrefix;
	}
	if (bChangeFilename) {
		dateiname = dateiname + cboval(frmObj.l_list);
		if (iFileSprache > 0) {
			dateiname = dateiname + '_' + iFileSprache;
		}
	}
	sHrefLocation = sDestDir + 'components/dundas_upload/upload.asp?gnr=' + gnr + '&sprache=' + sprachid + '&onr=' + cboval(frmObj.l_list) + '&table_name=' + table_name + '&name=' + name + '&dateiname=' + dateiname
	if (iFileSprache > 0) {
			sHrefLocation = sHrefLocation + '&sprache=' + iFileSprache;
		}

	if (backlink!=''){
		sHrefLocation = sHrefLocation + '&backlink=' + backlink;
	}

	if (bUseT == 0){
		sHrefLocation = sHrefLocation + '&no_t=1';
	}
	document.location.href = sHrefLocation;
	return true;
}

//führt den link zum upload einer datei von einer detailseite (xxx_detail.asp) durch
//@param gnr				- Gemeindenummer
//@param sprachid			- Sprachid
//@param backlink			- Backlink
//@param table_name			- name der tabelle
//@param name				- name spalte in der tabelle
//@param obj				- objektnummer
//@param bChangeFilename	- wenn TRUE, dann wird der dateiname des übertragenen files in table_name + "_" + objektnummer umbenannt
//@param sFilenamePrefix	- prefix vor den dateinamen, der übertragen wird
//@param iFileSprache		- wenn > 0 dann ist das File sprachabhängig und es wird noch ... + "_" + iFileSprache an das File drangehängt
//@param bUseT				- wenn 0 dann wird gibt es keine _T Tabelle
//@param bnochangeSaveW		- Wenn 1 dann keine JavascriptabfrageS
//@param sDestDir			- wo die upload.asp Datei liegt z.B.: ../
//@param usernr				- Benutzeronr fuer INTRANET
function goUploadDetail(gnr,sprachid,backlink,table_name, name, obj, bChangeFilename, sFilenamePrefix, iFileSprache, bUseT, bnochangeSaveW, sDestDir, Usernr)
{
	var dateiname = new String();
	var sHrefLocation = new String();

	dateiname = '';
	if (sFilenamePrefix != '') {
		dateiname = sFilenamePrefix;
	}
	if (bChangeFilename) {
		//dateiname = dateiname + table_name + '_' + obj;
		dateiname = dateiname + obj;
		if (iFileSprache > 0) {
			dateiname = dateiname + '_' + iFileSprache;
		}
	}
//	alert(dateiname)
	sHrefLocation = sDestDir + 'components/dundas_upload/upload.asp?gnr=' + gnr + '&sprache=' + sprachid + '&onr=' + obj + '&table_name=' + table_name + '&name=' + name + '&dateiname=' + dateiname;

	if (bUseT == 0){
		sHrefLocation = sHrefLocation + '&no_t=1';
	}

	if (backlink!=''){
		//alert('bl:'+backlink);
		sHrefLocation = sHrefLocation + '&backlink=' + escape(backlink);
	}

	if (Usernr!=''){
		sHrefLocation = sHrefLocation + '&usernr=' + Usernr;
	}

	if (iFileSprache > 0) {
			sHrefLocation = sHrefLocation + '&sprache=' + iFileSprache;
		}

	if (bnochangeSaveW == 1){
		document.location.href = sHrefLocation;
		return true;
	}

	if (confirm(changeSaveWarning))
	{
		document.location.href = sHrefLocation;
		//alert(sHrefLocation);
		return true;
	}
	return false;


}

