sections = ['panelStations', 'searchResultsStations', 'wasteBin'];

function stripeTable(table) {
	var rows = table.getElementsByTagName('tr');
	for (var i = 0; i < rows.length; i++) {
		if (i % 2 == 1) {
			cssClass = 'r1';
		} else {
			cssClass = 'r2';
		}
		rows[i].className = cssClass;
	}
}

function getCustomPanel() {
	var panelId = $('panelId');
	if (panelId.value > 0) {
		new Ajax.Updater('panelList',
						 '/api/userPanels.php',
						 { method: 'post', parameters: $('panelForm').serialize(true) } );
		// Make the result section visible
		styleObj = document.getElementById('panelList').style;
		styleObj.display = 'block';
		// Hide the panel selection
		styleObj = document.getElementById('panelSelect').style;
		styleObj.display = 'none';
		// Show the extended Search
		styleObj = document.getElementById('extendedStationSearch').style;
		styleObj.display = 'block';
	} else {
		alert('Please select a panel...' + panelId.value);
	}
}

function moveRowBetweenTables(targetTableId, element) {
	// Hide the move control
	element.style.display = 'none';
	var panelControls = element.parentNode.getElementsByTagName('div')[0];
	panelControls.style.display = 'block';

	// Clone the row
	var targetRow = element.parentNode.parentNode;
	var clone = targetRow.cloneNode(true);

	// Delete the row from the origin table
	var rowIndex = targetRow.rowIndex;
	var originTable = targetRow.parentNode;
	originTable.deleteRow(rowIndex - 1);

	// Grab a control cell to copy into the clone row
	var targetTable = document.getElementById(targetTableId);

	var stationId = clone.getElementsByTagName('input')[0].value;	
	var inputs = targetTable.getElementsByTagName('input');
	var stationNotInPanel = true;
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].name == 'stationId[]') {
			if (inputs[i].value == stationId) {
				stationNotInPanel = false;
				alert("Station already exists in the Panel.");
			}
		}
	}

	if (stationNotInPanel) {
		// Append the clone row to the target table
		//var root = targetTable.getElementsByTagName('tr')[0].parentNode;
		var root = targetTable.getElementsByTagName('tbody')[0];
		root.appendChild(clone);
		stripeTable(targetTable);
		
		inputs = targetTable.getElementsByTagName('input');
		for (i = 0; i < inputs.length; i++) {
			inputs[i].name = 'stationId[]';
		}
	}
	stripeTable(originTable);
}

function moveRow(element, direction) {
	var targetRow = element.parentNode.parentNode.parentNode;
	var targetRowClone = targetRow.cloneNode(true);

	var targetTable = targetRow.parentNode.parentNode;
	var root = targetTable.getElementsByTagName('tbody')[0];

	var rowIndex = targetRow.rowIndex;
	
	if (direction == 'down') {
		rowIndex = targetRow.rowIndex + 1;
	} else if (direction == 'up') {
		rowIndex = targetRow.rowIndex - 1;
	}

	maxIndex = targetTable.getElementsByTagName('tr').length - 1;
	if ((rowIndex >= 1) && (rowIndex <= maxIndex)) {
		var adjacentRow = targetTable.getElementsByTagName('tr')[rowIndex];
		var adjacentRowClone = adjacentRow.cloneNode(true);
		
		root.replaceChild(targetRowClone,adjacentRow);
		root.replaceChild(adjacentRowClone,targetRow);
		
		stripeTable(targetTable);
	}
}

function deleteRow(element) {
	var targetRow = element.parentNode.parentNode.parentNode;

	// Delete the row from the origin table
	var rowIndex = targetRow.rowIndex;
	var targetTable = targetRow.parentNode;
	targetTable.deleteRow(rowIndex - 1);
	
	stripeTable(targetTable);
}

function getSearchResultStations() {
	new Ajax.Updater('searchResultsStations',
					 '/api/callLetters.php',
					 { method: 'get',
					   parameters: $('panelForm').serialize(true),
					   onComplete: function() { styleObj = document.getElementById('searchResultsStations').style;
												styleObj.display = 'block';
												createLineItemSortables(); } } );
}

function createLineItemSortables() {
	for(var i = 0; i < sections.length; i++) {
		Sortable.create(sections[i], {tag:'div', dropOnEmpty:true, containment:sections, only:'lineitem'});
	}
}

function destroyLineItemSortables() {
	for(var i = 0; i < sections.length; i++) {
		Sortable.destroy(sections[i]);
	}
}

function createGroupSortable() {
	Sortable.create('page',{tag:'div',only:'section',handle:'handle'});
}

function getPanelOrder() {
	var stationList = $('panelList');
    var inputs = stationList.getElementsByTagName('input');
    var ct = 0;
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].name == 'stationId[]') {
            ct++;
        }
    }
    if (ct == 0) {
        return confirm("You have not selected any stations.\nDo you wish to abandon this panel?");
    } else {
	    //stationList.value = Sortable.sequence('panelStations')
	    return true;
    }
}

