var currentRow = 0;
function addRow(){

	var tableElement = document.getElementById("contractionlog");
	var rowElement = document.createElement("div");
	rowElement.setAttribute("id","row" + currentRow);
	for (var i=0; i<4; i++){
		var cellElement = document.createElement("div");
		switch (i){
			case 0: {cellElement.setAttribute("id","start" + currentRow);break;}
			case 1:{cellElement.setAttribute("id","interval" + currentRow);break;}
			case 2:{cellElement.setAttribute("id","end" + currentRow);break;}
			case 3:{cellElement.setAttribute("id","duration" + currentRow);break;}
		}
		cellElement.className = "column";
		rowElement.appendChild(cellElement);
	}
	tableElement.appendChild(rowElement);
}

function startRecording(){
	toggleLinks();
	addRow();
	setTime("start" + currentRow);
	calculateInterval();
}

function endRecording(){
	toggleLinks();
	setTime("end" + currentRow);
	calculateDuration();
	currentRow++;
}

function toggleLinks(){
	var startlink = document.getElementById("startlink");
	var endlink = document.getElementById("endlink");

	if (startlink.style.display == "none"){
		startlink.style.display = "inline";
		endlink.style.display = "none";
	} else {
		startlink.style.display = "none";
		endlink.style.display = "inline";
	}
}

function setTime(fieldName){
	var setElement = document.getElementById(fieldName);
	var timestamp = new Date();
	setElement.appendChild(document.createTextNode(timestamp.toLocaleTimeString()));
	var hiddenElement = document.createElement("span");
	hiddenElement.style.display = "none";
	hiddenElement.setAttribute("id",fieldName + "hidden");
	hiddenElement.appendChild(document.createTextNode(timestamp));
	setElement.appendChild(hiddenElement);
}

function calculateInterval(){
	var intervalElement = document.getElementById("interval" + currentRow);
	if (currentRow == 0){
		intervalElement.appendChild(document.createTextNode("0"));
	} else {
		var thistime = document.getElementById("start" + currentRow + "hidden");
		var prevtime = document.getElementById("start" + (currentRow -1) + "hidden");

		prevtime = prevtime.firstChild;
		thistime = thistime.firstChild;

		var interval = (new Date(thistime.nodeValue)-new Date(prevtime.nodeValue))/1000;
		var intMinutes = parseInt(interval/60);
		var intSeconds = interval%60;

		var message = "";
		message = intMinutes + " minute"
		message += (intMinutes == 1)?" ":"s ";
		message += intSeconds + " second";
		message += (intSeconds == 1)?"":"s";

		intervalElement.appendChild(document.createTextNode(message)	);
	}
}

function calculateDuration(){
	var durationElement = document.getElementById("duration" + currentRow);
	var starttime = document.getElementById("start" + currentRow + "hidden");
	var endtime = document.getElementById("end" + currentRow + "hidden");
	endtime = endtime.firstChild;
	starttime = starttime.firstChild;
	var interval = (new Date(endtime.nodeValue)-new Date(starttime.nodeValue))/1000;

	var message = interval + " second";
	message += (interval==1)?"":"s";

	durationElement.appendChild(document.createTextNode(message));
}
