window.addEvent('domready', function(e){
	// initialise UI
	kamUi.initialise();
	
	// replace fonts
	Cufon.replace('h2');	
	Cufon.replace('.gill');
	
	// setup faders
	var wrapper = document.id('bannerStore');
	if(wrapper){
		var changer = new kamContentChanger(document.id('injectLocation'),{ 
			autoChange: false,
			cellsElement : wrapper,
			autoChange : true,
			maskZIndex : 100,
			startingIndex : 'random'
		});
	}
	
	// do map
	var map = document.id("map");
	if( map ){
		var geocoder = new google.maps.Geocoder();
		if (geocoder) {
			geocoder.geocode( { 'address': "Beaworthy, Devon, EX21 5TT"}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					var myOptions = {
					  zoom: 7,
					  center: results[0].geometry.location,
					  mapTypeControl:false,
					  streetViewControl:false,
					  mapTypeId: google.maps.MapTypeId.ROADMAP
					}
					gmap = new google.maps.Map(map, myOptions);
					var marker = new google.maps.Marker({
						map: gmap, 
						position: results[0].geometry.location,
						icon: "/style/images/mapMarker.png",
						title: "The Ruby Holiday Park"
					});
				}
			});
		}
	}

	
	//fix brochures for no box-shadow browsers
	if( Browser.ie && Browser.version < 9 ){
		var box = document.id("allBrochures");
		if( box ){
			box.addClass("noShadow");
		}
	}

	ticker();
	popupForm();

	// set header width due to absolute positioning
	var windowSizeX = 0;
	
	var setHeader = function(){
		windowSizeX = window.getSize().x; // window width
		if( windowSizeX > 1092  ){ // if window is wider than the outers width stretch the header
			document.id('header').setStyle('width',document.body.getSize().x+'px');
		}else{
			document.id('header').setStyle('width','1092px');
		}
	}	
	window.addEvent('resize', function(){ setHeader(); } ); setHeader();
	
});

function popupForm(){
	// Handle the form popups on order links
	document.getElements('li.order').each( function(li){
													
		li.getElement('a').addEvent('click', function(e){
			e.preventDefault();
			var a = this;
			//retreieve the content of the form
			new kamContentRequest(a.get('href'),{
				retrieve: 'orderForm',
				onSuccess: function(response){
					var modal = new kamModal({
						content: response,
						onShow : function(){
							var form = document.id(response);
							form.getElement('legend').set('html','Order our ' + a.get('html') + ' info pack');	
							
							// set label as the value of the input
							var inputs = [];
							form.getElements('.kamFormFieldText, .kamFormFieldTextArea').each( function(div){																																		
								var overText = function(input, show){
									if(show){
										if(input.value == '') input.value = input.retrieve('label');
									}else{
										if(input.value == input.retrieve('label')) input.value = '';
									}
								}
																										
								var input = div.getElement('input');
								if(input){
									inputs.push(input);
									var label = div.getElement('label').get('html');
									input.set('value',label).store('label',label);	
									// handles the toggle display of the labels
									input.addEvent('click', function(e){ overText(this,false); });
									input.addEvent('blur', function(e){	overText(this,true); });
								}else{
									var textarea = div.getElement('textarea');
									inputs.push(textarea);
									var label = div.getElement('label').get('html');
									textarea.set('value',label).store('label',label);		
									// handles the toggle display of the labels
									textarea.addEvent('click', function(e){ overText(this,false); });
									textarea.addEvent('blur', function(e){	overText(this,true); });
								}
							});
							
							kamUi.initialise(response);
							var formEl = response.getElement('form');
							var formInstance = kamForm.getFormInstance(formEl);
							formInstance.options.ajaxCompleteHandler = function(){
								this.close();	
							}.bind(this);
							formInstance.addEvent('submitting', function(e){																		
								inputs.each( function(input){
									if(input.value == input.retrieve('label')) input.value = '';					  
								});
							});
							formInstance.addEvent('invalidForm', function(e){
								inputs.each( function(input){
									if(input.value == '') input.value = input.retrieve('label');					  
								});										  
							});																
						}
						
					}).show();
				}
			}).execute();
		});
	});
}

function ticker(){
	var sliderObj = {
		element : document.id('tickerSlider'),
		x : 0
	}
	
	if(sliderObj.element){
		// Get all items within the slider
		sliderObj.x = sliderObj.element.getSize().x;
		
		// Sum of the width of all items within slider
		var items = []; var sumX = 0;
		sliderObj.element.getElements('.tickerItem').each( function(item,key){
			var itemObj = {
				element : item,
				x : item.getSize().x
			}
			items[key] = itemObj;
			sumX += itemObj.x;
		});
		
		// if the items inside the slider overflow then start the ticker
		if(sumX > sliderObj.x){
			//  Set slider width
			sliderObj.element.setStyle('width',sumX + 'px');			
						
			var fx = new Fx.Morph(sliderObj.element, { 
				duration: 6000, 
				transition: Fx.Transitions.linear,
				onStart: function (){
					var cloneObj = {
						element : items[0].element.clone(),
						x : items[0].x
					}
					items.push(cloneObj);
					sliderObj.element.grab(cloneObj.element);
					sliderObj.element.setStyle('width', sumX + items[0].x + 'px');
				},
				onComplete: function(){
					items[0].element.destroy();
					sliderObj.element.setStyles({
						'margin-left':0,
						'width': sumX + 'px'
					});		
					items.splice(0,1);										
					startTicker();
				}
			});
	//		alert(parseInt(items[0].x) );
			
			var startTicker = function(){	fx.options.duration = (items[0].x) * 50; fx.start({ marginLeft : 0-items[0].x });	}			
			startTicker();			
		}
	}
}
































