﻿
// XMSL extramediumsmallarge

// http://www.xmsl.de/
// All scripts (c)2007 by XMSL extramediumsmallarge


// INPUT! - hier Pixel-Werte eintragen



/* --------------------------------- Horizontale Scroll Funktion --------------------------------- */

// für sichtbares horizontales Scrollen mit Navi-Buttons

var xpos = 0; /* gibt die aktuelle X-Position des Fensters an */
var tpos = 0; /* erhält den X-Wertfür die Zielposition */
var dx = 30; /* INPUT - Scroll: Pixelschritte */
var sx = 30; /* INPUT - schnell scrollen bis auf sx Pixel vor Zielposition, dann langsam scrollen - muss grösser oder gleich als dx sein */
var dt = 0; /* INPUT - Scroll: Zeitintervall in ms */

var a = 895; /* INPUT - Pixelbreite des 1. Content-Bereiches am Seitenanfang*/
var b = 480; /* INPUT - Pixelbreite der folgenden Contentbereiche */
var p1 = a; /* p... sind die Content-Positionen */
var p2 = a + b;
var p3 = a + (2*b);
var p4 = a + (3*b);
var p5 = a + (4*b);
var p6 = a + (5*b);
var p7 = a + (6*b);
var p8 = a + (7*b);
var p9 = a + (8*b);
var p10 = a + (9*b);
var p11 = a + (10*b);
var p12 = a + (11*b);


function getxpos() { // ermittelt die aktuelle horizontale Scrollposition
	if (self.pageXOffset) // all except Explorer
	{
		xpos = self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollLeft) // Explorer 6 Strict
	{
		xpos = document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		xpos = document.body.scrollLeft;
	}
};


function right() { /* scrollt schnell nach rechts bis auf dx+10 Pixel an die Zielposition tpos heran */
	window.scrollBy(dx,0);
	xpos = xpos + dx;
	if ((tpos - xpos) > sx) setTimeout("right()", dt);
};


function rightslow() { /* scrollt langsam nach rechts auf die exakte Zielposition tpos */
	window.scrollBy(1,0);
	xpos = xpos + 1;
	if (tpos > xpos) setTimeout("rightslow()", dt);
};


function left() { /* dito nach links */
	window.scrollBy(-dx,0);
	xpos = xpos - dx;
	if ((xpos - tpos) > sx) setTimeout("left()", dt);
};


function leftslow() { /* dito nach links */
	window.scrollBy(-1,0);
	xpos = xpos - 1;
	if (tpos < xpos) setTimeout("leftslow()", dt);
};


function gotopos(x) { /* scrollt horizontal an die gewünschte Zielposition x */
	getxpos();
  	tpos = x;
  	if (tpos > xpos) {
  		right();
  		if (tpos > xpos) rightslow();
  	} else {
  		left();
  		if (tpos < xpos) leftslow();
  	};
  	
};


function alt_gotopos(x) { /* springt und scrollt langsam an die gewünschte Zielposition x */
	getxpos();
  	tpos = x;
  	if (tpos > xpos) {
  		xpos = tpos - 20;
  		window.scrollTo(xpos,0);
  		rightslow();
  	} else {
  		xpos = tpos + 20;
  		window.scrollTo(xpos,0);
  		leftslow();
  	};
  	
};


function jumphome() { /* Fenster springt zurück auf 10,0 und scrollt langsam auf 0,0 */
	tpos = 0;
	xpos = 10;
	window.scrollTo(xpos,0);
	leftslow();
};




/* -------------------------------- autom. Scrollen per Mouseover ------------------------------- */

// für sichtbares horizontales Scrollen per Mouseover über einem Bild mit id="bild", das in einer Floatingbox id="bildbox" sitzt
// die Funktionen GetContentSize(imagepos,imagesize) und ScrollEvent_init() müssen in dieser Reihenfolge im Onload der jew. Seite stehen

var winXsize; // Variable für die Fensterbreite
var mausXpos; // Variable für die hor. Mausposition
var allowGoto00 = true; // Variable für die Unterbrechung des Zurückscrollens auf 0,0


function ScrollEvent_init () 
{
	if (document.addEventListener) 
	{
    document.getElementById("bild").addEventListener("mousemove", myScroll, true);
    document.getElementById("bild").addEventListener("mousemove", goto00_OFF, true);
    document.getElementById("bild").addEventListener("mouseout", goto00_ON, true);
    document.getElementById("bild").addEventListener("mouseout", goto00, true);
    //alert("addEventListener");
    } 
    else 
    {
    if (NS4) 
    	{
      	document.captureEvents(Event.MOUSEMOVE);
      	document.onmousemove = myScroll;
      	document.captureEvents(Event.MOUSEOUT);
      	document.onmouseout = goto00;
      	//alert("captureEvents");
    	} 
    	else 
    	{
      	document.getElementById("bild").onmousemove = myScroll;
      	// document.getElementById("bild").onmouseout = goto00_ON;
      	document.getElementById("bild").onmouseout = gohome;
      	//alert("document.body. ...");
    	}
  	}
}

var last = (new Date()).getTime();

function myScroll (ev) 
{
	if (!ev) 
		ev = window.event;
    var now = (new Date()).getTime();
    var conXsize = imagepos + imagesize; // (INPUT) die Werte imagepos und imagesize müssen auf der jew. Seite definiert werden
    if ((ev.clientX || ev.pageX) && now > (last + 40)) 
    	{
    	// Bestimmung der Fensterbreite: -----------------------------------
		if (self.innerHeight) // all except Explorer
			winXsize = self.innerWidth;
			else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
				winXsize = document.documentElement.clientWidth;
			else if (document.body) // other Explorers
				winXsize = document.body.clientWidth;// --------------------
  		mausXpos = ev.pageX ? (winXsize * ev.pageX / conXsize) : ev.clientX; // Bestimmung der hor. Mausposition relativ zu WINDOW
    	var xmove = ((conXsize / winXsize) - 1) * mausXpos; // Bestimmung der Scrollstrecke im Verhältnis
        window.scrollTo(xmove,0);
        last = now;
  		}
  	goto00_OFF;
}  	

function goto00_ON ()
{
	allowGoto00 = true;
	goto00();
}

function goto00_OFF ()
{
	allowGoto00 = false;
}

function goto00 (ev)
{	
	ev = window.event;
	var x = 0;
  	if (window.pageXOffset)
  	{
    	x = window.pageXOffset;
  	} 
  		else if (document.body && document.body.scrollLeft)
  		{
    		x = document.body.scrollLeft;
  		};
 	if ((x > 0) && allowGoto00)
  	{
    window.scrollBy(-40,0);
    setTimeout("goto00()", 10);
  	}
}


function gohome () {
	gotopos(0);
}



/* -------------------------------- Navigationsanzeige ------------------------------- */

// zur visuellen Steuerung des Navigationsframes
// die Funktion shownavi(x) muss mit x=Bereichskennung im Onload der jew. Seite stehen

var navipic = new Array(); // Array mit allen Navigations-Visuals des Navi-Frames:
navipic[0] = "media/navi-00.gif"; // INPUT - home
navipic[1] = "media/navi-01.gif"; // INPUT - geschäftsräume
navipic[2] = "media/navi-02.gif"; // INPUT - privat
navipic[3] = "media/navi-03.gif"; // INPUT - pret-a-monter
navipic[4] = "media/navi-04.gif"; // INPUT - lumineur
navipic[5] = "media/navi-05.gif"; // INPUT - kontakt

function shownavi(x) {
	parent.navigation.document.images.navivisual.src = navipic[x];
};

