/**
 * Dynamically pulls in colleges by state
 */

function getColleges(element)
{
	var state     = document.getElementById('state_id');
	
	if (state.value == '') {
		parseColleges('');
	} else {
		sendRequest('getColleges', [ state.value ]);
	}
}

function getCollegesForNetres(element)
{
	var state     = document.getElementById('state_id');
	
	if (state.value == '') {
		parseColleges('');
	} else {
		sendRequest('getCollegesForNetres', [ state.value ]);
	}
}

function parseColleges(serializedData)
{
	var cities;
	
	// check for no results
	if (serializedData.indexOf('%%') == -1) {
		colleges = [];
	} else {
		// break into weeks
		colleges = serializedData.split('^^');
	}

	loadCollegeOptions(colleges);
}

function loadCollegeOptions(colleges)
{
	var collegeBox = document.getElementById('college_id');
	var storedValue = document.getElementById('stored_college').value;
	var selectedOption = null;
	var option;
	var text;
	var college;
	var data;
	var i;

	resetSelectCollege(collegeBox);

	for (i = 0; i < colleges.length; i++) {
		// parse cities array
		college   = colleges[i];
		data   = college.split('%%');
	
		code     = data[0];
		college  = data[1];
	
		// create option
		option  = document.createElement('option');
		text    = document.createTextNode(college);
		option.value = code;
		option.appendChild(text);
		
		if (storedValue.toLowerCase() == code.toLowerCase()) {
			option.selected = 'selected';
			selectedOption = i + 1;
		}
	
		// append child
		collegeBox.appendChild(option);
	}

	collegeBox.selectedIndex = (selectedOption == null) ? 0 : selectedOption;
	
	// flash element
	if (colleges.length > 0) {
		flashElement('ffee33', 'ffffff', collegeBox);
	}
}

function resetSelectCollege(element)
{
	var initialElement  = document.createElement('option');
	var initialText     = document.createTextNode('--');
															
	// remove options
	while (element.childNodes.length >= 1) {
		element.removeChild(element.firstChild);
	}

	// create initial option
	initialElement.appendChild(initialText);
	initialElement.value = '';
	element.appendChild(initialElement);
}