if(!(createAjaxObj)) {
	function createAjaxObj() {
		var httprequest=false;
		if(window.XMLHttpRequest) { // if mozilla, safari etc
			httprequest=new XMLHttpRequest();
			if(httprequest.overrideMimeType) {
				httprequest.overrideMimeType("text/xml");
			}
		} else if (window.ActiveXObject) { // if ie
			try {
				httprequest=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					httprequest=new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
				}
			}
		}
		return httprequest;
	}
}

function cart_setup() {
	var _t_and_c_link = document.getElementById("t_and_c_link");
	if(_t_and_c_link) {
		Event.observe(_t_and_c_link,"click",t_and_c_disp);
		
		// Event.observe(_t_and_c_link,"keydown",t_and_c_disp);
	}
	
	new ajax_cart();
}

function ajax_cart() {
	this.initialize();
}

ajax_cart.prototype.initialize = function() {
	var instance      = this;
	this.ajaxobj      = createAjaxObj();
	this.callback     = "/cache/ajax/shared/cart_update.php";
	this.waiting      = false;
	
	// general cart setup
	var _submit_button_box = widget_get_elements_by_name("submit_box","span");
	if(_submit_button_box && _submit_button_box.length > 0) {
		// alert("found "+_submit_button_box.length+" submit_boxes...");
		for(var i=0,ic=_submit_button_box.length;i<ic;i++) {
			if(_submit_button_box[i]) {
				_submit_button_box[i].style.display = "";
			}
		}
	}
	
	var _submit_update_buttons = document.getElementsByName("submit_update");
	if(_submit_update_buttons && _submit_update_buttons.length > 0) {
		for(var i=0,ic=_submit_update_buttons.length;i<ic;i++) {
			if(_submit_update_buttons[i]) {
				_submit_update_buttons[i].style.display = "none";
			}
		}
	}
	
	var _quantity_fields = document.getElementsByName("p_product_qty");
	if(_quantity_fields && _quantity_fields.length > 0) {
		for(var i=0,ic=_quantity_fields.length;i<ic;i++) {
			if(_quantity_fields[i] && _quantity_fields[i].getAttribute) {
				// alert(_quantity_fields[i].getAttribute("id"));
				
				// _quantity_fields[i].readonly = true;
				(function() {
					widget_set_read_only(_quantity_fields[i].getAttribute("id"),true);
				})();
			}
		}
	}
	
	this.register_events();
}

ajax_cart.prototype.capture_form_submit = function(event) {
	Event.stop(event);
	// ...
	
	// alert("ajax_cart.prototype.capture_form_submit: "+event);
}

ajax_cart.prototype.get_waiting = function() {
	return this.waiting;
}

ajax_cart.prototype.set_waiting = function(state) {
	if(typeof(state) == "boolean") {
		this.waiting = state;
	}
}

ajax_cart.prototype.quantity_change = function(event) {
	var tag = Event.element(event).tagName.toLowerCase();
	var args = $A(arguments); args.shift();
	// alert("ajax_cart.prototype.quantity_change: "+tag+", other args: "+args.join(", "));
	
	// alert("_product_quantity_direction: "+args[0]+"\n_product_position: "+args[1]+"\n_product_quantity_maximum: "+args[2]+"\n_product_quantity_available: "+args[3]+"\n_product_group_id: "+args[4]);
	
	if(args && this.get_waiting() == false) {
		this.set_waiting(true);
		// alert("ajax_cart.prototype.quantity_change: "+event);
		
		if(args[0] && (args[1]>=0) && (args[2]>=0) && (args[3]>=0)) {
			// args[0] - defines direction of quantity change
			var _quantity_direction = args[0];
			// args[1] - defines product position in the cart listing
			var _product_position   = args[1];
			// args[2] - defines product quantity maximum
			var _quantity_maximum   = args[2];
			// args[3] - defines product quantity available
			var _quantity_available = args[3];
			// args[4] - defines product group id
			var _product_group      = ((parseInt(args[4])>=0)?parseInt(args[4]):"0");
			
			var _quantity_field = document.getElementById("p_product_qty_"+_product_group+"_"+_product_position);
			if(_quantity_field) {
				widget_change_quantity("p_product_qty_"+_product_group+"_"+_product_position,1,_quantity_maximum,((_quantity_direction < 0)?"-":"+"));
				
				if(_quantity_field.value>=0) {
					_quantity_value = parseInt(_quantity_field.value);
					
					var _submit_del_button = document.getElementById("submit_del_"+_product_group+"_"+_product_position);
					var _submit_add_button = document.getElementById("submit_add_"+_product_group+"_"+_product_position);
					if(_submit_del_button && _submit_add_button) {
						if(_quantity_value <= 1) {
							_submit_del_button.src      = "/cache/images/shared/widgets/cart_del_gray.png";
							_submit_del_button.disabled = true;
						} else {
							_submit_del_button.src      = "/cache/images/shared/widgets/cart_del.png";
							_submit_del_button.disabled = false;
						}
						if(_quantity_value >= _quantity_maximum) {
							_submit_add_button.src      = "/cache/images/shared/widgets/cart_add_gray.png";
							_submit_add_button.disabled = true;
						} else {
							_submit_add_button.src      = "/cache/images/shared/widgets/cart_add.png";
							_submit_add_button.disabled = false;
						}
					}
					
					// alert("calling update("+_product_position+","+_quantity_value+","+_product_group+")");
					
					return this.update(_product_position,_quantity_value,_product_group);
				}
			}
		}
	}
	return false;
}

