window.addEvent('domready',function()
{
	if( $('refine_Search_large') )
	{
		$('refine_Search_large').addEvent('submit', function(e)
		{	
			e = new Event(e).stop();
			
			var result = 'NO_SUGGEST';
			
			if( $('unique_location') )
			{

				var jsonRequest = new Request.JSON({url: 'http://'+includesPath+'/town-suggest.inc.php', onComplete: function(suggest){
					handleResponse( suggest.result, suggest );
					
				}}).get({'location': $('unique_location').value, 'ajax': 'true'});

			
			}	
			else
			{
				handleResponse( result, '' );
			}
			
		});
	}
	if($('banner-control'))
	{
		var controls = $('banner-controls-nav');
		$('banner-control').removeClass('no-script');
		var controlsWidth = controls.getSize().x + 32;
		$('banner-control').setStyle('width', controlsWidth );
		
		$$('#banner div.banner-item').setStyle('opacity', '0');
		$$('#banner div.banner-item.active').setStyle('opacity', '1');
		bannerEvents();
		
		var next = $('next-banner');
		var previous = $('prev-banner');
		var	allowReverse = false;
		
		next.addEvent('click', function(e) {
			e.stop();
			allowReverse = false;
			changeBanner( allowReverse );
		});
		
		previous.addEvent('click', function(e) {
			e.stop();
			allowReverse = true;
			changeBanner( allowReverse );
		});
		
		$$('#banner-controls-nav a').addEvent('click', function(e) {
			e.stop();
			var nextBanner = this.id.replace('banner-link-', 'banner-');
			jumpToBanner( nextBanner );
		});
	}
	if( $('slideshow') ){
		newsCarousel();
	}
	
	setupNewWindow();
});

function bannerEvents() {
	
	var startEffects = setInterval('changeBanner()', 5000);
	var banner = $('banner');
	
	banner.addEvents({
		'mouseover': function() {
			pauseBanner( startEffects );
		},
		'mouseout': function() {
			startEffects = setInterval('changeBanner()', 5000);
		}
	});
}

function jumpToBanner( nextBanner ) {
	var bannerCount = $$('#banner div.banner-item').length;
	
	for( var i=0; i<bannerCount; i++ ) {
		if( $$('#banner div.banner-item')[i].hasClass('active') ) {
			activeBanner = $$('#banner div.banner-item')[i];
		}
	}

	activeBanner.removeClass('active');
	activeBanner.tween('opacity', 0);

	$(nextBanner).addClass('active');
	$(nextBanner).tween('opacity', 1);
	
	$$('#banner-controls-nav a').removeClass('active');
	var activeBannerLink = $(nextBanner).id.replace('banner-', 'banner-link-');
	$(activeBannerLink).addClass('active');
}

function changeBanner( allowReverse ) {
	if( !allowReverse ) {
		allowReverse = false;
	}
	var nextBanner;
	
	var banners = $$('#banner div.banner-item');
	var bannerCount = banners.length;
	var activeBanner;
	var activeBannerLink;
	
	for( var i=0; i<bannerCount; i++ ) {
		if( banners[i].hasClass('active') ) {
			activeBanner = banners[i];
			if( (allowReverse == false) ) {
				nextBanner = banners[i+1];
			}
			else {
				nextBanner = banners[i-1];
				if( i-1 == -1 ) {
					nextBanner = banners[bannerCount-1];
				}
			}
		}
	}
	if( !nextBanner ) {
		nextBanner = banners[0];
	}
	
	activeBanner.removeClass('active');
	activeBanner.tween('opacity', 0);
	
	nextBanner.addClass('active');
	nextBanner.tween('opacity', 1);
	
	$$('#banner-controls-nav a').removeClass('active');
	var activeBannerLink = nextBanner.id.replace('banner-', 'banner-link-');
	$(activeBannerLink).addClass('active');
}

function pauseBanner( startEffects ) {
		startEffects = clearInterval(startEffects);
}

