// Cookie Ablaufdatum vorbereiten
var cookie_ablauf = new Date();
var cookie_ablauf_datum = cookie_ablauf.getTime() + (365 * 24 * 60 * 60 * 1000);
cookie_ablauf.setTime(cookie_ablauf_datum);
cookie_ablauf = cookie_ablauf.toGMTString();

// Cookie Wert auslesen
function cookie_wert_auslesen (cookie_zeichen_position) {
	var cookie_ende = document.cookie.indexOf (";", cookie_zeichen_position); 
	if (cookie_ende == -1){
		cookie_ende = document.cookie.length;
	}
	return unescape(document.cookie.substring(cookie_zeichen_position, cookie_ende));
}

// Cookie auslesen
function cookie_lesen (cookie_name) { 
	var cookie_arg = cookie_name + "="; 
	var cookie_alen = cookie_arg.length; 
	var cookie_clen = document.cookie.length; 
	var cookie_i = 0; 
	while (cookie_i < cookie_clen) { 
		var cookie_j = cookie_i + cookie_alen; 
		if (document.cookie.substring(cookie_i, cookie_j) == cookie_arg){
			return cookie_wert_auslesen (cookie_j);
		}
		cookie_i = document.cookie.indexOf(" ", cookie_i) + 1;
		if (cookie_i == 0) break; 
	} 
	return null;
}

// Schieberegler
var x_klickposition_schieberegler;
var y_klickposition_schieberegler;
var schieberegler_start_pos = 0;
var schieberegler_ende_pos = 0;
var schieberegler_ids = new Array("schieberegler1","schieberegler2","schieberegler3");
var schieberegler_hexlautstaerken = new Array("00","00","00");
var schieberegler_dezlautstaerken = new Array(0,0,0);
var schieberegler_positionen = new Array(0,0,0);
var schieberegler_element;
var aktuelle_position = 0;
var schieberegler_grauwert;

// Initial
function schieberegler_start() {
	// Messen der Breite eines Schiebereglers
	schiebereglerbreite = document.getElementById(schieberegler_ids[0]).offsetWidth;
	schiebereglerhoehe =  document.getElementById(schieberegler_ids[0]).offsetHeight;

	// Elementhoehe und Elementbreite messen
	schiebereglerdiv = document.getElementById("schiebereglerbereich");
	schiebereglerdiv_b = 0;
	schiebereglerdiv_h = 0;
	schiebereglerdiv_b = schiebereglerdiv.offsetWidth;
	schiebereglerdiv_h = schiebereglerdiv.offsetHeight;

	// Distanz zum Browserrand messen (Alle Elternobjekte beruecksichtigen)
	var eltern_schiebereglerdiv = schiebereglerdiv.offsetParent;
	schiebereglerdiv_x = 0;
	schiebereglerdiv_y = 0;
	schiebereglerdiv_x = schiebereglerdiv.offsetLeft;
	schiebereglerdiv_y = schiebereglerdiv.offsetTop;
	while(eltern_schiebereglerdiv){
		schiebereglerdiv_x = schiebereglerdiv_x + eltern_schiebereglerdiv.offsetLeft;
		schiebereglerdiv_y = schiebereglerdiv_y + eltern_schiebereglerdiv.offsetTop;
		eltern_schiebereglerdiv = eltern_schiebereglerdiv.offsetParent;
	}

	// Festlegung und Korrektur der Distanzen
	schieberegler_start_pos = schiebereglerdiv_y;
	schieberegler_ende_pos = schiebereglerdiv_y + schiebereglerdiv_h - schiebereglerhoehe;

	// Schieberegler positionieren
	for (var schieberegler_ele in schieberegler_ids) {
		document.getElementById(schieberegler_ids[schieberegler_ele]).style.left = schiebereglerdiv_x + schieberegler_ele * 75;
		document.getElementById(schieberegler_ids[schieberegler_ele]).style.top = schiebereglerdiv_y + schiebereglerdiv_h - schiebereglerhoehe;
	}

	// Eventhandler setzen für alle Schieberegler
	for (var schieberegler_ele in schieberegler_ids) {
		if (document.all) {
			document.all[schieberegler_ids[schieberegler_ele]].onmousedown = schieberegler_druecken;
		} else if (document.getElementById) {
			document.getElementById(schieberegler_ids[schieberegler_ele]).onmousedown = schieberegler_druecken;
		}
	}

	// Lautstaerke zuteilen
	tmp = cookie_lesen('schieberegler_lautstaerke');
	if(tmp != null){
		schieberegler_lautstaerke = tmp;
	}

	// Schiebe die Schieberegler in die entsprechende Position
	// Teile die Lautstaerke zu
	schieberegler_hexlautstaerken[0] = schieberegler_lautstaerke.substring(0, 2);
	schieberegler_hexlautstaerken[1] = schieberegler_lautstaerke.substring(2, 4);
	schieberegler_hexlautstaerken[2] = schieberegler_lautstaerke.substring(4, 6);
	for (var schieberegler_i in schieberegler_hexlautstaerken) {
		schieberegler_dezlautstaerken[schieberegler_i] = parseInt(schieberegler_hexlautstaerken[schieberegler_i], 16);
		schieberegler_positionen[schieberegler_i] = Math.round(100 / 100 * schieberegler_dezlautstaerken[schieberegler_i] / 100 * (schiebereglerdiv_h - schiebereglerhoehe));
		document.getElementById(schieberegler_ids[schieberegler_i]).style.top = schiebereglerdiv_y + schiebereglerdiv_h - schieberegler_positionen[schieberegler_i] - schiebereglerhoehe ;
	}
} 