ajax_cart.prototype.delivery_change = function() {
	var tag = Event.element(event).tagName.toLowerCase();
	var args = $A(arguments); args.shift();
	
	// alert("ajax_cart.prototype.quantity_change: "+tag+", other args: "+args.join(", "));
	
	if(args && this.get_waiting() == false) {
		this.set_waiting(true);
		
		if(args[0]) { // args[0] - contains a reference to the special delivery checkbox dom object
			var _special_delivery_checkbox = args[0];
			if(_special_delivery_checkbox) {
				return this.update(null,null,null,((_special_delivery_checkbox.checked)?1:0));
			}
		}
	}
	return false;
}

ajax_cart.prototype.register_events = function() {
	var _product_quantity_forms = document.getElementsByName("product_quantity_form");
	if(_product_quantity_forms && _product_quantity_forms.length > 0) {
		
		// alert("found "+_product_quantity_forms.length+" product_quantity_forms...");
		
		for(var i=0,ic=_product_quantity_forms.length;i<ic;i++) {
			if(_product_quantity_forms[i] && _product_quantity_forms[i].getAttribute) {
				// observe the form submission events and capture them
				Event.observe(_product_quantity_forms[i],"submit",this.capture_form_submit.bind(this));
			}
		}
	}
	
	var _submit_add_buttons = document.getElementsByName("submit_add");
	// alert("_submit_add_buttons: "+_submit_add_buttons);
	
	if(_submit_add_buttons && _submit_add_buttons.length > 0) {
		// alert("found "+_submit_add_buttons.length+" submit_add buttons...");
		
		for(var i=0,ic=_submit_add_buttons.length;i<ic;i++) {
			if(_submit_add_buttons[i] && _submit_add_buttons[i].getAttribute) {
				_submit_add_buttons[i].style.display = "";
				
				var _product_quantity_direction = 1;
				var _product_group_id           = ((_submit_add_buttons[i].getAttribute("product_group"))?_submit_add_buttons[i].getAttribute("product_group"):"0");
				var _product_position           = _submit_add_buttons[i].getAttribute("product_position");
				var _product_quantity_maximum   = _submit_add_buttons[i].getAttribute("product_quantity_maximum");
				var _product_quantity_available = _submit_add_buttons[i].getAttribute("product_quantity_available");
				var _product_quantity_field     = document.getElementById("p_product_qty_"+_product_group_id+"_"+_product_position);
				
				if(_product_quantity_field) {
					_product_quantity_field.style.display = "none";
					
					if(_product_quantity_field.value>=0) {
						var _product_quantity_field_value = parseInt(_product_quantity_field.value);
						if(_product_quantity_field_value >= _product_quantity_maximum) {
							_submit_add_buttons[i].src = "/cache/images/shared/widgets/cart_add_gray.png";
							_submit_add_buttons[i].disabled = true;
						}
					}
				}
				
				Event.observe(_submit_add_buttons[i],"click",this.quantity_change.bindAsEventListener(this,_product_quantity_direction,_product_position,_product_quantity_maximum,_product_quantity_available,_product_group_id));
			}
		}
	}
	
	var _submit_del_buttons = document.getElementsByName("submit_del");
	if(_submit_del_buttons && _submit_del_buttons.length > 0) {
		for(var i=0,ic=_submit_del_buttons.length;i<ic;i++) {
			if(_submit_del_buttons[i] && _submit_del_buttons[i].getAttribute) {
				_submit_del_buttons[i].style.display = "";
				
				var _product_quantity_direction = -1;
				var _product_group_id           = ((_submit_del_buttons[i].getAttribute("product_group"))?_submit_del_buttons[i].getAttribute("product_group"):"0");
				var _product_position           = _submit_del_buttons[i].getAttribute("product_position");
				var _product_quantity_maximum   = _submit_del_buttons[i].getAttribute("product_quantity_maximum");
				var _product_quantity_available = _submit_del_buttons[i].getAttribute("product_quantity_available");
				var _product_quantity_field     = document.getElementById("p_product_qty_"+_product_group_id+"_"+_product_position);
				
				if(_product_quantity_field) {
					_product_quantity_field.style.display = "none";
					
					if(_product_quantity_field.value>=0) {
						var _product_quantity_field_value = parseInt(_product_quantity_field.value);
						if(_product_quantity_field_value < 2) {
							_submit_del_buttons[i].src = "/cache/images/shared/widgets/cart_del_gray.png";
							_submit_del_buttons[i].disabled = true;
						}
					}
				}
				
				Event.observe(_submit_del_buttons[i],"click",this.quantity_change.bindAsEventListener(this,_product_quantity_direction,_product_position,_product_quantity_maximum,_product_quantity_available,_product_group_id));
			}
		}
	}
	
	var _special_delivery_form_element = document.getElementById("p_special_delivery_form");
	var _special_delivery_checkbox_element = document.getElementById("p_special_delivery");
	if(_special_delivery_form_element && _special_delivery_checkbox_element) {
		
		Event.observe(_special_delivery_checkbox_element,"click",this.delivery_change.bindAsEventListener(this,_special_delivery_checkbox_element));
		
		var _special_delivery_update_button_element = document.getElementById("p_special_delivery_submit");
		if(_special_delivery_update_button_element) {
			_special_delivery_update_button_element.style.display = "none";
		}
	}
}

