function Main() {
	this.outBoxTextField
	this.defaultTitle = 'Debug Box'
	this.out = function(text) {
		if( !this.outBoxTextField ) {
			this.initDebugBox(this.defaultTitle)
		}
		this.outBoxTextField.appendChild(document.createTextNode(text))
		this.outBoxTextField.appendChild(document.createElement('br'))
	}
	/**	HTML Div als Debug Box nutzen */
	this.initDebugBox = function(boxTitle) {
		var body = document.getElementsByTagName('body')
		
		var outBox = document.createElement('div');
		outBox.setAttribute('id', 'debug-box')
		var title = document.createElement('strong');
		title.appendChild(document.createTextNode(boxTitle))
		this.outBoxTextField  = document.createElement('p');
		outBox.appendChild(title)
		outBox.appendChild(this.outBoxTextField)
		body.appendChild(outBox);
	}
	/**	HTML Element von a nach b bewegen */
	this.move = function(boxId, pos, speed, counter) {
		var self = this
		counter =(!counter) ? 0 : counter
		counter++
		var speed = (!speed) ? 90 : speed
	//	setTimeout("move('undesired-browser-box')",10);
		var box = document.getElementById(boxId);
		if(!box) {
			return
		}
		pos['startY'] = (!pos['startY']) ? box.style.top : pos['startY']
		if( pos['y'] && counter < speed) {
			var cy = (box.style.top=='') ? 0 : box.style.top
			cy = cy.toString().replace(/(px|pt|em|xm)/, '');
			if( isNaN(cy) ) {
				//	Damit keine Fehler erzeugt werden 
				return
			}
			//var ny = Elastic.easeOut(counter, cy, pos['y'], speed)
			var ny = RPEasing(counter, cy, pos['y'], speed, 'Quart.easeOut')
			this.out(pos['startY'])
			if( isNaN(ny) ) {
				//	Damit keine Fehler erzeugt werden 
				return 
			}
			

			box.style.top = Number(ny) + pos['startY']
			setTimeout(function(foo){
				self.move(boxId, pos, speed, counter)
			}, 4);
		} else {
			
		}
	}
	
	this.parseAllElements = function(method, parentElement){
		var ele;
		if(!parentElement) {
		    ele = document.getElementsByTagName('*');
		} else {
			ele = parentElement.getElementsByTagName('*');
		}
		if(!ele || ele.length == 0) {
			return false
		}
		var i = -1
		while( ++i < ele.length ) {
			method(ele[i])
		}
	}
	this.getElementsByClassName = function(searchClassName, parentElement){
		var founded = [];
		this.parseAllElements(function(p){
			if(p.className == searchClassName) {
				founded.push(p);
			}
		}, parentElement)
		return founded
	}
}
var m = new Main()
	
function initStats(site, statPath) {
	statPath = (!statPath) ? 'stats/pixel.php' : statPath
	var f='' + unescape(document.referrer);
	var w=screen.width;   
	var h=screen.height;
	var v=navigator.appName;   
	if (v != 'Netscape') {var c=screen.colorDepth;}
	else {var c=screen.pixelDepth;}      
	statPath = statPath + "?site=" + site +"&jsres=" + w + "x" + h +"&jscolor=" + c + "&jsref=" + f;
	/**	HTML Container erzeugen */
	var divStat = document.createElement("div");
	divStat.setAttribute('id', 'stat-counter');
	var img = document.createElement("img");
	img.setAttribute('src', statPath);
	img.setAttribute('width', 1);
	img.setAttribute('height', 1);
	divStat.appendChild(img)
	/**	*/
	document.getElementsByTagName('body')[0].appendChild(divStat);
}

function init() {
	initAdminSubmenus()
}
/***/
function initAdminSubmenus() {
	var ele = m.getElementsByClassName("admin-menu");
	for(var x=0; x < ele.length; x++ ) {
		var adminMenu = ele[x]
		var sub = m.getElementsByClassName("submenu", adminMenu);
		if(sub!="") {
			sub[0].style.display = "none";
			
			var link = sub[0].parentNode.getElementsByTagName("a")
			
			
			var submenu = {menu:sub[0]}
			submenu.closed = true
			submenu.hide = function() {
				this.menu.style.display = "none";
			}
			submenu.show = function() {
				var self = this
				this.menu.style.display = "block";
				this.menu.onmouseover = function() {
					self.closed = false
					this.onmouseout = function() {
						self.closed = true
					}
				}
			}
			if( link = link[0] ) {
				link.submenu = submenu
				link.onmouseover = function() {
					clearInterval(this.iv)
					this.submenu.show()
				}
				link.onmouseout = function() {
					var self = this
					this.iv = setInterval(function(){
						if(self.submenu.closed==true) {
							clearInterval(self.iv)
							self.submenu.hide()
						}
					}, 400)
				}
			}
			
		}
	}
}

function removeNext(node){
	var parent = node.parentNode
	var next = node
	var rem = []
	var i = 0
	while( next = next.nextSibling ) {
		rem[i] = next
		i++
	}
	for(var x = 0; x < rem.length; x++ ) {
		parent.removeChild(rem[x])
	}
}
function getNodeValue(node){
	var val
	var txt = ''
	if( !node.nodeValue ) {
		var child = node
		while( child = child.firstChild ) {
			if( child.nodeValue ) {
				txt += child.nodeValue
				var next = child
				while( next = next.nextSibling ) {
					txt += getNodeValue(next)		
				}
			}
		}
	} else {
		txt = node.nodeValue
	}
	return txt
}
var sxtestContainer
function initSXTest(){
	sxtestContainer = document.getElementById('sxTemplateTest')
	
	var head = document.createElement('div')
	head.setAttribute('class', 'head');
	
	var lnk = document.createElement('a')
	var txt = document.createTextNode('Vorschau Schliessen')
	lnk.appendChild(txt)
	lnk.setAttribute('href', '#');
	lnk.onmousedown = function() {
		sxtestContainer.style.display = 'none';
	}	
	head.appendChild(lnk)
	var lnk = document.createElement('a')
	var txt = document.createTextNode('Erneut Laden')
	lnk.appendChild(txt)
	lnk.setAttribute('href', '#');
	lnk.onmousedown = function() {
		reloadTemplate()
	}
	head.appendChild(lnk)

	sxtestContainer.insertBefore(head, sxtestContainer.firstChild)
}
/***/
function showCalendar(container) {
	var dateInput = container.getElementsByTagName('input');
	if(dateInput[0]) {
		dateInput = dateInput[0]
	}
	var c = new SXCalendar();
	c.setContainer(container)
	c.onSelect(function(){
		var d = c.getDate().d
		var y = c.getDate().y
		var m = c.getDate().m
		if(dateInput) {
			if( d < 10 ) {
				d = '0'+d
			}
			if( m < 10 ) {
				m = '0'+m
			}
			dateInput.value = y+"-"+m+"-"+d
		}
	})
	c.today();
	var cd = dateInput.value.split('-')
	var selectedDate
	if( Number(cd[0]) > 0 ) {
		selectedDate = {} 
		selectedDate.y = Number(cd[0])
		selectedDate.m = Number(cd[1])
		selectedDate.d = Number(cd[2])
	}
	c.show(selectedDate);
}
function showSXTest(swfPath, iframePath) {
	var f = sxtestContainer.getElementsByTagName('embed')[0]
	f.setAttribute('src', swfPath)
	
	var f = sxtestContainer.getElementsByTagName('iframe')[0]
	f.setAttribute('src', iframePath)
	
	sxtestContainer.style.display = 'block';
	
}
