function addEvent(elm, evType, fn, useCapture)
{
	if(elm.addEventListener)
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if(elm.attachEvent)
	{
		var r = elm.attachEvent("on" + evType, fn);
		return r;
	}
	else
	{
		elm["on" + evType] = fn;
	}
}

function initPage()
{
	var blocks = document.getElementsByTagName("div");
	for (var i=0; i<blocks.length; i++)
	{
		if (blocks[i].className.indexOf("roll") != -1)
		{
			//if ( blocks[i].className.indexOf("close") == -1 ) blocks[i].className += " close";
			var links = blocks[i].getElementsByTagName("a");

				for (var k=0; k<links.length; k++) {

					if (links[k].className == "button") {
						links[k]._parent = links[k].parentNode.parentNode.parentNode;
						if (links[k].parentNode.tagName == "H4")
						{
							links[k]._parent = links[k].parentNode.parentNode.parentNode.parentNode;
						}
						links[k].onclick = function()
						{
							if ( this._parent.className.indexOf("close") != -1 )
							{
								this._parent.className = this._parent.className.replace("close", "");
							}
							else
							{
								this._parent.className += " close";
							}
							return false;
						}
				}
			}
		}
	}
}

function initTabs()
{
	var sets = document.getElementsByTagName("div");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					//reset all tabs on start
					if (c) if (links[j].className.indexOf("active") != -1) c.style.display = "block";
					else c.style.display = "none";

					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							//reset all tabs before change
							for (var i = 0; i < this.tabs.length; i++)
							{
								document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1)).style.display = "none";
								this.tabs[i].className = this.tabs[i].className.replace(/active/g, "");
							}
							this.className += " active";
							c.style.display = "block";
							return false;
						}
					}
				}
			}
		}
	}
}

function initSwitcher() {
	var _inputs = document.getElementsByTagName("input");
	var _options = [];
	for (i = 0; i < _inputs.length; i++)
	{
		if ((_inputs[i].type == "checkbox") && (_inputs[i].className.indexOf("topbox") != -1))
		{
					_options.push(_inputs[i]);
					_inputs[i]._options = _options;

					_inputs[i]._parent = _inputs[i].parentNode.parentNode;
					if (!_inputs[i].checked)
					{
						_inputs[i]._parent.className += " close";
					}

					_inputs[i].onclick = function() {

						for (var j = 0; j < this._options.length; j++)
						{
							if(this._options[j].id == this.id)
							{
								this.checked = true;
								this._parent.className = this._parent.className.replace(/close/g, "");
							}
							else
							{
								this._options[j].checked = false;
								if(this._options[j]._parent.className.indexOf("close") == -1)
								{
									this._options[j]._parent.className += " close";
								}
							}
						}
					}
		}
	}
}

function initPaymentSwitcher() {
	var _inputs = document.getElementsByTagName("input");
	var _options = [];
	for (i = 0; i < _inputs.length; i++)
	{
		if ((_inputs[i].type == "radio") && (_inputs[i].className.indexOf("tooglePayment") != -1))
		{
					_options.push(_inputs[i]);
					_inputs[i]._options = _options;

					//_inputs[i]._parent = _inputs[i].parentNode.parentNode;
					//if (!_inputs[i].checked)
					//{
					//	_inputs[i]._parent.className += " close";
					//}

					_inputs[i].onclick = function() {

						if(this.value == "credit_card")
						{
							if(document.getElementById("paymentCreditCardContainer"))
							{
								document.getElementById("paymentCreditCardContainer").style.display = "";
							}
							if(document.getElementById("paymentInvoiceContainer"))
							{
								document.getElementById("paymentInvoiceContainer").style.display = "none";
							}
						}
						if(this.value == "invoice")
						{
							if(document.getElementById("paymentCreditCardContainer"))
							{
								document.getElementById("paymentCreditCardContainer").style.display = "none";
							}
							if(document.getElementById("paymentInvoiceContainer"))
							{
								document.getElementById("paymentInvoiceContainer").style.display = "";
							}
						}

					}
		}
	}
}

function WBM_toggleLoadingBox(_action)
{
	if(document.getElementById("loadingBox"))
	{
		if(_action == "display")
		{
			document.getElementById("loadingBox").style.display = "";
		}
		if(_action == "hide")
		{
			// document.getElementById("loadingBox").style.display = "none";
			setTimeout("document.getElementById('loadingBox').style.display = 'none'", 1000);
		}
	}
}

function WBM_displayCartItems(_content)
{
	document.getElementById("idShoppingCartItems").innerHTML = _content;
}

function WBM_displayCart(_action, _website_url)
{
	var callback =
	{
		success : function(obj)
		{
			if(document.getElementById("idShoppingCartDetails"))
			{
				document.getElementById("idShoppingCartDetails").innerHTML = obj.responseText;
			}
		},
		failure : function(obj){ }
	}

	var obj = WBM_XHR.asyncRequest("GET", _website_url + "cart_action.php?action=" + _action, callback);
}