ajax_cart.prototype.update = function(position,quantity,group,shipping) {
	// alert("ajax_cart.prototype.update(position:"+((position>=0)?position:"?")+",quantity:"+((quantity>=0)?quantity:"?")+",group:"+((group>=0)?group:"?")+",shipping:"+((shipping>=0)?shipping:"?"));
	var query_string = ((position && quantity)?"position="+position+"&quantity="+quantity+((group && parseInt(group) > 0)?"&grouping="+group:""):"")+((!(typeof(shipping) == "undefined") && shipping >= 0)?"shipping="+shipping:"");
	this.update_request(query_string);
	return false;
}

// function gets xml image data
ajax_cart.prototype.update_request = function(query_string) {
	var dateobj = new Date(); var timestamp = dateobj.getTime();
	if(this.ajaxobj) {
		if(window.ActiveXObject) { // test for IE, if IE we need to set onreadystatechange ***after*** calling open() otherwise all reference to the handler is lost for subsequent requests!!!!!
			this.ajaxobj.open("GET",this.callback+((query_string && query_string.length && query_string.length > 0)?"?"+query_string+"&timestamp="+timestamp:"?timestamp="+timestamp),true);
			this.ajaxobj.onreadystatechange = this.update_get_data.bind(this);
		} else { // for safari, firefox, webkit, etc, standards-based implementations, initiate the onreadystatechange handler before calling open()
			this.ajaxobj.onreadystatechange = this.update_get_data.bind(this);
			this.ajaxobj.open("GET",this.callback+((query_string && query_string.length && query_string.length > 0)?"?"+query_string+"&timestamp="+timestamp:"?timestamp="+timestamp),true);
		}
		this.ajaxobj.send(null);
	} else {
		// alert("ajax_cart.prototype.update_request(): the ajaxobj has gone missing or something!!");
	}
}

