﻿//***************************************************************************
// move array berechnen und uebergeben
//***************************************************************************

function makeMove_arr(x) {
	// variablen initialisieren
	target_xpos = x; 		// ziel x-koordinate
	real_xpos = 0; 			// pruefzahl ergebnis
	sum_moves = 0;  		// addiert moves zur maximal moeglichen gesamtstrecke
	corr_sum = 0; 			// ermittlet restwert von add_moves zu target_xpos
	steps = 0 				// anzahl schritte der halben strecke

//***************************************************************************
	// beschleunigungszahlen erstbelegung
	for(i=0; i + sum_moves < Math.floor(target_xpos); i++) {
		sum_moves += i;
		move_arr[i] = i;
	}
	steps = move_arr.length;
	corr_sum = target_xpos - sum_moves;

// kontrollausgabe
	/*
	move_str = move_arr.join(",");
	document.write("move_arr: "+move_str+"<br><br>");
	document.write("steps: "+steps*2+"<br>");
	document.write("sum_moves: "+sum_moves*2+"<br>");
	document.write("corr_sum: "+corr_sum+"<br>");
	document.write("target_xpos: "+target_xpos+"<br><br>");
	*/

//***************************************************************************
	// beschleunigungsdaten korrektur, verteilt corr_sum von hinten mit je einem pixel pro step
	for(i=0; i< steps; i++) {
		if(i >= steps-corr_sum) move_arr[i] += 1;
		real_xpos += move_arr[i];
	}

	move_arr = move_arr.reverse();

	// kontrollausgabe
	/*
	real_xpos =0;
	for(i=0; i < move_arr.length; i++) {
		real_xpos += move_arr[i];
	}
	document.write("move_arr: "+move_arr+"<br><br>");
	document.write("real_xpos: "+real_xpos+"<br><br>");
	*/
	
	//alert("move_arr: "+move_arr+" sum = "+sum_moves+" corr= "+corr_sum);
	
	
	i=0; 				// zaehlvariable wieder auf null stellen fuer neuen aufruf unter slideLeft
	return move_arr; 	// move_arr an slideLeft uebergeben
	
}


//***************************************************************************
//browseridentifizierung
//***************************************************************************

ie = (document.all) ? 1 : 0;
w3c = (!document.all && document.getElementById) ? 1 : 0;

//***************************************************************************

// stellvariablen 
startpos = 0; // sliderposition
pos = startpos; // aktuelle sliderposition
speed = 20; // bewegungsrhytmus in millisekunden
x_move = 0; // slide-strecke
move_arr = new Array(); // array haelt schritte fest
move_dir = 1;
target_xpos = 0;
click_x = 0;
lock = 0; // sperre fuer rolloverscript waehrend des scrollens

//***************************************************************************

// vorbereitung
function prepareBox() {
	if (ie) pBox = presenter.style;
	if (w3c) pBox = document.getElementById('presenter').style;
	pBox.left = startpos+"px";
}

prepareBox();

//***************************************************************************
//scrollfunktion
//***************************************************************************

function slide(x) {
	if(move_arr.length == 0) {
		if(startpos > click_x) {
			move_dir = -1;  		// nach links bewegen
		} else {
			move_dir = 1; 			// nach rechts bewegen
		}
		//alert (x);
		target_xpos = Math.abs(startpos - x); 	// distanz fuer arrayberechnung
		move_arr= makeMove_arr(target_xpos); 	// move_arr berechnen
		lock = 1;
	}
		
	if (i < move_arr.length) {
		x_move += move_arr[i];
		if(move_dir == 1) pos = startpos + x_move;
		else pos = startpos - x_move;
		pBox.left = pos+"px";
		i++;
		slide_action = window.setTimeout("slide(target_xpos)", speed);
	} else {
		startpos = pos;
		x_move = 0;
		move_arr = new Array(); // move_arr fuer naechsten durchgang clearen
		//alert(pos);
		window.clearTimeout(slide_action);
		lock = 0; // sperre fuer rolloverscript wieder freigeben
	}
}

//***************************************************************************
// bilder vorausladen
//***************************************************************************

// img_arr wird mit php in snippet erstellt und befuellt

function preloadImg() {
    document.preload = new Array();
    if(document.images) {
        for(var i = 0; i < img_arr.length; i++){
            document.preload[i] = new Image();
            document.preload[i].src = "images/"+snippet+"/"+img_arr[i];
        }
    }
}

