var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

function Set_Cookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) expires = expires * 1000 * 60 * 60 * 24;
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function Get_Cookie(name) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) { return -1; }
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function Check_Cookie() {
	Set_Cookie("acceptcookie", '1', 100, '/', '', '' );
	if(Get_Cookie("acceptcookie")) return true;
	else return false;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_showHideLayers() { //mod by ds
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

function ShowHideBoxes(layer) {
  var obj,p;
  if ((obj=MM_findObj(layer))!=null) {
    if (obj.style) { p=MM_findObj(layer+'_pic');
	  if(obj.style.display=='none') {
	    obj.style.display='block';
        Set_Cookie(layer, '1', 100, '/', '', '' );
	    p.src='pics/design/btn_up.gif';
	  }else{
	    obj.style.display='none';
        Set_Cookie(layer, '0', 100, '/', '', '' );
	    p.src='pics/design/btn_down.gif';
	  }
} } }

function ShowHideSideBox(layer) {
  var obj,p;
  if ((obj=MM_findObj(layer))!=null) {
    if (obj.style) { p=MM_findObj(layer+'_pic');
	  if(obj.style.display=='none') {
	    obj.style.display='block';
        Set_Cookie(layer, '1', 0.05, '/', '', '' );
	    p.src='pics/design/sidebox_close.gif';
	  }else{
	    obj.style.display='none';
        Set_Cookie(layer, '0', 0.05, '/', '', '' );
	    p.src='pics/design/sidebox_open.gif';
	  }
} } }

function ShowHideLayers(layer) {
  var obj,p;
  if ((obj=MM_findObj(layer))!=null) {
    if (obj.style) {
	  if(obj.style.display=='none') {
	    obj.style.display='block';
	  }else{
	    obj.style.display='none';
	  }
} } }

function BitteWarten() {
  var obj,y;
  y = 0;
  if (window.pageYOffset) y = window.pageYOffset;
  else if (document.body && document.body.scrollTop) y = document.body.scrollTop;
  obj=MM_findObj("bittewartencontainer");
  obj.style.top = y;
  return true;
}

function Foto(url,pname,W,H,X,Y) {
       if(is_ie){
	       W = parseInt(W)+20;
	       H = parseInt(H)+20;
	   }
	   pname=window.open(url,pname,"width="+W+",height="+H+",left="+X+",top="+Y+",dependent=yes,resizable=yes,scrollbars=no,toolbar=no");
       pname.focus();
       return true;
}

function Comment(pname,W,H,X,Y) {
       pname=window.open("",pname,"width="+W+",height="+H+",left="+X+",top="+Y+",dependent=yes,resizable=yes,scrollbars=yes,toolbar=no,menubar=no");
       pname.focus();
       return true;
}

function PPop(pname) {
       pname=window.open("",pname,"width=500,height=550,left=160,top=190,dependent=yes,resizable=yes,scrollbars=yes,toolbar=no,menubar=no");
       pname.focus();
       return true;
}

function Popup(pname,file,W,H,X,Y) {
       pname=window.open(file,pname,"width="+W+",height="+H+",left="+X+",top="+Y+",dependent=no,resizable=no,scrollbars=no,toolbar=no,menubar=no");
       pname.focus();
       return true;
}

function Anzeige(pname) {
       pname=window.open("",pname,"width=200,height=300,left="+(screen.availWidth - 500)/2+",top="+(screen.availHeight - 550)/2+",dependent=no,resizable=yes,scrollbars=auto,toolbar=no,menubar=no");
       pname.focus();
       return true;
}

function CheckListAuswahl(formular) {
    for(i=0;i<document.forms[formular].profil.length;++i)
        if(document.forms[formular].profil.options[i].selected == true)
            return true;
    return false;
}

function hide(name) {
    if(document.getElementById)
    document.getElementById(name).style.visibility = "hidden";
}

function hidediv(name) {
    if(document.getElementById)
    document.getElementById(name).style.display = "none";
}
function showdiv(name) {
    if(document.getElementById)
    document.getElementById(name).style.display = "block";
}

function change(col,a,stat) {
	if(document.all || document.getElementsByTagName) {
		if(stat)
			window.status = '';
		else
			window.status = '';
			a.style.backgroundColor = col;
	}
	return false;
}

function emoticon(text, tform, tfield) {
    var myField = document.forms[tform].elements[tfield];
	text = " " + text + " ";
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = text;
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == "0") {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var rest = myField.value;
        myField.value = rest.substring(0, startPos) + text + rest.substring(endPos, rest.length);
   } else {
        myField.value += text;
  }
}

function popup_insert(text, tform, tfield) {
    var myField = opener.document.forms[tform].elements[tfield];
    //IE support
    if (opener.document.selection) {
        myField.focus();
        sel = opener.document.selection.createRange();
        sel.text = text;
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == "0") {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var rest = myField.value;
        myField.value = rest.substring(0, startPos) + text + rest.substring(endPos, rest.length);
   } else {
        myField.value += text;
  }
}

function x () {
    return;
}

function texterweiterung(start, ende) {
    var myField = document.versform.box;
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = start + sel.text + ende;
        myField.focus();
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == "0") {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var rest = myField.value;
        myField.value = rest.substring(0, startPos) + start + rest.substring(startPos, endPos) + ende + rest.substring(endPos, rest.length);
    } else {
        myField.value += start + ende;
    }
}