ajax_cart.prototype.update_get_data = function() {
	// alert("ajax_cart.prototype.update_get_data called: readyState: "+((this.ajaxobj.readyState)?this.ajaxobj.readyState:"?")+", status: "+((this.ajaxobj.status)?this.ajaxobj.status:"?")+", responseText: "+((this.ajaxobj.responseText)?this.ajaxobj.responseText:"?"));
	if(this.ajaxobj.readyState == 4) { //if request of file completed
		if(this.ajaxobj.status == 200) { //if request was successful
			if(this.ajaxobj.responseText && this.ajaxobj.responseText.length > 0) {
				this.set_waiting(false);
				// alert("ajax_cart.prototype.update_get_data called: readyState: "+((this.ajaxobj.readyState)?this.ajaxobj.readyState:"?")+", status: "+((this.ajaxobj.status)?this.ajaxobj.status:"?")+", responseText: "+((this.ajaxobj.responseText)?this.ajaxobj.responseText:"?"));
				this.update_display(this.ajaxobj.responseText);
			}
		}
	}
}

ajax_cart.prototype.update_display = function(data_string) {
	// alert("ajax_cart.prototype.update_display: "+data_string);
	
	if(data_string && data_string.length && data_string.length > 0) {
		try {
			var cart_data = eval("(" +data_string + ")");
			//alert("ajax_cart.prototype.update_display serialized: "+serialize(cart_data));
			
			if(typeof(cart_data) == "function" || typeof(cart_data) == "object") {
				var header_cart_summary = document.getElementById("header_cart_summary");
				if(header_cart_summary && cart_data.cart_summary && cart_data.cart_summary.length && cart_data.cart_summary.length > 0) {
					header_cart_summary.innerHTML = cart_data.cart_summary;
				}
				
				if(cart_data.cart_name_products) {
					// alert("ajax_cart.prototype.update_display (cart_name_products): "+serialize(cart_data.cart_name_products));
					
					var cart_name_products = widget_get_elements_by_name("cart_name_product","span");
					if(cart_name_products && (typeof(cart_name_products) == "object" || typeof(cart_name_products) == "function") && cart_name_products.length > 0) {
						// alert("cart_quantity_products: "+cart_quantity_products.length);
						for(var i=0,ic=cart_name_products.length;i<ic;i++) {
							if(cart_name_products[i] && cart_name_products[i].getAttribute) {
								var _group_id = cart_name_products[i].getAttribute("group");
								var _position = cart_name_products[i].getAttribute("position");
								if(_group_id >= 0 && _position >= 0) {
									if(cart_data.cart_name_products && cart_data.cart_name_products[_group_id] && cart_data.cart_name_products[_group_id][_position] && cart_data.cart_name_products[_group_id][_position]["product"]) {
										cart_name_products[i].innerHTML = cart_data.cart_name_products[_group_id][_position]["product"];
									}
								}
							}
						}
					}
					
					var cart_name_product_addon = widget_get_elements_by_name("cart_name_product_addon","span");
					if(cart_name_product_addon && (typeof(cart_name_product_addon) == "object" || typeof(cart_name_product_addon) == "function") && cart_name_product_addon.length > 0) {
						for(var i=0,ic=cart_name_product_addon.length;i<ic;i++) {
							if(cart_name_product_addon[i] && cart_name_product_addon[i].getAttribute) {
								var _group_id = cart_name_product_addon[i].getAttribute("group");
								var _position = cart_name_product_addon[i].getAttribute("position");
								var _addon    = cart_name_product_addon[i].getAttribute("addon");
								if(_group_id >= 0 && _position >= 0 && _addon >= 0) {
									if(cart_data.cart_name_products && cart_data.cart_name_products[_group_id] && cart_data.cart_name_products[_group_id][_position] && cart_data.cart_name_products[_group_id][_position]["addons"] && cart_data.cart_name_products[_group_id][_position]["addons"][_addon]) {
										cart_name_product_addon[i].innerHTML = cart_data.cart_name_products[_group_id][_position]["addons"][_addon];
									}
								}
							}
						}
					}
				}
				
				var cart_quantity_products = widget_get_elements_by_name("cart_quantity_product","span");
				if(cart_quantity_products && (typeof(cart_quantity_products) == "object" || typeof(cart_quantity_products) == "function") && cart_quantity_products.length > 0) {
					// alert("cart_quantity_products: "+cart_quantity_products.length);
					for(var i=0,ic=cart_quantity_products.length;i<ic;i++) {
						if(cart_quantity_products[i] && cart_quantity_products[i].getAttribute) {
							var _group_id = cart_quantity_products[i].getAttribute("group");
							var _position = cart_quantity_products[i].getAttribute("position");
							if(_group_id >= 0 && _position >= 0) {
								if(cart_data.cart_quantity_products && cart_data.cart_quantity_products[_group_id] && cart_data.cart_quantity_products[_group_id][_position] && cart_data.cart_quantity_products[_group_id][_position]["product"]) {
									cart_quantity_products[i].innerHTML = cart_data.cart_quantity_products[_group_id][_position]["product"];
								}
							}
						}
					}
				}
				
				var cart_quantity_product_addon = widget_get_elements_by_name("cart_quantity_product_addon","span");
				if(cart_quantity_product_addon && (typeof(cart_quantity_product_addon) == "object" || typeof(cart_quantity_product_addon) == "function") && cart_quantity_product_addon.length > 0) {
					for(var i=0,ic=cart_quantity_product_addon.length;i<ic;i++) {
						if(cart_quantity_product_addon[i] && cart_quantity_product_addon[i].getAttribute) {
							var _group_id = cart_quantity_product_addon[i].getAttribute("group");
							var _position = cart_quantity_product_addon[i].getAttribute("position");
							var _addon    = cart_quantity_product_addon[i].getAttribute("addon");
							if(_group_id >= 0 && _position >= 0 && _addon >= 0) {
								if(cart_data.cart_quantity_products && cart_data.cart_quantity_products[_group_id] && cart_data.cart_quantity_products[_group_id][_position] && cart_data.cart_quantity_products[_group_id][_position]["addons"] && cart_data.cart_quantity_products[_group_id][_position]["addons"][_addon]) {
									cart_quantity_product_addon[i].innerHTML = cart_data.cart_quantity_products[_group_id][_position]["addons"][_addon];
								}
							}
						}
					}
				}
				
				var cart_price_products = widget_get_elements_by_name("cart_price_product","span");
				if(cart_price_products && cart_price_products.length > 0) {
					for(var i=0,ic=cart_price_products.length;i<ic;i++) {
						if(cart_price_products[i] && cart_price_products[i].getAttribute) {
							var _group_id = cart_price_products[i].getAttribute("group");
							var _position = cart_price_products[i].getAttribute("position");
							if(_group_id >= 0 && _position >= 0) {
								if(cart_data.cart_price_products && cart_data.cart_price_products[_group_id] && cart_data.cart_price_products[_group_id][_position] && cart_data.cart_price_products[_group_id][_position]["product"]) {
									cart_price_products[i].innerHTML = this.currency_format(cart_data.cart_price_products[_group_id][_position]["product"],cart_data.cart_currency.symbol,cart_data.cart_currency.symbol_position,cart_data.cart_currency.decimal_separator,cart_data.cart_currency.thousands_separator);
								}
							}
						}
					}
				}
				
				var cart_price_products_addons = widget_get_elements_by_name("cart_price_product_addon","span");;
				if(cart_price_products_addons && cart_price_products_addons.length > 0) {
					for(var i=0,ic=cart_price_products_addons.length;i<ic;i++) {
						if(cart_price_products_addons[i] && cart_price_products_addons[i].getAttribute) {
							var _group_id = cart_price_products_addons[i].getAttribute("group");
							var _position = cart_price_products_addons[i].getAttribute("position");
							var _addon    = cart_price_products_addons[i].getAttribute("addon");
							if(_group_id >= 0 && _position >= 0 && _addon >= 0) {
								if(cart_data.cart_price_products && cart_data.cart_price_products[_group_id] && cart_data.cart_price_products[_group_id][_position] && cart_data.cart_price_products[_group_id][_position]["addons"] && cart_data.cart_price_products[_group_id][_position]["addons"][_addon]) {
									cart_price_products_addons[i].innerHTML = this.currency_format(cart_data.cart_price_products[_group_id][_position]["addons"][_addon],cart_data.cart_currency.symbol,cart_data.cart_currency.symbol_position,cart_data.cart_currency.decimal_separator,cart_data.cart_currency.thousands_separator);
								}
							}
						}
					}
				}
				
				var cart_name_shipping = widget_get_elements_by_name("cart_name_shipping","span");
				if(cart_name_shipping && cart_name_shipping.length > 0) {
					for(var i=0,ic=cart_name_shipping.length;i<ic;i++) {
						if(cart_name_shipping[i] && cart_name_shipping[i].getAttribute) {
							var _group_id = cart_name_shipping[i].getAttribute("group");
							if(_group_id >= 0) {
								if(cart_data.cart_shipping && cart_data.cart_shipping[_group_id] && cart_data.cart_shipping[_group_id]["name"]) {
									cart_name_shipping[i].innerHTML = cart_data.cart_shipping[_group_id]["name"];
								}
							}
						}
					}
				}
				
				var cart_price_shipping = widget_get_elements_by_name("cart_price_shipping","span");
				if(cart_price_shipping && cart_price_shipping.length > 0) {
					for(var i=0,ic=cart_price_shipping.length;i<ic;i++) {
						if(cart_price_shipping[i] && cart_price_shipping[i].getAttribute) {
							var _group_id = cart_price_shipping[i].getAttribute("group");
							if(_group_id >= 0) {
								if(cart_data.cart_shipping && cart_data.cart_shipping[_group_id] && cart_data.cart_shipping[_group_id]["price"]) {
									cart_price_shipping[i].innerHTML = this.currency_format(cart_data.cart_shipping[_group_id]["price"],cart_data.cart_currency.symbol,cart_data.cart_currency.symbol_position,cart_data.cart_currency.decimal_separator,cart_data.cart_currency.thousands_separator);
								}
							}
						}
					}
				}
				
				var cart_price_total = widget_get_elements_by_name("cart_price_total","span");
				if(cart_price_total && cart_price_total.length > 0) {
					for(var i=0,ic=cart_price_total.length;i<ic;i++) {
						if(cart_price_total[i] && cart_price_total[i].getAttribute) {
							var _group_id = cart_price_total[i].getAttribute("group");
							if(_group_id >= 0) {
								// alert("cart_price_total, group:"+_group_id);
								if(cart_data.cart_price_total && cart_data.cart_price_total[_group_id]) {
									cart_price_total[i].innerHTML = this.currency_format(cart_data.cart_price_total[_group_id],cart_data.cart_currency.symbol,cart_data.cart_currency.symbol_position,cart_data.cart_currency.decimal_separator,cart_data.cart_currency.thousands_separator);
								}
							}
						}
					}
				}
				return false;
			} else {
				
				// alert("cart_data was invalid!");
				
				return true;
			}
		} catch(e) {
			alert("an error occured: "+e);
		}
	} else {
		return true;
	}
}

