// ClassName aendern	'header', 'over', 5
function SwapClassName(vArea, vOpt, vID)
{
	if(vArea == 'header')
	{
		if(vOpt == 'over')
		{
			document.getElementById('navi-left_'+ vID).className = "navi_left_active";
			document.getElementById('navi-fill_'+ vID).className = "navi_fill_active";
			document.getElementById('navi-right_'+ vID).className = "navi_right_active";
		}
		else
		{
			document.getElementById('navi-left_'+ vID).className = "navi_left_inactive";
			document.getElementById('navi-fill_'+ vID).className = "navi_fill_inactive";
			document.getElementById('navi-right_'+ vID).className = "navi_right_inactive";
		}
	}
}

// Textfeld leeren
function ClearTextField(vFieldName, vText)
{
	if(eval("document.getElementById('"+ vFieldName +"').value") == vText)
	{ eval("document.getElementById('"+ vFieldName +"').value = ''"); }
}

// Weiterleitung
function GoTo(vSite)
{
	window.location = vSite;
}

// Kontrolle Feld leer  
function check_empty(text)
{ return (text.length > 0); }

//Funktion Feldanzahl 
function check_cnt(text,cnt)
{
	if (text.length < cnt)
	{ return false; }
	return true;
}

// Kontrolle Text  
function check_text(text)
{
	var vNewText = text;
	var vCheckText = "'";
	for (var i = 0;  i < vNewText.length;  i++)
	{
		ch = vNewText.charAt(i);
		if(ch == "<" || ch == ">" || ch == "=" || ch == '"' || ch == "'" || ch == "`")
		{
			return (false);
			break;
		}
	}
	return (true);
}

// Kontrolle eMail	
function check_email(strMail)
{
	reg_ex5 = /^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$/;

	if(reg_ex5.test(strMail))
	{ return true; }
	else
	{ return false; }
}

//Funktion Check Zahl 
function check_number(text)
{
	var checkOK = "0123456789";
	for (i = 0;  i < text.length;  i++)
	{
	  ch = text.charAt(i);
	  for (j = 0;  j < checkOK.length;  j++)
		if (ch == checkOK.charAt(j))
		  break;
	  if (j == checkOK.length)
	  {
		return (false);
		break;
	  }
	}
	return (true);
}

function CheckDateFormat(sDate)
{
	var dDate;
	var dZeit;
	
	if(!sDate) return false;
	
	var dDateTime = sDate.split(" ");
	dDate = dDateTime[0];
	dZeit = dDateTime[1];
	
	if(dZeit)
	{
		var zeit = dZeit.split(":");
		var stunden = Math.abs(parseInt(zeit[0]));
		var minuten = Math.abs(parseInt(zeit[1]));

		if (isNaN(stunden) || stunden > 24 ||  isNaN(minuten) || minuten > 60)
		{ return false; }
	}
	
	if (isDate(dDate) == false)
	{ return false; }
	else
	{ return true; }
}

// string => TT.MM.YYYY HH:MM:SS
// Das Trennzeichen kann ein: "./-" sein
// prüft einen String auf ein gültiges Datum
// gibt ein Datum Objekt oder null zurück
function check_dateformat(string)
{
    if(!string) return null;

    string += '';
    string = string.replace(/[-\/]/g, '.'); // Trennzeichen normalisieren
    string = string.replace(/[^0-9.: ]/g, ''); // ungültige Zeichen entfernen
    string = string.replace(/ +/g, ' '); // doppelte Leerzeichen entfernen
    var uhr = string.split(" "); // Uhrzeit abtrennen
    var split = uhr[0].split(".");
    var day = parseInt(split[0], 10);
    var month = parseInt(split[1] || 0, 10);
    var year = parseInt(split[2] || 0, 10);

    if(isNaN(year)) year = getFullYear();

    var check = new Date(year, month - 1, day);

    if(uhr[1])
	{
		var uhr = uhr[1].split(':');
		check.setHours( uhr[0] || 0 );
		check.setMinutes( uhr[1] || 0 );
    }

    var day2 = check.getDate();
    var year2 = getFullYear(check);
    var month2 = check.getMonth() + 1;

    return ( year2 == year && month == month2 && day == day2 ) ? check : false;
}