function makelink() {
    var enterURL   = prompt("Bitte gib die komplette URL für den Link ein:", "http://");
    if (!enterURL)    {
        alert("Keine URL angegeben!");
        return;
    }
    var blank = prompt("Soll der Link in einem neuen Fenster aufgehen? (1) ja  (2) nein", "1");
    if(blank==2) texterweiterung("[URL2="+enterURL+"]","[/URL]");
	else texterweiterung("[URL="+enterURL+"]","[/URL]");
}

function email() {
    var enterEmail   = prompt("Bitte gib hier die Email-Adresse ein:", "");
    if (!enterEmail)    {
        alert("Keine Email-Adresse angegeben!");
        return;
    }
    texterweiterung("[MAIL="+enterEmail+"]","[/MAIL]");
}

function aufzaehlung() {
    var anzahl_punkte   = prompt("Wieviele Aufzählungspunkte?", "3");
    var aufzinhalt = "";
    for(var x = 0; x < anzahl_punkte; x++) {
        aufzinhalt += "\r  [*] Punkt "+(x+1);
    }
    texterweiterung("\r[AUFZAEHLUNG]"+aufzinhalt,"\r[/AUFZAEHLUNG]");
}

function tabelle() {
    var enterZeilen = prompt("Wieviele Zeilen?", "1");
    var enterSpalten = prompt("Wieviele Spalten?", "1");
    var enterWeite = prompt("Wie weit soll die Tabelle sein?", "100%");
    var enterRand = prompt("Wie dick soll der Rand sein? (Pixel)", "0");
    var enterAbstand = prompt("Wie gross soll der Zellenabstand sein? (Pixel)", "0");
    var enterAuffuellung = prompt("Um wieviele Pixel sollen die Zellen aufgefüllt werden?", "0");

    var tblinhalt = "";
    for(var x = 0; x < enterZeilen; x++) {
        tblinhalt += "\r[ZEILE]";
        for(var y = 0; y < enterSpalten; y++) tblinhalt += "\r  [SPALTE] text [/SPALTE]";
        tblinhalt += "\r[/ZEILE]";
    }

    texterweiterung("\r[TABELLE width=\""+enterWeite+"\" cellpadding=\""+enterAuffuellung+"\" cellspacing=\""+enterAbstand+"\" border=\""+enterRand+"\"]"+tblinhalt,"\r[/TABELLE]");
}

function admclear() {
	window.status = ''; return true;
}

function imgRefresh(img, target) {
	rdm=Math.random()*10000000+10000000;
	document.images[img].src = "refresh.php?file="+target+"&rdm="+rdm;
}

function markiereRot(fld) {
	var obj = document.getElementsByName(fld)[0];
	if(obj) {
		obj.style.border = "solid red 2px";
		obj.style.backgroundColor = "#FFF3F3";
		return true;
	} else return false;
}

