// Konstanten
window.defaultStatus = "Willkommen im Exotic Garden Intranet";
var W3CDOM = (document.createElement && document.getElementsByTagName);
var objTarget;
var strTarget;
var arrPopUpActive = new Array();
var strTranslated = '';

// Öffnet Fenster child
function openwindow(ziel, name, optionen)
{
	var fenster;

	if (optionen==false) optionen = "";

	fenster = window.open(ziel, name, optionen);
	fenster.focus();
}

function CheckFxKeys(objEvent)
{
	strExtraKey = '';
	if(objEvent.altKey)	strExtraKey = strExtraKey + 'alt';
	if(objEvent.shiftKey)	strExtraKey = strExtraKey + 'shift';
	if(objEvent.ctrlKey)	strExtraKey = strExtraKey + 'strg';
	switch(objEvent.keyCode){
	case 112:	//F1	Kassenmodus
		xajax_ajaxCheckFxKeys(strExtraKey + 'F1');
		return false;
	break;
	case 113:	//F2	Wareneingang
		xajax_ajaxCheckFxKeys(strExtraKey + 'F2');
		return false;
	break;
	case 116:	//F5
		return true;
	break;
	case 123:	//F5
		xajax_ajaxCheckFxKeys(strExtraKey + 'F12');
		return false;
	break;
	default:
		return true;
	break;}
}

function trim(inputString)
{
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}

// formatiert Wert
function format(wert, format)
{
 switch(format.substr(0,1).toUpperCase()){
 case 'W': // Währung (,5 -> 0.50)
 	var k = (Math.round(wert * 100) / 100).toString();
  	k += (k.indexOf('.') == -1)? '.00' : '00';
  	return k.substring(0, k.indexOf('.') + 3);
 break;
 case 'Z': // Zeit
   wert = wert.replace(/,+/,".");
   wert = wert.replace(/^\s+/,"");
   wert = wert.replace(/[\\,\\.\\-]/,":");
   if(wert.length == 0)
   	wert = '';
   else{
    	//var strreg = /([01]?[0-9]|2[0-3]])(:[0-5]?[0-9])?/g;
		//if(strreg.test(wert) == false){
    		wert = wert.split(":");
	 		check = wert[0].search(/[01]?[0-9]|2[0-3]]/);
	  	 	if(check == -1){wert[0] = '00';}
  	 		if(wert[0].length == 1){wert[0] = '0'+wert[0];}
  	  		if(wert.length > 1){
	  	   	check = wert[1].search(/^[0-9]$|[0-5][0-9]/);
  		   	if(check == -1){wert[1] = '00';}
  		   	if(wert[1].length == 1){wert[1] = wert[1]+'0';}
  		   	wert = wert[0]+":"+wert[1];
  	  		}else{
  	  			wert = wert[0]+":00";
  	  		}
  	 	//}//else
  	 		//wert = '';
   }
   return wert;
  break;
 default:
 break;}
}

function getCoordinates(objElement)
{
	var offsetLeft = 0;
	var offsetTop = 0;
	while(objElement.offsetParent){
		offsetLeft += objElement.offsetLeft;
		offsetTop += objElement.offsetTop;
		if(objElement.scrollTop > 0){
			offsetTop -= objElement.scrollTop;
		}
		objElement = objElement.offsetParent;
	}
	return [offsetLeft, offsetTop];
}

// prüft ob eine Wert val im Array arr vorhanden ist und gibt Index zurück bzw. -1 bei nicht vorhaden
function in_array(arr, val)
{
   for(var i = 0; i < arr.length; i++){
      if(arr[i] === val){
          return(i);
      }
   }
   return(-1);
}

function ConfirmMe(text)
{
	check = confirm(text);
	if(check == false)
		return false;
	return true;
}

function enter_as_tab(e, elementid, id)
{
	if(e.keyCode == 13){
		if(id === false){
			document.getElementsByName(elementid)[0].select();
		}else{
			document.getElementById(elementid).select();
		}
		return false;
	}
	return e.keycode;
}

