// Google video stuff looks like this: http://video.google.com/googleplayer.swf?docId=longnumber

var curplayer;
var win;
var msie;

function isAudio(s)
{
	if (s.indexOf("video/") >= 0 || s.indexOf("x-shockwave-flash") >= 0)
		return false;
	return true;
}

function setPlayerBox(embedstr)
{
	var playerbox = document.getElementById("playerbox");
	playerbox.innerHTML = embedstr;
}

function showImg(s)
{
	var imgbox = document.getElementById("coverart");
	if (isAudio(s))
	{
		if (imgbox.style.display == "none")
			imgbox.style.display = "";
	}
	else
	{
		if (imgbox.style.display != "none")
			imgbox.style.display = "none";
	}
}

function getExtensionMimeType(ext)
{
	var embedstr;
	if (ext == "mp3")
		embedstr = "audio/mpeg";
	else if (ext == "mpg")
		embedstr = "video/mpeg";
	else if (ext == "m3u" || ext == "pls")
		embedstr = "audio/x-mpegurl";
	else if (ext == "wmv")
		embedstr = "video/x-ms-wmv";
	else if (ext == "wma")
		embedstr = "audio/x-ms-wma";
	else if (ext == "wmx")
		embedstr = "video/x-ms-wmx";
	else if (ext == "asf")
		embedstr = "video/x-ms-asf";
	else if (ext == "asx")
		embedstr = "video/x-ms-asf";
	else if (ext == "avi")
		embedstr = "video/avi";
	else if (ext == "mov")
		embedstr = "audio/quicktime";
	else if (ext == "rm" || ext == "ra")
		embedstr = "application/vnd.rm-realmedia";
	else if (ext == "ram")
		embedstr = "application/x-pn-realaudio";
	else if (ext == "swf" || ext == "gvp")
		embedstr = "application/x-shockwave-flash";
	else if (ext == "wav")
		embedstr = "audio/wav";
	else if (ext == "aiff")
		embedstr = "audio/aiff";
	else if (ext == "mid" || ext == "midi")
		embedstr = "audio/midi";
	else
		embedstr = "text/octet-string";
	return embedstr;
}

function getExtension(sng)
{
	var ext = sng.substr(sng.lastIndexOf(".")+1, 3);
	ext = ext.toLowerCase();
	//alert("Ext of "+sng+" is "+ext);
	return ext;
}
	
function getPlayerTypeWin(sng)
{
	ext = getExtension(sng);
	if (ext == "mov")
		return "qt";
	if (ext == "rm" || ext == "ra")
		return "rm";
	if (ext == "ram")
		return "ram";
	if (ext == "swf" || ext == "gvp")
		return "swf";
	// windows media player can play everything else
	return "wmp";
}

function getPlayerEmbedWin(sng, pltype)
{
	var embedstr;
	var mimetype = getExtensionMimeType(getExtension(sng));
	embedstr = "<object id=\"Player\"  width=\"400\" ";
	if (isAudio(mimetype))
		embedstr += "height=\"42\" classid=\"CLSID:";
	else
		embedstr += "height=\"326\" classid=\"CLSID:";
	if (pltype == "qt")
	{
		embedstr += "02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\">";
		embedstr += "<param name=\"type\" value=\"video/quicktime\" />";
		embedstr += "<param name=\"autoplay\" value=\"true\" />";
		embedstr += "<param name=\"src\" value=\"" + sng + "\" />";
	}
	else if (pltype == "rm")
	{
		embedstr += "CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA\">";
		embedstr += "<param name=\"type\" value=\"audio/vnd.pn-realaudio\" />";
		embedstr += "<param name=\"autoplay\" value=\"true\" />";
		embedstr += "<param name=\"src\" value=\"" + sng + "\" />";
	}
	else if (pltype == "ram" )
	{
		embedstr += "CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA\">";
		embedstr += "<param name=\"type\" value=\"audio/x-pn-realaudio\" />";
		embedstr += "<param name=\"autoplay\" value=\"true\" />";
		embedstr += "<param name=\"src\" value=\"" + sng + "\" />";
	}
	else if (pltype == "swf")
	{
		embedstr += "D27CDB6E-AE6D-11cf-96B8-444553540000\">";
		embedstr += "<param name=\"type\" value=\"application/x-shockwave-flash\" />";
		embedstr += "<param name=\"autoplay\" value=\"true\" />";
		embedstr += "<param name=\"loop\" value=\"false\" />";
		embedstr += "<param name=\"src\" value=\"" + sng + "\" />";
	}
	else
	{
		embedstr += "6BF52A52-394A-11d3-B153-00C04F79FAA6\">";
		embedstr += "<param name=\"type\" value=\"" + mimetype + "\" />";
		embedstr += "<param name=\"autoStart\" value=\"true\" />";
		embedstr += "<param name=\"stretchToFit\" value=\"true\" />";
		embedstr += "<param name=\"url\" value=\"" + sng + "\" />";
	}
	embedstr += "</object>";
	return embedstr;
}

