var nextRowId=1;

function renumberTableRows(){
    var row_no=1;
    var table = document.getElementById("tabbody");
    for (var i = 0, row; row = table.rows[i]; i++) {
	row.cells[0].innerHTML=row_no++;
    }
}

function deleteTableRow(rowId){
    var target = document.getElementById("upload-target"+rowId);
    var children = target.children;

    // delete all uploaded elements
    for (var i = 0; i < children.length; i++) {
	var tmp = children[i].getAttribute("data-id");
	$K.ajax.post({
	    url: 'delete.php',
	    data: 'id='+tmp,
	    before: function(xhr) {},
	    success: function(response) {},
	    error: function(response) {}
	});
    }
    

    // delete the row from table
    var element = document.getElementById("trow"+rowId);
    element.parentNode.removeChild(element);
    renumberTableRows();
//    alert(rowId);
    
}

function addTableRow(){

    var $node = $K.dom('#tabbody');
    // create a new table row with id
    var element = document.createElement('tr');
    element.setAttribute("id", "trow"+nextRowId);

    var e="";

    // add column for position no
    e += '<td></td>';

    // add coluemn for description
    e += `<td><textarea name="desc[${nextRowId}]" rows="2"></textarea> </td>`;

    // add column for date
    e += `<td><input name="date[${nextRowId}]" type="date"/></td>`;

    // add column for num
    e += `<td><input name="amount[${nextRowId}]" type="num"/></td>`;

    // add column for file upload
    e+= `
	<td data-kube="">
	<form action="">
	<div class="form-item">
	<div class="upload"
    data-kube="upload"
    data-type="file" data-multiple="true"
    data-target="#upload-target${nextRowId}"
    data-url="upload.php" data-url-remove="delete.php"
    data-progress="true">
	</div>
	<div id="upload-target${nextRowId}" class="upload-target"></div>
	</div>
	</form>
	
    </td>
	`;
    // add delete bnutton
    e +=
	`<td><span
    onclick="deleteTableRow(${nextRowId})"
    class="close is-large">
	</span></td>`;
    
    
    $node.append(element);
    element.innerHTML=(e);
    renumberTableRows();
    nextRowId++;
}


function submitTable(){
    alert("submit");

    var obj;
    
    var table = document.getElementById("tabbody");
    for (var i = 0, row; row = table.rows[i]; i++) {
	console.log(row.cells[1]);
//	var n = row.cells[1].value;
//	alert(n);
    }
    

    
}


$K.add('module','kaform', {
    init: function(app,context){
	this.app = app;
      
	// getting context and the module element
	this.context = context;
	this.$element = context.getElement();
    },

    hello: function(){
	alert ("hello function of kaform");
    },
    
    start: function()
    {
	
	/*this.$element.on('keydown.kube.editable', this._hui.bind(this));
          this.$element.on('paste.kube.editable', this._hui.bind(this));
          this.$element.on('blur.kube.editable', this._hui.bind(this));
	*/			

//	alert(this.$element);
//	this.$element.on('click', this.addRow.bind(this));
	this._build();
    },		

    addRow: function() 
    {
	
	var $node = $K.dom('#tabbody');
	// create a new table row with id
	var element = document.createElement('tr');
	element.setAttribute("id", "trow"+nextRowId);

	var e="";

	// add column for position no
	e += '<td></td>';

	// add coluemn for description
	e += '<td><textarea rows="2"></textarea> </td>';

	// add column for date
	e += '<td style="overflow:visible;"><input type="date"/></td>';

	// add column for num
	e += '<td style="overflow:visible;"><input type="num"/></td>';

	// add column for file upload

	e+= `
	    <td data-kube="">
	    <form action="">
	    <div class="form-item">
	    <div class="upload"
	data-kube="upload"
	data-type="file" data-multiple="true"
	data-target="#upload-target${nextRowId}"
	data-url="upload.php" data-url-remove="delete.php"
	data-progress="true">
	    </div>
	    <div id="upload-target${nextRowId}" class="upload-target"></div>
	    </div>
	    </form>
   
	    </td>
	`;
	// add delete bnutton
	e +=
	    `<td><span

	onclick="deleteTableRow('trow${nextTableRow}'"
	class="close is-large">
	    </span></td>`;
		
	$node.append(element);
	element.innerHTML=(e);
	renumberTableRows();
	nextRowId++;

	
    },

    // private
    _build: function()
    {

    },
    onmessage: {
	alert: {
	    closed: function(sender)
	    {
		alert(sender);
		// caught
	    }
        }
    }
});


// startup is here

$K.init({
    observer: true
});


// on startup clear session on server
$K.ajax.get({
    url: 'clear.php',
    data: '', // or key=value object
    before: function(xhr) {},
    success: function(response) {},
    error: function(response) {}
});

// add on table row
addTableRow();