
$(function(){
	if (!isMobile()) {
		var headID = document.getElementsByTagName("head")[0];         
		var newScript = document.createElement('script');
		newScript.type = 'text/javascript';
		newScript.src = '/scripts/playerReady.js';
		headID.appendChild(newScript);
	}
});


function PlayerBuilder(containingDiv, width, height) {
	var builder = this;
	
	var skinUrl="http://cdn2.webofstories.com/siteAssets/1_0_2/flash/stormtrooper/stormtrooper.xml";
	
	this.options = {
		greatLife : false
	};

	builder.options.width = width;
	builder.options.height = height;
	builder.options.isEmbed = false;
	builder.options.containingDiv = containingDiv;

	this.next = function(next) {
		builder.options.next = next;
		return builder;
	};

	this.order = function(order) {
		builder.options.order = order;
		return builder;
	};

	this.image = function(image) {
		builder.options.image = image;
		return builder;
	};
	
	this.isEmbed = function(isEmbed) {
		builder.options.isEmbed = isEmbed;
		return builder;
	};

	this.greatLife = function(greatLife) {
		builder.options.greatLife = greatLife
		return builder;
	};
	
	this.displayShareAtEnd = function(displayShareAtEnd) {
		builder.options.displayShareAtEnd = displayShareAtEnd;
		return builder;
	};
	
	this.duration= function(duration) {
		builder.options.duration = duration
		return builder;
	};
	
	this.storyId= function(storyId) {
		builder.options.storyId = storyId
		return builder;
	};

	this.greatLifeStreamer = function(greatLifeStreamer) {
		builder.options.greatLifeStreamer = greatLifeStreamer;
		return builder;
	};

	this.userStreamer = function(userStreamer) {
		builder.options.userStreamer = userStreamer;
		return builder;
	};

	this.storyLanguage = function(storyLanguage) {
		builder.options.storyLanguage = storyLanguage;
		return builder;
	}
	
	this.speakerType = function(speakerType) {
		builder.options.speakerType = speakerType;
		return builder;
	}
	
	this.clientId = function(clientId) {
		builder.options.clientId = clientId;
		return builder;
	}

	this.pluginsLocation = function(pluginsLocation) {
		builder.options.pluginsLocation = pluginsLocation;
		return builder;
	}

	this.checkStatus = function(imageUrl, checkUrl) {
		this.options.checkstatusUrl = checkUrl;
		this.options.checkstatusImage = imageUrl;
		return builder;
	}

	this.hasSubtitles = function(hasSubtitles) {
		builder.options.hasSubtitles = hasSubtitles;
		return builder;
	}	
	
	this.speakerName  = function(speakerName) {
		builder.options.speakerName = speakerName;
		return builder;
	}
	
	this.captions = function(captionsFile) {
		builder.options.captionsFile = captionsFile;
		return builder;
	}
	
	this.storyTellMotivation = function(storyTellMotivation) {
		builder.options.storyTellMotivation = storyTellMotivation;
		return builder;
	}

	this.language = function(language) {
		builder.options.language = language;
		return builder;

	}

	this.autostart = function(autostart) {
		builder.options.autostart = autostart;
		return builder;
	}

	this.storyFileName = function(storyFileName) {
		builder.options.storyFileName = storyFileName;
		return builder;
	}
	
	this.storyLink = function(storyLink) {
		builder.options.storyLink = storyLink;
		return builder;
	}
	
	this.storyTitle = function(storyTitle) {
		builder.options.storyTitle = storyTitle;
		return builder;
	}

	this.storyOrder = function(storyOrder) {
		builder.options.storyOrder = storyOrder;
		return builder;
	}

	this.speakerId = function(speakerId) {
		builder.options.speakerId = speakerId;
		return builder;
	}

	this.build = function() {

		var streamer="";
		var autoStart = false;
		var provider = "rtmp";
		var icons = "true";
		var playersObj=[];
		
		builder.options.file = this.getStoryURL();
		provider = this.getProvider();
		streamer = this.getStreamer();
		playersObj = this.getPlayer();
		


		if (builder.options.autostart && builder.options.autostart.pa) {
			autoStart = "true";
			
		}
		
		
		if (isMobile())
		{
			jwplayer(builder.options.containingDiv).setup({
			players : playersObj,
			file : builder.options.file,
			screencolor : "0x000000",
			backcolor : "0xffffff",
			width : builder.options.width,
			height : builder.options.height,
			autostart : autoStart,
			wmode : "transparent",
			provider : provider,
			dock : "true",
			skin : skinUrl,
			streamer : streamer,
			image : builder.options.image,
			checkstatusurl : builder.options.checkstatusUrl,
			checkstatusimage:builder.options.checkstatusImage,	
			events: {
				onTime: function(obj) {
					positionListener(obj);
	            },
	            onComplete:function() {
	            	var state;
	            	state.newstate = "COMPLETED";
	            	trackState(state)
	            }
			
	        }
			});
		}
		else {
			builder.swf=new SWFObject(playersObj[0].src, "ply", width, height,"10");
			builder.swf.addParam("allowfullscreen", "true");
			builder.swf.addParam("wmode", "transparent");
			builder.swf.addParam("allowscriptaccess", "always");
			builder.swf.addVariable("file", builder.options.file);
			builder.swf.addVariable("image", builder.options.image);
			builder.swf.addVariable("streamer", streamer);                
			builder.swf.addVariable("provider", provider);
			builder.swf.addVariable("autostart", autoStart)
			
			builder.swf.addVariable("icons", icons)	
			builder.swf.addVariable("screencolor", "0x000000");
			builder.swf.addVariable("backcolor", "0xffffff");
			builder.swf.addVariable("skin",skinUrl)
			builder.swf.addVariable("dock", "true");	
			
			if (builder.options.duration && builder.options.duration > 0) {
				builder.swf.addVariable("duration", builder.options.duration)
			}
			
			var pluginAdded = false;
			if(builder.options.greatLife)
			{
				if(builder.options.hasSubtitles)
				{
					builder.swf.addVariable("plugins", builder.options.pluginsLocation+"/captions.swf," + "http://cdn2.webofstories.com/siteAssets/1_0_3/flash/WOSStatusPlugin.swf");					
					builder.swf.addVariable("captions.file", builder.options.captionsFile);
					pluginAdded = true;
				}
			}		
			if (!pluginAdded) {
				//builder.swf.addVariable("plugins", "http://cdn2.webofstories.com/siteAssets/1_0_3/flash/WOSStatusPlugin.swf");
				builder.swf.addVariable("plugins", "http://cdn2.webofstories.com/siteAssets/1_0_3/flash/WOSStatusPlugin.swf");
				
				
			}
			builder.swf.addVariable("WOSStatusPlugin.storyTitle",builder.options.storyTitle);
			if (builder.options.displayShareAtEnd) {
				builder.swf.addVariable("WOSStatusPlugin.displayShareAtEnd", "true");
				builder.swf.addVariable("WOSStatusPlugin.storyLink",builder.options.storyLink);
				builder.swf.addVariable("WOSStatusPlugin.storyId",builder.options.storyId);
				builder.swf.addVariable("WOSStatusPlugin.clientId",builder.options.clientId);
				builder.swf.addVariable("WOSStatusPlugin.speakerName",builder.options.speakerName);
				builder.swf.addVariable("WOSStatusPlugin.tellyourstorymotiv",builder.options.storyTellMotivation);
				
			}
			builder.swf.write("player1");
		}
	}

	this.getSubtitlesPath=function(storyId)
	{
		return"http://cdn2.webofstories.com/subs/"+builder.options.speakerId+"/en/"+storyId+".xml" 
	}
	
	this.getStreamer=function()
	{
		var streamer = "";
		if (!isMobile()) {
			if (builder.options.greatLife) {
				streamer = builder.options.greatLifeStreamer;
			} 
			else {
				streamer = builder.options.userStreamer;
			}
		}
		return streamer;
	}
		
	this.getProvider=function()
	{
		if (isMobile()) 
		{
			
			return "http";
		}
		else 
		{
			return "rtmp";
		}
	}
	
	this.getPlayer=function() 
	{
		var playerObj=[];
		
		if (isMobile()) {
			playerObj = [ {
				type : "html5"
			} ]
		
		} 
		else {
			playerObj = [ {
				type : "flash",
				src : "http://cdn2.webofstories.com/siteAssets/1_0_2/flash/player.swf"
				//src : "/embed/player.swf"	
			} ];
		}	
		
		return playerObj;
	}
	
	this.getStoryURL=function() 
	{
		var msPrefix = "";
		if (builder.options.speakerType == 'MS') {
			msPrefix = "mini_sites/";
		}
		if (isMobile()) 
		{
			var prefix = "http://mobile.webofstories.com/";
			if (builder.options.greatLife) {
				file = prefix + "lives/"
						+ builder.options.speakerId 
						+ "/" 
						+ builder.options.storyFileName + ".mp4";
			} else {
				file = prefix + msPrefix + builder.options.speakerId + "/"
						+ builder.options.storyFileName + ".mp4"
			}
		}
		else
		{
			
			if (builder.options.greatLife) {
				file = "stories/" + builder.options.speakerId
						+ "/" + builder.options.storyFileName + ".flv"
			} else {
				file = msPrefix + builder.options.speakerId + "/"
						+ builder.options.storyFileName + ".mp4"
			}
			
			
		}
		return file;
	}
	
}

