addDOMLoadEvent(initialise);

function initialise()
{
	if ($('ticket-rec-holder'))
	{
		
		var x = $$('#ticket-rec-holder .assignment');
		for(var i=0; i < x.length; i++)
		{ 
			assignmentID = $(x[i]).getValue();
			setupFields(assignmentID);
		}
	}
}

function setupFields(assignmentID)
{
			$('error' + assignmentID).style.display = "none";
			
			$('commission' + assignmentID).insert({after: '<br>Ticket Value: <span></span>'});
			$('chq' + assignmentID).insert({after: '<br><span></span>'});
			updateFinalPrice(assignmentID);
			Event.observe($('commission' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				updateFinalPrice(id);
            }, false);
			
			$('sold' + assignmentID).insert({after: '<p><a id="all_' +  assignmentID + '" href="#">ALL</a> - <a id="none_' +  assignmentID + '" href="#">NONE</p><span></span>'});
			Event.observe($('all_' + assignmentID), 'click', function(e)     {
				id = this.up("tr").down(".assignment").value;
				bookSize = $('book_size' + id).getValue();
				$('sold' + id).value = bookSize;
				$('sold' + id).removeClassName("error");
				updateInvoice(id);
				Event.stop(e);
            }, false);			
			Event.observe($('none_' + assignmentID), 'click', function(e)     {
				id = this.up("tr").down(".assignment").value;
				$('sold' + id).value = "0";
				$('sold' + id).removeClassName("error");
				updateInvoice(id);
				Event.stop(e);
            }, false);	
			
			Event.observe($('sold' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				bookSize = $('book_size' + id).getValue();
				if (this.value > bookSize)
				{
					this.addClassName("error");
				}  else {
					this.removeClassName("error");
				}
            }, false);

			Event.observe($('cash' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				updateInvoice(id);
            }, false);

			Event.observe($('chq' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				updateInvoice(id);
            }, false);

			Event.observe($('sold' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				updateInvoice(id);
            }, false);

			Event.observe($('commission' + assignmentID), 'change', function(e)     {
				id = this.up("tr").down(".assignment").value;
				updateInvoice(id);
            }, false);		

			Event.observe($('complete_rec' + assignmentID), 'click', function(e)     {
                                
                                
				id = this.up("tr").down(".assignment").value;
                                //alert($('row'+id).identify());
                                //$('row' + id).innerHTML = $('form' + id).serialize(false);
				new Ajax.Updater($('row' + id), 'ticket_rec_handler.php', { method:'post', parameters: $('form' + id).serialize(true), evalScripts: false});
				Event.stop(e);
            }, false);		
			
}

function updateInvoice(assignmentID)
{
	commissionRate = $('commission' + assignmentID).getValue();
	faceValue = $('price' + assignmentID).getValue();
	ticketValue = faceValue - commissionRate;
	numberSold = $('sold' + assignmentID).getValue();
	amountDue = ticketValue * numberSold;
	cashCollect = $('cash' + assignmentID).getValue();
	chqCollect = $('chq' + assignmentID).getValue();
	
	remainingValue = amountDue - cashCollect - chqCollect;
	if (remainingValue < 0) {
		$('chq' + assignmentID).next("span").innerHTML = 'TOO MUCH MONEY &pound;' + (-1 * remainingValue).toFixed(2);
		$('chq' + assignmentID).next("span").addClassName("error");
		$('chq' + assignmentID).next("span").removeClassName("ok");
	} else if (remainingValue > 0) {
		$('chq' + assignmentID).next("span").innerHTML = 'INVOICE REQUIRED &pound;' + remainingValue.toFixed(2);
		$('chq' + assignmentID).next("span").addClassName("error");		
		$('chq' + assignmentID).next("span").removeClassName("ok");
	} else {
		$('chq' + assignmentID).next("span").innerHTML = 'OK';
		$('chq' + assignmentID).next("span").removeClassName("error");	
		$('chq' + assignmentID).next("span").addClassName("ok");
	}
}

function updateFinalPrice(assignmentID)
{
	commissionRate = $('commission' + assignmentID).getValue();
	faceValue = $('price' + assignmentID).getValue();
	ticketValue = faceValue - commissionRate;
	$('commission' + assignmentID).next("span").innerHTML = "&pound; " + ticketValue.toFixed(2);
	if (ticketValue < 0) {
		$('commission' + assignmentID).next("span").addClassName("error");
	} else {
		$('commission' + assignmentID).next("span").removeClassName("error");
	}
}


















