window.addEvent('domready',function() {
	if ($('gallery')) {
		
		if ($('msg')) $('msg').destroy();
		var msg = new Element('p',{'text':'Loading images...','id':'msg'}).inject($('gallery'),'top');	
		
		var imgs = ($$('.item img').get('src'));
		$$('.item').each(function(i) { i.set('opacity','0')});
		var cnt = new Element('span',{'html':'<span id="counter">0</span> of '+imgs.length}).inject(msg);
		var myImages = Asset.images(imgs, {
			
			onProgress: function(counter, index, source) {
				$('counter').set('text',counter);
			},

			onComplete: function(){
				msg.destroy();
				$$('.item').each(function(i) { i.fade(1)});
				var gallery = new fadeGallery($$(".gallery"), {
					speed: 800,
					paging: false,
					pagingEvent: "mouseenter",
					autoplay: false,
					duration: 5000,
					onStart: function() {
					},
					onPlay: function() {
						this.fireEvent("start");
					}
				});
			}
		});
	}
	
	var myAccordion = new Fx.Accordion($$('.accordionbutton'), $$('.bellows'), {
		display: -1,
		alwaysHide: true,
		onActive: function(tog) {
			tog.setStyles({'color':'#19487c','background-color':'#F1C50C','padding-left':'5px'});
		},
		onBackground: function(tog) {
			tog.setStyles({'color':'#ccc','background-color':'transparent','padding-left':'0px'});
		}
	});
	
	
	

	if ($('discounts')) {
		carousel($('gallerythumbs'),$$('.discount'));
		$$('.voucher').each(function(v) {
			if (v.getChildren().get('href')=='0'||v.getChildren().get('href')==' '||v.getChildren().get('href')=='') v.destroy();
		});
	}
	
	var hint = new formhints({
		collection: $$('.def')
	});
	
	if ($('map')) loadmap();
	
	

    if ($('cform')) {
		var fc = new FormCheck('cform',{
			submitByAjax: true,
			onAjaxSuccess: function() {
				$('cform').set('html','<p>Thanks for contacting us.</p><p>Someone will be in touch soon.</p>');
			}
		});
		if ($('addselect')) {
			var s = $$('.form-item');
			$('addselect').addEvent('change',function() {
				s.each(function(e){
					e.setStyle('display','none')
				});
				s[this.selectedIndex].setStyle('display','block');
			});
		}
	}
	
	if ($('newsletterform')) {
		var nl = new FormCheck('newsletterform',{
			display: {
				showErrors:0,
				addClassErrorToField:1
			},
			submitByAjax: true,
			onAjaxSuccess: function() {
				var w=$('newsletterformli').getWidth()-20;
				$('newsletterformli').setStyles({'width':w,'text-align':'left'});
				$('newsletterformli').set('html','');
				$('newsletterformli').set('html','You\'re signed up!');
			}
		});
	}
	
	if ($('socialnewsletterform')) {
		var nl = new FormCheck('socialnewsletterform',{

			submitByAjax: true,
			onAjaxSuccess: function() {
				
				$('socialnewsletterform').set('html','');
				$('socialnewsletterform').set('html','You\'re signed up!');
			}
		});
	}
	
	


	
});

function customCheck(el){
	if (el.get('value')==el.get('title')) {
		el.errors.push("This field is required");
		return false;
	} else {
		return true;
	}
}

var formhints = new Class({
	Implements: [Options],
	options: {
		collection: $$('input[type=text]')
	},
	initialize: function(options) {
		this.setOptions(options);
		this.defaults();
	},
	defaults: function() {
		this.options.collection.each(function(el) {
			el.addClass('hint');
			if (el.get('value')=='') {
				el.set('value',el.get('title'));
				el.addEvent('focus', function() { 
					if(el.get('value') == el.get('title')) { 
						el.set('value',''); 
						el.removeClass('hint');
					}
				});
				el.addEvent('blur', function() {
					if(el.get('value') == '') {
						el.set('value',el.get('title'));
						el.addClass('hint');
					}
				});
			}
		});
	}
});