function WBM_updateCart(_action, _id, _quantity, _website_url)
{
	WBM_toggleLoadingBox("display");

	var callback =
	{
		success : function(obj)
		{
			if(_action == "subscription_add")
			{
				document.location = _website_url + '../subscription_checkout_step1.php';
			}
			else if(_action == "subscription_update")
			{
				WBM_displayCart("display_subscription_simple_shopping_cart", _website_url);
				WBM_toggleLoadingBox("hide");
			}
			else if(_action == "add" || _action == "update")
			{
				WBM_displayCartItems(obj.responseText);
				WBM_displayCart("display_simple_shopping_cart", _website_url);
				WBM_toggleLoadingBox("hide");
			}
			else if(_action == "systembolaget_add" || _action == "systembolaget_update")
			{
				WBM_displayCartItems(obj.responseText);
				WBM_displayCart("display_systembolaget_simple_shopping_cart", _website_url);
				WBM_toggleLoadingBox("hide");
			}
		},
		failure : function(obj){ }
	}

	var obj = WBM_XHR.asyncRequest("GET", _website_url + "cart_action.php?action=" + _action + "&id=" + _id + "&quantity=" + _quantity, callback);
}

function WBM_clearCart(_action, _id, _website_url)
{
	WBM_toggleLoadingBox("display");

	var callback =
	{
		success : function(obj)
		{
			if(_action == "subscription_remove")
			{
				WBM_displayCart("display_subscription_simple_shopping_cart", _website_url);
			}
			else if(_action == "remove")
			{
				WBM_displayCartItems(obj.responseText);
				WBM_displayCart("display_simple_shopping_cart", _website_url);
			}
			else if(_action == "systembolaget_remove")
			{
				WBM_displayCartItems(obj.responseText);
				WBM_displayCart("display_systembolaget_simple_shopping_cart", _website_url);
			}
			WBM_toggleLoadingBox("hide");

		},
		failure : function(obj){ }
	}

	var obj = WBM_XHR.asyncRequest("GET", _website_url + "cart_action.php?action=" + _action + "&id=" + _id, callback);
}

function WBM_Bookmark(_action, _id, _website_url)
{
	var callback =
	{
		success : function(obj)
		{
			if(document.getElementById("idBookmarkLink"))
			{
				document.getElementById("idBookmarkLink").innerHTML = unescape(obj.responseText);
			}
		},
		failure : function(obj){ }
	}

	var obj = WBM_XHR.asyncRequest("GET", _website_url + "misc_action.php?action=" + _action + "&id=" + _id, callback);
}

function WBM_RemoveBookmark(_action, _id, _website_url)
{
	var callback =
	{
		success : function(obj)
		{
			if(document.getElementById("bkm_"+_id))
			{
				document.getElementById("bkm_"+_id).style.display = "none";
			}
		},
		failure : function(obj){  }
	}

	var obj = WBM_XHR.asyncRequest("GET", _website_url + "misc_action.php?action=" + _action + "&id=" + _id, callback);
}

function WBM_openWindow(url, PageWidth, PageHeight, _scrollbars, _status)
{
	var popleft = ((document.body.clientWidth - PageWidth) / 2) + window.screenLeft;
	var poptop = ((( document.body.clientHeight - PageHeight) / 2)) + window.screenTop-40;

	str = "" + Math.random() + "";
	_unique_id = str.substr(2, str.length);

	window.open(url, _unique_id ,"status=" + _status + ",resizable=1,scrollbars=" + _scrollbars + ",width=" + PageWidth + ",height=" + PageHeight + ",left=" + popleft + ",top=" + poptop);
}

function doNothing()
{
}


function WBM_updateOrder(_website_url)
{
	var _ret = {};
	var _ret_id = "";
	var _ret_quantity = "";

	var _inputs = document.getElementsByTagName("input");

	WBM_toggleLoadingBox("display");

	for (i = 0; i < _inputs.length; i++)
	{
		if((_inputs[i].type == "checkbox") && (_inputs[i].id.indexOf("ciab_id") != -1))
		{
			if(_inputs[i].checked)
			{
				_ciab_id =  _inputs[i].id.replace(/ciab_id_/, "");;
				_ciab_quantity = document.getElementById("ciab_quantity_" + _ciab_id)[document.getElementById("ciab_quantity_" + _ciab_id).selectedIndex].value;

				if(_ciab_id)
				{
					_ret_id += _ciab_id + ",";
					_ret_quantity += _ciab_quantity + ",";
				}
			}
		}
	}
	_ret_id = _ret_id.substr(0, _ret_id.length - 1);
	_ret_quantity = _ret_quantity.substr(0, _ret_quantity.length - 1);

	WBM_updateCart("add", _ret_id, _ret_quantity, _website_url);
}

addEvent(window, 'load', initPage, false);
addEvent(window, 'load', initTabs, false);
addEvent(window, 'load', initSwitcher, false);
addEvent(window, 'load', initPaymentSwitcher, false);