// mootools more - fx.scroll
MooTools.More={version:"1.2.4.4",build:"6f6057dc645fdb7547689183b2311063bd653ddf"};Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(b,a){this.element=this.subject=document.id(b);
this.parent(a);var d=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=document.id(this.element.getDocument().body);}var c=this.element;
if(this.options.wheelStops){this.addEvent("start",function(){c.addEvent("mousewheel",d);},true);this.addEvent("complete",function(){c.removeEvent("mousewheel",d);
},true);}},set:function(){var a=Array.flatten(arguments);if(Browser.Engine.gecko){a=[Math.round(a[0]),Math.round(a[1])];}this.element.scrollTo(a[0],a[1]);
},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a);});},start:function(c,g){if(!this.check(c,g)){return this;}var e=this.element.getScrollSize(),b=this.element.getScroll(),d={x:c,y:g};
for(var f in d){var a=e[f];if($chk(d[f])){d[f]=($type(d[f])=="number")?d[f]:a;}else{d[f]=b[f];}d[f]+=this.options.offset[f];}return this.parent([b.x,b.y],[d.x,d.y]);
},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");
},toElement:function(b){var a=document.id(b).getPosition(this.element);return this.start(a.x,a.y);},scrollIntoView:function(c,e,d){e=e?$splat(e):["x","y"];
var h={};c=document.id(c);var f=c.getPosition(this.element);var i=c.getSize();var g=this.element.getScroll();var a=this.element.getSize();var b={x:f.x+i.x,y:f.y+i.y};
["x","y"].each(function(j){if(e.contains(j)){if(b[j]>g[j]+a[j]){h[j]=b[j]-a[j];}if(f[j]<g[j]){h[j]=f[j];}}if(h[j]==null){h[j]=g[j];}if(d&&d[j]){h[j]=h[j]+d[j];
}},this);if(h.x!=g.x||h.y!=g.y){this.start(h.x,h.y);}return this;},scrollToCenter:function(c,e,d){e=e?$splat(e):["x","y"];c=$(c);var h={},f=c.getPosition(this.element),i=c.getSize(),g=this.element.getScroll(),a=this.element.getSize(),b={x:f.x+i.x,y:f.y+i.y};
["x","y"].each(function(j){if(e.contains(j)){h[j]=f[j]-(a[j]-i[j])/2;}if(h[j]==null){h[j]=g[j];}if(d&&d[j]){h[j]=h[j]+d[j];}},this);if(h.x!=g.x||h.y!=g.y){this.start(h.x,h.y);
}return this;}});

