// store.js
//
// Copyright © 2005 Drakware

function on_unload() {
	// the user has reloaded, gone back, or gone to another page.  We need to save the cart
	save_cart_xml();
}
function on_load() {
	argwatch();
	setTimeout("load_cart_xml()", 500);
}

function mainview(start) {
	var url = "xmlreq.php?t=mainview&start=" + start;
	xmlreqGET(url);
}
function mainview_cb(xmldoc) {
	var el = document.getElementById("store_main");
	var main = xmldoc.getElementsByTagName("main")[0];
	var cats = main.getElementsByTagName("cat");
	var pages = getElementText(main.getElementsByTagName("pages")[0]);
	var page = getElementText(main.getElementsByTagName("page")[0]);
	var next = getElementText(main.getElementsByTagName("next")[0]);
	var prev = getElementText(main.getElementsByTagName("prev")[0]);
	var cstart = getElementText(main.getElementsByTagName("cstart")[0]);
	var elstr = '';

	cat_current = 0;

	elstr += '	<div id="itemview">Loading...</div>\n';
	elstr += '	<div class="cats_title">Produkte</div>\n';
	elstr += '	<div class="buttons_top">';
			elstr += '<div class="search">';
			elstr += '<input type="text" id="searchbox" onkeydown="search_keydown(event);" onkeypress="search_keypress(event);" /> <input type="button" class="button" value="Search" onclick="search_do();" />';
			elstr += '</div>\n';

		elstr += ' Page ' + page + ' of ' + pages + ' ';
		if (prev > -1) { elstr += '<input type="button" class="button" value="&lt;&lt;" onclick="location=\'store.php#t=mainview&start=' + prev + '\';" />'; }
		else { elstr += '<input type="button" class="buttondis" value="&lt;&lt;" disabled="disabled" />'; }
		if (next > -1) { elstr += '<input type="button" class="button" value="&gt;&gt;" onclick="location=\'store.php#t=mainview&start=' + next + '\';" />'; }
		else { elstr += '<input type="button" class="buttondis" value="&gt;&gt;" disabled="disabled" />'; }	elstr += '	</div>\n';
	for (var i=0; i < cats.length; i++) {
		elstr += '	<div class="maincat">\n';
		elstr += '		<div class="title"><a href="store.php#t=catview&id=' + getChildText(cats[i], "id") + '&start=0&order=name&cstart=' + cstart + '">' + getChildText(cats[i], "title") + '</a></div>\n';
		elstr += '	</div>\n';
	}
	elstr += '	<div class="buttons_bottom">';
		elstr += ' Page ' + page + ' of ' + pages + ' ';
		if (prev > -1) { elstr += '<input type="button" class="button" value="&lt;&lt;" onclick="location=\'store.php#t=mainview&start=' + prev + '\';" />'; }
		else { elstr += '<input type="button" class="buttondis" value="&lt;&lt;" disabled="disabled" />'; }
		if (next > -1) { elstr += '<input type="button" class="button" value="&gt;&gt;" onclick="location=\'store.php#t=mainview&start=' + next + '\';" />'; }
		else { elstr += '<input type="button" class="buttondis" value="&gt;&gt;" disabled="disabled" />'; }
	elstr += '	</div>\n';

	el.innerHTML = elstr;
	
	update_cart();
	store_reveal();
}

function newview(start, order) {
	// this could be more elegant but that'd take time
	// NEW PRODUCTS CATEGORY: _46_
	catview(46, start, order, 0);
}

function catview(id,start,order,cstart,q) {
	if (cstart == 'search') {
		var url = "xmlreq.php?t=catview&id=" + id + "&start=" + start + "&order=" + order + "&cstart=" + cstart + "&q=" + q;
	} else {
		var url = "xmlreq.php?t=catview&id=" + id + "&start=" + start + "&order=" + order + "&cstart=" + cstart;
	}
	xmlreqGET(url);
}