ajax_cart.prototype.currency_format = function(amount,symbol,symbol_position,decimal_separator,thousands_separator) {
	var symbol              = ((symbol == undefined)?"":symbol);
	var symbol_position     = ((symbol_position == undefined)?0:parseInt(symbol_position));
	var decimal_separator   = ((decimal_separator == undefined)?".":decimal_separator);
	var thousands_separator = ((thousands_separator == undefined)?"":thousands_separator);
	var ret = "";
	
	switch(symbol_position) {
		case(1): { // place symbol before amount but with a space between
			ret = symbol + " " + this.number_format(amount,2,decimal_separator,thousands_separator);
			break;
		}
		case(2): { // place symbol after amount
			ret = this.number_format(amount,2,decimal_separator,thousands_separator) + symbol;
			break;
		}
		case(3): { // place symbol after amount but with a space between
			ret = this.number_format(amount,2,decimal_separator,thousands_separator) + " " + symbol;
			break;
		}
		default: { // place symbol before amount
			ret = symbol + this.number_format(amount,2,decimal_separator,thousands_separator);
			break;
		}
	}
	return ret;
}

ajax_cart.prototype.number_format = function(number,decimals,dec_point,thousands_sep) {
	// http://kevin.vanzonneveld.net
	// +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +     bugfix by: Michael White (http://getsprink.com)
	// +     bugfix by: Benjamin Lupton
	// +     bugfix by: Allan Jensen (http://www.winternet.no)
	// +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	// +     bugfix by: Howard Yeend
	// *     example 1: number_format(1234.5678, 2, '.', '');
	// *     returns 1: 1234.57
	
	var n = number, c = ((isNaN(decimals = Math.abs(decimals)))?2:decimals);
	var d = ((dec_point == undefined)?".":dec_point);
	var t = ((thousands_sep == undefined)?",":thousands_sep), s = ((n < 0)?"-":"");
	var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (((j = i.length)>3)?j%3:0);
	
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

Event.observe(window,"load",cart_setup);

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

/*
var prescription_area_count = 0;

function toggle_prescription_info(prescription) {
	if(prescription >= 0) {
		var prescription_info_id = document.getElementById("prescription_info_" + prescription);
		var prescription_show_link_id = document.getElementById("prescription_show_link_" + prescription);
		if(prescription_info_id) {
			if(prescription_info_id.style.display == "none") {
				prescription_info_id.style.display = "block";
				prescription_info_id.style.visibility = "visible";
				
				if(prescription_show_link_id) {
					prescription_show_link_id.title = "Hide prescription details...";
				}
			} else {
				prescription_info_id.style.display = "none";
				prescription_info_id.style.visibility = "hidden";
				
				if(prescription_show_link_id) {
					prescription_show_link_id.title = "Show prescription details...";
				}
			}
		}
	}
}

function hide_prescription_info_areas() {
	for(i=0;i<prescription_area_count;i++) {
		var prescription_info_id = document.getElementById("prescription_info_" + i);
		var prescription_show_link_id = document.getElementById("prescription_show_link_" + i);
		
		if(prescription_info_id) {
			prescription_info_id.style.display    = "none";
			prescription_info_id.style.visibility = "hidden";
			
			if(prescription_show_link_id) {
				prescription_show_link_id.style.visibility = "visible";
				prescription_show_link_id.title = "Show prescription details...";
			}
		}
	}
}
*/

function t_and_c() {
	var ni  = document.getElementById("p_submit_next");
	var tc  = document.getElementById("p_t_and_c");
	
	if(tc && tc.checked) {
		// now that the t&c's have been agreed to, hide them
		// t_and_c_disp();
		return true;
	} else {
		alert("Please ensure you have read the terms & conditions.");
		return false;
	}
}

function t_and_c_disp(e) {
	var tcd = document.getElementById("t_and_c");
	if(tcd && tcd.style) {
		// alert(tcd.style.display);
		if(tcd.style.display == "none") {
			Effect.BlindDown("t_and_c",{duration: 1});
			// tcd.style.display = "block";
		} else {
			Effect.BlindUp("t_and_c",{duration: 1});
			// tcd.style.display = "none";
		}
	}
	
	if(typeof(_template_dreams_fix_column_heights) != "undefined" && _template_dreams_fix_column_heights) {
		_template_dreams_fix_column_heights('cart');
	}
	
	Event.stop(e);
}

function t_and_c_ndisp() {
	var tcd = document.getElementById("t_and_c");
	if(tcd && tcd.style) {
		tcd.style.display = "none";
	}
}

/*
function toggle_details_area(area,state) {
	var area_id = document.getElementById(area);
	if(area_id) {
		if(state === true) {
			area_id.style.display = "block";
		} else if(state === false) {
			area_id.style.display = "none";
		} else {
			if(area_id.style.display == "none") {
				area_id.style.display = "block";
			} else {
				area_id.style.display = "none";
			}
		}
	}
}
function hide_area(area) {
	var area_id = document.getElementById(area);
	
	if(area_id) {
		area_id.style.display = "none";
	}
}
*/

function cart_payment_select(type) {
	if(type && type.length > 0) {
		// console.log("p_payment_method_"+type);
		var payment_method_option_element = document.getElementById("p_payment_method_"+type);
		if(payment_method_option_element) {
			payment_method_option_element.checked = true;
		}
	}
	return false;
}

// addEvent(window,"onload",hide_prescription_info_areas);
