var player=null;
var video_settings = null;
var header_added = false;

function setVideoProperties(dataString) {
    
    video_settings = dataString;
    var parent = jQuery(video_settings.ContainerId);

    if (video_settings != null &&
        parent != null)
    {
        var playerStyle = "";
        
        //set the background image
        if (video_settings.PlayerAlignment!=null && video_settings.PlayerAlignment != "Block") {
            //for article videos
            playerStyle = "float:" + video_settings.PlayerAlignment + ";";
        }
        else {
            playerStyle = "clear:both;display:block;margin-left:auto;margin-right:auto;";
        }

        parent.attr("style", playerStyle + "background:url('" + video_settings.BackgroundImageURL + "') no-repeat; width:" + video_settings.PlayerWidth + "px; height:" + video_settings.PlayerHeight + "px;");
    }
}

function playVideo(embedCodeString) {

    if (video_settings != null && video_settings.AdSetCode != null) {
        player.setQueryStringParameters({ embedCode: embedCodeString, autoplay: 1, adSetCode: video_settings.AdSetCode });
    }
    else {
        player.setQueryStringParameters({ embedCode: embedCodeString, autoplay: 1});
    }
    
	window.scrollTo(0,0);
}

function playVideoAndChangeTitle(embedCodeString) {
    playVideo(embedCodeString);
    
    var link = jQuery('#videolistitem_' + embedCodeString).find('a');
    jQuery('#video_title').html(link.attr('title'));
    jQuery('#video_desc').html(link.attr('data-description'));
}

function receiveOoyalaEvent(playerId, eventName, eventParams)
{
	if(eventName == "apiReady") {

        //remove the background image and remove any styles applied for the wrapper
	    jQuery(video_settings.OuterContainerId).removeAttr("class");
	    
	    if (video_settings.PlayerAlignment != null && video_settings.PlayerAlignment != "Block") {
	        jQuery(video_settings.ContainerId).attr("style", "float:" + video_settings.PlayerAlignment + ";");
	    }
	    else {
	        jQuery(video_settings.ContainerId).attr("style", "clear:both;display:block;margin-left:auto;margin-right:auto;");
	    }
	    
		player = document.getElementById(playerId);

		var volumeLevel = parseFloat(video_settings.VolumeLevel);
        
        if (volumeLevel > -1) {
            
            volumeLevel = volumeLevel;
            player.setVolume(volumeLevel);
        }
		
		if(video_settings.ShowRelatedVideos == "True")
		{
			getRelatedVideos();
		}
	}
	else if(eventName == "relatedMediaReady")
	{
		listRelatedVideos(eventParams);
    }
    else if (eventName == "playComplete" && typeof(autoLoadNextVideos) != "undefined" && autoLoadNextVideos)
    {
        //auto-play next video in list, if list exists and control has requested auto-play next
        var embed = player.getEmbedCode();
        var li = jQuery('#videolistitem_' + embed);
        if (li && jQuery(li).next('li').length > 0)
        {
            var nextEmbed = jQuery(li).next('li').attr('id').substring(14);
            playVideo(nextEmbed);
	    }
    }
    else if (typeof(autoLoadNextVideos) != "undefined" && autoLoadNextVideos &&
        (eventName == "seeked" || eventName == "adClicked" || eventName == "fullscreenChanged"))
    {
        //disable auto-play next if user interacts with the video player
	    autoLoadNextVideos = false;
    }
}

function getRelatedVideos()
{
	var embed_id = player.getEmbedCode();
	player.fetchRelatedMedia(embed_id);
}

function listRelatedVideos(eventParams)
{
	var count = 0;
	count = parseInt(video_settings.RelatedVideosCount);
	
	for(i=0;i<count;i++)
	{
		displayRelatedVideo(eventParams,eventParams.relatedMedia[i].embedCode,i);
	}
}

function displayRelatedVideo(eventParams,embedCode,itemIndex)
{
	$.ajax({
			type: "GET",
			url: video_settings.VideoUrlGeneratorPath,
			contentType: "application/json; charset=utf-8", 
            dataType: "json",
			data: {ut:video_settings.NavigateUrlTemplateRelatedVideos,vec: embedCode},
			success: function(navigateUrl){
					generateRelatedVideosHtml(eventParams,itemIndex,navigateUrl);
				}
		});	
}

function generateRelatedVideosHtml(eventParams,itemIndex,navigateUrl)
{
	var related_video_item="";
	
	if(navigateUrl !="")
	{
		related_video_item+="<div class=\""+video_settings.CssClassRelatedVideoItemContainer+"\">";
			related_video_item+="<div class=\""+video_settings.CssClassRelatedVideoImageContainer+"\">";
				related_video_item+="<a href=\""+navigateUrl+"\" title=\""+eventParams.relatedMedia[itemIndex].title+"\"><img src=\""+eventParams.relatedMedia[itemIndex].promo+"\" onerror=\"javascript:this.src='/_SiteConfigs/_global/images/no_photo_100px.gif'\" alt=\""+eventParams.relatedMedia[itemIndex].title+"\"/></a>";
			related_video_item+="</div>";
			related_video_item+="<div class=\""+video_settings.CssClassRelatedVideoTextContainer+"\">";
				related_video_item+="<div class=\""+video_settings.CssClassRelatedVideoTitle+"\">";
					related_video_item+="<a href=\""+navigateUrl+"\" title=\""+eventParams.relatedMedia[itemIndex].title+"\">"+eventParams.relatedMedia[itemIndex].title+"</a>";
				related_video_item+="</div>";
				related_video_item+="<div class=\""+video_settings.CssClassRelatedVideoDescription+"\">";
					related_video_item+=eventParams.relatedMedia[itemIndex].description;
				related_video_item+="</div>";
			related_video_item+="</div>";
		related_video_item+="</div>";
		
	if(header_added == false)
	{
		$("div[id*=related_videos]").html("");
		$("div[id*=related_videos]").append("<h2 class=\""+video_settings.CssClassRelatedVideoHeaderText+"\">"+video_settings.RelatedVideosHeaderText+"</h2>");
		$("div[id*=related_videos]").attr("class",video_settings.CssClassRelatedVideoContainer);
		
		header_added = true;
	}
	
	$("div[id*=related_videos]").append(related_video_item);
	}
}
