var scrollableApi;
var breakTime;
var prevBreakTime;
var HRS = 0;
var MIN = 1;
var BREAK_INTERVAL = 30;
var EXERCISE_RESET_TIME = 5;


function initFitnessBreak()
{
	scheduleBreak();
	secondLoop();
	window.setInterval("secondLoop()",15000);
	if (typeof ssbNotify != 'function')
	{
		document.getElementById('navi').style.display = 'none';
		document.getElementById('ssbcontent').style.display = 'none';
	}
	else
	{
		document.getElementById('navi').style.display = 'none';
		document.getElementById('topmenu').style.visibility = 'hidden';
		document.getElementById('homecontent').style.display = 'none';
	}
}
function secondLoop()
{
	var Digital = new Date();
	var hours = Digital.getHours();
	var minutes = Digital.getMinutes();
	var seconds = Digital.getSeconds();
	var separator = ":"; //(document.getElementById("currenttime").innerText.indexOf(":") == -1) ? ":" : " ";
	document.getElementById("currenttime").innerText = prependZero(hours)+separator+prependZero(minutes);
	if (breakTime[HRS] == hours && breakTime[MIN] == minutes)//true)//
	{
		if (typeof ssbNotify == 'function')
		{
			ssbNotify();
		}
		else
		{
			window.focus();
		}
		loadExercises();
		scheduleBreak();
	}
	else if ((prevBreakTime != null 
			&& (((prevBreakTime[MIN]+EXERCISE_RESET_TIME>=60) ? ((prevBreakTime[HRS] +1 == 24) ? 0 : prevBreakTime[HRS]+1) : prevBreakTime[HRS]) ==  hours)
			&& ((prevBreakTime[MIN]+EXERCISE_RESET_TIME)%60) == minutes))
	{
		returnFromBreak();
	}
}
function scheduleBreak()
{
	//breakSnooze(1); return;
	if (typeof ssbNotify == 'function')
	{
		breakSnooze( 1*SSB.prefs.getValue('breakInterval').substring(1) );
	}
	else
		breakSnooze(BREAK_INTERVAL);
}
function breakSnooze(interval)
{
	var Digital = new Date();
	var hours = Digital.getHours();
	var minutes = Digital.getMinutes();
	prevBreakTime = breakTime;
	breakTime = new Array( (minutes+interval>=60)?((hours+1==24) ? 0 : hours+1 ):hours , (minutes+interval)%60 );
	document.getElementById("breaktime").innerText = prependZero(breakTime[HRS])+":"+prependZero(breakTime[MIN]);
}
function loadExercises() {
	
	// get handle to the scripting API
	if (scrollableApi == null)
	{
		scrollableApi = $("div.scrollable").scrollable({
			size: 1,
			items: '.scrollablecontent',
			clickable: false
		});	
	}
	
	// load items under the item wrapper
	scrollableApi.getItemWrap().load("exercises.php", function()  {
			
		// when loading is done peform a reload for the changes to take effect. simple.
		document.getElementById('navi').style.display = 'block';
		if (prevBreakTime != null && document.getElementById('prevBreakTimeSpan'))
			document.getElementById('prevBreakTimeSpan').innerText = prependZero(prevBreakTime[HRS])+':'+prependZero(prevBreakTime[MIN]);
		
		//scrollableApi.reload();
		$(".navi a.active").removeClass("active");
		$(".navi a:first").addClass("active");
		scrollableApi.begin();
	});
}
function prependZero(val)
{
	if (val < 10)
		return "0"+val;
	else
		return val;
}
function startBreak()
{
	var Digital = new Date();
	var hours = Digital.getHours();
	var minutes = Digital.getMinutes();
	prevBreakTime = breakTime;
	breakTime = new Array( hours , minutes );
	
	loadExercises();
	scheduleBreak();
}
function returnFromBreak()
{
	
	if (prevBreakTime != null && scrollableApi != null)
	{
		
		html = '\
		<div id="ssbcontent2" style="width: 450px; padding-left: 10px"> \
			<p>You have taken last break at <span id="prevBreakTimeSpan" style="font-weight: bold">'+prependZero(prevBreakTime[HRS])+':'+prependZero(prevBreakTime[MIN])+'</span>.</p> \
			\
			<p style="margin: 10px 0"> \
				A new set of exercises will appear here when it is time for you to take a break again. \
				If you cannot wait, <a href="javascript:startBreak()">take a break now</a>. \
			</p>\
			<img src="images/waterdrop.jpg" style="float: left; margin-right: 20px"/> \
			<p style="margin-top: 40px"> \
			Make sure to stay hydrated, have a drink of water!</p> \
		</div> ';
		
		scrollableApi.getItemWrap().prepend(html); 
		document.getElementById('navi').style.display = 'none';
	 
	    // rebuild scrollable and move to the end to see what happened     
	    scrollableApi.begin(); 
		prevBreakTime = null;
	}
}