if(top!=self) top.location=self.location; // Wenn nicht on top, dann aus Frame befreien

/*
if(document.images)  // Navigation initialisieren
{
	navpic = new Array();
	navpic[0] = new Image();
	navpic[0].src = "/img/navpic_lo.gif";
	navpic[1] = new Image();
	navpic[1].src = "/img/navpic_hi.gif";
}
*/
// Sprachauswahl: aktuelle Seite wird nochmals geladen und Variable $language_id übergeben; this_site beinhaltet $PHP_SELF
function change_language(this_site)
{
 for(i=0;i<document.select_language.language_id.length;++i)
  if(document.select_language.language_id.options[i].selected == true)
  {
  	if (document.select_language.language_id.options[i].value!='') {document.location.href=this_site+'/language_id/'+document.select_language.language_id.options[i].value} else {alert('Error: contact your service-provider!')}
  }
}

// Sprachauswahl: aktuelle Seite wird nochmals geladen und Variable $language_id übergeben; this_site beinhaltet $PHP_SELF
function change_key_account(this_site)
{
 for(i=0;i<document.select_key_account.key_account_id.length;++i)
  if(document.select_key_account.key_account_id.options[i].selected == true)
  {
  	if (document.select_key_account.key_account_id.options[i].value!='') {document.location.href=this_site+'/key_account_id/'+document.select_key_account.key_account_id.options[i].value} else {alert('Error: contact your service-provider!')}
  }
}

// Überprüfen, ob Sprache bei Radio-buttons ausgewählt: Datei /inc/select.lang.inc einbinden!
// übergibt bei Auswahl true --> zum einbinden in einen  Formularcheck geeignet!
function check_language(formname, elementname, language_count)
{
	language_selected = false;
	for (i=0;i<language_count;++i)
	{
		if (!document[formname].elements[elementname].value) // 2 verschiedene Syntax benutzen, da wenn nur eine Sprache ist elementname kein Array und hört nicht auf die Ansprache elementname[i] !!
		{
			if (document[formname].elements[elementname][i].checked == true) language_selected = true;
		}
		else
		{
			if (document[formname].elements[elementname].checked == true) language_selected = true;
		}
	}
	if (language_selected==false) alert('Please select a language!');
	return language_selected;
}

// Überprüfen, ob Unternehmen bei Radio-buttons ausgewählt: Datei /inc/select.company.inc einbinden!
// übergibt bei Auswahl true --> zum einbinden in einen  Formularcheck geeignet!
function check_company(formname, elementname, company_count)
{
	company_selected = false;
	for (i=0;i<company_count;++i)
	{
		if (!document[formname].elements[elementname].value) // 2 verschiedene Syntax benutzen, da wenn nur eine Sprache ist elementname kein Array und hört nicht auf die Ansprache elementname[i] !!
		{
			if (document[formname].elements[elementname][i].checked == true) company_selected = true;
		}
		else
		{
			if (document[formname].elements[elementname].checked == true) company_selected = true;
		}
	}
	if (company_selected==false) alert('Please select a company!');
	return company_selected;
}

// Überprüfen, ob Product-Category bei Radio-buttons ausgewählt: Datei /inc/select.product_category.inc einbinden!
// übergibt bei Auswahl true --> zum einbinden in einen  Formularcheck geeignet!
function check_category(formname, elementname, category_count)
{
	category_selected = false;
	if (document[formname].elements[elementname].value!='#') category_selected = true;
	/*
	for (i=0;i<category_count;++i)
	{
		if (!document[formname].elements[elementname].value) // 2 verschiedene Syntax benutzen, da wenn nur eine Sprache ist elementname kein Array und hört nicht auf die Ansprache elementname[i] !!
		{
			if (document[formname].elements[elementname][i].selected == true) category_selected = true;
		}
		else
		{
			if (document[formname].elements[elementname].selected == true) category_selected = true;
		}
	}
	*/
	if (category_selected==false) alert('Please select a product category!');
	return category_selected;
}

function nav_hilo(num,imgname) // Navigations-Pfeil zeigen/verstecken
{
	if(document.images)
	{
		imgname.src = navpic[num].src;
	}
}