window.addEvent('domready', function(){

	// home page stuff
	if ($('home')){
	
		// size check
		window.addEvent('resize', function(){
						
			if (this.getSize().y < 710){
				$('topbar').setStyle('display', 'none');
				$('linksetc').getElement('div.search').setStyle('display', 'none');
				//$('linksetc').getElement('div.logo h1').setStyle('height', 40);
				$('linksetc').getElement('div.logo img').set('src','images/logo-horiz.png').setProperty('height', 38).setProperty('width', 338);
				$('linksetc').getElement('div.logo').setStyle('padding', '10px 0px 10px 0px');
			} else {
				$('topbar').setStyle('display', '');
				$('linksetc').getElement('div.search').setStyle('display', '');
				//$('linksetc').getElement('div.logo h1').setStyle('height', '');
				$('linksetc').getElement('div.logo img').set('src','images/belfast-bible-college.png').setProperty('height', '128').setProperty('width', '280');
				$('linksetc').getElement('div.logo').setStyle('padding', '');			
			}
		
		});
		
		window.fireEvent('resize');
	
		// promo scroll
		promoScroll = new Fx.Scroll($('home').getElement('div.home-image'), { duration: 1100 });
	
		// below the homepage image links
		var below = $('home').getElements('.home-below li')
		.addEvent('mouseenter', function(ev){
				
			if (this.hasClass('b')){
				this.getPrevious('li.a').addClass('selected');
			} else if(this.hasClass('a')){
				this.getNext('li.b').addClass('selected');
			}
		
		})
		.addEvent('mouseleave', function(ev){
		
			if (!this.getProperty('data-selected')){
				
				if (this.hasClass('b')){
					this.getPrevious('li.a').removeClass('selected');
				} else if(this.hasClass('a')){
					this.getNext('li.b').removeClass('selected');
				}
			
			}
		
		})
		.addEvent('click', function(ev){
		
			// stop the event
			if (ev) ev.stop();
				
			// make sure we get the li
			var el = this;
			if (el.get('tag') == 'a') el = this.getParent('li');
			
			// make sure we get the li.b
			if (el.hasClass('a')) el = el.getNext('li.b');

			// count what number we are
			var count = el.getAllPrevious('li.b').length;
			
			// scroll the promo box
			promoScroll.cancel().start(count*900,0);
			
			// highlight the link
			this.getParent('ul').getElements('li[data-selected]').removeProperty('data-selected').removeClass('selected');
			el.setProperty('data-selected',"true").addClass('selected');
			el.getPrevious('li.a').setProperty('data-selected',"true").addClass('selected');
			
			// cancel all transitions, and make sure all are black and white
			$('home').getElements('div.home-image>ul li img').each(function(el){
				el.retrieve('tween').cancel();
				el.setStyle('opacity',1);
			});
			
			(function(){
			
				// start fading the image
				var img = $('home').getElements('div.home-image>ul li')[count].getElement('img');
				img.retrieve('tween').start('opacity',0);
			
			}.delay(1400));
		
		});
		
		// home page promo item images
		$('home').getElements('div.home-image>ul li').each(function(el,i){
			el.setStyles({
				'left' : i * 900,
				display: 'block'
			});
			
			// set image opacity
			el.getElement('img').setStyle('opacity',1).store('tween', new Fx.Tween(el.getElement('img'),{ duration: 6000 }));
			
		});
		
		// home page promo item text
		$('home').getElements('div.home-image div.promo ul li').each(function(el,i){
			el.setStyles({
				'left' : i * 900,
				display: 'block'
			});
		});
		
		// coursefinder link
		$('home').getElements('.coursefinder li')
		.addEvent('click', function(ev){
			var el = this;
			if (el.get('tag') != 'a'){
				if (el.hasClass('a')){
					el = el.getNext('li.b');
				}
				el = el.getElement('a');
				location.href = el.getProperty('href');
			}
		});
		
		// make first promo work
		$('home').getElements('.home-below li')[1].fireEvent('click');
					
	}
	
	// links click
	if ($('linksetc')){
	
		var links = $('linksetc').getElements('.links li')
		.addEvent('click', function(ev){
			if (ev) ev.stopPropagation();
		});
		
		// below the homepage image links
		var links = $('linksetc').getElements('.links>ul>li')
		.addEvent('click', function(ev){
						
			if (ev) ev.stop();
			return;
				
			var el = this;
			if (el.get('tag') != 'a'){
				el = this.getElement('a.main');
				location.href = el.getProperty('href');
			}
		
		});
		
		$('linksetc').getElements('.links>ul>li li')
		.addEvent('mouseleave', function(ev){
		
			if (this.getElement('div.extra')){
				if (this.getElement('div.extra').getStyle('display') != 'none'){
					ev.stop();
					ev.stopPropagation();
					this.getParent('ul').setStyle('display', 'block');
					this.getParent('ul').getParent('li').addClass('selected');
				}
			}
		
		
			/*$$('div.extra')
			.setStyles({
				'display': 'none',
				'width': 0,
				'opacity': 0
			});*/
		});
		
		$('linksetc').getElements('.links>ul>li>a')
		.addEvent('click', function(ev){
				
			if (ev) ev.stop();
			return;
			
		});
		
		// links with extras
		var extras = $('linksetc').getElements('.links div.extra')
		.each(function(el){
		
			el.getParent('li')
			.addEvent('click', function(ev){
			
				if (ev) ev.stop();
				
				if (this.retrieve('extra').getStyle('display') != 'block'){
				
					this.retrieve('extra')
					.setStyles({
						'display': 'block',
						'opacity': 0
					})
					.morph({
						'width': [0, 235],
						'opacity': [0,1]
					});
				
				}
			
			});
			
			el.getElements('a')
			.addEvent('click', function(ev){
			
				if (ev) ev.stop();
				
				var h = this.getProperty('href').split('#');
				
				switch (h[1]){
				
					case 'close':
						this.getParent('div.extra').setStyles({
							'display': 'none',
							'width': 0,
							'opacity': 0
						});
						this.getParent('div.extra').getParent('ul').setStyle('display', '');
						this.getParent('div.extra').getParent('ul').getParent('li').removeClass('selected');
					break;
					
					case 'more':
						location.href = this.getParent('div.extra').getParent('li').getElement('a.main').getProperty('href');
					break;
				
				}
			
			});
		
		});
		
		// align div.extra
		$$('div.extra').each(function(el){
				
			if (el.getParent('ul')){
					
				el.setStyles({
					'top': el.getParent('ul').getPosition().y,
					'margin-top': 0
				});
				
				el.getParent('li').addClass('hasextra').store('extra', el);
			
			}
														
		});
		
		// setup search request
		searchRequest = new Request.JSON({ url: 'search/json.php', method:'get' })
		.addEvent('success', function(j){
			if (j){
				var el = $('linksetc').getElement('div.search div.results div.output');
				el.empty();
				
				if (j.items.length > 0){
					$each(j.items, function(i){
						el.adopt(new Element('p',{html: i }));
					});
					
					el.adopt(new Element('p',{html: '<br /><strong><a href="search/index.php?searchfor=' + j.searchfor + '">Show me all the results</a></strong>' }).addClass('showall'));
				} else {
					el.set('html','<p>No results found.</p>')
				}
			}
		});
		
		// quicksearch functionality
		$('linksetc').getElement('div.search input[type="text"]')
		.addEvent('keyup', function(ev){
				
			// cancel request
			searchRequest.cancel();
						
			// if length < 2 show holding text		
			if (this.get('value').length < 2){
				$('linksetc').getElement('div.search div.results').setStyle('display','none')
				$('linksetc').getElement('div.search div.results div.output').set('html','<p>Search results loading...</p>');
			} else {
				$('linksetc').getElement('div.search div.results').setStyle('display','block');
				searchRequest.send('searchfor='+this.get('value'));
			}
		
		});
		
		$('linksetc').getElement('div.search a.close').addEvent('click', function(ev){
			if (ev) ev.stop();
			$('linksetc').getElement('div.search div.results').setStyle('display','none');
		});
		
	}
	
	// topbar click 
	if ($('topbar')){
		
		// below the homepage image links
		var links = $('topbar').getElements('ul>li')
		.addEvent('click', function(ev){
				
			var el = this;
			if (!el.hasClass('l4') && el.get('tag') != 'a'){
				el = this.getElement('a');
				location.href = el.getProperty('href');
			}
		
		});
		
		$$('li.l4').addEvent('click', function(ev){
		
			if (ev) ev.stop();
						
			this.getElement('a').fireEvent('click');
		
		});
		
		$$('li.l4>a').addEvent('click', function(ev){
		
			if (ev) ev.stop();
															
			this.getParent('li').getElement('div.extra').setStyles({
				'display': 'block',
				'margin-top' : 20,
				'margin-left' : Browser.Engine.trident5 ?  -260 : -203
			});
			
			this.getParent('li').addClass('selected');
		
		});
		
		$$('li.l4 div.extra a').addEvent('click', function(ev){
		
			var h = this.getProperty('href').split('#');
					
			if (h[1] == 'close'){
			
				if (ev) { ev.stop(); ev.stopPropagation(); }
				this.getParent('div.extra').setStyle('display', 'none');
				this.getParent('li.l4').removeClass('selected');
			} else if (h[1] == 'signup'){
			
				if (ev) { ev.stop(); ev.stopPropagation(); }
				location.href = '/email/index.php?email=' + this.getPrevious('input[name="email"]').get('value');
			
			}
					
		});
		
	}
	
	// page stuff
	if ($('page')){
	
		// get bottom links
		$('page').getElements('div.bottom li')
		.addEvent('click', function(ev){
			if (ev) ev.stop();
			history.back();
		});
		
		if ($('page').getElement('.floatmeleft')){
		
			if ($('page').getElements('.floatmeleft img').length > 1){
			
				if (!$('page').getElement('.floatmeleft div.accordion')){
			
					$('page').getElements('.floatmeleft img').set('tween', 2000).setStyles({ 'position': 'absolute', 'opacity': 0, 'display': 'inline' });
					
					(function(){
					
						var i = $('page').getElements('.floatmeleft img');
						var count = 0;
						i.each(function(e, ind){ if(e.getStyle('opacity') == 1) count = ind; });
						i[count].tween('opacity', 0);
						count++;
						if (count == i.length) count = 0;
						i[count].tween('opacity', 1);
										
					}.periodical(6000));
					
					$('page').getElement('.floatmeleft img').setStyle('opacity', 1);
				
				}
			
			}
		
		}
	
	}
	
	// staff page
	if ($('staff')){
	
		// name position switch
		$('staff').getElements('div.staffopt a')
		.addEvent('click', function(ev){
		
			// stop event
			if (ev) ev.stop();
			
			// remove selected states
			this.getParent('div.staffopt').getElements('a').removeClass('selected');
			
			// add selected state
			this.addClass('selected');
			
			// hide all spans
			$('staff').getElements('.staffoutput .leftcol ul li ul li span').setStyle('display','none');
			
			// show only the right span
			$('staff').getElements('.staffoutput .leftcol ul li ul li span.' + this.getProperty('href').replace('#','')).setStyle('display','inline');
		});
		
		// category switch
		$('staff').getElements('div.staffcats li a')
		.addEvent('click', function(ev){
		
			// stop event
			if (ev) ev.stop();
									
			if (this.hasClass('selected')) return;
			
			// remove selected states
			this.getParent('div.staffcats').getElements('a').removeClass('selected');
			
			// add selected state
			this.addClass('selected');
			
			// hide all staff
			$('staff').getElements('div.staffoutput div.staffmember').setStyle('display','none');
			$('staff').getElements('.staffoutput .leftcol ul li ul li').removeClass('selected').removeProperty('data-selected');
			
			// show staff category
			$('staff').getElements('.staffoutput .leftcol>ul').setStyle('display','none');
			$('staff').getElements('.staffoutput .leftcol>ul.sc_' + this.getProperty('href').replace('#','')).setStyle('display','block');
			
		});
		
	
		// staff members
		var staff = $('staff').getElements('.staffoutput .leftcol ul li ul li')
		.addEvent('mouseenter', function(ev){
				
			if (this.hasClass('b')){
				this.getPrevious('li.a').addClass('selected');
			} else if(this.hasClass('a')){
				this.getNext('li.b').addClass('selected');
			}
		
		})
		.addEvent('mouseleave', function(ev){
		
			if (!this.getProperty('data-selected')){
				
				if (this.hasClass('b')){
					this.getPrevious('li.a').removeClass('selected');
				} else if(this.hasClass('a')){
					this.getNext('li.b').removeClass('selected');
				}
			
			}
		
		})
		.addEvent('click', function(ev){
		
			// stop the event
			if (ev) ev.stop();
				
			// make sure we get the li
			var el = this;
			if (el.get('tag') == 'a') el = this.getParent('li');
			
			// make sure we get the li.b
			if (el.hasClass('a')) el = el.getNext('li.b');	
						
			// remove selected
			$('staff').getElements('.staffoutput .leftcol ul li ul li').removeClass('selected').removeProperty('data-selected');
			
			// get the href of the a
			var href = el.getElement('a').getProperty('href').replace('#','');
			
			// hide all staff shown
			$('staff').getElements('div.staffoutput div.staffmember').setStyle('display','none');
			
			// show staff member clicked
			$('staff').getElements('div.staffoutput div.staffmember#sm_' + href).setStyle('display','block');
			
			// selected state
			el.setProperty('data-selected',true).addClass('selected');
			el.getPrevious('li.a').setProperty('data-selected',true).addClass('selected');
								
		});
		
		// close button
		var staff = $('staff').getElements('.staffmember a')
		.addEvent('click', function(ev){
			
			if (this.getProperty('href') != '#close') return;
			
			if (ev) ev.stop();
			
			$('staff').getElements('.staffoutput .leftcol ul li ul li').removeClass('selected').removeProperty('data-selected');
			$('staff').getElements('div.staffoutput div.staffmember').setStyle('display','none');
			
		});
	
	}
	
	$$('div.box a').addEvent('click', function(ev){
	
		if (ev) ev.stop();
		
		if (this.getNext('div.extra')){
			this.getNext('div.extra').setStyles({
				'display': 'block',
				'width': 240,
				'margin-left': 12,
				'margin-top': -2,
				'z-index': 10000
			});
		}
	
	});

});