function check_datediff(vDateSmall, vDateBig)
{
	//alert(vDateSmall+" - "+vDateBig+" // "+iMSDateSmall+" - "+iMSDateBig);
	
	var vReturnValue = false;
	
	if(!vDateSmall)
	{ vReturnValue = false; }

    vDateSmall += '';
    vDateSmall = vDateSmall.replace(/[-\/]/g, '.'); // Trennzeichen normalisieren
    vDateSmall = vDateSmall.replace(/[^0-9.: ]/g, ''); // ungültige Zeichen entfernen
    vDateSmall = vDateSmall.replace(/ +/g, ' '); // doppelte Leerzeichen entfernen
    var uhrSmall = vDateSmall.split(" "); // Uhrzeit abtrennen
    var splitSmall = uhrSmall[0].split(".");
    var daySmall = parseInt(splitSmall[0], 10);
    var monthSmall = parseInt(splitSmall[1] || 0, 10);
    var yearSmall = parseInt(splitSmall[2] || 0, 10);

	var objCompDateSmall = new Date(yearSmall, monthSmall, daySmall, 0, 0, 0);
	var iMSDateSmall = Date.parse(objCompDateSmall);

	if(!vDateBig)
	{ vReturnValue = false; }

    vDateBig += '';
    vDateBig = vDateBig.replace(/[-\/]/g, '.'); // Trennzeichen normalisieren
    vDateBig = vDateBig.replace(/[^0-9.: ]/g, ''); // ungültige Zeichen entfernen
    vDateBig = vDateBig.replace(/ +/g, ' '); // doppelte Leerzeichen entfernen
    var uhrBig = vDateBig.split(" "); // Uhrzeit abtrennen
    var splitBig = uhrBig[0].split(".");
    var dayBig = parseInt(splitBig[0], 10);
    var monthBig = parseInt(splitBig[1] || 0, 10);
    var yearBig = parseInt(splitBig[2] || 0, 10);

	var objCompDateBig = new Date(yearBig, monthBig, dayBig, 0, 0, 0);
	var iMSDateBig = Date.parse(objCompDateBig);
	
	// Falls das Datum in der Vergangenheit liegt
	if(iMSDateSmall <= iMSDateBig)
	{ vReturnValue = true; }
	
	return vReturnValue;
}

function getFullYear(date)
{
    if(!date) date = new Date();

    if(typeof date.getFullYear != 'undefined') return date.getFullYear();

    var year = date.getYear();

    if(year < 1000) year += 2000;

    return year;
}