function entferneMarkierung(fld) {
	var obj = document.getElementsByName(fld)[0];
	if(obj) {
		obj.style.border = "solid #CCCCCC 1px";
		obj.style.backgroundColor = "#FFFFFF";
		return true;
	} else return false;
}

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {
        if (required) {
            return false;
        }
        return true;
    }
    if (!allValidEmailChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function checkValidChars(txt, validchars) {
  var parsed = true;
  for (var i=0; i < txt.length; i++) {
    var letter = txt.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function checkASCIIChars(txt) {
  var parsed = true;
  for (var i=0; i < txt.length; i++) {
    var letter = txt.charCodeAt(i);
    if ((letter>=32 && letter<=176) || txt[i]=="Ä" || txt[i]=="Ö" || txt[i]=="Ü" || txt[i]=="ä" || txt[i]=="ö" || txt[i]=="ü" || txt[i]=="ß")
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function allValidEmailChars(email) {
  return checkValidChars(email, "abcdefghijklmnopqrstuvwxyz0123456789@.-_");
}

function allValidNumChars(num) {
  return checkValidChars(num, "0123456789");
}

function allValidTelChars(num) {
  return checkValidChars(num, "0123456789+-/() ");
}

function allValidTextChars(text) {
  return checkValidChars(text, "abcdefghijklmnopqrstuvwxyz- ");
}

function allValidNameChars(name) {
  return checkValidChars(name, "abcdefghijklmnopqrstuvwxyz-äöüß ");
}

function checkValidDate(date) {
   var tmpdate = date.split(".");
   var day = tmpdate[0];
   var month = tmpdate[1];
   var year = tmpdate[2];
   if(isNaN(day) || isNaN(month) || isNaN(year))
      return false;
   if(year < 1970 || year > 2799)
      return false;
   if(month < 1 || month > 12)
      return false;
   var feb = 28;
   if(month == 2) {
      if(year % 4 == 0) feb += 1;
      if(year % 100 == 0) feb -= 1;
      if(year % 400 == 0) feb += 1;
   }
   var days = new Array(31,feb,31,30,31,30,31,31,30,31,30,31);
   if(day > days[month-1] || day < 1)
      return false;
   return true;
}

function checkValidTime(time) {
   var tmptime = time.split(":");
   var hour = tmptime[0];
   var minute = tmptime[1];
   if(isNaN(hour) || isNaN(minute))
      return false;
   if(hour < 0 || hour > 23)
      return false;
   if(minute < 0 || minute > 59)
      return false;
   return true;
}

function newslettercheck(formularname)
{
	ok=true;
	meldung = "Folgende Angaben stimmen noch nicht:\n\n";

	if (document.forms[formularname].Vorname.value == "")
	{
	ok = false;
	meldung=meldung + "Sie haben Ihren Vornamen nicht angegeben!         (Notwendig)\n";
	}
	else if (!allValidNameChars(document.forms[formularname].Vorname.value))
	{
	ok = false;
	meldung=meldung + "Ihr Vorname enthält ungültige Zeichen! \n";
	}
	if (document.forms[formularname].Name.value == "")
	{
	ok = false;
	meldung=meldung + "Sie haben Ihren Namen nicht angegeben!              (Notwendig)\n";
	}
	else if (!allValidNameChars(document.forms[formularname].Name.value))
	{
	ok = false;
	meldung=meldung + "Ihr Name enthält ungültige Zeichen! \n";
	}
	if (document.forms[formularname].EMail.value == "")
	{
	ok = false;
	meldung=meldung + "Sie haben Ihre E-Mail Adresse nicht angegeben!    (Notwendig)\n";
	}
	else if (!isValidEmail(document.forms[formularname].EMail.value))
	{
	ok = false;
	meldung=meldung + document.forms[formularname].EMail.value + " ist keine gültige Email-Adresse! \n";
	}

	meldung = meldung + "\nBitte füllen Sie die fehlenden Felder aus!\n"

	if (ok)
	{
		return true;
	}
	else
	{
		alert(meldung);
		return false;
	}

}

//--------------------------------------------------------------------------------------------------------
// DHTML Tooltip
//--------------------------------------------------------------------------------------------------------

var hideTO, mouseIsOverLayer, mouseOverWhileLoad;
var bIE = (navigator.appName.indexOf("Microsoft") != -1);
var Yposition,Xposition,Yevent,Xevent;

if (!document.getElementById('Tooltip')) {
	document.writeln("<DIV onmouseover=\"mouseIsOverLayer = true;\" onmouseout=\" mouseOverWhileLoad=false; hideTitle(event, this);\" class=\"Tooltip\" id=\"Tooltip\" style=\"position: absolute; visibility: hidden; display: none;\">");
	document.writeln("<DIV id=\"TooltipText\" ></DIV>");
	document.writeln("</DIV>");
}


function hideTitle(e, elmnt) {
if (document.all) {
	if (!(Tooltip.contains(window.event.toElement))) {
		mouseIsOverLayer = false;
		if ( !mouseOverWhileLoad)
		{
			hideTO = window.setTimeout('hideTooltip()', 300);
		}
	}
} else {
		if (checkMouseLeave(elmnt, e))
		{
			if ( !mouseOverWhileLoad)
			{
				hideTO = window.setTimeout('document.getElementById(\'Tooltip\').style.visibility = \'hidden\'; document.getElementById(\'Tooltip\').style.display = \'none\';', 300);
			}
		}
	}
}

function hideTooltip()
{
if (!mouseIsOverLayer)
	document.all.Tooltip.style.display = 'none';
}

function checkIfMouseOverLayer()
{
if (!mouseIsOverLayer && !mouseOverWhileLoad) {
	if (document.all) {
		document.all.Tooltip.style.display = 'none';
	} else {
		var oLayer = document.getElementById('Tooltip');
		oLayer.style.visibility = 'hidden';
		oLayer.style.display = 'none';
	}
}
}


function containsDOM (container, containee) {
var isParent = false;
do {
if ((isParent = container == containee))
  break;
containee = containee.parentNode;
}
while (containee != null);
return isParent;
}


function checkMouseLeave (element, evt) {
if (element.contains && evt.toElement) {
return !element.contains(evt.toElement);
}
else if (evt.relatedTarget) {
return !containsDOM(element, evt.relatedTarget);
}
}


function calPos(e) {
		var moveByPx = -23;

		if (bIE){
			Yevent = window.event.y;
			Xevent = window.event.x;
		}else{
			Yevent = e.pageY - getScrollTop();
			Xevent = e.pageX - getScrollLeft();
		}

		Yposition =Yevent+getScrollTop()+10;

		if (Xevent < moveByPx) Xposition = 0;
		else if ((Xevent+moveByPx+160) > document.body.offsetWidth)
			Xposition = document.body.offsetWidth-360;
		else Xposition = Xevent+document.body.scrollLeft-moveByPx;

		if (Xposition < 120) Xposition = 120;

	if (document.all) {
		// IE
		document.all.Tooltip.style.left = Xposition;
		document.all.Tooltip.style.top = Yposition;

	} else {
		// NETSCAPE
		var oLayer = document.getElementById('Tooltip');
		oLayer.style.top = Yposition + "px";
		oLayer.style.left = Xposition + "px";
	}
}


function showTitle(e, obj, text, divId) {

		mouseOverWhileLoad = false;
		mouseIsOverLayer = true;

		calPos(e);

	if (document.all) {
		// IE
		document.all.TooltipText.innerHTML = text;
		document.all.Tooltip.style.display = '';
		document.all.Tooltip.style.zIndex = 100;
		document.all.Tooltip.style.visibility = 'visible';

	} else {
		// NETSCAPE
		var oLayer = document.getElementById('Tooltip');
		oLayer.innerHTML = text;
		oLayer.style.display = '';
		oLayer.style.zIndex = 100;
		oLayer.style.visibility = 'visible';
	}
}


function getScrollTop() {
var s = 0;
if (window.getSelection) {  // Moz
return document.body.scrollTop;
}
if (document.documentElement && document.documentElement.scrollTop) {
s = document.documentElement.scrollTop;
}
else if (document.body && document.body.scrollTop) {
s = document.body.scrollTop;
}
return s;
}


function getScrollLeft()
{
 if (window.getSelection) {  // Moz
 return document.body.scrollLeft;
 }
var s = 0;
if (document.documentElement && document.documentElement.scrollLeft)
{
	s = document.documentElement.scrollLeft;
}
else
	if (document.body && document.body.scrollLeft)
	{
		s = document.body.scrollLeft;
	}
return s;
}
