
function mouseOver(row) {
	var partnerRow = Element.extend(row).hasClassName('summary') ? 
		$(row).next('.details') : $(row).previous('.summary');
	$(row).addClassName('hovering');
	$(partnerRow).addClassName('hovering'); 
}

function mouseOut(row) {
	var partnerRow = Element.extend(row).hasClassName('summary') ? 
		$(row).next('.details') : $(row).previous('.summary');
	$(row).removeClassName('hovering');
	$(partnerRow).removeClassName('hovering'); 
}

function mouseClick(parentRow) {
	toggleDetails(parentRow);
}

function toggleDetails(parentRow) {
	var hiddenRow = Element.extend(parentRow).next('tr');
	if ($(hiddenRow).expanded) {
		parentRow.down('a').update('Details...');
		$(hiddenRow).down('.detailsContainer').slideUp({duration: 0.25});
		$(hiddenRow).expanded = false;
	}
	else {
		parentRow.down('a').update('Close...');
		$(hiddenRow).down('.detailsContainer').slideDown({duration: 0.25});
		$(hiddenRow).expanded = true;
	}
}

function addRecord() {
	alert('hi');
}

function ajaxCallCompleted() {
	_updateSelectedRecords();
}

function searchWindowLoaded() {
	if (document.getElementById("selectedRecordsCount") == null) return;
	_updateSelectedRecords();
}

function _updateSelectedRecords() {
	// cross-browser support
    var innerText = $("ajaxResultsDiv").textContent ? 
    	$("ajaxResultsDiv").textContent : $("ajaxResultsDiv").innerText;
	var result = innerText.evalJSON(true);
	selectedRecords = result['selectedRecordIds'] != null ? 
		result['selectedRecordIds'] : []; 
	removedRecord = result['removedRecordId'];

	// adjust count of selected records
	var selectedRecordsCountSpan = document.getElementById("selectedRecordsCount"); 
	if (selectedRecordsCountSpan.innerHTML != selectedRecords.length) {
		selectedRecordsCountSpan.innerHTML = selectedRecords.length;
		new Effect.Highlight('requestedRecords', { startcolor:'#CCCCFF', endcolor:'#F8F8F0', duration:'5.0' });
	}

	// unhighlight a removed record (if applicable)
	if (removedRecord != null) {
		var row = document.getElementById("row" + removedRecord);
		Element.extend(row).removeClassName('selected');
		row = $(row).next('tr.details');
		Element.extend(row).removeClassName('selected');
		var buttonText = $('defaultPurchaseButtonText').innerHTML;
		$(row).down('input[type=\'submit\']').writeAttribute(
			{value: buttonText});
		$(row).down('input[type=\'hidden\']').writeAttribute(
			{value: "add"});
	}		

	// highlight selected records
	for (i=0; i < selectedRecords.length ;i++) {
		var recordId = selectedRecords[i];
		var row = document.getElementById("row" + recordId);
		if (row == null) {
			// selected row may not be currently displayed; previous search or page
			continue;
		}
		Element.extend(row).addClassName('selected');
		row = $(row).next('tr.details');
		Element.extend(row).addClassName('selected');
		$(row).down('input[type=\'submit\']').writeAttribute(
			{value: "Remove from Basket"});
		$(row).down('input[type=\'hidden\']').writeAttribute(
			{value: "remove"});
		
	}
	
	// enable/disable cart button
	$("requestedRecords").down("input[type=\'submit\']").disabled = 
		selectedRecords.length == 0;
}

/* Clear all form values.  Input[type='reset'] simply resets to values on page load,
   which would match the previous search rather than being empty. */
function clearForm(clearButton) {
	var form = $(clearButton).up('form');
	
	// Clear all text inputs
	$(form).getInputs('text').each(function(item) {
		item.clear();
	});
	
	// Reset all drop-down inputs
	form.select('select').each(function(item) {
		// Select the first item ("all")
		item.down('option').selected = true;
	});
}
