var sOrd = 'A';
var classString = '';
var loading = false;
var resultHTML = '';
var curSearchString = '';

function doSearch()
{
	classString = '';
	resultHTML = '';
	newSearchString = '';
	$(".classCheck").each(
		function() {
			if ($(this).attr('checked') == true) {
				classString += "," + $(this).attr('name');
			}
		}
	);
	classString = classString.substr(1);
	var opts = {
		url: 'ajax.asp',
		data: {
			action: 'doSearch',
			sState: $('#collegeState').val(),
			cString: classString,
			sOrd: sOrd
		},
		dataType: 'json',
		type: 'POST',
		success: function(data,status) {
			$('#searchResults').empty();
			if (data.results.length > 0) {
				if (data.results.length > 1) {
					$('#searchHeader > h3').html('We found ' + data.results.length + ' results:');
				} else {
						$('#searchHeader > h3').html('We found 1 result:');
				}
				for (var i=0;i<data.results.length;i++) {
					resultHTML += '<li class="listing">' + formatItem(data.results[i]) + '</li>';
				}
				$('#searchResults').css('display','block');
				$('#searchResults').append(resultHTML);
				resultHTML = '';
				toggleLoad(true);
			} else {
				$('#searchHeader > h3').html('No results were found, try changing your search.');
				$('#searchResults').css('display','none');
			}
		}
	};
	newSearchString = opts.data.sState + ',' + opts.data.cString + ',' + opts.data.sOrd;
	if (curSearchString == newSearchString) {
		curSearchString = '';
		return false;
	}
	toggleLoad(false);
	$.ajax(opts);
	curSearchString = newSearchString;
}

function formatItem(obj)
{
	var strHTML;
	strHTML = '<div class="logo">';
	if (obj.logo != "") { strHTML += '<a href="' + obj.web + '" target="_blank"><img src="images/logos/' + obj.logo + '" width="80" height="80" align="middle" border="0" /></a>'; }
	strHTML += '</div><h3><a href="' + obj.web + '" target="_blank">' + obj.school + ' - ' + getClassName(obj.className) + '</a></h3>';
	return strHTML;
}

function getClassName(code)
{
	if (code.length > 2) { return code; }
	switch(code)
	{
		case "BF":
			return "Bass Fishing";
		break;
		case "CS":
			return "Caribbean Studies";
		break;
		case "CA":
			return "Cartography";
		break;
		case "FI":
			return "Fisheries";
		break;
		case "MB":
			return "Marine Biology";
		break;
		case "ME":
			return "Marine Engineering";
		break;
		case "MS":
			return "Marine Science";
		break;
		case "MA":
			return "Maritime Studies";
		break;
		case "NA":
			return "Naval Architecture";
		break;
		case "OE":
			return "Ocean Engineering";
		break;
		case "OC":
			return "Oceanography";
		break;
		case "SA":
			return "Sailing";
		break;
		case "WS":
			return "Waterskiing";
		break;
		case "MT":
			return "Marine Tech";
		break;
	}
}

function toggleSort()
{
	if (sOrd == 'A')
	{
		sOrd = 'D';
		$('#sort_asc').removeClass('selected');
		$('#sort_desc').addClass('selected');
	} else {
		sOrd = 'A';
		$('#sort_desc').removeClass('selected');
		$('#sort_asc').addClass('selected');
	}
	doSearch();
	return false;
}

function subForm(state)
{
	//window.location = "http://www.boatus.com/College_test/search.asp?a=search&state=" + state;
	$('#collegeStateSub').val(state);
	$('#mapSearch').submit();
}

function showMap() {
	$('#advanced').css('display','none');
	$('#pageHide').fadeIn();
	$('#flashmap').fadeIn('slow');
}

function showAdvanced() {
	$('#flashmap').css('display','none');
	$('#pageHide').fadeIn();
	$('#advanced').fadeIn('slow');
}

function hideSearch() {
	$('#advanced').css('display','none');
	$('#flashmap').css('display','none');
	$('#pageHide').css('display','none');
}

function toggleLoad(status)
{
	if (status == true) {
		//done loading
		loading = false;
	} else {
		//start loading
		loading = true;
		$('#searchResults').empty();
		$('#searchResults').append('<li class="loader"><img src="images/loading.gif" alt="Loading" width="220" height="19" border="0" /><br /><strong>Loading...</strong></li>');
	}
}
$(document).ready(function() {
	$('#pageHide').click(function() {
		$('#advanced').css('display','none');
		$('#flashmap').css('display','none');
		$('#pageHide').css('display','none');
	});
	var qs = new Querystring();
	if (qs.get("advancedS") == "true") {
		showAdvanced();
	}
	if (qs.get("stateS") == "true") {
		showMap();
	}
});

/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}
