// JavaScript Document

function hilfemodus(screenWidth, screenHeight, status){
	this.Status = status;
	this.modus = 2; // 1 = Anzeige, 2 = Bearbeitung
	this.Id = 1;
	this.frameToAdd = null;
	this.lastMouseX = null;
	this.lastMouseY = null;
	
	var leftOffset = ((screenWidth-900)/2);
}

hilfemodus.prototype.SetStatus = function(status){
	this.Status = status;
}

hilfemodus.prototype.LadeDaten = function(file, frame){
	switch(frame){
		case "mainFrame": this.frameToAdd = top.indexFrame.mainFrame;
			break;
		case "index": this.frameToAdd = top;
			break;
		case "infos": this.frameToAdd = top.indexFrame.info;
			break;
		case "chat": this.frameToAdd = top.indexFrame.chat;
			break;
		case "menue": this.frameToAdd = top.indexFrame.menue;
			break;
	}
	
	if(this.modus == 2){
		this.InitBearbeitungsmodus(frame);
	}
	
	this.LastLoadedFile = file;
	this.LastLoadedFrame = frame;
	//axSendXML("/hilfemodus/sys/php/hilfemodus.php", "a=1&file=" + escape(file) + "&frame=" + frame, "_Hilfemodus.InitDaten");
}

hilfemodus.prototype.newEventHandler = function(element, event, func){
	if(document.attachEvent)
		element.attachEvent('on' + event, func);
	else
		element.addEventListener(event, func, true);
}

hilfemodus.prototype.BearbeitungsmodusClickElement = function(e){
	var element = null;
	if(document.attachEvent){
		element = window.event.srcElement;
		
		if(this.lastMouseX == window.event.clientX && this.lastMouseY == window.event.clientY)
			return;
		
		this.lastMouseX = window.event.clientX;
		this.lastMouseY = window.event.clientY;
	}else if(e){
		element = e.target;
		
		alert(this.lastMouseX + "," + e.clientX);
		
		if(this.lastMouseX == e.clientX && this.lastMouseY == e.clientY)
			return;
		
		this.lastMouseX = e.clientX;
		this.lastMouseY = e.clientY;
	}
	
	var top = 0;
	top += element.offsetTop;
	do{
		element = element.parentNode;
		top += element.offsetTop;
	}while(element.tagName != "BODY" && element.getAttribute("id") != "maindiv");
	alert(top);
}

hilfemodus.prototype.InitBearbeitungsmodus = function(frame){
	var elements = this.frameToAdd.document.getElementsByTagName("td");
	for(var i = 0; i < elements.length; i++){
		elements[i].onmouseover = function(){ this.style.border = "1px solid #FF0000"; }
		elements[i].onmouseout = function(){ this.style.borderWidth = "0px"; }
		this.newEventHandler(elements[i], "click", _Hilfemodus.BearbeitungsmodusClickElement);
	}
	
	elements = this.frameToAdd.document.getElementsByTagName("table");
	for(var i = 0; i < elements.length; i++){
		elements[i].onmouseover = function(){ this.style.border = "1px solid #FF0000"; }
		elements[i].onmouseout = function(){ this.style.borderWidth = "0px"; }
		this.newEventHandler(elements[i], "click", _Hilfemodus.BearbeitungsmodusClickElement);
	}
	
	elements = this.frameToAdd.document.getElementsByTagName("div");
	for(var i = 0; i < elements.length; i++){
		elements[i].onmouseover = function(){ this.style.border = "1px solid #FF0000"; }
		elements[i].onmouseout = function(){ this.style.borderWidth = "0px"; }
		this.newEventHandler(elements[i], "click", _Hilfemodus.BearbeitungsmodusClickElement);
	}
	
	elements = this.frameToAdd.document.getElementsByTagName("a");
	for(var i = 0; i < elements.length; i++){
		elements[i].onmouseover = function(){ this.style.border = "1px solid #FF0000"; }
		elements[i].onmouseout = function(){ this.style.borderWidth = "0px"; }
		this.newEventHandler(elements[i], "click", _Hilfemodus.BearbeitungsmodusClickElement);
	}
}

function getTop(clickElement){
	var element = _HMElement;
	if(element != clickElement)
		return;
	alert(element.tagName + "," + element.getAttribute("id"));
	var top = 0;
	do{
		top += element.offsetTop;
		element = element.parentNode;
		alert(element.tagName + "," + element.getAttribute("id"));
	}while(element.tagName != "BODY" && element.getAttribute("id")!="maindiv");
	alert(top);
}

hilfemodus.prototype.InitDaten = function(xmlDaten){
	var container = xmlDaten.getElementsByTagName("container");
	if(container.length == 0)
		return;
	
	var bodyToAdd = null;
	var frameToAdd = null;
	switch(this.LastLoadedFrame){
		case "mainFrame": bodyToAdd = top.indexFrame.mainFrame.document.getElementsByTagName("body")[0];
						  frameToAdd = top.indexFrame.mainFrame;
			break;
		case "index": bodyToAdd = top.document.getElementsByTagName("body")[0];
					  frameToAdd = top;
			break;
		case "infos": bodyToAdd = top.indexFrame.info.document.getElementsByTagName("body")[0];
					  frameToAdd = top.indexFrame.info;
			break;
		case "chat": bodyToAdd = top.indexFrame.chat.document.getElementsByTagName("body")[0];
					 frameToAdd = top.indexFrame.chat;
			break;
		case "menue": bodyToAdd = top.indexFrame.menue.document.getElementsByTagName("body")[0];
					  frameToAdd = top.indexFrame.menue;
			break;
	}
	
	if(bodyToAdd == null){
		alert("Unbekannter Fehler!");
		return;
	}
	
	for(var i = 0; i < container.length; i++){
		var cont = container[i];
		var helpContent = cont.firstChild.nodeValue;
		var div = newDiv("helpContainer" + this.Id, "position:absolute; background-color:#FFFFFF; left:" + cont.getAttribute("left") + "px; top:" + cont.getAttribute("top") + "px; width:" + cont.getAttribute("width") + "px; height:" + cont.getAttribute("height") + "px;");
		var divHover = newDiv("helpContainerHoverDiv" + this.Id, "position:absolute; border:1px solid #000000; left:" + cont.getAttribute("left") + "px; top:" + cont.getAttribute("top") + "px; width:" + cont.getAttribute("width") + "px; height:" + cont.getAttribute("height") + "px;");
		divHover.innerHTML = "test";
		div.onmouseover = function(){ this.style.opacity = "1"; }
		
		div.innerHTML = helpContent;
		
		var divToAdd = cont.getAttribute("div");
		if(divToAdd != ""){
			divToAdd = frameToAdd.document.getElementById(divToAdd);
			divToAdd.appendChild(divHover);
		}else
			bodyToAdd.appendChild(divHover);
			
		this.Id++;
	}
}
