/*
 * bug 13 may 24 11 
 * focus to first field 
 */
var tasksRow = new Entity(tasksRow, true,[[zipAlt1],[zipCount1],0,1,2]);
var tasks = new Entity(tasks,false,["title.draw(['tasks']);", "(getSize())[1]/2;",[tasksRow]	]);
	

tasks.refresh = function() {
	var s1 = $("#instance").val();
	$.ajax({
		data: {q:"tasks", s: $("#instance").val()}, 
		success:function(data, textStatus) {
			if ( ! data ) 
				return;
			try { 
				// task id, task custom id, name
				updateFormNumCB = data.length; 
				tasksRow.set(data);
				zipCount1.reset();
				$('#rightside').html(tasks.draw());	
				var st1 = new SortableTable($("#taskList").get(0),["None", "CaseInsensitiveString", "CaseInsensitiveString"]);
			} catch (e) { 
				myCatch(e); 
			}									
		}
	});	
}

tasksRow.goClick = function(){
	var action = $("#action").val(); 
	var tasksTaskIds='';
	var j=0;
	var task;
	try { 
		for(var i=0; i < this.numRows; i++){
			if ($("#checkBox_"+i).attr('checked')){
				if ( tasksTaskIds.length > 0 ) tasksTaskIds += ',';
				if ( ! task ) task = this.data[i];
				tasksTaskIds += this.data[i][0];
			}
		}
    
		if ( tasksTaskIds.length == 0 ) {
			throw "You must select a task!";
		}
    
		if  (action == 'delete') {
			if ( ! confirm("Are you sure?")) {
				return;
			}
			$.ajax({
				data: {q:'taskdelete', d: tasksTaskIds},
				success: function(data, textStatus) {
					if ( ! data) 
						return;
					try { 
						tasks.refresh();
					} catch ( e) { 
						myCatch(e);
					}
				}
			});
		} else { // edit
			$('#tasksOne').css('visibility','visible');
			$('#tasksOneId').val(task[0]);
			$('#tasksOneCid').val(task[1]);
			$('#tasksOneCid').attr('disabled','disabled');
			$('#tasksOneName').val(task[2]).focus(); // bug 13 may 24 11
		}
	} catch(e) {
		myCatch(e);
	}
}

tasksRow.save = function () {
	var taskId = $('#tasksOneId').val();
	var elm1 = $('#tasksOneCid').get(0);
	var taskCid, elm2, taskName; 
	var data;
	
	try { 
		if (! elm1 || elm1.value == '' ) {
			throw "Task ID cannot be empty";
		}
		taskCid = elm1.value;
		elm2 = $('#tasksOneName').get(0);
		if (! elm2 || elm2.value == '' ) {
			throw "Task Name cannot be empty";
		}
		taskName = elm2.value;	
	
      if ( taskId == '' ) {
         for(var i=0; i < this.numRows; i++){
            if (taskCid == this.data[i][1]) {
             	throw 'Task ID ' + taskCid + ' must be unique';
            }
         }
      }
		
		data = $.toJSON(Array($('#instance').val(), taskId, taskCid, taskName));
		$.ajax({
			data: {q:'tasksave', d: data},
			success: function(data, textStatus) {
				if ( !data) return; 
				try { 
					rightsideDraw();
				} catch(e) {
					myCatch(e);
				} 				
			}
		});   
		
	} catch(e) {
		myCatch(e);
	}
}

tasksRow.getPrecTaskIds = function(taskId,taskCid) {
	var taskMap=Array();
	for(var i=0; i < this.numRows; i++){
		// map cid -> id
		taskMap[this.data[i][1]] = this.data[i][0];		
    }
    
    if ( taskId == '' && taskMap[taskCid]) { // new task 
    	throw 'Task ID ' + taskCid + ' must be unique';
 
    }    
}	


tasksRow.create = function(){
	$('#tasksOne').css('visibility','visible');
   	$('#tasksOneId').val('');
   	$('#tasksOneCid').val('').focus(); // bug 13 may 24 11
   	$('#tasksOneCid').removeAttr('disabled');
   	$('#tasksOneName').val('');
   	$('#tasksOnePrecede').val('');   	 
}
 