function catview_cb(xmldoc) {
	var el = document.getElementById("store_main");
	var cat = xmldoc.getElementsByTagName("cat")[0];
	var p_title = getElementText(cat.getElementsByTagName("p_title")[0]);
	var p_descript = getElementText(cat.getElementsByTagName("p_descript")[0]);
	var p_id = getElementText(cat.getElementsByTagName("p_id")[0]);
	var order = getElementText(cat.getElementsByTagName("order")[0]);
	var next = getElementText(cat.getElementsByTagName("next")[0]);
	var prev = getElementText(cat.getElementsByTagName("prev")[0]);
	var pages = getElementText(cat.getElementsByTagName("pages")[0]);
	var page = getElementText(cat.getElementsByTagName("page")[0]);
	var start = getElementText(cat.getElementsByTagName("start")[0]);
	var cstart = getElementText(cat.getElementsByTagName("cstart")[0]);
	if (cstart == 'search') {
		var q = getElementText(cat.getElementsByTagName("q")[0]);
	}
	var items = cat.getElementsByTagName("item");
	var elstr = '';
	var k = 0;
	
	cat_current = p_id;
	clear_cat();
	
	elstr += '<div class="cat">\n';
	elstr += '	<div id="itemview">Loading...</div>\n';
	if (cstart == 'search') {
		elstr += '	<div class="title">' + p_title + ' <span class="back">[ <a href="store.php#t=search&q=' + q + '">Zurück zu den Produkten</a> ]</span></div>\n';
	} else {
		elstr += '	<div class="title">' + p_title + ' <span class="back">[ <a href="store.php#t=mainview&start=' + cstart + '">Zurück zu den Produkten</a> ]</span></div>\n';
	}
	if (start == 0) {
		if (p_descript != ' ') elstr += '	<div class="catdescript">' + p_descript + "</div>\n";
	}
	if (items.length > 0) {
		elstr += '	<div class="buttons_top">';
			elstr += ' Page ' + page + ' of ' + pages + ' ';
			if (prev > -1) { elstr += '<input type="button" class="button" value="&lt;&lt;" onclick="location=\'store.php#t=catview&id=' + p_id + '&start=' + prev + '&order=' + order + '&cstart=' + cstart + '\';" />'; }
			else { elstr += '<input type="button" class="buttondis" value="&lt;&lt;" disabled="disabled" />'; }
			if (next > -1) { elstr += '<input type="button" class="button" value="&gt;&gt;" onclick="location=\'store.php#t=catview&id=' + p_id + '&start=' + next + '&order=' + order + '&cstart=' + cstart + '\';" />'; }
			else { elstr += '<input type="button" class="buttondis" value="&gt;&gt;" disabled="disabled" />'; }
		elstr += '	</div>\n';
		elstr += '	<div class="items">\n';
		for (var i=0; i<items.length; i++) {
			var itemnos = items[i].getElementsByTagName("itemno");
			elstr += '		<div class="item" id="item_' + k + '">\n';
			elstr += '			<div class="adds">\n';
			
			for (var j=0; j<itemnos.length; j++) {
				cat_add_item(getChildText(items[i], "name"),
							 p_id,
							 getChildText(items[i], "pic"),
							 getChildText(itemnos[j], "price"),
							 getChildText(itemnos[j], "pcents"),
							 getChildText(itemnos[j], "type"),
							 getChildText(itemnos[j], "qty"),
							 getChildText(items[i], "id"),
							 getChildText(itemnos[j], "catalogid"),
							 0,
							 0
							 );
				elstr += '				<div class="add">\n';
				elstr += '					' + getChildText(itemnos[j], "qty") + ' ' + getChildText(itemnos[j], "type") + ' &euro; ' + getChildText(itemnos[j], "price") + ',' + getChildText(itemnos[j], "pcents") + '\n';
				elstr += '					<input id="cat_' + k + '_qty" type="text" value="1" onkeydown="cart_add_keydown(event, ' + k + ');" onkeypress="cart_add_keypress(event, ' + k + ');" />\n';
				elstr += '					<a href="javascript:cart_add_click(' + k + ');"><strong>Add &gt;</strong></a>\n';
				elstr += '				</div>\n';
				k++;
			}
	
			elstr += '			</div>\n';
			elstr += '			<div class="pic"><a href="javascript:itemview(' + getChildText(items[i], "id") + ');"><img src="item_img/' + getChildText(items[i], "pic") + 't.jpg" title="' + getChildText(items[i], "name") + '" /></a></div>\n';
			elstr += '			<div class="name"><a href="javascript:itemview(' + getChildText(items[i], "id") + ');">' + getChildText(items[i], "name") + '</a></div>\n';
			elstr += '			<div class="descript" id="descript_' + getChildText(items[i], "id") + '">' + getChildText(items[i], "descript") + '</div>\n';
			elstr += '		</div>\n';
			elstr += '		<div class="spacer"></div>\n';
		}
		elstr += '	</div>\n';
		elstr += '	<div class="buttons_bottom">';
			elstr += ' Page ' + page + ' of ' + pages + ' ';
			if (prev > -1) { elstr += '<input type="button" class="button" value="&lt;&lt;" onclick="location=\'store.php#t=catview&id=' + p_id + '&start=' + prev + '&order=' + order + '&cstart=' + cstart + '\';" />'; }
			else { elstr += '<input type="button" class="buttondis" value="&lt;&lt;" disabled="disabled" />'; }
			if (next > -1) { elstr += '<input type="button" class="button" value="&gt;&gt;" onclick="location=\'store.php#t=catview&id=' + p_id + '&start=' + next + '&order=' + order + '&cstart=' + cstart + '\';" />'; }
			else { elstr += '<input type="button" class="buttondis" value="&gt;&gt;" disabled="disabled" />'; }
		elstr += '	</div>\n';
	} else {
		elstr += '[ No items found ]';
	}
	elstr += '</div>\n';
	
	el.innerHTML = elstr;

	update_cart();
	store_reveal();
}