function newsCarousel() {
	var tween = new Fx.Tween($('slideshow-wrapper'));
	var isTweening = false;
	
	$('slideshow-container').removeClass('noscript');
	
	if( $('slideshow') ) {
		
		$('slideshow').removeClass('hide');
		
		tween.start('left', 0);
		
		$('slideshow').getElements('a').addEvent('click', function(event) {
			
			event = new Event(event).stop();
			var activeNews = $('slideshow-wrapper').getElement('.inUse');
			var activeIcon = $('slideshow').getElement('.icon-on');
			var activeIconId = activeIcon.id.replace("icon-", "");
			var activeNewsId = activeNews.id.replace("content-", "");
			var iconId = this.id.replace("icon-", "");
			var iconNum = false;
			
			if (!isNaN(iconId)) {
				iconNum = true;	
			}
			
			if (((this.id == 'previous') || ( (iconNum) && (iconId < activeNewsId) ) ) && isTweening == false) {
				
				isTweening = true;
				var moveAmount = 230;
				activeNews.removeClass('inUse');
				activeIcon.removeClass('icon-on');
				activeIcon.addClass('icon-off');
				
				if (iconNum) {
					
					var v = iconId;
					var difference =  activeIconId - iconId;
					moveAmount = 230 * difference;
				}
				else {
					var v = activeNewsId;
					v--;
				}
				
				if(activeNewsId == 0) {
					v = sizeOf;
					moveAmount = -230 * sizeOf;
				}
				
				var nextActiveNews = $('slideshow-wrapper').getElementById(String("content-" + v));
				var nextActiveIcon = $('slideshow').getElementById(String("icon-" + v));
				
				nextActiveNews.addClass('inUse');
				nextActiveIcon.removeClass('icon-off');
				nextActiveIcon.addClass('icon-on');
				
				var currentLeft = $('slideshow-wrapper').getStyle("left");
				currentLeft = parseInt(currentLeft.replace('px', ''));
				
				$('slideshow-wrapper').set('tween', {
					onComplete: function(e) {
							isTweening = false;
						}
					});
				$('slideshow-wrapper').tween('left', currentLeft + moveAmount);
			}
			
			if ( ( (this.id == 'next') || ( (iconNum) && (iconId > activeNewsId) ) ) && isTweening == false) {
				isTweening = true;

				var moveMultiplyer = parseInt(activeNewsId) + 1;
				var moveAmount = -230 * moveMultiplyer;
				activeNews.removeClass('inUse');
				activeIcon.removeClass('icon-on');
				activeIcon.addClass('icon-off');
				
				if (iconNum) {
					var i = iconId;
					moveAmount = (-230 * iconId);
				}
				else {
					var i = activeNewsId;
					i ++;
				}
				
				if(activeNewsId == sizeOf) {
					i = 0;
					moveAmount = 0;
				}
				
				var nextActiveNews = $('slideshow-wrapper').getElementById(String("content-" + i));
				var nextActiveIcon = $('slideshow').getElementById(String("icon-" + i));
				
				nextActiveNews.addClass('inUse');
				nextActiveIcon.removeClass('icon-off');
				nextActiveIcon.addClass('icon-on');
				
				$('slideshow-wrapper').set('tween', {
					onComplete: function(e) {
							isTweening = false;
						}
					});
				$('slideshow-wrapper').tween('left', moveAmount);
			}
		});
	}
}

function handleResponse( result, obj )
{
	if( result == 'SUGGEST' )
	{
		createPopup( obj );
	}
	else if( result == '' )
	{
		createPopup( obj );
	}
	else
	{
		$('refine_Search_large').submit();
	}
}

function closePopup()
{
	$('reed_webservice_get_jobs_sector').removeClass('ieHide');
	
	if($('suggest'))
	{
		$('suggest').dispose();
	}
	
	if($('refineSearchPage'))
	{
		if($('salary_type_unique'))
		{
			$('salary_type_unique').style.visibility = 'visible';
		}
	}
}

function suggestionSwap( val )
{	
	if( $('unique_location') )
	{
		$('unique_location').value = val;
	}
	
	closePopup();
}

function createPopup( obj )
{
	closePopup();
	
	var altLoc = '';
	var optionsHtml = '';
	
		if($('salary_type_unique'))
		{
			$('salary_type_unique').style.visibility = 'hidden';
		}

	var coords = $('unique_location').getCoordinates();
	
	var top = coords.top + 18;
	
	var container = new Element('div', {
		'id': 'suggest',
		'class': 'suggest',
		'style': 'top:'+top+'px;left:'+coords.left+'px;',
		'html': '<span class="suggest-left">Note:</span><a class="suggest-right" onclick="closePopup()">Close <span>X</span></a><div class="clear-both">&nbsp;</div>'
	});
	
	$('reed_webservice_get_jobs_sector').addClass('ieHide');
	
	// if we got alternative locations
	if(typeof obj.alt != "undefined")
	{
		var containerInner = new Element('div', {
			'id': 'suggestInner',
			'class': 'suggestInner',
			'html': '<strong>You entered <span>'+obj.term+'</span></strong><p>Please confirm your location from the following suggestions:</p>'
		});
		
		var dropdown = new Element('select', {
			'id': 'suggestSelect',
			'class': 'suggestSelect',
			'html': optionsHtml
		});
		
		$(dropdown).addEvent('change', function(e)
		{
			suggestionSwap(this.value);
		});
	
		container.inject( $(document.body), 'bottom' );
		containerInner.inject( container, 'bottom' );
		dropdown.inject( containerInner, 'bottom' );
		
		var option = new Element('option', {
			'value': '',
			'html': 'Select a location'
		});
		
		option.inject( dropdown, 'bottom' );
		
		var altLoc = obj.alt;
	
		for( i = 0; i < altLoc.length; i++ )
		{
			var option = new Element('option', {
				'value': altLoc[i],
				'html': altLoc[i]
			});
			
			option.inject( dropdown, 'bottom' );
		}
	}
	// otherwise, no matched locations at all
	else
	{
		var containerInner = new Element('div', {
			'id': 'suggestInner',
			'class': 'suggestInner',
			'html': '<strong>You entered <span>'+obj.term+'</span></strong><p>We could not find any location that matched. Try the name of a town/city nearby.</p>'
		});
	
		container.inject( $(document.body), 'bottom' );
		containerInner.inject( container, 'bottom' );
	}
	
}

function setupNewWindow()
{
	var els = $$('.new-window');
	
	for( i=0; i<els.length; i++ )
	{
		els[i].addEvent('click', function(e)
		{
			e.stop();
			newWindow( this );
		});
	}
}

function newWindow( el )
{
	window.open(el.href, 'locum');
}
