// QTUtils.js
// Utilities for QT player
// Copyright 2007 nekotech SOFTWARE

Object.prototype.allKeys = function () {
	var	keys = new Array;
	var	key, idx = 0;
	
	for (key in this) {
		// Exclude any prototypes
		if (typeof this[key] != "function")
			keys[idx++] = key ;	
	}
	
	return keys;
}

function TimeToTimecode(time, timescale) {
	var rawSec = timescale ? Math.floor(time / timescale) : time;
	var min = Math.floor(rawSec / 60);
	var sec = rawSec % 60;

	if (sec < 10)
		sec = "0" + sec;
		
	if (min < 10)
		min = "0" + min;

	return min + ":" + sec;
}

function DocumentArguments() {
	var	args = new Object();
	var	query = document.location.search.substring(1);
	var	pairs = query.split("+");
	
	for (var i = 0; i < pairs.length; ++i) {
		var	pos = pairs[i].indexOf('=');
		
		if (pos == -1)
			continue;
			
		var argName = pairs[i].substring(0, pos);
		var	value = pairs[i].substring(pos + 1);
		
		args[argName] = unescape(value);
	}
	
	return args;
}

function ParentURL(url) {
	var	slashIdx = url.lastIndexOf("\/");
	
	if (slashIdx == url.length)
		slashIdx = url.lastIndexOf("\/", url.length - 1);
		
	return url.substring(0, slashIdx);
}

function BaseURL(url) {
	var queryIdx = url.indexOf("?");

	return url.substring(0, queryIdx);
}

function BuildPlayerURL(baseURL, lectureCode, index, playMode) {
	return baseURL + "?L=" + lectureCode + "+S=" + Decode(Lectures[lectureCode].segments[index]) + "+M=" + playMode;
}