function markieren() // am Ende jeder zu durchsuchenden Datei in einem Javascript-bereich aufrufen! --> markiert Suchbegriffe
// funktioniert nur ab IE 4 ; für NS 7 gibt es separates script
	{
	if((navigator.appName.lastIndexOf('Mac')!=-1)||(navigator.appName.lastIndexOf('X11')!=-1))
		{
		// alert('Markieren geht nicht bei Mac- oder Unix-Browsern');
		return false;
		}
	else
	
		{
		var r,i,z,pos,f_z,m_url
		var farbe = new Array('#FFFF80','#FEA94E','#CCCD6B','#A6A8FC','#00DEDB','#C1BFBF','#6CC46C','#FF80FF','#FFFFC0'); // Farben für Suchwörter setzen
		m_url=window.location.href; // URI auslesen
		pos=m_url.indexOf("marker")+7; // Position des ersten Suchbegriffes
		var s = m_url.substring(pos,m_url.length).split("|"); // Alle Suchbegriffe aus URI ausschneiden und in Array lesen
		if(s)
			{
			for(z=0;z <  s.length;++z)
				{
				r=document.body.createTextRange();
				for(i=0;r.findText(s[z]);i++) // Text nach Suchbegriff durchsuchen
					{
					(z>farbe.length-1) ? f_z=0 : f_z=z; // immer wieder andere Farbe wählen
					r.execCommand('BackColor','',farbe[f_z]);
					r.collapse(false);
					} // for
				} // for
			} // if
		} // if
	} // function

function setPointer(theRow, thePointerColor)
{
    if (thePointerColor == '' || typeof(theRow.style) == 'undefined') {
        return false;
    }
    if (typeof(document.getElementsByTagName) != 'undefined') {
        var theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        var theCells = theRow.cells;
    }
    else {
        return false;
    }

    var rowCellsCnt  = theCells.length;
    for (var c = 0; c < rowCellsCnt; c++) {
        theCells[c].style.backgroundColor = thePointerColor;
    }

    return true;
}

// Kalender für Datumseingabe öffnen
function OpenKalender(strZiel, strName, intWidth, formular, feld) // Zieldatei, WindowName, Breite, zu überprüfendes Formular/Feld
{	// Wenn feld einen Wert hat, wird der Kalender mit Jahr und Monat gestartet
    
    if (document[formular].elements[feld].value != "")
    {	
		var elemente = document[formular].elements[feld].value.split(".");
		var intMonth = elemente[1];
		var intYear = elemente[2];
		strZiel = strZiel + "/year/" + intYear + "/month/" + intMonth;
    }
    Test = window.open(strZiel + '/ZielFeld/' + formular + '.' + feld, strName, 'width='+intWidth+',height=150,scrollbars=no;resizablel');
    if (document.all)
	{
		var ClickX = window.event.x;
		var ClickY = window.event.y;
		if (navigator.appVersion.indexOf("MSIE 5")>0 )
		{
			Test.moveTo(ClickX+window.screenLeft+5, ClickY+window.screenTop-50);
		}
	}
}

// Leerzeichen am Anfang und Ende von Formulareingabefelder abschneiden (=Trim bei ASP)
function Trim(item)
  {
  var tmp = "";
  var item_length = item.value.length;
  var item_length_minus_1 = item.value.length - 1;
  for (index = 0; index < item_length; index++)
    {
    if (item.value.charAt(index) != ' ')
      {
      tmp += item.value.charAt(index);
      }
    else
      {
      if (tmp.length > 0)
        {
        if (item.value.charAt(index+1) != ' ' && index != item_length_minus_1)
          {
          tmp += item.value.charAt(index);
          }
        }
      }
    }
  item.value = tmp;
  }


// alle Checkboxen zum Setzen eines Rahmens von Bildern markieren/ demarkieren
function selectallbilder(wert, formname, ende)
{
	for (i=0;i<ende;++i)
	{
	feld = 'bilder['+i+'\][2]';
	document[formname].elements[feld].checked = wert;
	}
}

