/* 
 * bug 13 may 24 11
 * focus first field 
 */
// data coming from server 
// [ [[task_id, task_custom_id, name],...] data[0]
//   [[sid, scid, name, [[productivity],...]] data[1] 
// ] 
var sAPCol = new Entity(['<td>','</td>'],true);
var sAPRow = new Entity(sAPRow, true, [[zipAlt1],[zipCount1],0,1,2,[sAPCol,3]]);
var sAPOneDetail = new Entity(sAPOneDetail,true,[1,0,[zipCount2]]);
var sAPTaskColHead = new Entity(sAPTaskColHead, true,[0,2,1]);	 
var sAP = new Entity(sAP, false,["title.draw(['staff and productivity']);", "(getSize())[1]/2;",[sAPTaskColHead], [sAPRow],
	[sAPOneDetail]]);

sAP.refresh = function() {
	$.ajax({	 
		data: {q:"sAP", d: $("#instance").val()}, 
		success:function(data, textStatus) {
			if  (! data ) 
				return;
			try { 
				sAPTaskColHead.set(data[0]);
				zipCount1.reset();
				sAPRow.set(data[1]);
				zipCount2.reset();
				sAPOneDetail.set(data[0]);
				updateFormNumCB = data[1].length;
				var rs = sAP.draw();
				// $('#debug').html(debugStr(rs));
				$('#rightside').html(rs);
			var scr = 	["None", "CaseInsensitiveString", "CaseInsensitiveString"]; 
			for (var i = 0; i < sAPOneDetail.numRows ; i++ ) {	
				scr[i+3] = 'Number';
			}
			var st1 = new SortableTable($("#sAPList").get(0), scr);
			} catch (e) {
				myCatch(e);
			} 
		}
	});		
}

sAPRow.goClick = function() {
	var action = $("#action").val(); 
	var ids="";
	var selected=-1;
	try {
		for (var i=0; i < this.numRows; i++){
			if ($("#checkBox_"+i).attr('checked')){
				if ( ids.length > 0 ) ids +=",";
				ids += $("#checkBox_"+i).val();
				if (selected == -1) selected  = i;
			}
		}
    
		if ( ids.length == 0 ) {
			throw "You must select something!";
		}
    
		if  (action == 'delete') {
			if ( ! confirm("Do you really want to delete these staffs?")) {
				return;
			}
			$.ajax({
				data: {q:'sAPdelete', d: ids},
				success: function(data, textStatus) {
					if ( ! data ) return;
					try { 
						rightsideDraw();
					} catch (e) {
						myCatch(e);
					}
				}
			});
		} else { // edit
			$('#sAPOne').css('visibility','visible');
			$('#sAPOneStaffId').val(this.data[selected][0]);
			$('#sAPOneStaffCid').val(this.data[selected][1]);
			$('#sAPOneStaffCid').attr('disabled','disabled');
			$('#sAPOneStaffName').val(this.data[selected][2]).focus(); // bug 13 may 24 11
			for (var i = 0; i < sAPOneDetail.numRows ; i++) {
				$('#sAPOneTask_'+i).val(this.data[selected][3][i]);
			}
		}
	} catch (e) {
		myCatch(e);
	}
}

sAPRow.save = function(){
	var d=[], data;
	try {
		d[0] = $('#instance').val();   // id
		d[1] = $('#sAPOneStaffId').val(); 	// staff id
		d[2] = $('#sAPOneStaffCid').val();	// cid
		
		// cid must not be '' 
		if ( d[2] == '') {
			throw 'custom Id cannot be empty';
		}
		// check unicity for new 
		if  (d[1] == '' ) {
			for (var i = 0; i < this.numRows ; i++) {
				if ( this.data[i][1] == d[2] ) {
					throw 'staff id must be unique';
				}
			}
		}

		// name 
		d[3] = $('#sAPOneStaffName').val();
		if ( d[3] == '') {
			throw 'staff name cannot be empty';
		}

		d[4] = [];
		for ( var i = 0; i < sAPOneDetail.numRows; i++) {
			d[4][i] = [];
			d[4][i][0] = sAPOneDetail.data[i][0]; // task id
			d[4][i][1] = $('#sAPOneTask_' + i).val(); // productivity 
			if ( ! d[4][i][1]) {
				d[4][i][1] = '0';
			} else {
				d[4][i][1] = parseFloat(d[4][i][1]); 
				if ( isNaN(d[4][i][1])) {
					throw 'productivity must be a number';
				} 
			}
		}
		
		data = $.toJSON(d);
		$.ajax({
			data: {q:'sAPsave', d: data},
			success: function(data, textStatus) {
				if ( ! data ) return; 
				try { 
					rightsideDraw();
				} catch (e) {
					myCatch(e);
				}
			}
		});    
	} catch (e) {
		myCatch(e);
	}
}	

sAPRow.create = function(){
	$('#sAPOne').css('visibility','visible');
   	$('#sAPOneStaffId').val('');
   	$('#sAPOneStaffCid').val('').focus(); // bug 13 may 24 11
   	$('#sAPOneStaffCid').removeAttr('disabled');
   	$('#sAPOneStaffName').val('');
   	$('input[id^="sAPOneTask_"]').val('');   	
}
 
 

