
var currentRowId=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 isFloat(val) {
    var floatRegex = /^-?\d+(?:[.,]\d*?)?$/;
    if (!floatRegex.test(val))
        return false;

    val = parseFloat(val);
    if (isNaN(val))
        return false;
    return true;
}




function deleteTableRow(rowId){

    var target = document.getElementById("upload-target"+rowId);
//            this.message = app.message;    
//   var children = target.children;

    // delete all uploaded elements
/*    for (var i = 0; i < children.length; i++) {
	var tmp = children[i].getAttribute("data-id");
	    alert ("DEL");
	    alert (tmp);
	$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 countRows(){
	var ctr=0;
	for (i=0; i<currentRowId; i++){
    		var element = document.getElementById("trow"+i);
		if (element)
			ctr++
	}
	return ctr;
}


function showAlert(text) {

	$K.app.message.show( { message: `${text}`, position: 'centered', type: 'is-error' });
	return;

}


function reset2()
{
	document.getElementById("a_type").value="";
	document.getElementById("a_description").value="";
	document.getElementById("a_amount").value="";
	setUploadField();

}

function addTableRow(){

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


	var a_type = document.getElementById("a_type").value;
	if (!a_type.trim().length ) {
		document.getElementById("a_type").focus();
		showAlert("Bitte gib eine Auslagenart an!");
		return;
	}

	var a_date = document.getElementById("a_date").value; 
	if (!a_date.trim().length){
		document.getElementById("a_date").focus();
		showAlert("Bitte gib ein g&uuml;ltiges Datum an!");
		return;
	}


	var a_description = document.getElementById("a_description").value; 
	if (!a_description.trim().length){
		document.getElementById("a_description").focus();
		showAlert("Bitte gib eine Beschreibung ein!");
		return;
	}

	var a_amount = document.getElementById("a_amount").value; 
	if (!isFloat(a_amount)){
		document.getElementById("a_amount").focus(); 
		showAlert("Bitte gib einen g&uuml;ltigen Betrag ein!");
		return;
	}
		

	var a_currency = document.getElementById("a_currency").value; 
	if (!a_currency.trim().length){
		document.getElementById("a_currency").focus();
		showAlert("Bitte gib eine W&auml;hrung an!");
		return;
	}

	var target = document.getElementById("upload-target"+currentRowId);
   	var children = target.children;

	if (!children.length){
		showAlert("Bitte lade mindestens einen Beleg hoch!");
		return;
	}





/*	a_type = "Hello";*/

    var e="";

    // add column for position no
    e += `<td>${a_type}
		<input type="hidden" name="type[${currentRowId}]" value="${a_type}" /></td>`;

    // add coluemn for a_type (Auslagenart)
//    e += `<td><textarea name="desc[${nextRowId}]" rows="2"></textarea> </td>`;
    e += `<td>${a_date}
		<input type="hidden" name="date[${currentRowId}]" value="${a_date}" /></td>`;


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


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



    // add column for file upload
/*    e+= `
	<td data-kube="">
	<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?row=${nextRowId}" data-url-remove="delete.php"
    data-progress="true">
	</div>
	<div id="upload-target${nextRowId}" class="upload-target"></div>
	</div>
    </td>
*/
	e += `<td>${a_currency}</td>`;	
	
//	`;
    // add delete bnutton
    e +=
	`<td><span
    onclick="deleteTableRow(${currentRowId})"
    class="close is-large">
	</span></td>`;
    
    
    $node.append(element);
    element.innerHTML=(e);
//    renumberTableRows();
    currentRowId++;
	reset2();
}


function setUploadField()
{
    	var e = $K.dom('#uploadfield');
	var uf =`<div class="upload"
		data-kube="upload"
		data-type="file" data-multiple="true"
		data-target="#upload-target${currentRowId}"
		data-url="upload.php?row=${currentRowId}" data-url-remove="delete.php"
		data-progress="true">Beleg hochladen 
		</div>
		<div id="upload-target${currentRowId}" class="upload-target small"></div>
		</div>
		`;
	document.getElementById("uploadfield").innerHTML=uf; 
}

$K.add('module', 'kaform', {
	init: function(app, context)
        {
            this.app = app;
            this.message = app.message;		
        },
	// catch event
        onmessage: {
            tabs: {
                opened: function(sender)
                {
                    console.log('Tab box is ',sender.getActiveBox());
//		  this.message.show({ message: 'My message' });
		}
            }
        },
	

    });

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


// startup is here



// 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) {}
});

setUploadField();


function check_field(fieldid,message){
	var f = document.getElementById(fieldid).value;
	if (! f.trim().length ) {
		document.getElementById(fieldid).focus();
		showAlert(message)
		return false;
	}
	return true;
}

// add on table row
//addTableRow();
//
//
//
function downloadDocument()
{
	if (!check_field("nickname", "Bitte gib deinen Nicknamen an!"))
		return;
	if (!check_field("realname", "Bitte gib deinen Realnamen an!"))
		return;

	if (!check_field("email", "Bitte gib deinen E-Mail-Adresse an!"))
		return;
	if (!check_field("projectid", "Bitte gib idie Projekt-ID an!"))
		return;

	if (countRows()==0){
		document.getElementById("a_type").focus();
		showAlert("Bitte f&uuml;ge mind. eine Auslage hinzu!");
		return;
	}

	document.getElementById("theform").submit(); 	
}
