//Setup cs functions
var csFunctions = {//Start csFunctions
	
	//Cart status dropdown container
	cartStatus: function(){//Start cartStatus
		
		//Get cartEditList
		var cartList = $('cartEditList');
		
		
		//Check if checkout link exists. (Only exists when the cart contains at least one item.)
		if(cartList){//Start checkout link exists
			
			//Cart list exists
			
			//Get view cart link span holder
			var cartViewLink = $('cartToggleHolder');
			
			//Create cartToggle link (This will toggle the dropdown container)
			var cartToggle = new Element('a', {
				'id': 'cartToggle'
			});
			
			//Inject cartToggle link into the document before cartViewLink
			cartToggle.injectBefore(cartViewLink);
			
			//Remove cartViewLink
			cartViewLink.remove();
			
			//Create cart drop down container that will slide up and down
			var cartDropDown = new Fx.Slide(cartList,{transition:Fx.Transitions.Quart.easeOut});
			
			//Get the cart toggle link created earlier
			var cartToggle = $('cartToggle');
			
			//Set view text and title
			var cartViewText = 'View cart';
			var cartViewTitle = 'View the contents of your cart';
			
			//Set close text and title
			var cartCloseText = 'Hide cart';
			var cartCloseTitle = 'Hide your cart';
			
			//Get cart toggle state from the cookie
			var cartToggleState = parseInt(Cookie.get('cartToggleState'));
			
			//Check initial toggle state
			if(cartToggleState){//Start check initial state
				
				//Is set
				
				//Show cart
				cartDropDown.show();
				
				//Set link text and title
				cartToggle.setHTML('<span>'+cartCloseText+'</span>');
				cartToggle.setProperty('title',cartCloseTitle);
				cartToggle.removeClass('cartOpen');
				cartToggle.addClass('cartClose');
				
			}else{//Else check initial state
				
				//Not set
				
				//Hide cart
				cartDropDown.hide();
				
				//Set link text and title
				cartToggle.setHTML('<span>'+cartViewText+'</span>');
				cartToggle.setProperty('title',cartViewTitle);
				cartToggle.removeClass('cartClose');
				cartToggle.addClass('cartOpen');
				
			}//End check initial state
			
			//Click event for cart toggle
			cartToggle.addEvent('click', function(){//Start click event
				
				//Check current state of cart container
				if(cartToggleState){//Start check state
					
					//Is open
					
					//Close container
					cartDropDown.slideOut();
					
					//Set internal state
					cartToggleState = 0;
					
					//Set cookie state
					Cookie.set('cartToggleState', '0', {duration: 1, path: "/"});
					
					//Change link text and title
					cartToggle.setHTML('<span>'+cartViewText+'</span>');
					cartToggle.setProperty('title',cartViewTitle);
					cartToggle.removeClass('cartClose');
					cartToggle.addClass('cartOpen');
	
				}else{//Else check state
					
					//Is closed
					
					//Open container
					cartDropDown.slideIn();
					
					//Set internal state
					cartToggleState = 1;
					
					//Save state as closed
					Cookie.set('cartToggleState', '1', {duration: 1, path: "/"});
					
					//Change link text and title
					cartToggle.setHTML('<span>'+cartCloseText+'</span>');
					cartToggle.setProperty('title',cartCloseTitle);
					cartToggle.removeClass('cartOpen');
					cartToggle.addClass('cartClose');
					
				}//End check state
				
			});//End click event
		
		}//End checkout link exists
		
	},//End cartStatus
	
	//Load the slideshow
	loadSlideshow: function(){//Start loadSlideshow
		
		var container = $('slideshow');
		
		if(container){//Start check container
			
			var myGallery = new gallery(container, {
				timed: true,
				showArrows: false,
				showCarousel: false,
				showInfopane: false,
				lightbox:false
			});
			
		}//End check container
		
	},//End loadSlideshow
	
	//Initialise functions
	init: function(){
		//Cart status drop down
		this.cartStatus();
		//load slideshows
		this.loadSlideshow();
	}
	
};//End csFunctions

window.onDomReady(csFunctions.init.bind(csFunctions));
