

// --------------------------------------------------------------------------------------------------
// VARIABLES

	var urlJobDetails	= 'job-details.php'
	var code			= ''
	var lastCode		= ''
		
	var urlGetJobs		= '../php/get_jobs_by_keyword.php'
	var kw				= null
	var cache			= {kw:new Array(), images:new Array()}

	var jobCodes		= new Array() // this gets populated by PHP
	var jobs			= new Array()
	var openJobs		= new Array()


// --------------------------------------------------------------------------------------------------
// FUNCTIONS


	// --------------------------------------------------------------------------------------------------
	// KEYWORDS
	
		function keywordClick(kw){
			//var url	= window.location.href.split('?')[0]
			//window.location.href = url + '?kw=' +kw
			filterJobs({kw:kw})
			}
			
		function domainClick(domain, type){
			//var url	= window.location.href.split('?')[0]
			//window.location.href = url + '?domain=' +domain+ '&type=' +type
			filterJobs({domain:domain, type:type})
			}
			
		function yearClick(year){
			filterJobs({year:year})
			window.yearClicked = true
			}
			

	// --------------------------------------------------------------------------------------------------
	// FILTER

		function filterJobs(data){
		
			// variables
				var kw		= ''
				var str		= ''
				var params	= ''

				if(data.domain || data.type){
					kw		= data.domain +'_'+ data.type
					str		= data.domain +' '+ data.type
					params	= 'domain=' +data.domain+ '&type=' +data.type
					}
				else if(data.kw){
					kw		= data.kw
					str		= data.kw
					params	= 'kw=' + data.kw
					}
				else if(data.year){
					str		= data.year
					params	= 'year=' + str
					}

				window.kw	= kw
				
			// filter jobs
				if(cache.kw[kw] == undefined){
					var url	= urlGetJobs + '?' + params
					$.getJSON(url, filterJobsCallback)
					}
				else{
					window.jobs		= cache.kw[kw]
					showJobs()
					}

			// feedback
				$('#search-summary').html('You searched for: <span style="color:#666">' +str+ '</span>')

			// tracking
				str = str.toString().replace(/^[ \t]+|[ \t]+$/mg, '');
				googleTrack('/keywords/list/'+ str)
				googleTrack('/keywords/all/'+ str)
				
			}
	
		function filterJobsCallback(data){
	
			//alert(data)
			//console.log([data.jobs].join('\n'))
			
			var kw		= data.kw
			var jobs	= data.jobs
			
			if(jobs.length){
				window.jobs		= jobs
				cache.kw[kw]	= jobs
				showJobs(jobs)
				}
			}
		
	// --------------------------------------------------------------------------------------------------
	// SHOW JOBS

		function showJob(code, state){
			// div
				var div		= document.getElementById(code)
				if(!div)return
				
			// text
				div.className = state ? 'job selected' : 'job hidden'
			}
			
		function showJobs(jobs){
		
			// if there was a preview job
				if(cache.previewCode){
					$('#' +cache.previewCode+ ' .job-preview').show()
					cache.previewCode = undefined
					}

			// close jobs
				for(var i = 0; i < jobCodes.length ; i++){
					showJob(jobCodes[i], false)
					}
					
			// close open jobs' data
				for(var i = 0; i < openJobs.length; i++){
					var code = openJobs[i]
					var preview		= $('#' +code+ ' .job-preview')
					var container	= $('#' +code+ ' .job-data')
					
					preview.removeClass('picked')
					container.height('0px')
					container.css('marginBottom', '0px')
					}
				openJobs = new Array()

			// open selected jobs
				if(jobs == undefined){
					jobs = cache.kw[kw]
					}
				for(var i = 0; i < jobs.length ; i++){
					showJob(jobs[i], true)
					}
					
			// update UI
				$('#search-heading').text(jobs.length + ' Result' + (jobs.length > 1 ? 's' : ''))
				
				$('#search-results').show()
				FHR.replaceHeading($('#search-heading'))
				if($('#search-splash').css('display') != 'none'){
					$('#search-results').hide()
					}
				
				$('#search-splash').slideUp('slow')
				$('#search-results').slideDown('slow')
				$('#search-criteria').css('marginBottom', '15px')
				$('html').animate({scrollTop: 0}, 500)

				window.code	= null
			}
			
		function showAllJobs(){
			// feedback
				$('#search-summary').html('You searched for: <span style="color:#666">all</span>')

			// update
				filterJobsCallback({kw:'all',jobs:jobCodes})
			}


	// --------------------------------------------------------------------------------------------------
	// ICON
	
		function highlightJob(obj, state){
			obj	= $(obj)
			if(obj.hasClass('picked'))return
			obj.toggleClass('highlight')
			}
			
		function clickJob(code){
		
			// cancel if job already open
				if(code == window.code)return

			// cancel (and reset) if the year was just clicked
				if(window.yearClicked){
					window.yearClicked = false
					return
					}
			
			// variables
				window.code			= code
				window.job			= $('#' +code)
				window.preview		= $('#' +code+ ' .job-preview')

			// do it
				preview.addClass('picked')
				preview.removeClass('highlight')
				loadJobDetails(code)
			}
			
			
			
		function loadJobDetails(code){
			var url			= urlJobDetails + '?code=' +code+ '&ajax=true'
			var id			= '#' +code+ ' .job-data'
			var container	= $(id)
			
			var callback	= function(){
								var h = container[0].scrollHeight
								openJobs.push(code)
								container.animate({height:(h) + 'px', marginBottom:'15px'}, 1000, 'linear')
								}

			container.load(url, null, callback)
			}
			
	// --------------------------------------------------------------------------------------------------
	// DUMMY
	
		function centerPanel(){
			// empty function to stop job-details throwing an error
			}
	
	
	
