var host = "http://api2.sprasia.com/";
var pub = "com2";
var version = "1.0.0";

function displayPlayer(id, app, width, height, size, autoplay, autoedit, credential) 
{
	if (autoplay == undefined) {
		autoplay = false;
	}
	
	if (credential == undefined) {
		credential = "";
	}
	
	var flashvars = 'id=' + id 
	    + '&mode=' + pub 
		+ '&autostart=' + (autoplay ? 'true' : 'false') 
		+ (credential != "" ? "&credential=" + escape(credential) : "");	
	
	var player = "";
	switch (app) {
		case "video":
			player = "vid_player";
			flashvars += '&type=' + size; // set size type of player
			break;
		case "slideshow":
		    // slideshow does not require 'type' flash variable
			player = "slide_player";
			break;
		default:
			player = "common_player";
			flashvars += '&type=' + size; // set size type of player
			break;
	}
	
	// New player needs the app when available
	flashvars += "&app=" + app;
	
	var swf = host + 'swf/version2.0/site/' + player; 

	_display("sprasiaplayer_" + id, width, height, swf, flashvars);
}
function displayPreviewPlayer(id, app, width, height, fvar, autoplay, autoedit)
{
	displayPlayer(id,app,width,height,480,autoplay,autoedit);
}function displayEffect(file) {
	var id = 'preview_effect';
	var width = 490;
	var height = 400;
	var swf = host + 'swf/version2.0/site/effect_player'
	var flashvars = 'file=' + file;
	_display(id, width, height, swf, flashvars);
}
function displayTopList(lang) {
	var width = 880;
	var height = 140;
	var swf = host+"swf/top_list";
	var flashvars = "pub="+pub+"&amp;lang="+lang;
	_display('toplist',width,height,swf,flashvars);
}
function displayTVTopPage(flashvars) {
	var width = "100%";
	// 85 accounts for the Sprasia TV header and footer.
	window.onresize = windowResize;
	var height = getTopPageFlashControlHeight();
	var swf = host+"app/studio/tvtoppage/main";
	_display('tvtoppage',width,height,swf,flashvars);
}

function windowResize() {
	document.getElementById('tvtoppage').height = getTopPageFlashControlHeight();
}
function getTopPageFlashControlHeight() {
	var flashControlHeight = 600; 
	if(window.innerHeight)
	{
		flashControlHeight = window.innerHeight - 65;
	}
	else
	{
		flashControlHeight = document.documentElement.clientHeight - 65;
	}
	// Minimum height is set as 600
	if(flashControlHeight < 600) {
		flashControlHeight = 600;
	}
	return flashControlHeight;
}function displayNewEffectunes(credential, lang, assetID) {
	document.write("could not display effectunes. (skey is not defined)");
}
function displayEffectunes(id,lang) {
	document.write("could not display effectunes. (skey is not defined)");
}
function displayUploader(credential,lang) {
	document.write("could not display uploader. (skey is not defined)");
}
function displayPollApp(id,lang) {
	document.write("could not display pollmaker. (skey is not defined)");
}
var shost = getServiceHost();
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var requiredMajorVersion = 9;
var requiredMinorVersion = 0;
var requiredRevision = 28;
var hasProductInstall = DetectFlashVer(6, 0, 65);
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

function getServiceHost() { return location.hostname; }

function _display(id, width, height, swf, fvar, bgcolor) {

	if (bgcolor == undefined) {
		bgcolor = "#ffffff";
	}

	_displayContent(id,width,height,swf,fvar,bgcolor);
	
	/*
	if(hasProductInstall && !hasRequestedVersion) {
		_displayInstaller(id,width,height);
	} else if (hasRequestedVersion) {
		_displayContent(id,width,height,swf,fvar,bgcolor);
	} else {
		_displayNoInstaller();
	}
	*/
}

function _displayContent(id,width,height,swf,fvar,bgcolor) {
	AC_FL_RunContent(
		"src", swf,
		"FlashVars", fvar,
		"width", width,
		"height", height,
		"align", "middle",
		"id", id,
		"quality", "high",
		"bgcolor", bgcolor,
		"name", id,
		"allowScriptAccess","always",
		"type", "application/x-shockwave-flash",
		"pluginspage", "http://www.adobe.com/go/getflashplayer"
	);
}

