/**
 * Embed the player
 */

var targetId = "";

function createPlayer(config)
{
	xifTargetId = config.target;

	var fv = {};

        if(!config.location){
          config.location = window.location;
        }
        if(!config.playerAddr){
          alert("Warning - no player address specified!");
        }
        if(!config.channel){
          config.channel = "firmsite";
        }

        if(config.preloader == "branded"){
          config.preloader = "findlaw";
        }
        
        //alert site devs if they've provided a bad value for the preloader
        if(config.preloader &&
           config.preloader != "findlaw" &&
           config.preloader != "unbranded" &&
           config.preloader.toLowerCase().search(/http/i) != 0)
        {
          alert("preloader is set to an unrecognized value: " + config.preloader);  
        }

	if(config.preloader == "findlaw"){
	  config.preloader = "http://files.findlaw.com/video.findlaw.com/player/flash/preloader.swf";
	}else if(config.preloader == "unbranded"){
	  config.preloader = "http://files.findlaw.com/video.findlaw.com/player/flash/unbranded_preloader.swf";
	}

        var transcripts = true;
        if(config.hasTranscripts !== undefined){
          transcripts = config.hasTranscripts;
        }else if(config.useTranscripts !== undefined){
          transcripts = config.useTranscripts;
        }

	if(config.loopPlaylist === undefined){
	  config.loopPlaylist = false;
        }
        if(config.continuousPlayback === undefined){
	  config.continuousPlayback = true;
  	}
        if(config.aspectRatioWide === undefined){
          config.aspectRatioWide = true;
        }
        if(config.autoStart === undefined){
          config.autoStart = false;
        }

	fv.titleId = config.titleId;

        if(!config.mailtoSubject){
  	  fv.mailtoSubject = "Legal Video Recommended by a Friend";
        }else{
          fv.mailtoSubject = config.mailtoSubject;
        }

	if(config.lineupId != "") fv.lineupId = config.lineupId;
	fv.config = config.config;
	fv.glow = false;
	fv.aspect_ratio_wide = config.aspectRatioWide;
	fv.loopPlaylist = config.loopPlaylist;
        fv.continuous_playback = config.continuousPlayback;
        fv.hasTranscripts = transcripts;
	fv.use_ref_ids = config.useRefIds;
	fv.mode = config.mode;
	fv.playerURL = config.location;
	fv.channel = config.channel;
        fv.autoStart = config.autoStart;
        fv.visitorId = visitorId;
        fv.hideLogo = config.hideLogo;
	fv.preloader = config.preloader;

	var params = {};
	params.salign = "t";
	params.wmode = "transparent";
	params.allowFullScreen = true;
	params.allowScriptAccess = "always";

	var attributes = {};
	attributes.id = config.target;

	swfobject.embedSWF(config.playerAddr + "flash/loader.swf", config.target, config.width, config.height, "9.0.0", null, fv, params, attributes);
}

/**
 * Returns the current video player Flash object
 */
function getFlashMovie()
{
	if (navigator.appName.indexOf("Microsoft") != -1)
		//return window["findLawPlayer"];
		return window[xifTargetId];
	else
		//return document["findLawPlayer"];
		return document[xifTargetId];
}

/**
 * Used by the player to resize the entire flash, notably in the single player. 
 */
function setHeight(height)
{
	getFlashMovie().height = height;
}

/**
 * Call the flash player to track unload
 */
window.onunload = function() 
{
	getFlashMovie().trackUnload();
}

/**
 * Get URL parameters based on a parameter name
 * @param name of the parameter whos value should be returned
 */
function getUrlParam(param)
{
    param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+param+"=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);

    if(results == null)
        return "";
    else
        return results[1];
}
