// CollegeMatch application-specific functions
// keeps tracks of schools viewed for a user "previous" button-type function

var schoolArray = new Array();
var currentIndex = 0;	// pointer into schoolArray for "previous"/"next" function

//preload images
if (document.images)
{
	preload_image_object = new Image();
	image_url = new Array();
	image_url[0] = "/images/brow4-left-lit.gif";
	image_url[1] = "/images/brow3-left-dark.gif";
	image_url[2] = "/images/brow4-right-lit.gif";
	image_url[3] = "/images/brow3-right-dark.gif";
	image_url[4] = "/images/1-step.gif";
	image_url[5] = "/images/2-step.gif";
	image_url[6] = "/images/3-step.gif";
	var i = 0;
	for(i=0; i<=6; i++) { preload_image_object.src = image_url[i]; }
}

function process_collegematch_name_lookup_form()
{
	var paramstring;
	var string = document.getElementById("Search String").value;
	if( string.length > 0 )	{ paramstring = "Search String=" + escape(string); }
	if( ! paramstring )	{ alert('You did not enter any text.'); return; }

	document.body.style.cursor='wait';
	show_collegematch_name_lookup_results(paramstring);
////	javascript:urchinTracker("/process-college-match?rm=name&" + paramstring);
	//s_action('07');		// indextools
	document.body.style.cursor = 'default';
	//scroll(0,260);
}
function show_collegematch_name_lookup_results( paramstring )
{
	// clear collegematch_school_results when the name lookup submit button is pressed
	document.getElementById("collegematch_school_results").innerHTML = '';

	// show the results; previously was missing, to focus attention on step 1
	document.getElementById("cm_name_lookup_results").style.display = 'block';

	var myDataSource = new YAHOO.util.DataSource("/process-college-match?rm=name&" + paramstring);
	myDataSource.responseType = YAHOO.util.DataSource.TYPE_TEXT;	// define input as plain text
	myDataSource.responseSchema =
	{ 
		recordDelim: "\n",
		fieldDelim: "\t",
		fields: [	{key:"school"},
					{key:"location"},
					{key:"enrollment", parser:YAHOO.util.DataSource.parseNumber}
				]
	};
	var myColumnDefs =
	[
		{key:"school", label:"School (click to select for matching)", sortable:true},
		{key:"location", label:"Location", sortable:true},
		{key:"enrollment", label:"Enrollment", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true, sortOptions:{defaultOrder:"desc"}}
	];
	var myDataTable = new YAHOO.widget.DataTable("collegematch_name_lookup_results", myColumnDefs, myDataSource);	// update collegematch_name_lookup_results with HTML results
}
function process_collegematch_details( school_lookup, school_display, no_add )
{
	if( ! school_lookup )	{ alert('Problem interpreting your request; please try again.'); return; }
	var paramstring;
	if( school_lookup.length > 0 )	{ paramstring = "School Name=" + escape(school_lookup); }

// work in progress
//	var state = document.getElementById("cm_state").value;
//	if( state.length > 0 )		{ paramstring = paramstring + "&State=" + escape(state); }

	document.body.style.cursor='wait';
	show_collegematch_details_results(paramstring, school_display);
////	javascript:urchinTracker("/process-college-match?rm=match&" + paramstring);
	//s_action('07');		// indextools
	document.body.style.cursor = 'default';
	//scroll(0,260);

	if ( ! no_add  )	{ add_to_history( school_lookup, school_display ); }	// don't add to history if viewing from "back" button click
}
function show_collegematch_details_results( paramstring, school_display )
{
	document.getElementById("target_school_name").innerHTML = '<p>You\'ve Selected: <strong>' + school_display + '</strong></p>';

	// show the results; previously was hidden, to focus attention on steps 1 and 2
	document.getElementById("cm_match_results").style.display = 'block';

	var myDataSource = new YAHOO.util.DataSource("/process-college-match?rm=match&" + paramstring);
	myDataSource.responseType = YAHOO.util.DataSource.TYPE_TEXT;	// define input as plain text
	myDataSource.responseSchema =
	{ 
		recordDelim: "\n",
		fieldDelim: "\t",
		fields: [	{key:"similarity", parser:YAHOO.util.DataSource.parseNumber},
					{key:"school"},
					{key:"location"},
					{key:"enrollment", parser:YAHOO.util.DataSource.parseNumber},
					{key:"open_admission"},
					{key:"sat"},
					{key:"tuition", parser:YAHOO.util.DataSource.parseNumber}
				]
	};
	var myColumnDefs =
	[
		{key:"similarity", label:"Similarity<br>(100 max.)", sortable:true},
		{key:"school", label:"School", sortable:true},
		{key:"location", label:"Location", sortable:true},
		{key:"enrollment", label:"Enrollment", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true, sortOptions:{defaultOrder:"desc"}},
		{key:"open_admission", label:"Open<br>Admission", sortable:true, sortOptions:{defaultOrder:"desc"}},
		{key:"sat", label:"SAT<br>Mid-Range", sortable:true, sortOptions:{defaultOrder:"desc"}},
		{key:"tuition", label:"Tuition<br>& Fees", formatter:YAHOO.widget.DataTable.formatNumber, sortable:true, sortOptions:{defaultOrder:"desc"}}
	];
	var myDataTable = new YAHOO.widget.DataTable("collegematch_school_results", myColumnDefs, myDataSource);	// update collegematch_school_results with HTML results
}
// enter_lookup runs the name lookup code when the user hits Enter key in the name string entry field
function enter_lookup(e)
{
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	// variable "code" contains the pressed key in all browsers.
	if (code == 13)
	{
		process_collegematch_name_lookup_form();
		return false;
	}
	else { return true; }
}