// Zeigt PopUp Block mit dem Inhalt aus dem <div> Block mit ID = strSourceBlock an den Koordinaten intX und intY an
function LoadPopUp(strPopUpBlock, intX, intY, intWidth, intHeight)
{
	// prüft ob angeforderter PopUp Block bereits geladen
	if(in_array(arrPopUpActive,document.getElementById(strPopUpBlock)) > -1)	return;
	if(arrPopUpActive.length == 0){
		addEvent(document,'mousedown', ClosePopUp);
		addEvent(document,'keydown', ClosePopUp);
	}
	document.getElementById(strPopUpBlock).style.left = intX + 'px';
	document.getElementById(strPopUpBlock).style.top = intY + 'px';
	if(intWidth > 0)	document.getElementById(strPopUpBlock).style.width = intWidth + 'px';	else	document.getElementById(strPopUpBlock).style.width = '';
	if(intHeight > 0)	document.getElementById(strPopUpBlock).style.height = intHeight + 'px';
	FadeMeIn(document.getElementById(strPopUpBlock));
	arrPopUpActive.push(document.getElementById(strPopUpBlock));
}

// schließt ALLE PopUp Block wenn Document ausserhalb des PopUp Block geklickt wird
// bei drücken auf ESC werden ggf. mehrere angezeigte PopUp Blocks umgekehrt der Reihenfolge ihres Öffnens geschlossen
function ClosePopUp(objEvent)
{
	if(arrPopUpActive.length == 0){
		removeEvent(document,'mousedown', ClosePopUp);
		removeEvent(document,'keydown', ClosePopUp);
		return;
	}
	// Pfeiltasten und Return ausschließen
	if((objEvent.keyCode >= 37 && objEvent.keyCode <= 40) || objEvent.keyCode == 13)	return;
	// bei Tastendruck <> ESC Taste und nicht angezeigter SuggestionListe Fenster nicht schließen
	if(typeof NameSuggestion == 'undefined'){
		if(objEvent.keyCode != undefined && objEvent.keyCode != 27)	return;
	}else{
		//alert(typeof NameSuggestion == 'undefined');
		if(objEvent.keyCode != undefined && (objEvent.keyCode != 27 || NameSuggestion.boolResultContainerShow == true))	return NameSuggestion.closeResult(false);
	}
	// prüfe ob Click innerhalt des PopUp Blocks erfolgte
	if(objEvent.offsetX){
		intMouseX = objEvent.offsetX;
		intMouseY = objEvent.offsetY;
	}else{
		intMouseX = objEvent.pageX;
		intMouseY = objEvent.pageY;
	}
	objPopUpActive = arrPopUpActive[arrPopUpActive.length-1];
	// prüft ob Click innerhalb des letzten geladenen PopUps erfolgte > kein Schließen
	if(intMouseX > objPopUpActive.offsetLeft && intMouseX < (objPopUpActive.offsetLeft + objPopUpActive.offsetWidth) && intMouseY > objPopUpActive.offsetTop && intMouseY < (objPopUpActive.offsetTop + objPopUpActive.offsetHeight))	return false;
	// schließt letztes geladenes PopUp (falls ESC Taste gedrückt wurde)
	FadeMeOut(objPopUpActive);
	arrPopUpActive.pop();
	// es wurde keine ESC Taste gedrückt = klick ausserhalb des letzten geladenen PopUps -> alle anderen PopUps ebenfalls schließen
	if(objEvent.keyCode != 27){
		for(var i = 0; i < arrPopUpActive.length; i++){
			FadeMeOut(arrPopUpActive.pop());
		}
  }
  if(arrPopUpActive.length == 0){
		removeEvent(document,'mousedown', ClosePopUp);
		removeEvent(document,'keydown', ClosePopUp);
	}
}

// FadeIn Effekt für ein Element
function FadeMeIn(objElement, intFadeStep)
{
	objElement.style.display = 'block';
	intFadeStep = intFadeStep || 0;
	objElement.style.opacity = intFadeStep/100;
  if(intFadeStep <= 100)	window.setTimeout(function () {FadeMeIn(objElement,intFadeStep+6);},1);
}

// FadeIn Effekt für ein Element
function FadeMeOut(objElement, intFadeStep)
{
	objElement.style.display = 'none';
}

function LoadCalendar(strTarget)
{
	objCalendar = new Calendar(1,null,onSelect,onClose);
	objCalendar.weekNumbers = false;
	objCalendar.showsTime = false;
	objCalendar.setDateFormat("%d.%m.%Y");
	objCalendar.dragging = true;
	objCalendar.minYear = 2006;
	objCalendar.maxYear = 2020;
	objCalendar.create();
	objTarget = document.getElementsByName(strTarget)[0];
	objCalendar.showAtElement(objTarget);
	objTarget.blur();
}