// alle Checkboxen zum Setzen eine Tabelle zum Durchsuchen markieren/ demarkieren
function selectalltables(wert, formname, ende)
{
	for (i=0;i<ende;++i)
	{
	feld = 'table['+i+'\]';
	document[formname].elements[feld].checked = wert;
	}
}

// alle Checkboxen zum Setzen von rechten für Bereiche markieren/ demarkieren
function selectallbereiche(wert, formname, ende)
{
	for (i=0;i<ende;++i)
	{
		for (z=1;z<=4;++z)
		{
			feld = 'bereich_id['+i+'\]['+z+'\]';
			document[formname].elements[feld].checked = wert;
		}
	}
}

// Sicherheitsabfrage: Bild löschen?
function del_pic(formname, feld)
{	
	if (document[formname].elements[feld].checked == true)
	{
	Check = confirm('Delete Picture?');
	if (Check==true)
		
		document[formname].elements[feld].checked = true
	else
		document[formname].elements[feld].checked = false;
	}	
}

// Sicherheitsabfrage: Bild löschen?
function del_file(formname, feld)
{	
	if (document[formname].elements[feld].checked == true)
	{
	Check = confirm('Delete File?');
	if (Check==true)
		
		document[formname].elements[feld].checked = true
	else
		document[formname].elements[feld].checked = false;
	}	
}


// Formular-Eingabefeld in Javascript-sicheres Datum überführen: im weiteren können damit Datum-Berechnungen vorgenommen werden
function toDate(datum)
{
	var tmpDatum = datum.split('.'); // Datum bei Punkt trennen und in Array schreiben: Stringkette!
	var myDatum = new Date(parseInt(tmpDatum[2]),parseInt(tmpDatum[1]-1),parseInt(tmpDatum[0])); // parseInt(tmpDatum[1])-1 : minus 1, da Monat Januar bei 0 beginnt! in Zahl konvertieren
	return myDatum;
}

/*
Formularüberprüfungen:

im Head einbinden:
	<script language="JavaScript" src="jstools.js"></script>

im Head Formularfelder angeben, die nach dem jeweiligen Fomrat überprüft werden sollen, Beispiel:
	<script language="JavaScript">
	stringliste = new Array('bezeichnung','beschreibung','preis_hp','preis_vp','preis_nue','preis_uef'); 
	zahlliste = new Array('personen');
	mailliste = new Array('email');
	datumsliste = new Array('startdatum','enddatum')
	</script>

im Formular-Absende-Button:
einen type=button verwenden und dort die notwendigen Überprüfungen notieren, Beispiel:

	<input class="inputedit"  type="button" name="verschicken" value="Neuen Eintrag Speichern" 
		onclick=" 
		if 
		(
		checkstring('kategorie',stringliste) 
		&& checkzahl('kategorie',zahlliste) 
		&& checkpic('kategorie','bild') 
		&& checkdezimal('kategorie',dezimalzahlliste) 
		&& checkmail('kategorie',mailliste)
		&& checkdatum('kategorie',datumsliste)
		) 
		document.kategorie.submit(); return false;">

1. Variable: Formularname
2. Variable: Arrayliste bzw. Feldnamen angeben
	
*/

// Datumsüberprüfung: nur ein Feld
function checkdate(formular, feld)
	{	// fail_date = 0;
		if 
		 (document.forms[formular].elements[feld].value.substring(2,3) != "." ||
		  document.forms[formular].elements[feld].value.substring(5,6) != "." ||
		  document.forms[formular].elements[feld].value.substring(0,2) < "01" ||
		  document.forms[formular].elements[feld].value.substring(0,2) > "31" ||
		  document.forms[formular].elements[feld].value.substring(3,5) < "01" ||
		  document.forms[formular].elements[feld].value.substring(3,5) > "12" ||
		  document.forms[formular].elements[feld].value.substring(6,10) < "1000" ||
		  document.forms[formular].elements[feld].value.substring(6,10) > "2080")
		  {
		    // fail_date=1;
			alert("Ungüliges Datum im aktiven Eingabefeld!\nBitte geben Sie im Format: TT.MM.JJJJ ein!");
			document.forms[formular].elements[feld].focus();
			return false;
		  }
		  else
		  return true;
		
	}
	
