//
// --- Must have widget_config.js or widget_fb_config.js loaded prior to this ---
// ------------------------------------------------------------------------------
//

var dlserv = codebase + 'files/';

var gameArchive = "rg-signed.jar";
var appletWidth = 240;
var appletHeight = 320;
var replayURL = "";

var replayPlayer1 = '';
var replayPlayer2 = '';
var replayPlayer3 = '';
var replayPlayer4 = '';
var replayDate = '';
var replayInfo = '';

function setReplayInfo (p1, p2, p3, p4, gmDate, info)
{
	replayPlayer1 = p1;
	replayPlayer2 = p2;
	replayPlayer3 = p3;
	replayPlayer4 = p4;
	replayDate = gmDate;
	replayInfo = info;
}

function getSupportedLanguageCode ()
{
	var agt = navigator.userAgent.toLowerCase();
	var opera = (agt.indexOf("opera") != -1);
	var ie = (!opera && (agt.indexOf("msie") != -1));

	var lang = "en";
	var code = "en";
	
	if (ie)
		lang = navigator.browserLanguage;
	else
		lang = navigator.language;

	if (lang)
	{
		lang = lang.toLowerCase();
		if (lang.indexOf("zh-cn") == 0)
			code = "zh-cn";
		if (lang.indexOf("zh") == 0)
			code = "zh";
		else if (lang.indexOf("en") == 0)
			code = "en";
		else if (lang.indexOf("de") == 0)
			code = "de";
		else if (lang.indexOf("es") == 0)
			code = "es";
		else if (lang.indexOf("fr") == 0)
			code = "fr";
		else if (lang.indexOf("it") == 0)
			code = "it";
		else if (lang.indexOf("ru") == 0)
			code = "ru";
	} else
		code = "en";
	
	return code;
}

function putGameContent(isIE) {
	params = "";
	
	params += '<param name="dlserv" value="' + dlserv + '">';
	params += '<param name="lang" value="' + getSupportedLanguageCode() + '">';
	
	if (replayURL.length > 0)
	{
		params += '<param name="replay" value="' + replayURL + '">';
		params += '<param name="returnurl" value="' + endgameurl + '">';
	}
	else
	{
		params += '<param name="returnurl" value="' + endgameurl + '">';
	}

	if (isIE)
	{
		// We have to convert to object instead of applet for a bug with IE6
		code = '<object classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ';
    	code += ' codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,5"';
    	code += ' WIDTH = "' + appletWidth + '" HEIGHT = "' + appletHeight + '" >';
    	code += ' <PARAM NAME = CODE VALUE = "rg.versiontest.VersionTestApplet.class" >';
    	code += ' <PARAM NAME = CODEBASE VALUE = "' + codebase + '" >';
    	code += ' <PARAM NAME = ARCHIVE VALUE = "rg-signed.jar" >';
    	code += ' <PARAM NAME = MAYSCRIPT VALUE = true >';
    	code += ' <param name = "type" value = "application/x-java-applet;version=1.5"> ';
    	code += ' <param name = "scriptable" value = "false"> ';
    	code += params;
		code += ' <comment> <embed ';
        code += '  type = "application/x-java-applet;version=1.5" \ ';
        code += '  CODE = "rg.versiontest.VersionTestApplet.class" \ ';
        code += '  JAVA_CODEBASE = "' + codebase + '" \ ';
        code += '  ARCHIVE = "rg-signed.jar" \ ';
        code += '  WIDTH = "' + appletWidth + '" \ ';
        code += '  HEIGHT = "' + appletHeight + '" \ ';
        code += '  MAYSCRIPT = true \ ';
        code += '  dlserv ="' + dlserv + '" \ ';
        code += '  lang ="' + getSupportedLanguageCode() + '" \ ';
        code += '  returnurl ="' + endgameurl + '"';
	    code += ' scriptable = false';
	    code += ' pluginspage = "http://java.sun.com/products/plugin/index.html#download">';
	    code += ' <noembed></noembed></embed></comment></object>';	
	
	
		//document.getElementById('appletti').innerHTML = "";
		//document.getElementById('appletti').style.display="position: absolute; top: 189px; left: 134px; height: 320px; width: 240px;";
		//document.write(code);
		document.getElementById('appletti').innerHTML = code;

	}
	else
	{
		code = '<applet codebase="' + codebase + '" code="rg.versiontest.VersionTestApplet.class" ';
		code += 'archive="' + gameArchive + '" width="' + appletWidth + '" height="' + appletHeight + '" mayscript="mayscript" TABINDEX="0">';
		code += params + '</applet>';
	
		document.getElementById('appletti').innerHTML = code;	
	}
}