function itemview(id) {
	var url = "xmlreq.php?t=itemview&id=" + id;
	xmlreqGET(url);
}
function itemview_cb(xmldoc) {
	var name = getElementText(xmldoc.getElementsByTagName("name")[0]);
	var descript = getElementText(xmldoc.getElementsByTagName("descript")[0]);
	var ingredients = getElementText(xmldoc.getElementsByTagName("ingredients")[0]);
	var pic = getElementText(xmldoc.getElementsByTagName("pic")[0]);
	var itemid = getElementText(xmldoc.getElementsByTagName("id")[0]);
	var itemnos = xmldoc.getElementsByTagName("itemno");
	var itemview_el = document.getElementById("itemview");

	var text = '';
	text += '<div class="close">[ <a href="javascript:itemview_close();">schliessen</a> ]</div>\n';
	text += '<div class="pic"><img src="item_img/' + pic + '.jpg" title="' + name + '" alt="' + name + '" /></div>\n';
	text += '<div class="name">' + name + "</div>\n";
	text += '<div class="descript">' + descript + "</div>\n";
	for (var i=0; i<itemnos.length; i++) {
		iv_arr[i] = new CItem(name,
							  cat_current,
							  pic,
							  getChildText(itemnos[i], "price"),
							  getChildText(itemnos[i], "pcents"),
							  getChildText(itemnos[i], "type"),
							  getChildText(itemnos[i], "qty"),
							  itemid,
							  getChildText(itemnos[i], "catalogid")
							  );

		text += '<div class="itemno">\n';
		text += '	<div class="add">\n';
		text += '		#' + getChildText(itemnos[i], "catalogid") + ': ' + getChildText(itemnos[i], "qty") + ' ' + getChildText(itemnos[i], "type") + ' &euro; ' + getChildText(itemnos[i], "price") + ',' + getChildText(itemnos[i], "pcents") + '\n';
		text += '		<input id="iv_' + i + '_qty" type="text" value="1" onkeydown="iv_add_keydown(event, ' + i + ');" onkeypress="iv_add_keypress(event, ' + i + ');" />\n';
		text += '		<a href="javascript:iv_add_click(' + i + ');"><strong>Add &gt;</strong></a>\n';
		text += '	</div>\n';
//		text += '	<div class="catalogid">#' + getChildText(itemnos[i], "catalogid") + '</div>\n';
//		text += '	<div class="qty">' + getChildText(itemnos[i], "qty") + ' ' + getChildText(itemnos[i], "type") + '</div>\n';
//		text += '	<div class="price">&euro; ' + getChildText(itemnos[i], "price") + ',' + getChildText(itemnos[i], "pcents") + '</div>\n';
		text += '</div>\n';
	}
	text += '<div class="ingredients">' + ingredients + "</div>\n";
	itemview_el.innerHTML = text;
	
	itemview_el.style.visibility = 'visible';
	store_conceal();
	window.scroll(0,0);
}
function itemview_close() {
	var itemview_el = document.getElementById("itemview");
	itemview_el.innerHTML = 'Loading...';
	itemview_el.style.visibility = 'hidden';
	store_reveal();
}

