
window.onload = function(){
	wmtt = null;
	var browser = new Browser();
	
	document.onmousemove = updateWMTT;

	function updateWMTT(e) {
		x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
		y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
		if (browser.isIE) {
			x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
			y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
		}
		if (browser.isNS) {
			x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
			y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
		}
		if (wmtt != null) {
			if (x > 600)
				wmtt.style.left = (x - 260) + "px";
			else
				wmtt.style.left = (x + 20) + "px";
			if (y > 600)
				wmtt.style.top = (y - 70) + "px";
			else
				wmtt.style.top = (y + 20) + "px";
		}
	}
	
	function Browser() {
	// blah, browser detect, but mouse-position stuff doesn't work any other way
	  var ua, s, i;
	
	  this.isIE    = false;
	  this.isNS    = false;
	  this.version = null;
	
	  ua = navigator.userAgent;
	
	  s = "MSIE";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	  }
	
	  s = "Netscape6/";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	  }
	
	  // Treat any other "Gecko" browser as NS 6.1.
	
	  s = "Gecko";
	  if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	  }
	}
}
function ecTTShow(id)
{
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function ecTTHide()
{
	wmtt.style.display = "none";
	wmtt = null;
}


// hide
function ecHide(Id)
{
	document.getElementById(Id).style.display = "none";
}

// show
function ecShow(Id)
{
	document.getElementById(Id).style.display = "block";
}

// toggle display
function ecToggleDisplay(Id)
{
	if (document.getElementById(Id).style.display == 'none')
		document.getElementById(Id).style.display = "block";
	else
		document.getElementById(Id).style.display = "none";
}

// input via popup
function ecPopupInput(v,Id)  
{  
	if (window.opener.document.getElementById(Id).createTextRange)
	{
		window.opener.document.getElementById(Id).focus();
		window.opener.document.selection.createRange().duplicate().text = v;
	}
	else if (window.opener.document.getElementById && !window.opener.document.all) // Mozilla
	{
		var tarea = window.opener.document.getElementById(Id);
		var selEnd = tarea.selectionEnd;
		var txtLen = tarea.value.length;
		var txtbefore = tarea.value.substring(0,selEnd);
		var txtafter = tarea.value.substring(selEnd, txtLen);
		tarea.value = txtbefore + v + txtafter;
	}
	else
		window.opener.document.getElementById(Id).value += what;
	window.focus();
}
// open a new window
function ecReqWin(desktopURL, alternateWidth, alternateHeight, noScrollbars)
{
	if ((alternateWidth && self.screen.availWidth * 0.8 < alternateWidth) || (alternateHeight && self.screen.availHeight * 0.8 < alternateHeight))
	{
		noScrollbars = false;
		alternateWidth = Math.min(alternateWidth, self.screen.availWidth * 0.8);
		alternateHeight = Math.min(alternateHeight, self.screen.availHeight * 0.8);
	}
	else
	noScrollbars = typeof(noScrollbars) != "undefined" && noScrollbars == true;
	window.open(desktopURL, 'requested_popup', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=' + (noScrollbars ? 'no' : 'yes') + ',width=' + (alternateWidth ? alternateWidth : 480) + ',height=' + (alternateHeight ? alternateHeight : 220) + ',resizable=no');
	return false;
}

// Check all Checkboxes
function ecCheckAll(formname)
{
	for (var i = 0; i < document.getElementById(formname).elements.length ; i++)
	{
		var e = document.getElementById(formname).elements[i];
		if ((e.name != 'allbox') && (e.type=='checkbox'))
			e.checked = document.getElementById(formname).allbox.checked;
	}
}

// Change Source
function ecChangesrc(Id,Path)
{
	document.getElementById(Id).src = Path;
}

// Edit Table-Row
function ecTableEditRow(tabid)   
{
	NewRow = document.getElementById(tabid).lastChild.cloneNode(true);   
	document.getElementById(tabid).appendChild (NewRow);   
}

// Passwordcheck
function ecPassword(sP,i1,i2,i3)
{
	count = 0
	if(sP.length > 5)
		count++;
	var result1 = sP.search(/\D/);
	if (result1 != -1 && sP.length > 5)
		count++;	
	up = sP.toUpperCase();
	low = sP.toLowerCase();
	if(sP != up && sP != low && sP.length > 5)
		count++;
	var result2 = sP.search(/\d/);
	if (result2 != -1 && sP.length > 5)
  		count++;
	ecChangesrc(i1,'symbols/default/16/unsecure.png')
	ecChangesrc(i2,'symbols/default/16/unsecure.png')
	ecChangesrc(i3,'symbols/default/16/unsecure.png')
	if (count > 1) 
		ecChangesrc(i1,'symbols/default/16/secure.png')
	if (count > 2) 
		ecChangesrc(i2,'symbols/default/16/secure.png')
	if (count > 3) 
		ecChangesrc(i3,'symbols/default/16/secure.png')
}

// Dem Body das onLoad-Event hinzufügen
addEvent(this, 'load', function() { hideTabOnLoad() });

// Funktion zur Registrierung von Event Handler
function addEvent(jsObject, jsType, jsFunction) {
	if (jsObject.addEventListener)
		jsObject.addEventListener(jsType, jsFunction, false);
	else if (jsObject.attachEvent) {
		jsObject["e"+jsType+jsFunction] = jsFunction;
		jsObject[jsType+jsFunction] = function() { jsObject["e"+jsType+jsFunction](window.event); }
		jsObject.attachEvent("on"+jsType, jsObject[jsType+jsFunction]);
	}
}

// Tabboxen beim Seitenaufruf initialisieren
function hideTabOnLoad() {	
	// Sämtliche Div Tags vom Document suchen
	var jsTempDiv = document.getElementsByTagName('div');
	// Array für die Tabbox Objecte
	var jsTabBoxArray = new Array();
	
	// Alle Div-Tabbox Elemente finden
	for(var i=0; i<jsTempDiv.length; i++) {
		// Tabboxen ermitteln
		if(jsTempDiv[i].className == 'clickTabBox') {
			jsTabBoxArray[jsTabBoxArray.length] = jsTempDiv[i];
		}
	}
		
	// Sämtliche vorhandene Tabboxen bearbeiten
	for(var i=0; i<jsTabBoxArray.length; i++) {
		// Kinderelemente der Tabbox ermitteln
		var jsTempTabBoxElements = jsTabBoxArray[i].childNodes;
		// Array für die Tab Objecte
		var jsTabArray = new Array();
				
		// Kinderelemente der Tabbox überprüfen
		for(var x=0; x<jsTempTabBoxElements.length; x++) {			
			// Ermitteln der Tabbox Navigation
			if(jsTempTabBoxElements[x].tagName == 'UL') {
				// Die Class der Tabbox hinzufügen
				jsTempTabBoxElements[x].className = 'clickTabNav';
				
				// Alle Navigationselemente ermitteln
				jsTempAllNavElements = jsTempTabBoxElements[x].getElementsByTagName('li');
				// Dem ersten li Element der Navigation die activeTab Class zuweissen
				jsTempAllNavElements[0].className = 'activeTab';
				
				// Der Navigation die Events hinzufügen
				for(var y=0; y<jsTempAllNavElements.length; y++) {
					addEvent(jsTempAllNavElements[y], 'click', function() { changeTab(this) });
					jsTempAllNavElements[y].getElementsByTagName('a')[0].href = 'javascript: void(0)';
										
					createTabTpl(jsTempAllNavElements[y], 'tabNavWrapper', 6);
				}

			// Ermitteln der Tabs (div-elemente)
			} else if (jsTempTabBoxElements[x].tagName == 'DIV') {
				jsTabArray[jsTabArray.length] = jsTempTabBoxElements[x];
			}
		}
		
		// Alle Tabs der jeweiligen Tabbox bearbeiten
		for(var x=0; x<jsTabArray.length; x++) {	
			// Erster Tab sichtbar machen
			var jsTempTabStatus = (x==0) ? "block" : "none";
			jsTabArray[x].style.display = jsTempTabStatus;
						
			jsTempTabObj = createTabTpl(jsTabArray[x], 'tabWrapper', 3, 'tab');			
		}
	}
}

function changeTab(jsElement) {
	// Aktives LI - Element ermitteln
	var jsActNav = jsElement;
	// Sämtliche LI - Elemente des aktiven Tabs ermitteln
	var jsTabNav = jsElement.parentNode.getElementsByTagName('li');
	// Sämtliche Objecte der activen Tabbox ermitteln
	var jsTabBox = jsElement.parentNode.parentNode.childNodes;
	
	// Variabel für aktuelle Tabposition
	var jsSelectedNav;
	
	// Aktiv-Classe dem angewählten LI-Elements zuweisen
	for(var i=0; i<jsTabNav.length;i++) {
		if(jsTabNav[i] == jsActNav) {
			jsTabNav[i].className = 'activeTab';
			jsSelectedNav = i;
		} else {
			jsTabNav[i].className = '';
		}
	}

	// Array für die Tab Objecte
	var jsTabArray = new Array();

	// Alle Tabs der aktiven Tabbox ermitteln und in Array speichern
	for(var i=0; i<jsTabBox.length;i++) {
		if(jsTabBox[i].tagName == 'DIV' || jsTabBox[i].className == 'clickTab') {
			jsTabArray[jsTabArray.length] = jsTabBox[i];
		}
	}
	
	// Aktiver Tav anzeigen, die anderen ausblenden
	for(var i=0; i<jsTabArray.length;i++) {
		if(i == jsSelectedNav) {
			jsTabArray[i].style.display = 'block';
		} else {
			jsTabArray[i].style.display = 'none';
		}
	}	
}

// Tab Template Erstellen
function createTabTpl(jsObject, jsClassPraefix, jsTplCount, jsType) {
	// Array für die Templates
	var jsTplArray = new Array();
	// InnerHTML des Objects zwischenspeichern
	var jsTempObjectContent = jsObject.innerHTML;
	
	// Div Templates generieren und Classe zuweisen
	for(var i=1; i<=jsTplCount;i++) {
		jsTplArray[i] = document.createElement('div');
		jsTplArray[i].className = jsClassPraefix + i;
	}
	
	// InnerHTML des Objects löschen
	jsObject.innerHTML = '';
	
	// Variabel um Object temporär abzuspeichern
	var jsTempTpl = jsObject;
	// Templates im LI Element verschachteln
	for(var i=1; i<jsTplArray.length;i++) {
		jsTempTpl.appendChild(jsTplArray[i]);
		jsTempTpl = jsTempTpl.childNodes.item(0);
	}
	
	// Wenn das Object ein tab ist -> Ein weiterer Div hinzufügen
	if(jsType == 'tab') {
		// Tab-Inner Div erzäugen (Für Tab Rand)
		var jsInnerClickTab = document.createElement('div');
		jsInnerClickTab.className = 'clickTab-inner';
		jsTempTpl.appendChild(jsInnerClickTab);
		jsTempTpl = jsTempTpl.childNodes.item(0);
	}
	
	// InnerHTML wieder einfügen
	jsTempTpl.innerHTML = jsTempObjectContent;
}

// dynamic Inputfield add
var zaehler = 0;
function ecDynamicInput(tabid,typ,start)
{
	if(typ == 1)
	{
		c=document.getElementById(tabid);
		d=document.createElement('div');
		zaehler++;
		d.id='def'+zaehler;
		c.appendChild(d);
		i=document.createElement('input');
			i.type='text';
			i.name=tabid+'[]';
		d.appendChild(i);
	}
	if(typ == 2)
	{
		if(zaehler+start>0)
		{
			c=document.getElementById(tabid);
			c.removeChild(document.getElementById('def'+zaehler));
			zaehler--;
		}
	}
}

//Dynamic Fileadd for Uploads
var filecount = 0;
function ecFileInput(bodyId)
{
	fx = document.getElementById(bodyId);
 
	tr  = document.createElement("tr");
	td   = document.createElement("td");

	inp  = document.createElement("input");
	inp.type = 'file';
	inp.name = 'file' + filecount;

	td.appendChild(inp);
	tr.appendChild(td);
	fx.appendChild(tr);

	filecount++;
}