function putEndGameContent(isIE)
{
	//alert('putEndGameContent');
	if (replayURL.length > 0)
	{
		var players = new Array();
		var numPlayers = 2;
		players[0] = replayPlayer1;
		players[1] = replayPlayer2;
		if (replayPlayer3.length > 0)
		{
			numPlayers = 3;
			players[2] = replayPlayer3;
		}
		if (replayPlayer4.length > 0)
		{
			numPlayers = 4;
			players[3] = replayPlayer4;
		}
		
		var heroColors = new Array();
		var heroTypes = new Array();
		var comps = replayInfo.split(";");
		var gameType = comps[0];
		var duration = comps[1];
		var winner = comps[2];
		for (var i = 0; i < numPlayers; i++)
		{
			heroColors[i] = comps[3 + i*3];
			heroTypes[i] = comps[4 + i*3];
		}
		
		document.body.background = codebase + 'player-applet/bg.gif';
	
		code = "<br><br><br><br><table><tr>";
		for (var i = 0; i < numPlayers; i++)
		{
			code += "<td>";
			var left = (420/2) + (i * 101) - (numPlayers*101/2);
			var top = 100;
			var type = heroTypes[i];
			var color = heroColors[i];
			code += '<div id="player'+(i+1)+'" style="width: 99px; height: 99px; position: absolute; ';
			code += 'left: ' + left + '; top: ' + top + '; text-align: center;';
			code += 'color:white;font-family:verdana,arial;font-size:9px;"><img src="';
			code += codebase + 'player-applet/hero_' + type + '_' + color;
			code += '.gif"><br>' + players[i] + '</div>';
			
			code += "</td>";
		}
		code += '</tr></table>';

		var ss = 'font-family:verdana,arial;font-size:12px;font-weight:bold;color:white;';
		code += '<div id="bottom" style="position:absolute;left:0px;top:290px;width:420px;text-align:center;' + ss + '">'
		code += '<center><table cellpadding="4"><tr><td style="'+ss+'">';
		code += '<img src="' + codebase + '/player-applet/icon_date.gif" border="0" align="middle">';
		code += '&nbsp;' + replayDate;
		code += '</td><td style="'+ss+'">';
		
		code += '<img src="' + codebase + '/player-applet/icon_duration.gif" border="0" align="middle">';
		code += '&nbsp;' + duration;
		code += '</td></tr><tr><td colspan="2">';
		
		code += '<a href="' + gameurl + '">'; 
		code += '<center><img src="' + codebase + '/player-applet/playbutton_up.gif" border="0"></center>';
		code += '</a></td></tr></table></center></div>';
	}
	else
	{
		code = '<a href="' + gameurl + '">'; 
		code += '<img src="' + codebase + '/endgame.png" border="0">';
		code += '</a>';
	}
	
	if (isIE)
	{
		//document.getElementById('appletti').innerHTML = "";
		//document.getElementById('appletti').style.display="position: absolute; top: 189px; left: 134px; height: 320px; width: 240px;";
		//document.write(code);
		document.getElementById('appletti').innerHTML = code;
	}
	else
	{
		document.getElementById('appletti').innerHTML = code;	
	}

}

function writeNoJavaBox () {
	var imgFileName = 'nojavadetect.jpg';
	if (replayURL.length > 0)
		imgFileName = 'player_nojavadetect.jpg';
	code = '<a href="http://www.java.com/getjava/" target="_top">';
	code += '<img src="' + codebase + '/' + getSupportedLanguageCode() + '/' + imgFileName + '" width="' + appletWidth + '" height="' + appletHeight + '" border="0">';
	code += '</a>';
	
	document.getElementById('appletti').innerHTML = code;
}