// Datumsüberprüfung nach Format t(t).m(m).jj(jj):
function checkdatum(formular, datumsliste, pflicht)
	{
		fehlermeldung = "Date-Input in active field like:\ntt.mm.jjjj  -  e.g. 24.12.2001 !";
		fehlermeldung1 = "This is not a date like :\ntt.mm.jjjj  -  e.g. 24.12.2001\nNo Date-Entry!";
		for(var i = 0; i <= datumsliste.length-1; i++)
			{
				var datum = /\b(0?[1-9]|[12][0-9]|3[01])\.(0?[1-9]|1[0-2])\.(\d?\d?\d\d)\b/ // regulärer Ausdruck, der auf Datum überprüfen soll
				var isdate = datum.test(document.forms[formular].elements[datumsliste[i]].value) // gibt true zurück, wenn Datum
				if (isdate == false)
					{
					if (pflicht == "false")
					{
						alert(fehlermeldung1);
						document.forms[formular].elements[datumsliste[i]].value = "";
						return true;
					}
					else
					{
						alert(fehlermeldung);
						document.forms[formular].elements[datumsliste[i]].value = "";
						document.forms[formular].elements[datumsliste[i]].focus();
						return false;
					}
					}
				else
					{
					if (i == datumsliste.length-1)
					return true;
					}
					
			}

	}
	
	
// Bildüberprüfung: nur ein Feld	
function checkpic(formular, feld)
	{
	if (document.forms[formular].elements[feld].value != "") 
		{
		if	
			(
			document.forms[formular].elements[feld].value.substring(document.forms[formular].elements[feld].value.length-3,document.forms[formular].elements[feld].value.length).toLowerCase() != "jpg"
			)
			
			{
			alert("Please use Pictures with format .jpg!");
			document.forms[formular].elements[feld].value = "";
			document.forms[formular].elements[feld].focus();
			return false;
				
			}
		else
			return true;
		}
	else
		return true;
	}

// Leerstring-Überprüfung		
function checkstring(formular, stringliste)
	{
	fehlermeldung = "Please input data in active field!";
	for(var i = 0; i <= stringliste.length-1; i++)
		{
		fail_string = 0;
		feldinhalt = document.forms[formular].elements[stringliste[i]].value;
		if (feldinhalt.replace(/\s+/,"")=="")
			{
			fail_string = 1;
			}
		if (fail_string == 1)
			{
			alert(fehlermeldung);
			document.forms[formular].elements[stringliste[i]].value = "";
			document.forms[formular].elements[stringliste[i]].focus();
			return false;
			}
		else
			{
			if (i == stringliste.length-1)
			return true;
			}
		}
	}
// Zahlüberprüfung: natürliche Zahlen (positiv)
function checkzahl(formular, zahlliste)	
	{
	fehlermeldung = "Please input naturell number in active field!";
	for(var i = 0; i <= zahlliste.length-1; i++)
		{
		fail_zahl = 0;
		var s = "" + document.forms[formular].elements[zahlliste[i]].value //Umwandlung in eine Zeichenkette
		var ziffern = "0123456789" //Gültige Zeichen
		if (s=="0") //Bei "0"
			fail_zahl = 0;
		if (s.charAt(0)=="0") //Bei 0 am Anfang
			fail_zahl = 1;
		for (var z=0; z<s.length; z++)
			{
			if (ziffern.indexOf(s.charAt(z))==-1) //keine Ziffer
				fail_zahl = 1;
			}
		// keine Zahl oder keine Eingabe oder nur Leerzeichen?
		if (fail_zahl == 1 || document.forms[formular].elements[zahlliste[i]].value.replace(/\s+/,"")=="")
			{
			alert(fehlermeldung);
			document.forms[formular].elements[zahlliste[i]].value = "";
			document.forms[formular].elements[zahlliste[i]].focus();
			return false;
			}
		else
			{
			if (i == zahlliste.length-1)
			return true;
			}

		}
	}
	
// Dezimalzahlüberprüfung