function checkout_go() {
	var el_st = document.getElementById("checkout_form_subtotal");
	var el_cart = document.getElementById("checkout_form_cart_text");
	var el_xml = document.getElementById("checkout_form_cart_xml");
	
	el_st.value = document.getElementById("checkout_subtotal").innerHTML;
	el_cart.value = get_cart_text();
	el_xml.value = get_cart_xml();
	
	document.getElementById("checkout_form").submit();
}

function store_conceal() {
	var el = document.getElementById("store_main");
	el.className = 'store_main_hid';
}
function store_reveal() {
	var el = document.getElementById("store_main");
	el.className = 'store_main_vis';
}


function checkout_enable() {
	var el = document.getElementById("checkout_button");
	el.className = 'button';
	el.disabled = 0;
}
function checkout_disable() {
	var el = document.getElementById("checkout_button");
	el.className = 'buttondis';
	el.disabled = 1;
}


function show_waiting() {
	var el = document.getElementById("xmlwaiting");
	el.style.visibility = 'visible';
}
function hide_waiting() {
	var timerID = setTimeout("hide_waiting2()", 1500);
}
function hide_waiting2() {
	var el = document.getElementById("xmlwaiting");
	el.style.visibility = 'hidden';
}

function search_do() {
	var str = document.getElementById('searchbox').value;
	if (str == '') return;
	
	document.location = 'store.php#t=search&q=' + escape(str);
}
function search_submit(q) {
	var url = 'xmlreq.php?t=search&q=' + q;
	xmlreqGET(url);
}
function search_submit_cb(xmldoc) {
	var el = document.getElementById("store_main");
	var q = getElementText(xmldoc.getElementsByTagName("q")[0]);
	var items = xmldoc.getElementsByTagName("item");
	var cats = xmldoc.getElementsByTagName("cat");
	var elstr = '';
	var i=0;
	
	elstr += '	<div id="itemview">Loading...</div>\n';
	elstr += '	<div class="cats_title">Search</div>\n';
	elstr += '<div class="search_top">';
		elstr += '<input type="text" id="searchbox" value="' + q + '" onkeydown="search_keydown(event);" onkeypress="search_keypress(event);" /> <input type="button" class="button" value="Search" onclick="search_submit();" />';
	elstr += '</div>\n';

	if (cats.length > 0) {
		for (i=0; i<cats.length; i++) {
			elstr += '<div class="search_cat">';
			elstr += '<a href="store.php#t=catview&id=' + getChildText(cats[i], "id") + '&start=0&order=name&cstart=search&q=' + q + '">' + getChildText(cats[i], "title") + '</a>';
			elstr += '</div>\n';
		}
		
		elstr += '<div class="search_divider"></div>\n';
	}
	if (items.length > 0) {
		for (i=0; i<items.length; i++) {
			elstr += '<div class="search_item">';
			elstr += '<a href="javascript:itemview(' + getChildText(items[i], "id") + ')">' + getChildText(items[i], "name") + '</a>';
			elstr += '</div>\n';
		}
	}
	
	if (items.length == 0 && cats.length == 0) {
		elstr += '<br />No items found.<br /><br />\n';
	}
	el.innerHTML = elstr;
}

function search_keydown(event) {
	var el = document.getElementById('searchbox');
	var IE = (document.all) ? 1 : 0;

	if (event == null) event = window.event;
	if (event) {
		var key = event.keyCode;

		switch(key) {
			case KC_ENTER:
				if (!IE) break;
				if (!event.ctrlKey && !event.shiftKey) {
					search_do();
					input_stopevent(event);
				}
				break;
			default:
				break;
		}
	}
}
function search_keypress(event) {
	var el = document.getElementById('searchbox');
	var IE = (document.all) ? 1 : 0;	// check for IE

	if (event == null) event = window.event;

	var key = event.keyCode;
	if ( key == 0 ) keyCode = event.charCode;
	if ( key == 0 ) key = event.which;

	switch (key) {
		case KC_ENTER:
			if (!event.ctrlKey && !event.shiftKey) {
				search_do();
				input_stopevent(event);
			}
			break;
		default:
			break;
	}
}
