boxee.enableLog(true);
boxee.log('Headweb/JS: Script startup.');
//boxee.autoChoosePlayer = true;
boxee.renderBrowser = false;

// Automagically looping callback that will repeatedly fix
// player OSD to match the media playback time.
function callbackLoop ()
{
	boxee.log('Headweb/JS: callbackLoop called.');
	
	//var hw = boxee.getActiveWidget();
	boxee.log('Headweb/JS: A');
	var currentTime = browser.execute('hw.elapsed();');
	boxee.log('Headweb/JS: hw.elapsed: ' + currentTime);
	var totalTime = browser.execute('hw.duration();');
	boxee.log('Headweb/JS: hw.elapsed: ' + totalTime);

	boxee.log('Headweb/JS: 1');
	// Parse the time strings and round them off.
	currentTime = math.round(parseFloat(currentTime));
	boxee.log('Headweb/JS: 2');
	totalTime = math.round(parseFloat(totalTime));
	
	boxee.log('Headweb/JS: 3');
	// Calculate percent of playback done.
	var percentDone = hw.perc();
	
	// Update the player OSD controls with the values.
	boxee.log('Headweb/JS: Sending time/progress notification (current time = ' + currentTime + ', total time = ' + totalTime + ', progress = ' + percentDone + 'percent');
	boxee.notifyCurrentTime(currentTime);
	boxee.notifyCurrentProgress(percentDone);

	// If playback has ended tell Boxee about it.
	if (hw.atend()) {
		boxee.log('Headweb/JS: Sending playback end notification.');
		boxee.notifyPlaybackEnded();

	// If we are still playing then schedule an update in 200 ms again.
	} else {
		setTimeout(callbackLoop, 200);
	}
}

// This callback is fired when the page has been loaded completely.
// It configures the Boxee playback GUI and locates the
// flash/silverlight player object.
boxee.onDocumentLoaded = function() {
	boxee.log("Headweb/JS: Document loaded, callback activated.");

	// Enable player controls for supported versions.
	if (boxee.getVersion() > 3.4) {
		boxee.setCanPause(true);
		boxee.setCanSkip(true);
		boxee.setCanSetVolume(true);
	}

	// Start periodic callback loop.
	boxee.log("Headweb/JS: Initalization completed, entering callback loop.");
	setTimeout(callbackLoop, 2000);
};

boxee.onPlay = function() {
	boxee.log("Headweb/JS: Play event.");
	boxee.getActiveWidget().pause();
	browser.execute('hw.play();');
};

boxee.onPause = function() {
	boxee.log("Headweb/JS: Pause event.");
	browser.execute('hw.pause();');
};

boxee.onSkip = function() {
	boxee.log("Headweb/JS: Skip event.");
	browser.execute('hw.smallStep(1);');
};

boxee.onBigSkip = function() {
	boxee.log("Headweb/JS: Big skip event.");
	browser.execute('hw.bigStep(1);');
};

boxee.onBack = function() {
	boxee.log("Headweb/JS: Back event.");
	browser.execute('hw.smallStep(-1);');
};

boxee.onBigBack = function() {
	boxee.log("Headweb/JS: Big back event.");
	browser.execute('hw.bigStep(-1);');
};

boxee.onSetVolume = function(volume) {
	boxee.log("Headweb/JS: Volume set event (volume = " + volume + ")");
	browser.execute('hw.pause();');
	var realVolume = volume / 100;
};


