var packageOptions = {
	activators: "",
	isDisabled: true,
	init: function() {
		var $ = document.id;
		
		if (!$("packageOptions")) return;
		packageOptions.activators = this.getActivators();
		
		for (i=0; i < packageOptions.activators.length; i++) {
			packageOptions.activators[i].addClass("enhanced");
			
			// radio button
			packageOptions.activators[i].radioButton = packageOptions.activators[i].getElements("input.radio")[0];
			
			// click event
			packageOptions.activators[i].onclick = packageOptions.click;

			// button is not checked or product is not available so button is disabled
			if (!packageOptions.activators[i].radioButton.checked || packageOptions.activators[i].hasClass("na")) {
				packageOptions.isDisabled = true;
			} 
			// button could be checked but is available so button enabled
			else {
				packageOptions.isDisabled = false;
			}

			// set button state for checked button
			if (packageOptions.activators[i].radioButton.checked) {
				this.setAddToBasketState();
			}
		}
	},
	setAddToBasketState: function() {
		var $ = document.id;
		
		var addToBasketButton = $("addProduct");
		if (addToBasketButton == null) {
			return;
		}
		if (packageOptions.isDisabled == true) {
			addToBasketButton.src = staticRoot + "img/btn_addtobasket_disabled.gif";
			addToBasketButton.onclick = function() {
				return false;
			}
		}
		else {
			addToBasketButton.src = staticRoot + "img/btn_addtobasket.gif";
			addToBasketButton.onclick = function(){
				var url = document.getElementById("hiddenURL").value;
				minicart.addProduct(document.forms.cartaddproduct, url);
				return false;
			}
		}
		
	},
	getActivators: function() {
		return ($$("#packageOptions ul.packages li"));
	},
	click: function() {
		// not needed, because we use label now
	//	this.radioButton.checked = true;
		
		var len =document.cartaddproduct.package.length
		for (i=0;i<len;i++){
			if (document.cartaddproduct.package[i].checked)
			{
				document.getElementById("pid").value=document.cartaddproduct.package[i].value;
			}
		}
		
		if (this.hasClass("na")) {
			packageOptions.isDisabled = true;
		}
		else {
			packageOptions.isDisabled = false;
		}
		packageOptions.setAddToBasketState();
		
		// get variant product data by Ajax request
		// require productsupportinfo_config.js
		swapVariantByAjax();
	}
}

window.addEvent('load', function(){ packageOptions.init(); });

