// ---------------------------------------------------------------------------------------
//                               AJAX Grund-Funktionen                                   /
// ---------------------------------------------------------------------------------------
var obj_ajax = false;

/* startet neues Ajax-Objekt */
function startAjax()
{
  try {
    if (typeof ActiveXObject != "undefined"){
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest){
      return new XMLHttpRequest;
    }
  }
  catch(a){}
  return null;
}

/* startet Ajax Aufruf, fuehrt PHP Script aus (post/get) und dazugehoerige JS-Funktion */
function startAjaxAction(php_url, params, getpost, js_function)
{
  if (!obj_ajax){
    obj_ajax = startAjax();
  }

  if (obj_ajax)
  {
    if (getpost == 'post')
    {
      obj_ajax.open('post', php_url, true);
      obj_ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      obj_ajax.setRequestHeader("Content-length", params.length);
      obj_ajax.setRequestHeader("Connection", "close");
    }
    else
    {
      var params = null
      obj_ajax.open('get', php_url, true);
    }
    obj_ajax.send(params);

    obj_ajax.onreadystatechange = js_function;
  }
  else {
    return false;
  }
}
//----------------------------------------------------------------------------------------

function verifyCompatibleBrowser()
{
  this.ver = navigator.userAgent;
  this.dom = document.getElementById ? 1 : 0;
  this.ie = 0;
  this.ie5 = 0;
  this.ie6 = 0;
  this.ie7 = 0;
  this.op = 0;
  this.nn = 0;
  this.ff = 0;

  if (this.dom)
  {
    if (this.ver.indexOf('MSIE 5') >= 0){
      this.ie5 = 1;
    }
    if (this.ver.indexOf('MSIE 6') >= 0){
      this.ie6 = 1;
    }
    if (this.ver.indexOf('MSIE 7') >= 0){
      this.ie7 = 1;
    }
    if ( this.ver.indexOf('MSIE') >= 0 ){
      this.ie = 1;
    }
    if (this.ver.indexOf('Opera') >= 0){
      this.op = 1;
    }
    if (this.ver.indexOf('Netscape') >= 0){
      this.nn = 1;
    }
    if (this.ver.indexOf('Firefox') >= 0){
      this.ff = 1;
    }
  }
  return this;
}


bw = new verifyCompatibleBrowser();

function ConstructNavObject(obj)
{
  this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval('document.'+obj):0;
  return this;
}

var swidth="na";
var scolor="na";
var plugin="";
if (navigator.appName == 'Netscape' || navigator.appName == 'Opera')
{
  for (i = 0; i < navigator.plugins.length; ++i)
    plugin += navigator.plugins[i].name + ';';
  plugin = escape(plugin);
}

swidth=screen.width;
scolor=navigator.appName!='Netscape'? screen.colorDepth : screen.pixelDepth;

function delConfirm (meldung)
{
  if ( !meldung )
    meldung = "Wollen Sie wirklich löschen?";
  return window.confirm(meldung);
}
function BeforeSearch(meldung, searchformid, inputid, laenge, switch_action_to)
{
  if (!inputid || inputid == ''){
    return false;
  }
  var objFrm = alFindObj(searchformid);
  var obj = alFindObj(inputid, objFrm);
  if (!obj){
    return false;
  }
  if (!obj.value || obj.value ==''){ return;}

  if (obj.value.length < laenge)
  {
    alert (meldung);
    return;
  }
  if ( typeof(switch_action_to) != 'undefined' && '' != switch_action_to ){
    objFrm.action = switch_action_to;
  }

  objFrm.submit();
}

function sendForm(formid, action, confirm){
  if ( typeof(confirm) != 'undefined' && '' != confirm ){
    if(!window.confirm('Wollen Sie wirklich speichern ?')){ return false;}
  }
  var objFrm = alFindObj(formid);
  if (!objFrm){
    alert('Konnte Formular nicht finden');
    return false;
  }
  if ( typeof(action) != 'undefined' && '' != action ){
    objFrm.action = action;
  }
  objFrm.submit();
}