function writeNonSuppBrowser () {
	var imgFileName = 'unsupported.jpg';
	if (replayURL.length > 0)
		imgFileName = 'player_unsupported.jpg';
	code = '<img src="' + codebase + '/' + getSupportedLanguageCode() + '/' + imgFileName + '" width="' + appletWidth + '" height="' + appletHeight + '" border="0">';
	
	document.getElementById('appletti').innerHTML = code;
}

function writeNoIntelProcessor () {
	var imgFileName = 'nointel.jpg';
	if (replayURL.length > 0)
		imgFileName = 'player_nointel.jpg';
	code = '<img src="' + codebase + '/' + getSupportedLanguageCode() + '/' + imgFileName + '" width="' + appletWidth + '" height="' + appletHeight + '" border="0">';
	
	document.getElementById('appletti').innerHTML = code;
}


function detectIE(ClassID,name) {
	result = navigator.javaEnabled();
	//document.write('<SCRIPT LANGUAGE=VBScript>\n');
	//document.write('on error resume next\n');
	//document.write('result = IsObject(CreateObject("' + ClassID + '"))\n');
	//document.writeln('msgbox(IsObject(CreateObject("' + ClassID + '")))');
	//document.write('</SCRIPT>\n');
	
	//if (navigator.javaEnabled()) alert(navigator.javaEnabled());
	
	if (result)
	{
		return name+',';
	}
	else
		return '';
}

function detectNS(ClassID,name)
{
	nse = "";
	if (navigator.mimeTypes)
		for (var i = 0; i < navigator.mimeTypes.length; i++)
			if (navigator.mimeTypes[i].type)
				nse += navigator.mimeTypes[i].type.toLowerCase();

	n = "";
	if (nse.indexOf(ClassID) != -1)
		if (navigator.mimeTypes[ClassID].enabledPlugin != null)
			n = name+",";
	
	return n;
}

function gameTest ()
{
	gameArchive = "rg-signed-testing.jar";
	dlserv   = dlserv.replace("files","files_test");
	endgameurl = endgameurl.replace("game", "game_testing");
	gameurl = gameurl.replace("game", "game_testing");
	
	gameStart();
}

function endGameTest () 
{
	gameurl = gameurl.replace("game", "game_testing");
	
	endGameStart();
	//alert('endGameDev');
}

function gameDev ()
{
	gameArchive = "rg-signed-dev.jar";
	dlserv   = dlserv.replace("files","files_dev");
	endgameurl = endgameurl.replace("game", "game_dev");
	
	gameStart();
}

function endGameDev () 
{
	gameurl = gameurl.replace("game", "game_dev");
	
	endGameStart();
	//alert('endGameDev');
}

function gameBabel ()
{
	gameArchive = "rg-signed-babel.jar";
	dlserv   = dlserv.replace("files","files_babel");
	endgameurl = endgameurl.replace("game", "game_babel");
	gameurl = gameurl.replace("game", "game_babel");
	
	gameStart();
}

function endGameBabel () 
{
	gameurl = gameurl.replace("game", "game_babel");
	
	endGameStart();
	//alert('endGameDev');
}

function gameDemoSession ()
{
	gameArchive = "rg-signed.jar";
	gameStart();
	
}

function endGameDemoSession () 
{
	//gameurl = gameurl.replace("game", "game_babel");
	
	endGameStart();
	//alert('endGameDev');
}

function replay (rgrURL)
{
	appletWidth = 420;
	appletHeight = 410;
	replayURL = replayProviderURL + rgrURL;
	//gameArchive = "rg-signed-testing.jar";
	//dlserv   = dlserv.replace("files","files_test");
	endgameurl = replayEndURL + rgrURL;
	
	gameStart();
}