function playSongEmbedWinIE(sng)
{
	var ext = getExtension(sng);
	var mimetype = getExtensionMimeType(ext);
	var pltype = getPlayerTypeWin(sng);
	//alert("playSongEmbedWinIE: " + pltype + " sng=" + sng);

	if (curplayer == "wmp" && pltype == "wmp")
	{
		showImg(mimetype);
		// windows media player with IE - we can control the player without a reload
		var p = document.getElementById('Player');
		if (isAudio(mimetype))
			p.height = "42";
		else
			p.height = "326";
		p.url = sng;
		p.controls.play();
	}
	else
	{
		embedstr = getPlayerEmbedWin(sng, pltype);
		setPlayerBox(embedstr);
		showImg(mimetype);
		curplayer = pltype;
	}
}


function getPlayerEmbed(sng)
{
	var ext = getExtension(sng);
	var mimetype = getExtensionMimeType(ext);

	var embedstr = "<embed id=\"Player\" width=\"400\" autoplay=\"true\" loop=\"false\" controller=\"1\" type=\"";
	embedstr += mimetype;
	embedstr += "\" src=\"" + sng + "\" ";
	if (isAudio(mimetype))
		embedstr += " height=\"42\"></embed>";
	else
		embedstr += " height=\"326\"></embed>";
	return embedstr;
}

function playSongEmbedWin(sng)
{
	//alert("playSongEmbedWin: " + sng);
	var pltype = getPlayerTypeWin(sng);
	var ext = getExtension(sng);
	var mimetype = getExtensionMimeType(ext);

	// this is for the brain-damaged Firefox/Mozilla plugin of Windows Media Player
	// if we used the normal getPlayerEmbed() we would get QuickTime (probably) for everything...
	if (pltype == "wmp")
	{
		var embedstr = "<embed id=\"Player\" autoplay=\"true\" controller=\"1\" type=\"application/x-mplayer2\" src=\"" + sng + "\" ";
		if (isAudio(mimetype))
			embedstr += "width=\"400\" height=\"42\"></embed>";
		else
			embedstr += "width=\"400\" height=\"326\"></embed>";
	}
	else
		embedstr = getPlayerEmbed(sng);
	setPlayerBox(embedstr);
	showImg(mimetype);
}

function playSongEmbed(sng)
{
	if (win)
	{
		if (msie)
			playSongEmbedWinIE(sng);
		else
			playSongEmbedWin(sng);
	}
	else
	{
		//alert("playSongEmbed: " + sng);
		embedstr = getPlayerEmbed(sng);
		setPlayerBox(embedstr);
		showImg(sng);
	}
}

function initPlayer(startSong)
{
	msie = 0;
	win = 0;

	//alert("userAgent = " + navigator.userAgent + " platform = " + navigator.platform + " appName = " + navigator.appName);
	if (navigator && navigator.appName && navigator.appName == "Microsoft Internet Explorer")
		msie = 1;
	if (navigator && navigator.platform && navigator.platform == "Win32")
		win = 1;
	//alert("msie = " + msie + " win = " + win);
	playSongEmbed(startSong);
}