function frmLeertest(inputFeldId1,inputFeldId2){
  var obj;
  if ( typeof(inputFeldId1) != 'undefined'){
    obj = alFindObj(inputFeldId1);
    if(!obj || obj.value==''){
      return false;
    }
  }
  if ( typeof(inputFeldId2) != 'undefined'){
    obj = alFindObj(inputFeldId2);
    if(!obj || obj.value==''){
      return false;
    }
  }
  return true;
}
function colorcheck(felder)
{
  elements = document.form.elements;
  felder_array = felder.split(',');
  for (i = 0; i < elements.length; i++)
  {
    if ( typeof(elements[i].name) != 'undefined'){
      // Felder rot markieren
      for (j = 0; j < felder_array.length; j++)
      {
        if ( '' == felder_array[j] ) continue;
        if ( elements[i].name == felder_array[j] || 0 < elements[i].name.indexOf(felder_array[j]+']') )
        {
          if (elements[i].type == 'radio' || elements[i].type == 'checkbox')
          {
            elements[i].style.backgroundColor = '#cc0000';
          }
          else
          {
            elements[i].style.borderColor = '#cc0000';
            elements[i].style.color = '#cc0000';
          }
        }
      }
    }
  }
}

function Show(tab)
{
 var str = "vars:"
 var a = 0;
  for (i in tab)
  {
   a++;
   alert(i);
   if ( typeof(tab[i]) != 'undefined' && tab[i] != 'null' )
   {
     str = str + '\n' + i + '=' + tab[i];
     alert(str);
     if (a >= 10)
        {
          alert(str);
          a = 0;
          str = "vars:";
        }
      }
      if ( 0 == a )
        str = tab;
  }
  alert(str);
}

function SaveTargetUrl(currentElement)
{
  if ( currentElement.href )
    targetUrl = currentElement.href;
}
/***************************************************************************************
Funktion, die per onload aufgerufen wird und die Werte in "dropvalues" im Formular setzt,
wenn ein Formular mit dem Namen "formname" existiert
****************************************************************************************/
function setDropdownValues(datafield, formname)
{
  for ( prop_id in dropvalues)
  {
    for (line in dropvalues[prop_id])
    {
      for (field in dropvalues[prop_id][line])
      {
        bewname  = datafield + '[PROP_' + prop_id + '][' + line + '][' + field + ']';
        bewvalue = dropvalues[prop_id][line][field];
        if (document.forms[formname].elements[bewname]){
          document.forms[formname].elements[bewname].value = bewvalue;
        }
      }
    }
  }
}
/*
Funktionen fuers Menue von ali
*/
function alGetElement(e){
	if(document.layers || window.opera){
		return e.target;
	} else if(document.all){ // IE
		return e.srcElement;
	} else if(document.getElementById){	// Firefox et al
		return e.target;
	}
}
function findChildByTagName(masterobj, tagname){
  var obj;
  if ( ! tagname ) { return false;}
  tagname=tagname.toLowerCase();
  obj = masterobj.firstChild;
  while ( obj && (obj.nodeType == 3 || obj.tagName.toLowerCase() != tagname) )
  {
    obj = obj.nextSibling;
  }
  if (obj && obj.tagName.toLowerCase() == tagname )
  {
    return obj;
  }
  return false;
}
function findNextSiblingByTagName(masterobj, tagname){
  var obj;
  if ( ! tagname ) { return false;}
  tagname = tagname.toLowerCase();
  obj = masterobj.nextSibling;
  while ( obj && (obj.nodeType == 3 || obj.tagName.toLowerCase() != tagname) )
  {
    obj = obj.nextSibling;
  }
  if (obj && obj.tagName.toLowerCase() == tagname )
  {
    return obj;
  }
  return false;
}
function toggleVisibleBlock(obj){
  // fuer block-Objekte
  if (!obj){ return;}
  if (obj.style.display){
    if (obj.style.display == 'block'){
      obj.style.display = 'none';
    } else {
      obj.style.display = 'block';
    }
  } else {  // noch kein style display gesetzt
    obj.style.display = 'block';
  }
}
function toggleVisibleBlockMultiObj(objID, arrObjIds, reiternr){
	var id,i,a;
	if (!objID) { return;}

	for ( i=0; i < arrObjIds.length; i++ ) {
		a = arrObjIds[i].substring(0,(arrObjIds[i].indexOf('_')));
		if ( a == reiternr ){
			obj2 = document.getElementById('r'+arrObjIds[i]);
			if (obj2 && obj2.id != objID){
				obj2.style.display = 'none';
			} else {
				obj2.style.display = 'block';
			}
		}
	}
}
function toggleClassMulti(objID, arrObjIds,von,nach){
	var id,i,a;
	if (!objID) { return;}
	for ( i=0; i < arrObjIds.length; i++ ) {
    obj2 = document.getElementById(arrObjIds[i]);
		if ( objID == arrObjIds[i] ){
		  alChangeClass(obj2,von,nach);
		} else {
		  alChangeClass(obj2,nach,von);
		}
	}
}
function nodeKlick(evt){
  var e, el, obj;
	e = evt || window.event;
	el = alGetElement(e);
	obj = findNextSiblingByTagName(el, 'div')
  if ( ! obj ) {
    // alert ('kein DIV gefunden');
    return;
  }
  toggleVisibleBlock(obj);
}
function reiterKlick(evt){
	// globalvar arrObj
	var e, el, obj, reiternr;
	aktivklasse='reiterActive';
	inaktivklasse ='reiterInActive';
	e = evt || window.event;
	el = alGetElement(e);
	if(el.tagName.toLowerCase() == 'a'){
	  el = el.parentNode;
	}
	if(!el){ return;}
	reiternr = el.id.substring(0,(el.id.indexOf('_')));
	toggleVisibleBlockMultiObj('r'+el.id, arrObj, reiternr);
	if(el.className == aktivklasse){
	 toggleClassMulti(aktivklasse, inaktivklasse);
	} else {
	  toggleClassMulti(el.id, arrObj,inaktivklasse, aktivklasse);
	}
}
function reiterKlick2(reiterId){
	// globalvar arrObj
	var e, el, obj, reiternr;
	aktivklasse='reiterActive';
	inaktivklasse ='reiterInActive';
	el = document.getElementById(reiterId);
	if(!el){ return;}
	reiternr = el.id.substring(0,(el.id.indexOf('_')));
	toggleVisibleBlockMultiObj('r'+el.id, arrObj, reiternr);
	if(el.className == aktivklasse){
	 toggleClassMulti(aktivklasse, inaktivklasse);
	} else {
	  toggleClassMulti(el.id, arrObj,inaktivklasse, aktivklasse);
	}
}

