
EA = {};

// run scripts on load
$(function()
{
	// add .JS class
	$('html').addClass('JS');
	
	// run supersleight
	$('#branding').supersleight();
	
	// set external links
	$('a[rel=external]').attr('target', '_blank');
	
	// initialise the main nav
	if($('#main-nav').length > 0 ){
		EA.sliderNav.init({ slideSpeed: 175 });
	}
	
	// initialise the accounts links
	if($('#account-links').length > 0 ){
		EA.accountLinks.init();
	}
	
	
	// collapsable box for Jobs Short Lists only (toggle by header icons)
    jQuery.fn.JobShortListCollapse = function() 
	{
	//		// get the related content box
		var container = $(this).parents('.collapsable-box');
		var contentBox = container.find('.box-content');
		
		// show-hide the content depending on status
		if(contentBox.is(':visible')){
			container.removeClass('open');
			contentBox.hide();
		}
		else{
			container.addClass('open');
			contentBox.show();
		}
		
		// cancel the link action
		return false;
	
	};
	
	
	// collapsable boxes (toggle by header icons)
	$('.collapsable-box a.js-toggle-box').click(function(){
		
		// get the related content box
		var container = $(this).parents('.collapsable-box');
		var contentBox = container.find('.box-content');
		
		// show-hide the content depending on status
		if(contentBox.is(':visible')){
			container.removeClass('open');
			contentBox.hide();
		}
		else{
			container.addClass('open');
			contentBox.show();
		}
		
		// cancel the link action
		return false;
	});
	
	// collapsable lists (e.g. browse jobs page)
	$('ul.js-collapsable li:has(ul) > a').addClass('blue-chevron-down').click(function(){
		
		// open/close the sub menus
		$(this).toggleClass('open')
			.parent().toggleClass('open')
			.find('ul:first').toggle('blind');
		if($(this).hasClass('blue-chevron-down')){
			$(this).removeClass('blue-chevron-down').addClass('grey-chevron-up');
		}
		else{
			$(this).removeClass('grey-chevron-up').addClass('blue-chevron-down');
		}
		
		// cancel the link action
		return false;
	});
	
});


/* navigation slider
-------------------------------------------------------------------------*/
EA.sliderNav = {
	
	// declare vars
	slideSpeed: 0,			// animation slide speed
	
	// initialise menu
	init: function(options){
		
		// set vars
		this.slideSpeed = options.slideSpeed;
		
		// close the tabs that aren't open and set the styles
		$('#main-nav li:not(.selected) a').each(function(){
			$(this).css({backgroundPosition: '0 0'});
		});
		
		// bind event clicks for slider and navigation
		this.bindEventHandlers();
	},
	
	bindEventHandlers: function(){
		
		// bind events
		$('#main-nav li:not(.selected) a').bind('mouseover', function(event){ EA.sliderNav.slideOn(event); });
		$('#main-nav li:not(.selected) a').bind('mouseout', function(event){ EA.sliderNav.slideOff(event); });
	},
	
	slideOn: function(event){
		
		// slide animation
		$(event.target).stop().animate({
			backgroundPosition: '(0 -30px)'
		}, { duration: this.slideSpeed });
	},
	
	slideOff: function(event){
		
		// slide animation
		$(event.target).stop().animate({
			backgroundPosition: '(0 0)'
		}, { duration: this.slideSpeed });
	}
};


/* navigation slider
-------------------------------------------------------------------------*/
EA.accountLinks = {
	
	// initialise menu
	init: function(){
		
		// add display attributes to links
		$('#account-links a').attr('display', '');
		
		// bind event clicks for slider and navigation
		this.bindEventHandlers();
	},
	
	bindEventHandlers: function(){
		
		// bind events
		$('#al-login a').bind('click', function(event){ EA.accountLinks.toggleBox('#quick-login', event); return false; });
		$('#al-recruiters a').bind('click', function(event){ EA.accountLinks.toggleBox('#recruiter-links', event); return false; });
	},
	
	toggleBox: function(box, event){
		
		// run the right code
		if($(event.target).attr('display') != 'on'){
			
			// hide all boxes
			this.hideAll();
			
			// show the box
			this.showBox(event.target, box);
		}
		else{
			this.hideBox(event.target, box);
		}
	},
	
	showBox: function(link, box){
		$(link).parent().animate({
			paddingBottom: '14px',
			backgroundColor: '#545454'
		}, 'fast', function(){
			$(box).fadeIn('fast');
			$(link).parent().addClass('open');
		});
		$(link).attr('display', 'on');
	},
	
	hideBox: function(link, box){
		$(box).fadeOut('fast', function(){
			$(link).parent().animate({
				paddingBottom: '8px',
				backgroundColor: '#333'
			}, 'fast', function(){
			$(link).parent().removeClass('open');
			});
		});
		$(link).attr('display', '');
	},
	
	hideAll: function(){
		this.hideBox('#al-login a', '#quick-login');
		this.hideBox('#al-recruiters a', '#recruiter-links');
	}
};

