var QuickTime = function(source, width, height, required)
{
	if (source == null) return;
	this.source = source;
	this.width = width;
	this.height = height;

	if (required)
	{
		required = new String(required).split(".");
		this.required = new Array(parseInt(required[0]), parseInt(required[1]), parseInt(required[2]));
	}
	else
	{
		this.required = new Array(4, 0, 0);
	}

	this.parameters = new Object();
	this.parameters['showlogo'] = false;
	this.parameters['bgcolor'] = '000000';
	this.parameters['enablejavascript'] = true;
	this.parameters['enablehref'] = true;

	//<http://www.gametrailers.com/jsframe.php> T<jsframe>
	//'<iframe style="display: none;" name="jsframe" id="jsframe" width="1" height="1" border="0"></iframe>'
}

QuickTime.prototype.getPlayerVersion = function()
{
	var version;

	if (navigator.plugins && navigator.plugins.length)
	{
		for (i = 0; i < navigator.plugins.length; i++)
		{
			if (navigator.plugins[i].name.indexOf('QuickTime Plug-in') != -1)
			{
				version = navigator.plugins[i].name.split('QuickTime Plug-in ')[1].split(' ')[0];
				version = version.split('.');
				break;
			}
		}
	}
	else if (window.ActiveXObject)
	{
		try
		{
			var plugin = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck.1');

			if (plugin)
			{
				if (!plugin.IsQuickTimeAvailable(0)) return new Array(0, 0, 0);
				version = plugin.QuickTimeVersion.toString(16).substring(0, 3) / 100;
				version = String(version).split('.');
			}
		}
		catch(e) {}
	}

	if (version)
	{
		return new Array(parseInt(version[0]), parseInt(version[1]), parseInt(version[2]));
	}

	return new Array(0, 0, 0);
}

QuickTime.prototype.generateHTML = function()
{
	if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length)
	{
		var embed = "<embed src=\"" + this.source + "\" width=\"" + this.width + "\" height=\"" + this.height + "\"";
		if (this.id) embed += " id=\"" + this.id + "\"";

		for (var name in this.parameters)
		{
			embed += " " + name + "=\"" + this.parameters[name] + "\"";
		}

		return embed + " />";
	}
	else
	{
		var object = "<object classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" width=\"" + this.width + "\" height=\"" + this.height + "\"";
		if (this.id) object += " id=\"" + this.id + "\"";
		object += "><param name=\"src\" value=\"" + this.source + "\" />";

		for (var name in this.parameters)
		{
			object += "<param name=\"" + name + "\" value=\"" + this.parameters[name] + "\" />";
		}

		return object + "</object>";
	}
}

QuickTime.prototype.setParameter = function(name, value) { this.parameters[name] = value; }

QuickTime.prototype.create = function(id)
{
	if (id && this.hasPlayerVersion(this.getPlayerVersion()))
	{
		document.getElementById(id).innerHTML = this.generateHTML();
	}
}


QuickTime.prototype.hasPlayerVersion = function(version)
{
	if (version[0] > this.required[0]) return true;
	else if (version[0] < this.required[0]) return false;
	else if (version[1] > this.required[1]) return true;
	else if (version[1] < this.required[1]) return false;
	else if (version[2] < this.required[2]) return false;
	return true;
}