function carousel(carousel,items) {
	carousel.setStyle('display','block');
	
	
	
	var els = carousel.getElements('img');

	var wrap = new Element('div',{'id':'carwrap'}).wraps(carousel);
	var back = new Element('span',{'id':'back','class':'disable'}).inject(wrap,'top');
	var forward = new Element('span',{'id':'forward','class':'disable'}).inject(wrap,'bottom');
	items.each(function(item) {item.addClass('hide');});
	items[0].removeClass('hide');
	var page = new Fx.Tween($('discounts'),{
		duration: 'short',
 		transition: 'sine:out',
		property: 'height'
	});
	var carouselheight = carousel.getHeight();
	var thumbs = carousel.getElements('img');
	thumbs.each(function(t) {
		t.addEvent('click',function() {
			thumbs.each(function(th) { th.removeClass('active')});
			t.addClass('active');
			items.each(function(i) {
				i.addClass('hide');
				i.setStyle('opacity',0.01);
			})
			$(t.get('rel')).removeClass('hide');
			var itemheight = $(t.get('rel')).getHeight();
			page.start(itemheight + carouselheight);
			$(t.get('rel')).fade(1);
		});
	});
	thumbs[0].addClass('active');


	viewablewidth = carousel.getWidth();
	actualwidth = $('carousel').getWidth();
	
	if (actualwidth > viewablewidth) {
		$('forward').removeClass('disable');
		$('back').removeClass('disable');
		

		var f = $('carousel').getFirst();
		var distance = f.getWidth()+f.getStyle('margin-left').toInt()+f.getStyle('margin-right').toInt();
		var normalspeed = 1800;
		var speedup = 300;
		var direction = 'forward';
		
		
		$('carousel').set('tween',{
			duration: normalspeed,
			transition:'linear',
			onComplete:function(){
				scrollone(direction);
			}
		});
		
		var dir;
		var dist;
		var init = false;	
		
		var scrollone = function() {
			dir = (direction=='forward') ? -1 :1;
			dist = (direction=='forward') ? (distance):distance;
			var startpos = $('carousel').getStyle('left').toInt();
			if (init) startpos = startpos + distance;
			if (direction=='forward') {
				$('carousel').setStyle('left', startpos).getFirst().inject($('carousel')) 
				$('carousel').tween('left',[startpos , distance*dir]);
			} else {
				$('carousel').setStyle('left', distance*-1).getLast().inject($('carousel'),'top');  
				$('carousel').tween('left',[distance*-1, 0]);
			}
			init = true;
		}

		scrollone('forward');
		
		$('forward').addEvents({
			'mousedown':function() {
				$('carousel').set('tween',{duration: speedup});
				scrollone('forward');
			},
			'mouseup':function() {
				$('carousel').set('tween',{duration: normalspeed});
				scrollone('forward');
			
			}
		});
		$('back').addEvents({
			'mousedown': function() {
				
				$('carousel').set('tween',{duration: speedup});
				direction = 'back';
				scrollone();
			},
			'mouseup': function() {
				$('carousel').set('tween',{duration: normalspeed});
				direction = 'forward';
				scrollone();
				
			}
		
		});
	}
	
}

function loadmap() {
	var point = new google.maps.LatLng(51.502682,-0.116032);
	var myMapOptions = {
		zoom: 16,
		center: point,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById("map"),myMapOptions);

	var image = new google.maps.MarkerImage(
	  '/_imgs/marker-images/image-office.png',
	  new google.maps.Size(36,53),
	  new google.maps.Point(0,0),
	  new google.maps.Point(18,53)
	);
	
	var shadow = new google.maps.MarkerImage(
	  '/_imgs/marker-images/shadow-office.png',
	  new google.maps.Size(66,53),
	  new google.maps.Point(0,0),
	  new google.maps.Point(18,53)
	);
	
	var shape = {
	  coord: [21,0,24,1,25,2,25,3,25,4,25,5,25,6,26,7,27,8,27,9,32,10,32,11,32,12,33,13,33,14,33,15,33,16,32,17,32,18,32,19,32,20,32,21,31,22,31,23,30,24,28,25,29,26,28,27,26,28,26,29,24,30,21,31,17,32,34,37,35,38,35,39,35,40,35,41,35,42,35,43,34,44,32,46,32,47,31,48,31,49,31,50,32,51,32,52,4,52,4,51,4,50,4,49,4,48,4,47,5,46,0,44,0,43,0,42,0,41,0,40,0,39,0,38,33,37,16,32,12,31,9,30,7,29,6,28,6,27,4,26,4,25,3,24,2,23,3,22,4,21,5,20,5,19,5,18,4,17,4,16,4,15,4,14,4,13,4,12,5,11,5,10,5,9,6,8,7,7,7,6,8,5,10,4,11,3,13,2,13,1,13,0,21,0],
	  type: 'poly'
	};
	
	var marker = new google.maps.Marker({
	  draggable: true,
	  raiseOnDrag: false,
	  icon: image,
	  shadow: shadow,
	  shape: shape,
	  map: map,
	  position: point
	});
	
	var point2 = new google.maps.LatLng(51.502841,-0.117127);
	
	var image2 = new google.maps.MarkerImage(
	  '/_imgs/marker-images/image-stop.png',
	  new google.maps.Size(30,53),
	  new google.maps.Point(0,0),
	  new google.maps.Point(15,53)
	);
	
	var shadow2 = new google.maps.MarkerImage(
	  '/_imgs/marker-images/shadow-stop.png',
	  new google.maps.Size(60,53),
	  new google.maps.Point(0,0),
	  new google.maps.Point(15,53)
	);
	
	var shape2 = {
	  coord: [18,0,21,1,22,2,22,3,22,4,22,5,22,6,23,7,24,8,24,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,29,18,29,19,29,20,29,21,28,22,28,23,28,24,25,25,26,26,25,27,23,28,23,29,21,30,18,31,14,32,26,38,25,39,24,40,24,41,25,42,26,43,26,44,24,46,25,47,25,48,25,49,24,50,22,51,22,52,4,52,4,51,5,50,5,49,5,48,5,47,6,46,4,44,4,43,4,42,4,41,4,40,4,39,4,38,13,32,9,31,6,30,4,29,3,28,3,27,1,26,1,25,0,24,0,23,0,22,1,21,2,20,2,19,2,18,1,17,1,16,1,15,1,14,1,13,1,12,2,11,2,10,2,9,3,8,4,7,4,6,5,5,7,4,8,3,10,2,10,1,10,0,18,0],
	  type: 'poly'
	};
	
	var marker2 = new google.maps.Marker({
	  draggable: true,
	  raiseOnDrag: false,
	  icon: image2,
	  shadow: shadow2,
	  shape: shape2,
	  map: map,
	  position: point2
	});


}