preloadImg();

//***************************************************************************
// inhaltschange funktion
//***************************************************************************

// BROWSERERKENNUNG
var thisBrowser;
var appAgent;
var appVersion;

function checkBrowser() {
	appAgent = navigator.userAgent.toLowerCase();
	appVersion = navigator.appVersion.substr(0,1);
	//alert (appAgent);
	//ACHTUNG: REIHENFOLGE DER AUFLISTUNG DER BROWSER IST SO ZWINGEND! (Opera und Netscape m¸ssen am ende stehen)
	if (appAgent.indexOf("msie") != -1 && appVersion < 4) thisBrowser =  "ie3-";
	if (appAgent.indexOf("msie") != -1 && appVersion >= 4) thisBrowser = "ie4+";
	if (appAgent.indexOf("mozilla") != -1 && appVersion >= 4 && appAgent.indexOf("msie") == -1 ) thisBrowser = "moz4+";
	if (appAgent.indexOf("netscape") != -1 && appVersion >= 5) thisBrowser = "ns5+";
	if (appAgent.indexOf("opera") != -1 && appVersion >= 9) thisBrowser = "op9+";
	//alert(thisBrowser);
}
checkBrowser();


var act_opz = 100;
var fade_action = "out";
var card_content_box = document.getElementById('card_content').style;

function show_card(headline,copy,snippet,bild,unternehmensbereich,telefon,email) {
	f_headline = headline;
	f_copy = copy;
	f_snippet = snippet;
	f_bild = bild;
	f_unternehmensbereich = unternehmensbereich;
	f_telefon = telefon;
	f_email = email;
	
	// box ausblenden
	if (fade_action == "out") {
		if (act_opz > 0 + 5) {
			act_opz -= 5;
			//alert (act_opz);
			if (thisBrowser == "ie3-") {
				card_content_box.filters.alpha.opacity = act_opz;
			} else if (thisBrowser == "ie4+") {
				card_content_box.filter='alpha(opacity="'+act_opz+'")';
			} else if (thisBrowser == "ns5+") {
				card_content_box.MozOpacity = act_opz / 100;
			} else if (thisBrowser == "moz4+" || thisBrowser == "op9+") {
				card_content_box.opacity = act_opz / 100;
			} else {
				card_content_box.opacity = act_opz / 100;
			}
			card_content_box.opacity = act_opz / 100;
			fade = window.setTimeout("show_card(f_headline,f_copy,f_snippet,f_bild,f_unternehmensbereich,f_telefon,f_email)",20);
		} else {
			fade_action = "change";
		}
	}
	
	// inhalte austauschen
	if (fade_action == "change") {
		document.getElementById('headline').innerHTML = '<span style="text-transform: uppercase; color:#e84d0e; ">[ '+headline+' ]</span><br />';
		document.getElementById('copy').innerHTML = copy;
		document.getElementById('bild').src = "images/"+snippet+"/"+bild;
		document.getElementById('unternehmensbereich').innerHTML = "<b>Unternehmensbereich</b><br />"+unternehmensbereich;
		document.getElementById('telefon').innerHTML = "<b>Telefon</b><br />"+telefon;
		document.getElementById('email').innerHTML = "<b>Email</b><br />"+email;
		fade_action = "in";
	}
	
	// box einblenden
	if (fade_action == "in") {
		if (act_opz < 100 - 5) {
			act_opz += 5;
			if (thisBrowser == "ie3-") {
				card_content_box.filters.alpha.opacity = act_opz;
			} else if (thisBrowser == "ie4+") {
				card_content_box.filter='alpha(opacity="'+act_opz+'")';
			} else if (thisBrowser == "ns5+") {
				card_content_box.MozOpacity = act_opz / 100;
			} else if (thisBrowser == "moz4+" || thisBrowser == "op9+") {
				card_content_box.opacity = act_opz / 100;
			} else {
				card_content_box.opacity = act_opz / 100;
			}
			fade = window.setTimeout("show_card()",20);
		} else {
			act_opz = 100;
			fade_action = "out";
			window.clearTimeout(fade);
		}
	}
}

//***************************************************************************
// produktzoom
//***************************************************************************

function showProduct () {
	document.getElementById('zoombox').style.visibility = "visible";
}
function closeProduct () {
	document.getElementById('zoombox').style.visibility = "hidden";
}

//***************************************************************************
//ende
//***************************************************************************


