function preloadImages() {
	document.preload = new Array();
	
	if (document.images) {
		for(var i = 0; i < preloadImages.arguments.length; i++) {
			document.preload[i] = new Image();
			document.preload[i].src = preloadImages.arguments[i];
		}
	}
}

function decodeAjax (data) {
	var text	= data;
	text		= unescape(text);
	//text		= text.replace(/%2f/g, "/");
	return text;
}

function orderPageCheck (id) {
	var target_id	= id;
	if (document.getElementById('mv_order_item.'+id)) {
		if ((document.getElementById('mv_order_item.'+id).value.length > 0) && (document.getElementById('mv_order_quantity.'+id).value.length > 0)) {
			ajxCall(
				'/cgi-bin/owkpa/ajax/orderpage.html',
				'id='+document.getElementById('session_id').value+'&code='+document.getElementById('mv_order_item.'+id).value+'&quantity='+document.getElementById('mv_order_quantity.'+id).value,
				function (response) {
					var checked	= false;
					var elements	= response.split("&");
					for (var i = 0; i < elements.length; i++) {
						var field = elements[i].split("=");
						if (field[0] == "title") {
							document.getElementById("title_"+target_id).innerHTML = decodeAjax(field[1]);
						}
						else if (field[0] == "price") {
							document.getElementById("price_"+target_id).innerHTML = decodeAjax(field[1]);
						}
						else if (field[0] == "subtotal") {
							document.getElementById("subtotal_"+target_id).innerHTML = decodeAjax(field[1]);
						}
						
						else if ((field[0] == "ok") && (field[1] == 1)) {
							checked		= true;
						}
					}
					
					document.getElementById("add_item_"+target_id).checked	= checked;
				}
			);
		}
	}
}

function orderItem(mv_order_item, mv_order_quantity, mv_order_data) {
	var itemNumber		= '';
	var itemQuantity	= 1;
	var itemData		= '';
	var sessionId		= 'nosession';
	
	if (mv_order_item.length > 0) {
		itemNumber	= mv_order_item; 
	}
	
	else if (document.getElementById('mv_order_item')) {
		itemNumber	= document.getElementById('mv_order_item').value;
	}
	
	if (mv_order_quantity.length > 0) {
		itemQuantity	= mv_order_quantity; 
	}
	
	else if (document.getElementById('mv_order_quantity')) {
		itemQuantity	= document.getElementById('mv_order_quantity').value;
	}
	
	if (mv_order_data.length > 0) {
		itemData	= mv_order_data; 
	}
	
	else if (document.getElementById('mv_order_data')) {
		itemData	= document.getElementById('mv_order_data').value;
	}
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	ajxCall(
		'/cgi-bin/owkpa/order.html',
		'id='+sessionId+'&mv_order_item='+itemNumber+'&quantity='+itemQuantity+'&mv_order_data='+itemData+'&frame=1',
		function (response) {
			if (document.getElementById('warenkorbklein')) {
				document.getElementById('warenkorbklein').innerHTML = response;
			}
			
			reloadBasketLastAdded();
			
			fadeInMsg	= 'Item %s has been added to your basket';
			if (document.getElementById('fadeInBoxAddItmMsg')) {
				fadeInMsg	= document.getElementById('fadeInBoxAddItmMsg').value;
			}
			
			$.jnotifica(
				fadeInMsg.replace(/%s/g, itemNumber),
				{
					margin    : 10,
					position  : 'bottom',
					align     : 'right',
					background: '#D6DBEA',
					width     : 400,
					color     : '#326DA9',
					msgCss    : {
						fontWeight: 'bold'
					}

				}
			);

			
		}
	);

}

function deleteBasketPosition(trId, itmPos, cart) {
	
	if (document.getElementById('basket_position_'+trId+'_icon') && document.getElementById('image_base')) {
		document.getElementById('basket_position_'+trId+'_icon').src	= document.getElementById('image_base').value + '/process.gif';
	}
	
	if (document.getElementById('basket_position_'+trId+'_posno')) {
		itmPos		= document.getElementById('basket_position_'+trId+'_posno').value;
	} 
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	ajxCall(
		'/cgi-bin/owkpa/process',
		'id='+sessionId+'&mv_cartname='+cart+'&quantity'+itmPos+'=0'+'&mv_doit=refresh&mv_todo=return&mv_quantity_update=1',
		function (response) {
			if (document.getElementById('warenkorbtabelle')) {
				wkRows		= document.getElementById("warenkorbtabelle").rows; 
				lastClass	= '';
				changePosition	= 0;
				positionCounter	= 0;
				
				for (i = 0; i < document.getElementById("warenkorbtabelle").rows.length; i++) {
					strToTest	= wkRows[i].id;
					testResult	= strToTest.match(/^basket_position_/g);
					if (testResult) {
						if (wkRows[i].id == 'basket_position_'+trId) {
							lastClass	= wkRows[i].className;
							changePosition	= document.getElementById('basket_position_'+trId+'_posno').value;
							document.getElementById("warenkorbtabelle").deleteRow(i);
							i--;
							
						}
						else if (wkRows[i].id == 'basket_position_'+trId+'_extra') {
							document.getElementById("warenkorbtabelle").deleteRow(i);
							i--;
						}
						
						else {
							positionCounter++;
							if (lastClass != '') {
								currentClass		= wkRows[i].className;
								document.getElementById("warenkorbtabelle").rows[i].className	= lastClass;
								lastClass		= currentClass;
							}
							
							// Positionsreihenfolge muss geaendert werden
							if (changePosition > 0) {
								// Key-Nummer extrahieren
								
								var strToSplit		= wkRows[i].id;
								var strElements		= strToSplit.split("_");
								
								if (strElements.length == 3) {
									document.getElementById('basket_position_'+strElements[2]+'_posno').value	= changePosition;
									document.getElementById('basket_position_'+strElements[2]+'_qty').name		= 'quantity'+changePosition;
									changePosition++;
								}
							}
						}
					}
				}
			}
			
			// Keine Positionen mehr im Warenkorb -> Anzeige verbergen
			// Meldung ausgeben
			if (positionCounter == 0) {
				// Warenkorb auf der linken Seite aktualisieren
				reloadSmallBasket();
				
				// Zuletzt hinzugefügte Artikel neu laden
				reloadBasketLastAdded();
				
				if (document.getElementById('basket')) {
					document.getElementById('basket').innerHTML	= '';
				}
				
				if (document.getElementById('errNoItemsInBasket')) {
					document.getElementById('errNoItemsInBasket').style.display = 'block';
				}
				
			}
			
			else {
				prepareBasket();
			}
		}
	);
}

