/*

2002.06.10, Sascha

Beschreibung: Das Objekt MausPos() bietet die Möglichkeit die
              Mausposition Browserunabhängig zu bestimmen.
              Das Objekt hat nur statische Eigenschaften und eine statische Methode!
              
Abhängigkeiten: Das Objekt MausPos() benötigt das Objekt Browser() (Datei: browser.obj.js).
                Damit ein MausPos-Objekt angelegt werden kann, muß die Datei browser.obj.js
                im HTML-Quelltext eingebunden sein, innerhalb des <HEAD> -Tags, 
                und noch vor dem <SCRIPT> -Tag:
                
                <SCRIPT src="browser.obj.js" language="JavaScript"></SCRIPT>
                <SCRIPT src="mauspos.obj.js" language="JavaScript"></SCRIPT>
               
                <!-- Jetzt kommt der Javascript-Code: -->
                
                <SCRIPT language="JavaScript">
                <!--
                
                // Da das Objekt MausPos() nur statische Elemente besitzt, muss es 
                // angelegt werden, kann aber direkt wieder verworfen werden,
                // d.h., wir müssen keine Objektreferenz in eine Variable aufnehmen.
                new MausPos();
                
                // Alternativ kann man das Objekt mit einem Parameter aufrufen:
                new MausPos("mausPosition");
                
                // "mausPosition" ist dann eine Funtion, die bei jeder Änderung der Mausposition aufgerufen
                // wird, und der zwei Parameter übergeben werden, die x- und y-Position: mausPostion(x, y);
                
                // Jetzt kann die Mausposition Browserunabhängig gelesen werden
                MausPos.xPos; // statische Eigenschaft; enthält die aktuelle Mausposition auf der X-Achse
                MausPos.yPos; // statische Eigenschaft; enthält die aktuelle Mausposition auf der Y-Achse
		                
                ... weitere Javascript-Code ...
                
                
                //-->
                </SCRIPT>
              
Konstruktor: MausPos([funktion])  Das Objekt muß nur mit new angelegt werden, ohne es in einer Variablen
                                  zu referenzieren.
                                  Der optionale Parameter ist der Name einer Funktion, die bei jedem Ändern der
                                  Mausposition aufgerufen werden kann. Dieser Funktion werden automatisch die Parameter
                                  x und y übergeben, die die aktuelle Mausposition angeben. Beispiel:
                                  
                                  // Anlegen eines MausPos-Objektes.
                                  new MausPos("mouseMove");
                                  
                                  // fortan muss es eine Funktion mouseMove(xPos, yPos) geben (oder andere Bezeichnungen für 
                                  // die beiden Parameter), die bei jeder Änderung der Mausposition augerufen wird.
                               
                                  new MausPos(); // hier wird keine Funktion erwartet.
                               
Eigenschaften:                 Achtung: Alle Eigenschaften sind statisch!

                               int       - MausPos.xPos        Werte: aktuelle Maus-X-Position (lesen)
                               
                               int       - MausPos.yPos        Werte: aktuelle Maus-Y-Position (lesen)

Methoden:    keine
*/

// Bestimme Mausposition
function MoveHandler(e) {

	if( MausPos.browser.ie && !MausPos.browser.ie5 ) { MausPos.xPos = event.x; MausPos.yPos = event.y; } 
	else if(MausPos.browser.ie5) { MausPos.xPos = event.x + document.body.scrollLeft; MausPos.yPos = event.y + document.body.scrollTop; }
	else if(MausPos.browser.ns) { MausPos.xPos = e.pageX; MausPos.yPos = e.pageY; }
	else if(MausPos.browser.op) { MausPos.xPos = e.clientX; MausPos.yPos = e.clientY; }

	// Die Funktion soll bei jeder Änderung der Mausposition aufgerufen werden,
	// ihr werden die beiden Parameter für die x- und y-Position übergeben.
	if(MausPos.funktion) {

		eval(MausPos.funktion + '(MausPos.xPos,MausPos.yPos);');
	}
}

MausPos.xPos = 0;
MausPos.yPos = 0;
MausPos.moveHandler = MoveHandler;
MausPos.browser = new Browser();

// Bestimmt die aktuelle Position der Maus
function MausPos() {
	
	MausPos.funktion = MausPos.arguments[0];
	
	// Mausbewegungsaufzeichnung aktivieren
	if (MausPos.browser.ns4) {

		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = MausPos.moveHandler;
	}
	else if(MausPos.browser.ns6 || MausPos.browser.ns7) {

		document.addEventListener("mousemove", MausPos.moveHandler, true);
	}
	else if(MausPos.browser.ie) {
	
		document.onmousemove = MausPos.moveHandler;
	}
	else if(MausPos.browser.op) {
		
		document.onmousemove = MausPos.moveHandler;
	}
}
