//============================//
// BEGIN: TODO ACTION SCRIPTS //
//============================//

	// SCRIPT:  Bepaalt bovenliggende of onderliggende record id nummers. Op basis hiervan 
	//			wordt bekend van welke records de volgorde omgewisseld moeten worden. Het 
	// 			voordeel van deze clientside bepaling is dat het aan de serverkant bijna geen 
	//			rekenkracht kost. 
	
	function doMoveRow(current_TR, pListType, pDirection){
		// Deze functie voert de verplaatsing van een rij client- en serverside
		// uit. De serverside verplaatsing wordt gedaan met een Ajax aanroep.
		
		var mainTable = $("mainTable");
		var index_new, id_cur, order_cur, id_new, order_new, url

		// Bepaal index nieuwe rij
		switch (pDirection) {
			case 'up' :	// >2 ivm tabelkop
				if (current_TR.rowIndex > 2) {
					index_new	= current_TR.rowIndex-1;}
				else { return; }
				break;
			case 'down' : // -2 ivm tabelvoet
				if (current_TR.rowIndex < mainTable.rows.length-2) {
					index_new	= current_TR.rowIndex+1; }
				else { return; }
				break;
			default : // Stop executing script ...
				return ;
			}

		// Haal data op uit huidige en nieuwe rij
		id_cur 		= current_TR.getAttribute('id');
		order_cur 	= current_TR.getAttribute('order');
		id_new 		= mainTable.rows[index_new].getAttribute('id');
		order_new 	= mainTable.rows[index_new].getAttribute('order');

		// Verwissel volgorde kenmerk bij om te wisselen rijen
		current_TR.setAttribute('order',order_new);
		mainTable.rows[index_new].setAttribute('order', order_cur);			
		
		// Wissel rijen echt om
		moveRow(current_TR, index_new);
	
		// Herstel de alternating row stijl
		restoreAlternateStyle()
		
		// Save rowchange in database
		url = 'hhp_todolist.asp'
		pars = 'pageaction=dynorder_switch&listtype=' + pListType + '&data=' + 
					id_cur + '-' + order_cur + '-' + id_new + '-' + order_new; 
		savedata(url,pars);
		}
	
	function moveRow(targetRow, newIndex) {
		//moves the target row object to the input row index
		//needed because firefox doesn't support the moverow method from the DOM!!
				
		//since we are not actually swapping but simulating a swap, have to "skip over" the current index
		if (newIndex > targetRow.rowIndex) {
			newIndex++;
		}
		
		//establish proper reference to the table
		var mainTable = $('mainTable');
		
		//insert a new row at the new row index
		var theCopiedRow = mainTable.insertRow(newIndex);
		
		//copy all the cells from the row to move
		//into the new row
		for (var i=0; i<targetRow.cells.length; i++) 
			{
			var oldCell = targetRow.cells[i];
			var newCell = document.createElement("TD");
	
			// Kopieer eigenschappen oude cel naar de nieuwe		
			newCell.innerHTML = oldCell.innerHTML;
			newCell.className = oldCell.className;	// Nodig voor IE om correct te renderen
			for( var x = 0; x < oldCell.attributes.length; x++ ) {
				newCell.setAttribute(oldCell.attributes[x].nodeName,oldCell.attributes[x].nodeValue)
			}
			// Voeg cellen toe aan de gekopieerde rij
			theCopiedRow.appendChild(newCell);
		}	
		  
		// Kopieer TR eigenschappen van oud naar nieuw
		theCopiedRow.setAttribute('id',targetRow.getAttribute('id'));
		theCopiedRow.setAttribute('order',targetRow.getAttribute('order'));		
		  
		//delete the old row
		mainTable.deleteRow(targetRow.rowIndex);
	}

	function restoreAlternateStyle(){
		// This function restores the alternating style of the rows, this is 
		// messed up because of the movement of the rows
		var curClass
		var mainTable = $('mainTable');
		
		for (var i=2; i < mainTable.rows.length - 1; i++) {
			var currentRow = mainTable.rows[i];

			// Determine the class to be shown
			if (curClass == "TD_RowFirst") 
				{ curClass = "TD_RowSecond" }
			else 
				{ curClass = "TD_RowFirst" }

			// set the right class for all the columns in the row
			for (var j=0; j<currentRow.cells.length; j++) {
					currentRow.cells[j].className = curClass; }
		}
	}

	// SCRIPT: AJAX SCRIPT 
	function savedata(url,pars){
		// Use prototype.js code framework to do Ajax stuff ...
		var myAjax = new Ajax.Request(url, 
		{
			method: 'get', 
			parameters: pars
			//onComplete: yourfunction()
		});
		}

//==========================//
// END: TODO ACTION SCRIPTS //
//==========================//