//Zeilenumbrueche und Sonderzeichen fuer XMLHttpRequest
function ChangeTextChar(vText)
{
	var vNewText = "";
	var vOrgText = vText;
	var vEditText = "";
	var vTextArray = vOrgText.split("\n");
	
	for (var i = 0;  i < vTextArray.length;  i++)
	{
		if(i < (vTextArray.length - 1))
		{ vNewText = vNewText+vTextArray[i]+"%0A"; }
		else
		{ vNewText = vNewText+vTextArray[i]; }
	}
	
	vNewText = vNewText.replace(/&/g, "%26");
	
	var BrowserName = navigator.userAgent.toLowerCase();
	if(BrowserName.indexOf("msie") > 0)
	{
		for (i = 0;  i < vNewText.length;  i++)
		{
			switch (vNewText.charCodeAt(i))
			{
				case 136: vEditText = vEditText+"%cb%86"; break; 
				case 152: vEditText = vEditText+"%cb%9c"; break;
				case 154: vEditText = vEditText+"%c5%a1"; break;
				case 156: vEditText = vEditText+"%c5%93"; break;
				case 158: vEditText = vEditText+"%c5%be"; break; 
				case 159: vEditText = vEditText+"%c5%b8"; break; 
				case 162: vEditText = vEditText+"%c2%a2"; break; 
				case 163: vEditText = vEditText+"%c2%a3"; break; 
				case 165: vEditText = vEditText+"%c2%a5"; break; 
				case 167: vEditText = vEditText+"%c2%a7"; break;
				case 169: vEditText = vEditText+"%c2%a9"; break;  
				case 171: vEditText = vEditText+"%c2%ab"; break;  
				case 178: vEditText = vEditText+"%c2%b2"; break;  
				case 179: vEditText = vEditText+"%c2%b3"; break; 
				case 180: vEditText = vEditText+"%c2%b4"; break; 
				case 185: vEditText = vEditText+"%c2%b9"; break;  
				case 186: vEditText = vEditText+"%c2%ba"; break;  
				case 187: vEditText = vEditText+"%c2%bb"; break;  
				case 188: vEditText = vEditText+"%c2%bc"; break;  
				case 189: vEditText = vEditText+"%c2%bd"; break;  
				case 190: vEditText = vEditText+"%c2%be"; break;
				case 191: vEditText = vEditText+"%c2%bf"; break;
				case 192: vEditText = vEditText+"%c3%80"; break;
				case 193: vEditText = vEditText+"%c3%81"; break;
				case 194: vEditText = vEditText+"%c3%82"; break;
				case 195: vEditText = vEditText+"%c3%83"; break;
				case 196: vEditText = vEditText+"%c3%84"; break;
				case 197: vEditText = vEditText+"%c3%85"; break;
				case 198: vEditText = vEditText+"%c3%86"; break; 
				case 199: vEditText = vEditText+"%c3%87"; break;  
				case 200: vEditText = vEditText+"%c3%88"; break;  
				case 201: vEditText = vEditText+"%c3%89"; break;  
				case 202: vEditText = vEditText+"%c3%8a"; break; 
				case 203: vEditText = vEditText+"%c3%8b"; break; 
				case 204: vEditText = vEditText+"%c3%8c"; break;  
				case 205: vEditText = vEditText+"%c3%8d"; break;  
				case 206: vEditText = vEditText+"%c3%8e"; break; 
				case 207: vEditText = vEditText+"%c3%8f"; break; 
				case 208: vEditText = vEditText+"%c3%90"; break; 
				case 209: vEditText = vEditText+"%c3%91"; break;  
				case 210: vEditText = vEditText+"%c3%92"; break;  
				case 211: vEditText = vEditText+"%c3%93"; break;  
				case 212: vEditText = vEditText+"%c3%94"; break; 
				case 213: vEditText = vEditText+"%c3%95"; break;  
				case 214: vEditText = vEditText+"%c3%96"; break; 
				case 215: vEditText = vEditText+"%c3%97"; break; 
				case 216: vEditText = vEditText+"%c3%98"; break;  
				case 217: vEditText = vEditText+"%c3%99"; break;  
				case 218: vEditText = vEditText+"%c3%9a"; break;  
				case 219: vEditText = vEditText+"%c3%9b"; break; 
				case 220: vEditText = vEditText+"%c3%9c"; break; 
				case 221: vEditText = vEditText+"%c3%9d"; break;  
				case 222: vEditText = vEditText+"%c3%9e"; break; 
				case 223: vEditText = vEditText+"%c3%9f"; break;  
				case 224: vEditText = vEditText+"%c3%a0"; break; 
				case 225: vEditText = vEditText+"%c3%a1"; break; 
				case 226: vEditText = vEditText+"%c3%a2"; break; 
				case 227: vEditText = vEditText+"%c3%a3"; break; 
				case 228: vEditText = vEditText+"%c3%a4"; break; 
				case 229: vEditText = vEditText+"%c3%a5"; break; 
				case 230: vEditText = vEditText+"%c3%a6"; break; 
				case 231: vEditText = vEditText+"%c3%a7"; break; 
				case 232: vEditText = vEditText+"%c3%a8"; break; 
				case 233: vEditText = vEditText+"%c3%a9"; break; 
				case 234: vEditText = vEditText+"%c3%aa"; break; 
				case 235: vEditText = vEditText+"%c3%ab"; break; 
				case 236: vEditText = vEditText+"%c3%ac"; break; 
				case 237: vEditText = vEditText+"%c3%ad"; break; 
				case 238: vEditText = vEditText+"%c3%ae"; break; 
				case 239: vEditText = vEditText+"%c3%af"; break; 
				case 240: vEditText = vEditText+"%c3%b0"; break; 
				case 241: vEditText = vEditText+"%c3%b1"; break; 
				case 242: vEditText = vEditText+"%c3%b2"; break; 
				case 243: vEditText = vEditText+"%c3%b3"; break; 
				case 244: vEditText = vEditText+"%c3%b4"; break; 
				case 245: vEditText = vEditText+"%c3%b5"; break; 
				case 246: vEditText = vEditText+"%c3%b6"; break; 
				case 247: vEditText = vEditText+"%c3%b7"; break; 
				case 248: vEditText = vEditText+"%c3%b8"; break; 
				case 249: vEditText = vEditText+"%c3%b9"; break; 
				case 250: vEditText = vEditText+"%c3%ba"; break; 
				case 251: vEditText = vEditText+"%c3%bb"; break; 
				case 252: vEditText = vEditText+"%c3%bc"; break; 
				case 253: vEditText = vEditText+"%c3%bd"; break; 
				case 254: vEditText = vEditText+"%c3%be"; break; 
				case 255: vEditText = vEditText+"%c3%bf"; break; 
				default: vEditText = vEditText+vNewText.charAt(i);
			}
		}
	}
	else
	{ vEditText = vNewText; }

	return vEditText;
}