function onSelect(calendar, date)
{
	objTarget.value = date;
	if (calendar.dateClicked){
		calendar.callCloseHandler();
	}
}

function onClose(calendar)
{
	calendar.hide();
}

function addEvent(objElement, strEvent, objfunction)
{
	if (objElement.attachEvent) { // IE
		objElement.attachEvent("on" + strEvent, objfunction);
	} else if (objElement.addEventListener) { // Gecko / W3C
		objElement.addEventListener(strEvent, objfunction, true);
	} else {
		objElement["on" + strEvent] = objfunction;
	}
}

function removeEvent(objElement, strEvent, objfunction)
{
	if (objElement.detachEvent) { // IE
		objElement.detachEvent("on" + strEvent, objfunction);
	} else if (objElement.removeEventListener) { // Gecko / W3C
		objElement.removeEventListener(strEvent, objfunction, true);
	} else {
		objElement["on" + strEvent] = null;
	}
}

function initFileUploads()
{
	if (!W3CDOM) return;
	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.className = 'fakefile';
	fakeFileUpload.appendChild(document.createElement('input'));
	var image = document.createElement('img');
	image.src='./www/bilder/icon_openfolder.gif';
	fakeFileUpload.appendChild(image);
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type != 'file') continue;
		if (x[i].parentNode.className != 'fileinputs') continue;
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		clone.style.border = 'none';
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		x[i].onchange = x[i].onmouseout = function () {
			this.relatedElement.value = this.value;
		}
	}
}

// Highlightfunktion für Tabellen
function classDataTable_Highlight(objRow, intRow, strAction, strCheckRow)
{
	var objCells = null;
	var boolCheckboxClicked = false;
	if(typeof(objRow.style) == 'undefined'){
		return false;
	}
	if(typeof(document.getElementsByTagName) != 'undefined'){
		objCells = objRow.getElementsByTagName('td');
	}else{
		if(typeof(objRow.cells) != 'undefined'){
			objCells = objRow.cells;
		}else{
			return false;
		}
	}
  if(typeof(window.opera) == 'undefined' && typeof(objCells[0].getAttribute) != 'undefined'){
  	for(i = 0; i <objCells.length; i++){
			if(objCells[i].className != 'nohighlight'){
				switch(strAction.toLowerCase()){
				case 'over':
			  	objCells[i].style.backgroundColor = '#E1E1F0';
				break;
				case 'out':
		  	 	objCells[i].style.backgroundColor = objRow.style.backgroundColor;
				break;
				case 'click':
		     	if(boolCheckboxClicked == false && typeof(document.getElementsByName(strCheckRow+intRow)[0]) != 'undefined'){
    	  		if(document.getElementsByName(strCheckRow+intRow)[0].checked == true){
      	 			if(document.getElementsByName(strCheckRow+intRow)[0].type.toUpperCase() == "CHECKBOX"){document.getElementsByName(strCheckRow+intRow)[0].checked = false;}
      			}else document.getElementsByName(strCheckRow+intRow)[0].checked = true;
  	   		}
      		boolCheckboxClicked = false;
      		return;
				break;}
			}
		}
  }else{
  	for(i = 0; i <objCells.length; i++){
			if(objCells[i].className != 'nohighlight'){
				switch(strAction.toLowerCase()){
				case 'over':
		  		objCells[i].style.backgroundColor = '#E1E1F0';
				break;
				case 'out':
		   		objCells[i].style.backgroundColor = objRow.style.backgroundColor;
				break;}
			}
		}
	}
}

function translateElementById(strIDTextElement, strIDTranslateElement)
{
	xajax_ajaxGoogleTranslation(document.getElementById(strIDTextElement).innerHTML,2);
	setTimeout("timeOutTranslation('"+strIDTextElement+"')",1000);
}

function timeOutTranslation(strIDTextElement)
{
	if(strTranslated != '' && strTranslated != false){
		document.getElementById(strIDTextElement).innerHTML = strTranslated;
		document.getElementById('grst_bottom_powered_google_txt').style.display="block";
		document.getElementById('grst_bottom_powered_google_img').style.display="block";
	}	
}

// Menu 
var timeout		= 500;
var closetimer	= 0;
var ddmenuitem  = 0;
// open hidden layer
function mopen(id)
{
	// cancel close timer
	mcancelclosetime();
	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}
// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}
// close layer when click-out
document.onclick = mclose;


var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-18614700-1']);
_gaq.push(['_trackPageview']);
(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();


