function toggleLayer (whichLayer)
{
	if ( document.getElementById )
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		style2.display = style2.display ? "" : "block";
	}
	else if ( document.all )
	{
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style2.display ? "" : "block";
	}
	else if ( document.layers )
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style2.display? "" : "block";
	}
}

function setLayer (whichLayer, style)
{
	if ( document.getElementById )
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		style2.display = style;
	}
	else if ( document.all )
	{
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		style2.display = style;
	}
	else if ( document.layers )
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		style2.display = style;
	}
}

function createCookie (name, value, days)
{
	if ( days )
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else
	{
		var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
}

function readCookie (name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++ )
	{
		var c = ca[i];
		while ( c.charAt(0) == ' ' )
		{
			c = c.substring(1,c.length);
		}
		if ( c.indexOf(nameEQ) == 0 )
		{
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

function eraseCookie (name)
{
	createCookie(name,"",-1);
}

function writeLayer (layerID, txt, erase)
{
	if ( document.getElementById )
	{
		if ( erase )
			document.getElementById(layerID).innerHTML = txt;
		else
			document.getElementById(layerID).innerHTML += txt;
	}
	else
		alert('Sorry! Dein Browser (Netscape 4?) ist zu alt. Bitte besorg dir einen neuen unter  http://www.getfirefox.com/');
}

var mouseX;
var mouseY;

function getMouse(e)
{
	if ( document.all )
	{
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
	}
	else
	{
		mouseX = e.pageX;
		mouseY = e.pageY;
	}
	
	if ( mouseX < 0 )
		mouseX = 0;
	if ( mouseY < 0 )
		mouseY = 0;

	return true;
}

function warn (msg)
{
	alert(msg);
	return false;
}

function check ()
{
	form = document.dialog;
	
	if ( form.author.value == "" )
		return warn("Name fehlt!");
	
	if ( form.email.value == "" )
	{
		if ( (form.site.value == "") ||	(form.site.value == "http://") )
			return warn("Email oder URL fehlt!");
	}

	if ( form.text.value == "" )
		return warn("Text des Eintrags fehlt!");
	
	return true;
}


function change (gallery, image)
{
	document.getElementById('v' + gallery + 'i').src = '/images/loading.gif';
	toggleLayer('t' + gallery);
	document.getElementById('v' + gallery + 'i').src = image;
	toggleLayer('v' + gallery);
}

function changeDetail (image)
{
	document.getElementById('viewi').src = image;
}

function changeDesign (chg)
{
	if ( (mouseX > 300) && (mouseX < 580) && (mouseY > 200) && (mouseY < 400) )
	{
		if ( chg )
		{
			toggleLayer('design');
			toggleLayer('dview');
		}
	}
	else
	{
		if ( !chg )
		{
			toggleLayer('design');
			toggleLayer('dview');
		}
	}
}

function changeCart (id)
{
	var image = '/images/' + cart[id][0] + '_' + shirts[Number(cart[id][0])] + '/detail/';
	var box = document.getElementById('type' + id);
	cart[id][1] = box.options[box.selectedIndex].value;
	switch ( cart[id][1] )
	{
		case "ws":
			image += 'f_kurz_klein.png';
			cart[id][3] = sprices[Number(cart[id][0])];
			break;
		case "wl":
			image += 'f_lang_klein.png';
			cart[id][3] = lprices[Number(cart[id][0])];
			break;
		case "ms":
			image += 'm_kurz_klein.png';
			cart[id][3] = sprices[Number(cart[id][0])];
			break;
		case "ml":
			image += 'm_lang_klein.png';
			cart[id][3] = lprices[Number(cart[id][0])];
			break;
	}
	document.getElementById('item' + id).src = image;

	box = document.getElementById('size' + id);
	cart[id][2] = box.options[box.selectedIndex].value;
	
	writeLayer('price' + id, cart[id][3] + '.-', true);
	
	cart[id][4] = document.getElementById('num' + id).value;
	cart[id][5] = cart[id][3] * cart[id][4];
	writeLayer('sum' + id, cart[id][5] + '.-', true);
	document.dialog['sum_' + id].value = cart[id][5];
	var sum = 0;
	var porto = 0;
	for ( var i = 0; i < cart.length; i++ )
	{
		sum += cart[i][5];
		var type = cart[i][1];
		switch ( type )
		{
			case "ws":
				porto += cart[i][4]*4; break;
			case "wl":
				porto += cart[i][4]*8; break;
			case "ms":
				porto += cart[i][4]*4; break;
			case "ml":
				porto += cart[i][4]*8; break;
		}

	}
	sum += porto;
	writeLayer('ship', 'Porto &amp; Verpackung ' + porto + '.-', true);
//	document.dialog.porto.value = porto;
	document.dialog['porto'].value = porto;
	writeLayer('sum', 'Summe ' + sum + '.-', true);
//	document.dialog.total.value = sum;
	document.dialog['total'].value = sum;

	saveCart();
}

var shirts = Array("", "lsva", "cook", "despite", "wool", "dry");
var sprices = Array(0, 35, 35, 35, 35, 35);
var lprices = Array(0, 40, 40, 40, 40, 40);

function add (shirt)
{
	cart.push(new Array(shirt, "ws", "m", sprices[Number(shirt)], 1, sprices[Number(shirt)]));
	updateCart();
	shop();
	log('/tracker/' + shirt + '_' + shirts[Number(shirt)] + '.txt');
}

function all ()
{
	/*
	for ( i = 1; i < 6; i++ )
	{
		var shirt = '00' + i;
		cart.push(new Array(shirt, "ws", "m", sprices[Number(shirt)], 1, sprices[Number(shirt)]));
	}
	*/
	var shirt = '001';
	cart.push(new Array(shirt, "ws", "m", sprices[Number(shirt)], 1, sprices[Number(shirt)]));
	shirt = '005';
	cart.push(new Array(shirt, "ws", "m", sprices[Number(shirt)], 1, sprices[Number(shirt)]));

	updateCart();
	toggleLayer('orderform');
	toggleLayer('orderform');
	log('/tracker/all.txt');
}

function remove (id)
{
	cart.splice(id, 1);
	updateCart();
	toggleLayer('orderform');
	toggleLayer('orderform');
	log('/tracker/remove.txt');
}

function updateCart () {
	var porto = 0;
	var sum = 0;
	var txt = '<input name="count" type="hidden" value="' + cart.length +
		'" /><table><tr>';
	if ( cart.length > 0 )
	{
		txt += '<th colspan="6">Shirt</th>';
		txt += '<th colspan="2">Grösse</th>';
		txt += '<th colspan="2">Stückpreis</th>';
		txt += '<th colspan="2">Anzahl</th>';
		txt += '<th colspan="2">Preis</th>';
		txt += '<th></th>';
		txt += '</tr>';
		for ( var i = 0; i < cart.length; i++ )
		{
			sum += cart[i][5];
			var image = '/images/' + cart[i][0] + '_' + shirts[Number(cart[i][0])] + '/detail/';
			var type = cart[i][1];
			var size = cart[i][2];
			switch ( type )
			{
				case "ws":
					porto += cart[i][4]*4;
					image += 'f_kurz_klein.png';
					break;
				case "wl":
					porto += cart[i][4]*8;
					image += 'f_lang_klein.png';
					break;
				case "ms":
					porto += cart[i][4]*4;
					image += 'm_kurz_klein.png';
					break;
				case "ml":
					porto += cart[i][4]*8;
					image += 'm_lang_klein.png';
					break;
			}

			txt += '<tr><th><input name="shirt_' + i +
				'" type="hidden" value="' + cart[i][0] + '" />' +
				cart[i][0] + ' ' + shirts[Number(cart[i][0])] + '</th>';
			txt += '<td></td>';
			txt += '<td><select id="type' + i + '" name="type_' + i + '" onchange="changeCart(' + i + ');">';
			txt += '<option value="ws"' + ((type == "ws") ? ' selected="yes"' : '') + '>W - Kurzarm</option>';
			txt += '<option value="wl"' + ((type == "wl") ? ' selected="yes"' : '') + '>W - Langarm</option>';
			txt += '<option value="ms"' + ((type == "ms") ? ' selected="yes"' : '') + '>M - Kurzarm</option>';
			txt += '<option value="ml"' + ((type == "ml") ? ' selected="yes"' : '') + '>M - Langarm</option>';
			txt += '</select></td>';
			txt += '<td></td>';
			txt += '<td><div class="shirt s' + cart[i][0] + '">';
			txt += '<a href="javascript:show_detail(\'' + cart[i][0] + '_' + shirts[Number(cart[i][0])] + '\');">';
			txt += '<img id="item' + i + '" src="' + image + '" width="130" height="80" alt="' + cart[i][0] + ' ' + shirts[Number(cart[i][0])] + '" />';
			txt += '</a></div></td>';
			txt += '<td></td>';
			txt += '<td><select id="size' + i + '" name="size_' + i + '" onchange="changeCart(' + i + ');">';
			txt += '<option value="s"' + ((size == "s") ? ' selected="yes"' : '') + '>S</option>';
			txt += '<option value="m"' + ((size == "m") ? ' selected="yes"' : '') + '>M</option>';
			txt += '<option value="l"' + ((size == "l") ? ' selected="yes"' : '') + '>L</option>';
			txt += '<option value="xl"' + ((size == "xl") ? ' selected="yes"' : '') + '>XL</option>';
			txt += '</select></td>';
			txt += '<td></td>';
			txt += '<td><div id="price' + i + '">' + cart[i][3] + '.-</div></td>';
			txt += '<td></td>';
			txt += '<td><input id="num' + i + '" name="num_' + i + '" type="text" size="2" value="' + cart[i][4] + '" onchange="changeCart(' + i + ');" /></td>';
			txt += '<td></td>';
			txt += '<td><input name="sum_' + i + '" type="hidden" value="' + cart[i][5] + '" />';
			txt += '<div id="sum' + i + '">' + cart[i][5] + '.-</div></td>';
			txt += '<td></td>';
			txt += '<td><a href="javascript:remove(' + i + ');">Nö, doch nicht mein Stil</a></td>';
			txt += '</tr>';
		}
		sum += porto;
		txt += '<tr><td colspan="10"></td>';
		txt += '<td colspan="3" class="sum"><input name="porto" type="hidden" value="' + porto + '" />';
		txt += '<div id="ship">Porto &amp; Verpackung ' + porto + '.-</div></td>';
		txt += '<td colspan="2"></td></tr>';
		txt += '<tr><td colspan="11"></td>';
		txt += '<td colspan="2" class="sum"><input name="total" type="hidden" value="' + sum + '" />';
		txt += '<div id="sum">Summe ' + sum + '.-</div></td>';
		txt += '<td colspan="2"></td></tr>';
		setLayer('mcart', 'block');
	}
	else
	{
		txt += '<th>Noch nicht entschieden? Dann empfehlen wir <a href="javascript:all();">jedes Shirt einmal</a> zu kaufen. :)</th></tr>';
		setLayer('mcart', 'none');
	}
	txt += '</table>';
	writeLayer('cart', txt, true);
	saveCart();
}

function shop ()
{
	toggleLayer('entries');
	toggleLayer('orderform');
}

function shop_other ()
{
	userdata[0] = 1;
	saveUserdata();
	document.location.href = '/';
}

function init ()
{
	window.defaultStatus='klyde';
	toggleLayer('entries');
	toggleLayer('continue');
	restoreCart(true);
}

function init_detail ()
{
	window.defaultStatus='klyde - detail';
	if ( !document.all )
		document.captureEvents(Event.MOUSEMOVE)
	document.onmousemove = getMouse;
	toggleLayer('dview');
}

function init_other (txt)
{
	window.defaultStatus='klyde - ' + txt;
	restoreCart(false)
}

function continue_shopping ()
{
	toggleLayer('address');
	toggleLayer('continue');
	setTimeout('document.dialog.name.focus()', 200);
}

function init_sizes ()
{
	window.defaultStatus='klyde - Shirtgrössen';
	toggleLayer('wsizes');
}

function switch_sizes ()
{
	toggleLayer('wsizes');
	toggleLayer('msizes');
}

function show_detail (shirt)
{
	var klyded = window.open('/shirts/' + shirt + '.htm', 'klyded', 'width=810,height=610,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
	klyded.focus();
}

function tell ()
{
	var tellw = window.open('/tell/', 'tellw', 'width=540,height=205,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
	tellw.focus();
}

function show_sizechart ()
{
	var sizew = window.open('/sizes/', 'sizesw', 'width=540,height=660,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
	sizew.focus();
}

var userdata = Array(0, '', '', '', '', '', '');

function check_cookie ()
{
	if ( readCookie("klyde") != null )
		return true;

	createCookie("klyde", "test");
	if ( readCookie("klyde") == null )
	{
		return false;
	}
	
	createCookie("klyde", "");
	eraseCookie("klyde");

	return true;
}

function saveCart ()
{
	if ( !cookies )
		return;

	var txt = '';
	for ( var i = 0; i < cart.length; i++ )
	{
		txt += ((txt.length > 0) ? '#' : '') + cart[i];
	}
	createCookie("klyde", txt);
}

function saveUserdata ()
{
	if ( !cookies )
		return;

	if ( document.dialog != null )
	{
		userdata[1] = document.dialog.name.value;
		userdata[2] = document.dialog.surname.value;
		userdata[3] = document.dialog.street.value;
		userdata[4] = document.dialog.town.value;
		userdata[5] = document.dialog.email.value;
		userdata[6] = document.dialog.notes.value;
	}
	
	txt = '';
	for ( var i = 0; i < userdata.length; i++ )
	{
		txt += ((txt.length > 0) ? '#' : '') + userdata[i];
	}
	createCookie("userdata", txt);
}

function restoreCart (store)
{
	if ( !cookies )
		return;
	
	var txt = readCookie("klyde");
	if ( (txt != null) && (txt.length > 0) )
	{
		var tmp = txt.split('#');
		for (var i = 0; i < tmp.length; i++)
		{
			cart.push(tmp[i].split(','));
			if ( cart[i].length < 6 )
				return;
			cart[i][3] = Number(cart[i][3]);
			cart[i][4] = Number(cart[i][4]);
			cart[i][5] = Number(cart[i][5]);
		}
		if ( cart.length > 0 )
		{
			if ( store )
				updateCart();
			else
				setLayer('mcart', 'block');
		}
	}
	
	txt = readCookie("userdata");
	if ( (txt != null) && (txt.length > 0) )
	{
		var tmp = txt.split('#');
		if ( tmp.length == 7 )
		{
			userdata = tmp;
			userdata[0] = Number(userdata[0]);
			
			if ( document.dialog != null )
			{
				document.dialog.name.value = userdata[1];
				document.dialog.surname.value = userdata[2];
				document.dialog.street.value = userdata[3];
				document.dialog.town.value = userdata[4];
				document.dialog.email.value = userdata[5];
				document.dialog.notes.value = userdata[6];
				
				if ( userdata[0] > 0 )
				{
					shop();
					userdata[0] = 0;
					saveUserdata();
				}

				if ( txt.length > 7 )
				{
					toggleLayer('address');
					toggleLayer('continue');
				}
			}
		}
	}
}

function getHTTPObject ()
{
	if ( typeof XMLHttpRequest != 'undefined' )
	{
		return new XMLHttpRequest();
	}
	
	try
	{
		return new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {}
	}
	
	return false;
}

function log (action)
{
	var xmlhttp = getHTTPObject();
	xmlhttp.open("GET", action, true);
	xmlhttp.onreadystatechange = function () {
/*
		if ( xmlhttp.readyState == 4 )
		{
			alert(xmlhttp.responseText);
		}
*/
	}
	xmlhttp.send(null);
}