/* Login */
function Login_Validator()
{
	//Benutzername
	if (!check_cnt(document.getElementById('fLogin_Name').value, 4))
	{ alert('Bitte geben Sie einen Benutzername mit min. 4 Zeichen ein.'); document.getElementById('fLogin_Name').focus(); return (false); }
	if (!check_text(document.getElementById('fLogin_Name').value))
	{ alert('Bitte geben Sie keine Sonderzeichen ein.'); document.getElementById('fLogin_Name').focus(); return (false); }
	
	//Passwort
	if (!check_cnt(document.getElementById('fLogin_PW').value, 4))
	{ alert('Bitte geben Sie einen Passwort mit min. 4 Zeichen ein.'); document.getElementById('fLogin_PW').focus(); return (false); }
	if (!check_text(document.getElementById('fLogin_PW').value))
	{ alert('Bitte geben Sie keine Sonderzeichen ein.'); document.getElementById('fLogin_PW').focus(); return (false); }
	
	//wenn alles OK	
	return (true);
}

// Entertaste nach Kennworteingabe
function InputReady(e)
{
	var key;
		
	if(window.event)
	{ key = window.event.keyCode; }     //IE
    else
	{ key = e.which; }					//Firefox
	if(key == 13)
	{ Submit_Login(); }
}

function Submit_Login()
{
	if(Login_Validator() == true)
	{
		document.fLogin.submit();
	}
}

function ShowSubNavi(Layer_Name, Layer_Name_Main)
{
	/*
	navi-left_6
	navi-fill_6
	navi-right_6
	*/
	var vLayer_Name_Main = "navi-left_"+ Layer_Name_Main;
	
	var a,element;
	element = document.getElementById(vLayer_Name_Main);
	a = getPosition(element);
	iFromLeft = a.x;
	iFromTop = a.y;

	iFromTop = iFromTop + 35;
	
	//if(iFromLeft > 0)
	//{iFromLeft = iFromLeft - 1;}
	
	document.getElementById(Layer_Name).style.top = iFromTop +"px";
	document.getElementById(Layer_Name).style.left = iFromLeft +"px";
	
	var GECKO = document.getElementById? 1:0 ;
	var NS = document.layers? 1:0 ;
	var IE = document.all? 1:0 ;

	if (GECKO)
	{document.getElementById(Layer_Name).style.display = (document.getElementById(Layer_Name).style.display == 'block') ? 'none' : 'block';}
	else if (NS)
	{document.layers[Layer_Name].display = (document.layers[Layer_Name].display == 'block') ? 'none' : 'block';}
	else if (IE)
	{document.all[Layer_Name].style.display = (document.all[Layer_Name].style.display == 'block') ? 'none' : 'block';}
}

function HiddenSubNavi(Layer_Name)
{
	var GECKO = document.getElementById? 1:0 ;
	var NS = document.layers? 1:0 ;
	var IE = document.all? 1:0 ;

	if (GECKO)
	{document.getElementById(Layer_Name).style.display = 'none';}
	else if (NS)
	{document.layers[Layer_Name].display = 'none';}
	else if (IE)
	{document.all[Layer_Name].style.display = 'none';}
}

function getPosition(element)
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten
   des Objekts element */
{
  var elem=element,tagname="",x=0,y=0;
  
/* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
   wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;     /* Offset des jeweiligen Elements addieren */
    x+=elem.offsetLeft;    /* Offset des jeweiligen Elements addieren */
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

/* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
    if (tagname=="BODY")
      elem=0;

/* wenn elem ein Objekt ist und offsetParent enthaelt
   Offset-Elternelement ermitteln */
    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object")
        elem=elem.offsetParent;
  }

/* Objekt mit x und y zurueckgeben */
  position=new Object();
  position.x=x;
  position.y=y;
  return position;
}