function _displayInstaller(id,width,height) {
	var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
	var MMredirectURL = window.location;
	document.title = document.title.slice(0, 47) + " - Flash Player Installation";
	var MMdoctitle = document.title;
	AC_FL_RunContent(
		"src", host+"version_1.0/swf/playerProductInstall",
		"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
		"width", width,
		"height", height,
		"align", "middle",
		"id", id,
		"quality", "high",
		"bgcolor", "#ffffff",
		"name", id,
		"allowScriptAccess","always",
		"type", "application/x-shockwave-flash",
		"pluginspage", "http://www.adobe.com/go/getflashplayer"
	);
}

function _displayNoInstaller() {
	var alternateContent = 'Alternate HTML content should be placed here. '
		+ 'This content requires the Adobe Flash Player. '
		+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
	document.write(alternateContent);
}

function ControlVersion() {
	var version;
	var axo;
	var e;
	try {
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) { }
	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			version = "WIN 6,0,21,0";
			axo.AllowScriptAccess = "always";
			version = axo.GetVariable("$version");
		} catch (e) { }
	}
	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) { }
	}
	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) { }
	}
	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	return version;
}

function GetSwfVer() {
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if(navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if(isIE && isWin && !isOpera) flashVer = ControlVersion();
	return flashVer;
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
	versionStr = GetSwfVer();
	if(versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			tempArray = versionStr.split(" ");
			tempString = tempArray[1];
			versionArray = tempString.split(",");
		} else {
			versionArray = versionStr.split(".");
		}
		var versionMajor = versionArray[0];
		var versionMinor = versionArray[1];
		var versionRevision = versionArray[2];
		if(versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if(versionMajor==parseFloat(reqMajorVer)) {
			if(versionMinor>parseFloat(reqMinorVer)) {
				return true;
			} else if(versionMinor==parseFloat(reqMinorVer)) {
				if(versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext) {
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext + "?" + Math.random();
}

function AC_Generateobj(objAttrs, params, embedAttrs) { 
    var str = '';
    if (isIE && isWin && !isOpera) {
  		str += '<object ';
  		for (var i in objAttrs)
  			str += i + '="' + objAttrs[i] + '" ';
  		str += '>';
  		for (var i in params)
  			str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  		str += '</object>';
    } else {
  		str += '<embed ';
  		for (var i in embedAttrs)
  			str += i + '="' + embedAttrs[i] + '" ';
  		str += '> </embed>';
    }
    document.write(str);
}

function AC_FL_RunContent() {
	var ret = AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
	AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
	var ret = new Object();
	ret.embedAttrs = new Object();
	ret.params = new Object();
	ret.objAttrs = new Object();
	for (var i=0; i < args.length; i=i+2) {
		var currArg = args[i].toLowerCase();
		switch (currArg){	
			case "classid": break;
			case "pluginspage": ret.embedAttrs[args[i]] = args[i+1]; break;
			case "src":
			case "movie":
				args[i+1] = AC_AddExtension(args[i+1], ext);
				ret.embedAttrs["src"] = args[i+1];
				ret.params[srcParamName] = args[i+1];
				break;
			case "onafterupdate":
			case "onbeforeupdate":
			case "onblur":
			case "oncellchange":
			case "onclick":
			case "ondblClick":
			case "ondrag":
			case "ondragend":
			case "ondragenter":
			case "ondragleave":
			case "ondragover":
			case "ondrop":
			case "onfinish":
			case "onfocus":
			case "onhelp":
			case "onmousedown":
			case "onmouseup":
			case "onmouseover":
			case "onmousemove":
			case "onmouseout":
			case "onkeypress":
			case "onkeydown":
			case "onkeyup":
			case "onload":
			case "onlosecapture":
			case "onpropertychange":
			case "onreadystatechange":
			case "onrowsdelete":
			case "onrowenter":
			case "onrowexit":
			case "onrowsinserted":
			case "onstart":
			case "onscroll":
			case "onbeforeeditfocus":
			case "onactivate":
			case "onbeforedeactivate":
			case "ondeactivate":
			case "type":
			case "codebase":
				ret.objAttrs[args[i]] = args[i+1];
				break;
			case "id":
			case "width":
			case "height":
			case "align":
			case "vspace": 
			case "hspace":
			case "class":
			case "title":
			case "accesskey":
			case "name":
			case "tabindex":
				ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
				break;
			default:
				ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
		}
	}
	ret.objAttrs["classid"] = classid;
	if (mimeType)
		ret.embedAttrs["type"] = mimeType;
	return ret;
}

displayPlayer("311840","","330","360","320",false,true);
