//Mouse Support

function MouseSupport(){
	
	//Speichert die aktuelle Mausposition:
	var mouse_X = 0;
	var mouse_Y = 0;
	
	// Array von Objekten welche benachrichtigt werden
	// wenn sich die Mausposition ändert
	var updateFunctions = null;
	// Anzahl der zu benachrichtigenden Objekte
	var updateFunctionsCount = 0;
	
	// bestimmt anhand des Events die aktuelle Mausposition
	this.updateMousePosition = function(e) {
		mouse_X = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
		mouse_Y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
		if(updateFunctions!=null){
			for (var i = 0; i < updateFunctionsCount; i++){
				updateFunctions[i].updateMousePosition(mouse_X,mouse_Y);
			}
		}
	}
	
	// registriert ein zu benachrichtigendes Objekt
	this.registerUpdate = function(obj){
		if(obj!=null){
			if(updateFunctions==null){
				updateFunctions = new Array(); 
				updateFunctionsCount = 0;
			}
			updateFunctions.push(obj);
			updateFunctionsCount++;
		}		
	}
	
	// liefert die letzte x Position
	this.getX = function(){
		return mouse_X;
	}
	
	// liefert die letzte y Position
	this.getY = function(){
		return mouse_Y;
	}

}

// Erzeugen einer Instanz des Mousesupports
var mouseSupport = new MouseSupport();
// Ereignisse von Mausbewegungen werden an den MouseSpport weitergereicht
document.onmousemove = mouseSupport.updateMousePosition;