// Schieberegler hat Mousedown
function schieberegler_druecken(e) {
	if (document.all) {
		schieberegler_element = event.srcElement.id;
		x_klickposition_schieberegler = event.offsetX;
		y_klickposition_schieberegler = event.offsetY;
	}
	else if (document.getElementById) {
		schieberegler_element = e.target;
		x_klickposition_schieberegler = e.layerX;
		y_klickposition_schieberegler = e.layerY; 
	}
	document.onmousemove = schieberegler_ziehen;
	document.onmouseup = schieberegler_aufheben;
	return false;
} 

// Umwandlung Dezimal in Hexadezimal
var schieberegler_hex_zeichen="0123456789ABCDEF";
function schieberegler_dez_to_hex(dec){
	return schieberegler_hex_zeichen.charAt((dec>>4)&0xf)+schieberegler_hex_zeichen.charAt(dec&0xf)
}

function schieberegler_ziehen(e) {
	if (document.all) {
		var schieberegler_y_pos = event.clientY - y_klickposition_schieberegler;
		if (schieberegler_y_pos >= schieberegler_start_pos && schieberegler_y_pos <= schieberegler_ende_pos) {
			document.all[schieberegler_element].style.pixelTop = schieberegler_y_pos;
			aktuelle_position = Math.round((schieberegler_y_pos - schieberegler_start_pos) / ((schieberegler_ende_pos - schieberegler_start_pos) / 100) * 1);
		}
		if (schieberegler_y_pos > schieberegler_ende_pos) {
			document.all[schieberegler_element].style.pixelTop = schieberegler_ende_pos;
			aktuelle_position = 100;
		}
		if (schieberegler_y_pos < schieberegler_start_pos) {
			document.all[schieberegler_element].style.pixelTop = schieberegler_start_pos;
			aktuelle_position = 0;
		}
		schieberegler_elementname = schieberegler_element;
	}
	else if (document.getElementById) {
		var schieberegler_y_pos = parseInt(e.clientY) - y_klickposition_schieberegler;
		if (schieberegler_y_pos >= schieberegler_start_pos && schieberegler_y_pos <= schieberegler_ende_pos) {
			schieberegler_element.style.top = schieberegler_y_pos;
			aktuelle_position = Math.round((schieberegler_y_pos - schieberegler_start_pos) / ((schieberegler_ende_pos - schieberegler_start_pos) / 100) * 1);
		}
		if (schieberegler_y_pos > schieberegler_ende_pos) {
			schieberegler_element.style.top = schieberegler_ende_pos;
			aktuelle_position = 100;
		}
		if (schieberegler_y_pos < schieberegler_start_pos) {
			schieberegler_element.style.top = schieberegler_start_pos;
			aktuelle_position = 0;
		}
		schieberegler_elementname = schieberegler_element.id;
	}
	aktuelle_position = 100 - aktuelle_position;
	for (var schieberegler_i in schieberegler_hexlautstaerken) {
		if (schieberegler_elementname == schieberegler_ids[schieberegler_i]){
			schieberegler_hexlautstaerken[schieberegler_i] = schieberegler_dez_to_hex(aktuelle_position);
			lautstaerke(schieberegler_i,aktuelle_position);
		}
	}
	return false;
}

// Loslassen des Schiebereglers
function schieberegler_aufheben() {
	document.onmousemove = null;
// Cookie setzen
	document.cookie = "schieberegler_lautstaerke=" + schieberegler_hexlautstaerken[0]+schieberegler_hexlautstaerken[1]+schieberegler_hexlautstaerken[2] + "; expires=" + cookie_ablauf;
	return false;
}