/*
Funktionen zum Handling von Style-Klassen
*/

function alRemoveClass(obj,class1){
// 07-07-2005
	if (!(obj && obj.className)){ return;}
	var cls = obj.className.split(" ");
	var ar = new Array();
	for (var i = cls.length; i > 0;){
		if (cls[--i] != class1){
			ar[ar.length] = cls[i];
		}
	}
	obj.className = ar.join(" ");
}
function alAddClass(obj,class1){
// 07-07-2005
	// erstmal Klasse wegnehmen wenn sie noch da ist wegen Reihenfolge
	if( typeof(obj) != 'undefined' && obj){
	 alRemoveClass(obj, class1);
	 obj.className += " " + class1;
	}
}
function alClassSchonDa(obj,class1){
// 07-07-2005
	if (!(obj && obj.className)){ return false;}
	var cls = obj.className.split(" ");
	for (var i = cls.length; i > 0;){
		if (cls[--i] == class1){	return true;}
	}
	return false;
}
function alChangeClass(obj,altklasse,neuklasse){
// 07-07-2005
	alRemoveClass(obj,altklasse);
	alAddClass(obj,neuklasse);
}
function alToggleClass(obj,class1,class2){
  if (!obj){ return;}
  if(typeof(class1)=='undefined' || class1==''){ return false;}
  if(typeof(class2)=='undefined' || class2==''){ return false;}
  if(!obj.className || obj.className==''){
    obj.className = class1;
    return;
  }
  if (alClassSchonDa(obj,class2)){
    alChangeClass(obj,class2,class1);
    return;
  }
  alChangeClass(obj,class2,class1);
  return;
}

/* Generelles findobj Browseruebergreifend und rekursiv auch fuer suche in Layern (NS4) */
function alFindObj(n, d) {
  	var p,i,x;
  	if(typeof(n)=='undefined' || n==''){ return false;}	// aliali
  	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=alFindObj(n,d.layers[i].document);	// Rekursiver Anteil fuer Suche in Layern
  	}
  	if(!x && d.getElementById){
  		x = d.getElementById(n);
  	}
  	return x;
}