//function close_collegematch_fieldsets()	{ toggle('collegematch_advanced_info'); }

function add_to_history(school_lookup, school_display)
{
	if( schoolArray.length > currentIndex )	{ schoolArray.length = currentIndex; }	// truncate array after currentIndex for familiar previous button behavior
	schoolArray.push(school_lookup, school_display);
	currentIndex = currentIndex + 2;				// each school entry has two array entries -- lookup name and display name

	// set the prev/next button state
	if( currentIndex > 2 )	{ show_prev_button(); }	// show previous link if we aren't pointing to the first school in the history
	else					{ hide_prev_button(); }
	hide_next_button();								// next link is not meaningful except after a previous link click
}
function previous_school()
{
	currentIndex = currentIndex - 2;								// point at previous school
	process_collegematch_details( schoolArray[currentIndex-2], schoolArray[currentIndex-1], 1 );	// 1 indicates don't add to history again

	// set the prev/next button state
	if( currentIndex <= 2 )	{ hide_prev_button(); }					// if at end of the "previous", don't show it
	else					{ show_prev_button(); }
	if( schoolArray.length > currentIndex )	{ show_next_button(); }	// if not at end of the list, show next link
	else									{ hide_next_button(); }	// if not at end of the list, show next link
}
function next_school()
{
	currentIndex = currentIndex + 2;								// point at next school
	process_collegematch_details( schoolArray[currentIndex-2], schoolArray[currentIndex-1], 1 );	// 1 indicates don't add to history again

	// set the prev/next button state
	if( currentIndex > 2 )	{ show_prev_button(); }					// we're not looking at last school, so show next link
	else					{ hide_prev_button(); }
	if( schoolArray.length > currentIndex )	{ show_next_button(); }	// we're not looking at last school, so show next link
	else									{ hide_next_button(); }
}
//function show_prev_button()	{ document.getElementById("cm_prev_button").innerHTML = '<a href="#" onclick="previous_school();return;">previous school</a>'; }
//function show_next_button()	{ document.getElementById("cm_next_button").innerHTML = '<a href="#" onclick="next_school();return;">next school</a>'; }
//function hide_prev_button()	{ document.getElementById("cm_prev_button").innerHTML = ''; }
//function hide_next_button()	{ document.getElementById("cm_next_button").innerHTML = ''; }
function show_prev_button()	{ document.getElementById("cm_prev_button").innerHTML = '<img src="/images/brow4-left-lit.gif" alt="previous school" onclick="previous_school();return;">'; }
function show_next_button()	{ document.getElementById("cm_next_button").innerHTML = '<img src="/images/brow4-right-lit.gif" alt="next school" onclick="next_school();return;">'; }
function hide_prev_button()	{ document.getElementById("cm_prev_button").innerHTML = '<img src="/images/brow3-left-dark.gif" alt="previous school">'; }
function hide_next_button()	{ document.getElementById("cm_next_button").innerHTML = '<img src="/images/brow3-right-dark.gif" alt="next school">'; }
