// GET TOGGLE ELEMENTS
var toggleElements = $ES('div[id=criteria]');

// GET SLIDE ELEMENTS
var slideElements = $ES('div[id=selector]');

// GET SEARCHING ELEMENTS
var searchingElements = $ES('div[id=searching]');

// ARRAY TO STORE ALL SLIDE ELEMENTS
var slideables = new Array();

// GET FORM
var formSearch = $('formSearch');

// GET RESULTS SUMMARY
var domResultsSummary = $E('div#summary', 'results');

// GET RESULTS CONTAINER
var domResultsContainer = $E('div#list', 'results');

function init() {	
	
	// LOOP THROUGH TOGGLE ELEMENTS
	toggleElements.each( function(toggler, i) {
		
		/*		
		// CREATE SLIDER
        var slideable = new Fx.Slide(slideElements[i], {
                duration: 300,
                transition: Fx.Transitions.linear
        });
        
        // COLLAPSE ALL SLIDEABLES
        slideable.hide();
        
        // STORE IN ARRAY
        slideables[i] = slideable;
        
        // ADD EVENT LISTENER
        toggler.onclick = function() {
        	            
        	slideable.toggle(); 
            
        }         
        */	
        
        // CHANGE DISPLAY
        slideElements[i].setStyles({'display' : 'block'});
		
	});	
	
	// LOOP THROUGH SLIDE ELEMENTS
	slideElements.each( function(slider, i) {
		
		// GET ALL OPTIONS
        var optionElements = $ES('div[id=option]', slider);
        
        // LOOP THROUGH OPTIONS
        optionElements.each( function (option, i) {
        	
        	// GET LINK
        	var link = $E('a', option);
        	
        	// GET INPUT
        	var input = $E('input[type=hidden]', option);
        	
        	// ADD EVENT LISTENER
        	link.onclick = function() {
        		
        		if (input.disabled) {
        			input.disabled = false;
        			link.addClass('searched');       			
        		}
        		else {
        			input.disabled = true;
        			link.removeClass('searched');
        		}
        		
        	}
        
        });
	
	});
	
	// ADD EVENT LISTENER
	formSearch.addEvent('submit', function(e) {
		
		// PREVENT THE SUBMIT EVENT
		new Event(e).stop();
		
		// CLEAR RESULTS LIST, ADD INDICATOR
		domResultsContainer.empty().addClass('ajax-loading');
		
		// ADD MESSAGE
		domResultsSummary.innerHTML = "Searching...";
		
		// SEND AJAX
		this.send({
			onComplete: function(strJsonData) {
				updateDomResults(strJsonData);				
			}
		});
		
	});
	
}

function updateDomResults(strJsonData) {
	
	// CONVERT JSON TO ARRAY OF OBJECTS
	var aryDataSource = Json.evaluate(strJsonData);
		
	// UPDATE RESULTS SUMMARY
	if (aryDataSource.length == 0)
		domResultsSummary.innerHTML = "No Results Found";
	
	// LOOP THROUGH RESULTS
	aryDataSource.each( function(objDataSource, i) {
		
		// CREATE OPPORTUNITY TO BE INSERTED INTO DOM
		var domOpportunity = new Element( 'div', {'id': 'opportunity'} );
		var domNumber = new Element( 'div', {'id': 'number'} ).setHTML(i+1 + ".").injectInside(domOpportunity);
		var domCategory = new Element( 'div', {'id': 'category'} ).setHTML(objDataSource.name).injectInside(domOpportunity);
		var domTitle = new Element( 'div', {'id': 'title'} ).setHTML(objDataSource.title).injectInside(domOpportunity);	
		var domSalary = new Element( 'div', {'id': 'salary'} ).setHTML(objDataSource.compensation).injectInside(domOpportunity);		
		var domLocation = new Element( 'div', {'id': 'location'} ).setHTML(objDataSource.location).injectInside(domOpportunity);
		
		var domClear = new Element( 'div', {'id': 'clearDiv'} ).injectInside(domOpportunity);
				
		// INJECT INTO DOM
		(function() {
			
			// INJECT DOM
			domOpportunity.injectInside(domResultsContainer);
			
			// UPDATE RESULTS SUMMARY
			var counter = i + 1;
			if (counter == 1)
				domResultsSummary.innerHTML = "Showing " + counter + " Result";
			else
				domResultsSummary.innerHTML = "Showing " + counter + " Results";	
			
		}).delay(20 * i,this);	
		
		// ADD EVENT LISTENER
    	domOpportunity.onmouseover = function() {
    		
    		domOpportunity.addClass('current');
    		
    	}	
    	
    	// ADD EVENT LISTENER
    	domOpportunity.onmouseout = function() {
    		
    		domOpportunity.removeClass('current');
    		
    	}	
    	
    	// ADD EVENT LISTENER
    	domOpportunity.onclick = function() {
    		
    		MOOdalBox.open('index/view/id/' + objDataSource.id + '/view/apply', '', '');
    		
    	}
	
	});
	
	// REMOVE ADD INDICATOR
	(function() {
		domResultsContainer.removeClass('ajax-loading');
	}).delay(20 * aryDataSource.length,this);	
		
}