function endReplay (rgrURL)
{
	appletWidth = 420;
	appletHeight = 410;
	replayURL = replayProviderURL + rgrURL;
	//gameArchive = "rg-signed-testing.jar";
	//dlserv   = dlserv.replace("files", "files_test");
	gameurl = replayStartURL + rgrURL;
	
	endGameStart();
}

function endGameStart ()
{
	var agt = navigator.userAgent.toLowerCase();
	var opera = (agt.indexOf("opera") != -1);
	var ie = (!opera && (agt.indexOf("msie") != -1));

	//alert('endGameStart');

	putEndGameContent (ie);
}

function gameStart ()
{
	if (!navigator.javaEnabled())
	{
		writeNoJavaBox ();
	}
	else 
	{
		var agt = navigator.userAgent.toLowerCase();
		var is_major = parseInt(navigator.appVersion);

		var ns = (navigator.appName.indexOf("Netscape") != -1);
		var win = ((agt.indexOf("win") !=-1) || (agt.indexOf("32bit") != -1));
		var mac = (agt.indexOf("mac") !=-1);
		var opera = (agt.indexOf("opera") != -1);
		var ie = (!opera && (agt.indexOf("msie") != -1));
		var ie6 = (!opera && (agt.indexOf("msie 6") != -1));
		var ie7 = (!opera && (agt.indexOf("msie 7") != -1));
		var firefox = (agt.indexOf("firefox") != -1);
		var safari = (agt.indexOf("safari") != -1);
		var camino = (agt.indexOf("camino") != -1);
		var linux = (agt.indexOf("linux") != -1);
		var centos = (agt.indexOf("centos") != -1);
		var intel = (agt.indexOf("intel") != -1);
		var i686 = (agt.indexOf("i686") != -1);
		var chrome = (agt.indexOf("chrome") != -1);
		
		if ((ie7 || ie6) && win)
		{
			pluginlist = detectIE("JavaWebStart.isInstalled","IE Java Plugin");
		}
		else
		{
			if (win && (firefox || chrome))
			{
				pluginlist = detectNS("application/x-java-applet;version=1.5","Java1.5");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.4","Java1.4");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.3","Java1.3");
			//	if (pluginlist.toLowerCase().indexOf("java") == -1)
			//		pluginlist += detectNS("application/x-java-applet;version=1.2","Java1.2");
			//	if (pluginlist.toLowerCase().indexOf("java") == -1)
			//	pluginlist += detectNS("application/x-java-applet;version=1.1","Java1.1");
			}
			else if (mac && !intel)
			{
				// mac with a powerpc processor
				writeNoIntelProcessor();
			}
			else if (mac && intel && (safari || camino || firefox))
			{				
				pluginlist = detectNS("application/x-java-applet;version=1.5","Java1.5");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.4","Java1.4");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.3","Java1.3");
			}
            else if (win && safari)
            {
                    pluginlist = detectNS("application/x-java-applet;version=1.5","Java1.5");
                    if (pluginlist.toLowerCase().indexOf("java") == -1)
                            pluginlist += detectNS("application/x-java-applet;version=1.4","Java1.4");
                    if (pluginlist.toLowerCase().indexOf("java") == -1)
                            pluginlist += detectNS("application/x-java-applet;version=1.3","Java1.3");
                    if (pluginlist.toLowerCase().indexOf("java") == -1)
                            pluginlist += detectNS("application/x-java-applet","java");
            }
			else if (linux && i686)
			{
				pluginlist = detectNS("application/x-java-applet;version=1.5","Java1.5");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.4","Java1.4");
				if (pluginlist.toLowerCase().indexOf("java") == -1)
					pluginlist += detectNS("application/x-java-applet;version=1.3","Java1.3");
			}
			else
			{
				//non-supported browser
				writeNonSuppBrowser ();
			}
		}

		if (pluginlist.length > 0)
			pluginlist = pluginlist.substring(0, pluginlist.length - 1);

		if (pluginlist.toLowerCase().indexOf("java")!=-1)
		{
			putGameContent (ie);
		}
		else
		{
			writeNoJavaBox ();
		}
	}
}