function checkdezimal(formular, dezimalzahlliste)
	{
	fehlermeldung = "Please input a decimal number in active field.\nE.g.: 123,45";
	// fail_dezimalzahl = 0;
	for(var z = 0; z <= dezimalzahlliste.length-1; z++)
		{
		fail_dezimalzahl = 0;
		var s = "" + document.forms[formular].elements[dezimalzahlliste[z]].value //Umwandlung in String
		while (s.indexOf(".")>-1)
			{//Kommata durch Punkte ersetzen
			s=s.substring(0,s.indexOf(".")) + "," 
			+ s.substring(s.indexOf(".")+1 ,s.length)
			}
		var anzahl_punkt=0//Variable zum Zählen der Dezimalpunkte
		for (var i=0; i<s.length; i++)
			if (s.charAt(i)==",")
		    	anzahl_punkt++
			if (anzahl_punkt>1) //Mehr als ein Dezimalpunkt?
				fail_dezimalzahl = 1;
		// *** Eigentliche Überprüfung nach obigem Muster
		// *** Neu: Der Dezimalpunkt ist ein erlaubtes Zeichen
		var ziffern = ",0123456789" //Gültige Zeichen
		if (s.charAt(0)=="-")  //Führendes Minus entfernen
			s = s.substring(1, s.length)
		if (s=="0") //Bei "0"
			fail_dezimalzahl = 0;
		if (s.charAt(0)=="0" &&s.charAt(1)!=",")
			//Bei 0 am Anfang ohne folgenden Punkt
			fail_dezimalzahl = 1;
		for (var i=0; i<s.length; i++)
			if (ziffern.indexOf(s.charAt(i))==-1) //Keine Ziffer
				fail_dezimalzahl = 1;
		if (fail_dezimalzahl == 1 || document.forms[formular].elements[dezimalzahlliste[z]].value.replace(/\s+/,"")=="")
			{
			alert(fehlermeldung);
			document.forms[formular].elements[dezimalzahlliste[z]].value = "";
			document.forms[formular].elements[dezimalzahlliste[z]].focus();
			return false;
			}
		else
			{
			if (z == dezimalzahlliste.length-1)
			return true;
			}
		}
	}


	
// Email-Adresse-Überprüfung	
function checkmail(formular, mailliste)
	{
	fehlermeldung = "Please input a valid email-address in active field!";
	for(var i = 0; i <= mailliste.length-1; i++)
		{
		fail_mail = 0;
		if(document.forms[formular].elements[mailliste[i]].value.indexOf('@') == -1)
			{
			fail_mail = 1;
			}
		if (fail_mail == 1 || document.forms[formular].elements[mailliste[i]].value.replace(/\s+/,"")=="")
			{
			alert(fehlermeldung);
			document.forms[formular].elements[mailliste[i]].value = "";
			document.forms[formular].elements[mailliste[i]].focus();
			return false;
			}
		else
			{
			if (i == mailliste.length-1)
			return true;
			}
			
		}
	}
	
function showds(file, table, id, marker) // allg. um kompletten DS im Rohformat zu zeigen
{
	ds_anzeige = window.open(file + "/table/" + table + "/id/" + id + "/marker/" + marker + "","_blank","height=400,width=500,menubar=no,locationbar=no,status=yes,scrollbars=yes");
	ds_anzeige.focus();
}

function showinfo(file) // DS formatiert über eigenes php-file anzeigen
{
	ds_anzeige = window.open("" + file + "","showinfo","height=400,width=500,menubar=no,locationbar=no,status=yes,scrollbars=yes");
	ds_anzeige.focus();
}

function showpic(file, table, id, height, width, headline, bildpfad) // allg. Bild anzeigen
{
	pic_anzeige = window.open(file + "/table/" + table + "/id/" + id + "/headline/" + headline +"/bildpfad/" + bildpfad +"/","_blank","height=" + height + ",width=" + width + ",menubar=no,locationbar=no,status=no,scrollbars=no");
	pic_anzeige.focus();
}

function print_email(mail_name,mail_domain,link_name,mail_params) // Formatiert Email-Adressen zur Ausgabe: Javascript wird kaum von Spidern durchsucht!
{
	document.write('\<a href=\"mailto:' + mail_name + '@' + mail_domain + mail_params + '" class=\"link\">');
	document.write(link_name + '</a>');
}