function prepareBasket()
{
	// Summierung unten im Warenkorb aktualisieren
	reloadSum();
	
	// Warenkorb auf der linken Seite aktualisieren
	reloadSmallBasket();
	
	// Mindestbestellwert prüfen
	checkBasketMinimumOrder();
	
	// Maximalbestellwert prüfen
	checkBasketMaximumOrder();
	
	// Zuletzt hinzugefügte Artikel neu laden
	reloadBasketLastAdded();
}

function basketNoOrder() {
	if (document.getElementById('errMinimumOrderValue') || document.getElementById('errMaximumOrderValue')) {
		if (document.getElementById('boxClickorder')) {
			document.getElementById('boxClickorder').innerHTML	= '';
		}
		
		if (document.getElementById('boxCheckout')) {
			document.getElementById('boxCheckout').innerHTML	= '';
		}
	}
}


function reloadSmallBasket()
{
	var sessionId		= 'nosession';
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	
	ajxCall(
		'/cgi-bin/owkpa/ajax/order.html',
		'id='+sessionId,
		function (response) {
			if (document.getElementById('warenkorbklein')) {
				document.getElementById('warenkorbklein').innerHTML = response;
			}
		}
	);
}

function reloadBasketLastAdded()
{
	var sessionId		= 'nosession';
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	
	ajxCall(
		'/cgi-bin/owkpa/ajax/lastadded.html',
		'id='+sessionId,
		function (response) {
			if (document.getElementById('basketLastAdded')) {
				document.getElementById('basketLastAdded').innerHTML = response;
			}
		}
	);
}

function reloadSum()
{
	var sessionId		= 'nosession';
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	
	ajxCall(
		'/cgi-bin/owkpa/ajax/basket_calculation.html',
		'id='+sessionId,
		function (response) {
			if (document.getElementById('basket_calculation')) {
				document.getElementById('basket_calculation').innerHTML = response;
			}
		}
	);
}

function checkBasketMinimumOrder()
{
	var sessionId		= 'nosession';
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	
	ajxCall(
		'/cgi-bin/owkpa/ajax/basket_checkminorder.html',
		'id='+sessionId,
		function (response) {
			if (!document.getElementById('errMinimumOrderValue') && document.getElementById('basketMessages')) {
				document.getElementById('basketMessages').innerHTML	= document.getElementById('basketMessages').innerHTML + response;
				basketNoOrder();
			}
		}
	);
}

function checkBasketMaximumOrder()
{
	var sessionId		= 'nosession';
	
	if (document.getElementById('session_id')) {
		sessionId	= document.getElementById('session_id').value;
	}
	else if (document.getElementById('mv_session_id')) {
		sessionId	= document.getElementById('mv_session_id').value;
	}
	
	ajxCall(
		'/cgi-bin/owkpa/ajax/basket_checkmaxorder.html',
		'id='+sessionId,
		function (response) {
			if (!document.getElementById('errMaximumOrderValue') && document.getElementById('basketMessages')) {
				document.getElementById('basketMessages').innerHTML	= document.getElementById('basketMessages').innerHTML + response;  
				basketNoOrder();
			}
		}
	);
}


function ajxCall (url, post, callback) {
	var xmlHttp = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			xmlHttp = new XMLHttpRequest();
		} catch(e) {
			xmlHttp = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlHttp = false;
			}
		}
	}

	if (xmlHttp) {
		xmlHttp.open('POST', url, true);
		xmlHttp.setRequestHeader("Pragma", "no-cache");
		xmlHttp.setRequestHeader("Cache-Control", "must-revalidate");
		xmlHttp.setRequestHeader("If-Modified-Since", document.lastModified);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				callback(xmlHttp.responseText);
			}
		};
		xmlHttp.send(post);

	}
}

function legend (url) {
	ajxCall(url, 1, legend_set);
}

function legend_set (content) {
	if (document.getElementById('opt_legende')) {
		document.getElementById('opt_legende').innerHTML	= content;
	}
}


function openTheme (content) {
	if (document.getElementById('nav_shop_menu_unter')) {
		document.getElementById('nav_shop_menu_unter').innerHTML = content;
	}
}