/* Funktionen für das automatische ausloggen nach gewisser Zeit bzw. für das Zurückzählen
   der erlaubten Loginzeit */
function checkLoginTime(rtime, bez1, bez2, bez3)
{
  remainTime = rtime;
  logintime = setInterval('countDown(\''+bez1+'\', \''+bez2+'\', \''+bez3+'\')', 1000);
}
function countDown(bez1, bez2, bez3)
{
  remainTime -= 1;
  if (remainTime == 0)
  {
    clearInterval(logintime);
    window.focus();
    alert(bez2);
  }
  stunden     = parseInt( remainTime / 3600 );
  minuten     = parseInt( (remainTime % 3600 ) / 60 );
  sekunden    = remainTime % 60;
  stunden.toString(10);
  minuten.toString(10);
  sekunden.toString(10);

  if ( stunden < 10 ) { stunden   = '0' + stunden; }
  if ( minuten < 10 ) { minuten   = '0' + minuten; }
  if ( sekunden < 10 ){ sekunden  = '0' + sekunden; }

  if (stunden == 0 && minuten==5 && sekunden==0)
  {
    window.focus();
    alert(bez3);
  }
  if ( document.getElementById('remainLoginTime') ){
    document.getElementById('remainLoginTime').innerHTML = bez1 + ' ' + stunden + ':' + minuten + ':' + sekunden;
  }
}

function doPrint()
{
  if (window.location.href.match(/\.php/))
  {
    getty = '&';
  }
  else
  {
    getty = '?';
  }
  link = window.location.href + getty + 'print=1';
  druck = window.open(link,'Druckversion', 'scrollbars=yes, resizable=yes, width=800, height=600');
  //druck.print();
}

function resetPrint()
{
  if ('undefined' != typeof oben)
  {
    oben.style.display   = 'block';
  }

  unten.style.display  = 'block';
  mitte.style.top      = top_pos
  mitte.style.bottom   = bot_pos
  mitte.style.overflow = 'auto';
  content.style.width  = '750px';
}

/* fuer Gehaltsformular */

function show (type, display)
{
	var pos;
	switch (type)
	{
		case 1:
			pos = document.getElementById('management');
			break;
			
		case 2:
			pos = document.getElementById('personal');
			break;
			
		case 3:
			pos = document.getElementById('finanz');
			break;
			
		case 4:
			pos = document.getElementById('food_service');
			break;
			
		case 5:
			pos = document.getElementById('food_kueche');
			break;
			
		case 6:
			pos = document.getElementById('food_steward');
			break;
			
		case 7:
			pos = document.getElementById('rooms_front');
			break;
			
		case 8:
			pos = document.getElementById('rooms_res');
			break;
			
		case 9:
			pos = document.getElementById('rooms_house');
			break;
			
		case 10:
			pos = document.getElementById('sales');
			break;
			
		case 11:
			pos = document.getElementById('it');
			break;
			
		case 12:
			pos = document.getElementById('spa');
			break;
			
		case 13:
			pos = document.getElementById('auto');
			break;
			
		case 14:
			pos = document.getElementById('audi');
			break;
			
		case 15:
			pos = document.getElementById('bmw');
			break;
			
		case 16:
			pos = document.getElementById('ford');
			break;
			
		case 17:
			pos = document.getElementById('benz');
			break;
			
		case 18:
			pos = document.getElementById('opel');
			break;
			
		case 19:
			pos = document.getElementById('porsche');
			break;
			
		case 20:
			pos = document.getElementById('vw');
			break;
			
		case 21:
			pos = document.getElementById('schwed');
			break;
			
		case 22:
			pos = document.getElementById('franz');
			break;
			
		case 23:
			pos = document.getElementById('ital');
			break;
			
		case 24:
			pos = document.getElementById('japan');
			break;
			
		case 25:
			pos = document.getElementById('jaguar');
			break;
			
		case 26:
			pos = document.getElementById('weitere');
			break;
	}
	
	if ( 0 == display )
	{
		pos.style.display = 'block';
	}
	
	else if ( 1 == display )
	{
		pos.style.display = 'none';
	}
}