function slidegallery_old(holder,items) {
	
	var offset = items[0].getSize().x;
	var height = items[0].getHeight();
	var margin = 6;
	
	var wrap = new Element('div',{'styles':{'width':offset,'height':height,'overflow':'hidden','position':'relative'},'class':'grid_18'}).wraps(holder);

	
	$(holder).setStyles({
		'white-space':'nowrap',
		'width':($$('.item').length*offset),
		'position':'absolute'
	});
	items.each(function(item){
		item.setStyles({'border':0,'white-space':'normal'});
		item.removeProperty('id');
	});
	items[0].setProperty('id','currimg')

	var controls = new Element('div',{'id':'ss_controls','class':'grid_18'}).inject(wrap,'before');
	var back = new Element('span',{'id':'back','class':'disable'}).inject(controls,'top');
	
	var thumbholder = new Element('div',{'styles':{'display':'inline-block','position':'relative','height':76}}).inject(controls);
	var carousel = new Element('div',{'styles':{'position':'absolute','white-space':'nowrap'}}).inject(thumbholder);
	
	items.each(function(item,i) {
		var curr = (i==0) ? ' curr':'';
		
		var img = item.getElement('img').get('src');
		var urlparts = img.split('/image');
		var thumb = urlparts[0]+'/thumbs/image'+urlparts[1];
		var num = new Element('span',{'class':'num slidethumb'+curr}).inject(carousel);
		var t = new Element('img',{'src':thumb}).inject(num);
	});
	
	var forward = new Element('span',{'id':'forward','class':'disable'}).inject(controls);
	
	var availablewidth = controls.getWidth();
	
	var thumbs = controls.getElements('img').getParent();
	var actualwidth=0;
	thumbs.each(function(t){
		actualwidth = actualwidth + t.getSize().x  + t.getStyle('margin-left').toInt() + t.getStyle('margin-right').toInt();
	});
	
	if (actualwidth > availablewidth) {

		viewablewidth = availablewidth - back.getWidth() - forward.getWidth();
		
		thumbholder.setStyles({'width':viewablewidth,'overflow':'hidden','vertical-align':'middle'});
		carousel.setStyles({'white-space':'nowrap'});
		forward.removeClass('disable');
		
		var car = new Fx.Tween(carousel,{
			'ignore':true,
			'transition':'quad:in:out'
		});
		
		
		$('forward').addEvent('click',function() {
			if ($('forward').hasClass('disable')) return;
			$('back').removeClass('disable');
			
			if ((carousel.getStyle('left').toInt() - viewablewidth + actualwidth) > viewablewidth) {
				var move = viewablewidth ;
			} else {
				var move = (carousel.getStyle('left').toInt() + actualwidth) - viewablewidth;
				$('forward').addClass('disable');
			}
			
			car.start('left',carousel.getStyle('left').toInt()-move);
		});
		$('back').addEvent('click',function() {
			if ($('back').hasClass('disable')) return;
			$('forward').removeClass('disable');
			
			if ((carousel.getStyle('left').toInt()*-1) < viewablewidth) {
				var move = carousel.getStyle('left').toInt()*-1 ;
				$('back').addClass('disable');
			} else {
				var move = viewablewidth;
				
			}
			/*
			console.log(carousel.getStyle('left').toInt());
			console.log(actualwidth);
			console.log(viewablewidth);
			*/
			car.start('left',carousel.getStyle('left').toInt()+move);
		});
	} else {
		back.setStyle('display','none');
		forward.setStyle('display','none');
	}
	var tw = new Fx.Tween(holder,{
		'ignore':true,
		'transition':'quad:in:out'
	});

	$$('.num').each(function(num,i) {
		num.addEvent('click',function() {
			tw.start('left',i*offset*-1-(margin*i));
			$$('.num').each(function(n) {n.removeClass('curr')});
			this.addClass('curr');
			$('currimg').removeProperty('id');
			$$('.item')[i].setProperty('id','currimg');
			if (i==0) {
				$('back').addClass('disable');
				$('forward').removeClass('disable');
			} else if (i==($$('.num').length-1)) {
				$('forward').addClass('disable');
				$('back').removeClass('disable');
			} else {
				$('back').removeClass('disable');
				$('forward').removeClass('disable');
			}
		});
	});
}

