// $Id: entercalc.js 26 2010-06-07 11:24:34Z daniel15 $

var request;
var subjects;

// Initialise the page
window.addEvent('domready', function()
{
	request = new Request.HTML(
	{
		method: 'post',
		url: 'calc.php',
		update: $('output'),
		onRequest: function()
		{
			$('loading').style.visibility = 'visible';
		},
		onSuccess: function()
		{
			$('loading').style.visibility = 'hidden';
		}
	});
	
	// Start the autocomplete
	new Autocomplete('subject', subjects, 
	{
		onSelect: add_subject
	});
});

// Add the selected subject to the listing.
function add_subject(subj_id, subj_name)
{
	// Get the subject details.
	//var subj_id = $('subject').value;
	//var subj_name = $('subject').text;
	//var subj_name = $('subject').options[$('subject').selectedIndex].text;	
	
	// Create a new div for this subject.
	var el = new Element('div', {id: 'subject_' + subj_id, 'class': 'subject'});
	// A span for the subject name.
	var el_name = new Element('span', {'class': 'subject_name'}).injectInside(el);
	// Add the "remove" button.
	var del = new Element('a', {href: 'javascript:delete_subject(' + subj_id + ')', html: '<img src="res/bin_closed.png" alt="Delete" title="Delete"/>'}).injectInside(el_name);
	// Add some text.
	var text = new Element('span', {html: ' ' + subj_name}).injectAfter(del);
	// Span for the study score box.
	var el_score = new Element('span', {'class': 'subject_score', html: 'Score: '}).injectAfter(el_name);
	// The study score box.
	var score_box = new Element('input', {type: 'text', size: '5', maxlength: '2', name: 'score[' + subj_id + ']'}).injectInside(el_score);
	// Update the results when focus is lost.
	score_box.addEvent('blur', update);
	// <br> for clearing
	var br = new Element('br', {clear: 'both'}).injectAfter(el_score);

	// Add this row.
	el.inject($('subjects'));
	// Update.
	update();
}

// Update the results.
function update()
{
	// Send our update request.	
	request.post($('theform'));
}


// Delete a subject.
function delete_subject(id)
{
	// Remove it!
	$('subject_' + id).dispose();
	// Update.	
	update();
}
