// Cookie-Funktionen und Ajax für Sparste.net
// ==========================================

// Laufzeit der Cookies (1000*60*60*24*7 = 7 Tage, 1000*60*60*24*1 = 1 Tag)
// Ein Tag entspricht hier immer 24 Stunden ab dem Zeitpunkt, wann der Cookie gesetzt wurde
var jetzt = new Date();
var Auszeit = new Date(jetzt.getTime() + (1000*60*60*24*7));

function getCookieValue(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function ReadCookie(CookieName) {
	CookieName += "=";
	var i = 0;
	while (i < document.cookie.length) {
		var j = i + CookieName.length;
		if (document.cookie.substring(i, j) == CookieName) return getCookieValue (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break; 
	}
	return null;
}

function SetCookie(name,value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	document.cookie = name + "=" + escape (value) + ("; expires=" + Auszeit.toGMTString());
}

function DeleteCookie() {
	var expTime = new Date();
	expTime.setTime (expTime.getTime() - 1000000000);
	var cval = ReadCookie("elistID");
	document.cookie = "elistID" + "=" + cval + "; expires=" + expTime.toGMTString();
	cval = ReadCookie("elistAnz");
	document.cookie = "elistAnz" + "=" + cval + "; expires=" + expTime.toGMTString();
	cval = ReadCookie("elistOwn");
	document.cookie = "elistOwn" + "=" + cval + "; expires=" + expTime.toGMTString();
	updateElist();
}

function CheckCookie() {
	SetCookie("test","1");
	var AllValues = ReadCookie("test");
	DeleteCookie("test");
	if (AllValues == null) return false;
}


http_request = false;
view = 'small';

function doRequest(elistID,elistAnz) {

	http_request = false;
	var url = "ekzettelinfo.php5?ids=" + elistID + "&anz=" + elistAnz + "&view=" + view;

	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		// if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	} else if (window.ActiveXObject) {
		try { http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try { http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Fehler: Kann keine XMLHTTP-Instanz erzeugen');
		return false;
	}
	http_request.onreadystatechange = getTitle;
	http_request.open('GET', url, false);
	http_request.send(null);
}

function getTitle() {
	if (http_request.readyState == 4) {
		if (http_request.status != 200) {
			alert('Bei dem Request ist ein Problem aufgetreten.');
		}
	}
}

function updateElist(v) {
	view = v;
	var content = '';
	var elistID = ReadCookie("elistID");
	var elistAnz = ReadCookie("elistAnz");
	if (elistID != null && elistAnz != null) {
		doRequest(elistID,elistAnz);
		document.getElementById('eListContent').innerHTML = http_request.responseText;
	} else document.getElementById('eListContent').innerHTML = '';
}

// Produkt an Cookie anhängen
// ID < 0 => Wird aus Warenkorb rausgenommen
function SaveData(id,v) {
	var v = v || "small";
	var elistID = ReadCookie("elistID");
	var elistAnz = ReadCookie("elistAnz");
	if (elistID == null) {
		SetCookie("elistID",id);
		SetCookie("elistAnz","1");
	} else {
		var elistIDArr = elistID.split("|");
		var elistAnzArr = elistAnz.split("|");
		var vorhanden = false;
		var vorzeichen = (id > 0) ? "+" : "-";
		if (vorzeichen == "-") id *= -1;
		for (var i = 0; i < elistIDArr.length; i++) {
			if (elistIDArr[i] == id) {
				if (vorzeichen == "+") elistAnzArr[i]++;
				else elistAnzArr[i]--;
				vorhanden = true;
				entfernen = (elistAnzArr[i] == 0) ? i : -1;
			}
		}
		if (!vorhanden) {
			elistID += "|" + id;
			elistAnz += "|1";
		} else {
			if (entfernen  >= 0) {
				elistIDArr.splice(entfernen,1);
				elistAnzArr.splice(entfernen,1);
			}
			elistID = elistIDArr.join("|");
			elistAnz = elistAnzArr.join("|");
		}
		SetCookie("elistID",elistID);
		SetCookie("elistAnz",elistAnz);
	}
	updateElist(v);
}
