var saveTimer = null;
var formObj = null;
var session_id = null;
var layout = null;
var currentSeconds = 0;
var refreshButtonLabel = null;
var autoReloadForm = true;

function setAutoReloadForm(value)
{
	autoReloadForm = value;
}

function clearCartTimeout()
{
	if (saveTimer) window.clearTimeout(saveTimer);
	saveTimer = null;
}

function reloadCountDown()
{
	if (!autoReloadForm) return;
	if (currentSeconds == 0) reloadCart();
	else 
	{
		saveTimer = window.setTimeout("reloadCountDown();", 1000);
		var autoReloadDIV = top.document.getElementById("autoReloadDIV");
		if (autoReloadDIV) 
		{
			autoReloadDIV.innerHTML = "Aktualisiere in " + currentSeconds + "s";
		}
	}
	currentSeconds--;
}

function reloadCart()
{
	if (session_id) 
	{
		var reloadForm = top.document.getElementById("reloadForm");
		if (reloadForm) 
		{
			if (reloadForm.elements["scrollTo"]) reloadForm.elements["scrollTo"].value = getScrollTop();
			reloadForm.submit();
		}
	}

	formObj = null;
	session_id = null;
	layout = null;
	clearCartTimeout();
}

function saveShoppingCart(oFormObj, sSession_id, sLayout, sUrl, sDomain)
{
	if (sUrl == null) sUrl = "save";
	if (sUrl == "save")
	{
		clearCartTimeout();
		formObj = oFormObj;
		session_id = sSession_id;
		layout = sLayout;
		currentSeconds = 5;
		reloadCountDown();
		formObj.hiddenMessage.value = "Menge geändert";
		formObj.hiddenMessage.style.display = "block";
	}
	reloadShoppingCart(oFormObj, sSession_id, sLayout, sUrl, sDomain);
}

function reloadShoppingCart(formObj, session_id, layout, url, sDomain)
{
	if (session_id == null) session_id = gHash.split("").reverse().join("");
	if (sDomain == null) sDomain = gRootPath;
	var query = "";
	if (formObj.quantity != null) query += "&quantity=" + escape(formObj.quantity.value);
	if (formObj.userText != null) query += "&userText=" + escape(formObj.userText.value);
	if (formObj.interval != null) query += "&interval=" + escape(formObj.interval.value);
	if (formObj.cartType != null) query += "&cartType=" + escape(formObj.cartType.value);
	if (formObj.unit != null) query += "&unit=" + escape(formObj.unit.value);
	if (formObj.ArticleNo != null) query += "&ArticleNo=" + escape(formObj.ArticleNo.value);
	if (formObj.addToCart != null) query += "&addToCart=" + escape(formObj.addToCart.value);
	if (formObj.isPL != null) query += "&isPL=" + escape(formObj.isPL.value);
	if (formObj.plID != null) query += "&plID=" + escape(formObj.plID.value);
	if (formObj.pgID != null) query += "&pgID=" + escape(formObj.pgID.value);
	if (layout != null) query += "&layout=" + escape(layout);
	if (formObj._hiddenFieldSecurity != null) query += "&_hiddenFieldSecurity=" + escape(formObj._hiddenFieldSecurity.value);
	if (formObj._hiddenFields != null) query += "&_hiddenFields=" + escape(formObj._hiddenFields.value);	

	if (url == null) url = sDomain + "includes/shopReloadShoppingCartAjax.php";
	else if (url == "save") url = sDomain + "includes/shopSaveShoppingCartAjax.php";
	else url = sDomain + url;

	var xmlhttp;
	if (window.XMLHttpRequest)
	{
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	}
	else
	{
		// code for IE6, IE5
		try { xmlhttp = new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }
		catch(e) {}
	
		// IE5
		try { xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ; }
		catch(e) {}
		
	}

	if (xmlhttp)
	{
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && xmlhttp.responseText != "")
			{
				document.getElementById("cartPreviewDIV").innerHTML = xmlhttp.responseText;
			}
		}
		if (session_id.indexOf("_s=") == -1) session_id = "_s=" + session_id;
		xmlhttp.open("GET", url + "?" + session_id + query, true);
		xmlhttp.send();
	}
}

var autoCloseWindows = [];
function openWindow(url, target)
{	
	if (target == "" || !target) target = "_self";
	if (autoCloseWindows[target] != null && !autoCloseWindows[target].closed) autoCloseWindows[target].location.href = url;
	else
	{
		var win = window.open(url, target, "width=530,height=600,scrollbars=yes,resizable=yes");
		if (target != "_self") autoCloseWindows[target] = win;
	}
	autoCloseWindows[target].focus();
	return true;
}

function autoClose()
{
	for (var i in autoCloseWindows) autoCloseWindows[i].close();
	autoCloseWindows = [];
}

