function basketSlide(){

	//assign style of position:absolute on div#header if basket is in it and javascript is on (ie this file runs)
	var header = $('header');
	var slideArea = 'basketContent';
	var contentArea = 'utilsContainer';
	var buttonsArea = 'utilsViewCheckout';
	
	//style fix only for Safari Browser
	var browserType = "";
	browserType = navigator.userAgent.indexOf("Safari");
	if(browserType != -1){
		header.style.cssText = "position: absolute";
	}
	
	if ($(slideArea) && $(contentArea)){
		$(contentArea).setStyle("visibility", "visible");
		// create buttons
		if ($(buttonsArea)) {
			var buttonNames = Array ("Close", "Expand");
			for (var i=0; i<buttonNames.length; i++) {
				var listItem = document.createElement("li");
				var listLink = document.createElement("a");
				$(listLink).setAttribute("href", "#");
				$(listLink).setAttribute("id", buttonNames[i]);
				if (buttonNames[i] == 'Close') {
					//mootools migration to 1.2.4 fix - $(listLink).setHTML('Close Basket');
					$(listLink).set('html', "Close Basket");
				} else {
					//mootools migration to 1.2.4 fix
					$(listLink).set('html','View Basket');
				};
				
				listItem.appendChild(listLink);
				$(listItem).injectTop(buttonsArea);
			}
		}
	
		// instantiate
		var mySlide = new Fx.Slide(slideArea,{
				duration: 600,
				transition: Fx.Transitions.linear,
				onComplete: function(){
					if (state == 'closing'){
						$(contentArea).removeClass('slideExpanded');
						$(contentArea).removeClass('slideCollapsing');
						state = 'ready';
					}
				}
		});
		
		// initalise
		mySlide.hide();
		$(contentArea).addClass('slideReady');
		var state = 'ready';
	
		// expand
		this.expand = function(){
			$(contentArea).removeClass('slideAuto');
			$(contentArea).addClass('slideExpanded');
			state = 'opening';
			mySlide.slideIn();
		};
		
		// close
		this.close = function(){
			$(contentArea).addClass('slideCollapsing');
			state = 'closing';
			mySlide.slideOut();
		};
		
		// show
		this.show = function(ms){
			var _self = this;
			_self.expand();
			$(contentArea).addClass('slideAuto');
			setTimeout(function(ms){
				_self.close();
			}, ms);
		};
	
		// event handlers
		if ($('Expand') && $('Close')){
			$('Expand').addEvent('click', this.expand);
			$('Close').addEvent('click', this.close);
		}
	}
}

window.addEvent('domready', function(){
	basket = new basketSlide();
});
