var player = null; 
var addthis_pub="58ninety";
var currentVideoId=null;
var favouriteVideoId="none";

function updateAddToFavouritesLink(){
	if(favouriteVideoId=="none" || favouriteVideoId==null) {
		jQuery('#itemTools .favourites a:eq(0)').attr("href","JavaScript:addToFavorites('"+currentVideoId+"','Videos','"+lcloGlobalMessages["common.video.label"]+"','"+location.href+"')");
		jQuery('#itemTools .favourites a:eq(0)').text(lcloGlobalMessages["favourites.add.label"]);
	} else {
		jQuery('#itemTools .favourites a:eq(0)').attr("href","JavaScript:deleteOneFavorite('"+favouriteVideoId+"','Videos','"+lcloGlobalMessages["common.video.label"]+"','"+location.href+"')");
		jQuery('#itemTools .favourites a:eq(0)').text(lcloGlobalMessages["videos.remove_favourites.link"]);
	}
}

function loadOverlayStreamingPlayer(streamingServer, videoUrl, mediaImage) {

 // because this is being called from an overlay, we need to make sure we embed it every time.

	   var flashvars = {
			file: videoUrl,
			image: mediaImage,
			streamer: streamingServer
		};
		
		var params = {
			allowfullscreen: "true",
			allowscriptaccess: "always",
			wmode: "opaque"
		};
		
		var attributes = {
			id:"player1", 
			name:"player1"
		};
	    
	    swfobject.embedSWF("player/player.swf", "videoPlayerContainerContents", "667", "376", "9.0.0","player/expressInstall.swf", flashvars, params, attributes);
		
		player = window.document["player1"]; 

}

function loadStreamingPlayer(streamingServer, videoUrl, mediaImage) {

	if (player == null) {

	   var flashvars = {
			file: videoUrl,
			image: mediaImage,
			streamer: streamingServer
		};
		
		var params = {
			allowfullscreen: "true",
			allowscriptaccess: "always",
			wmode: "opaque"
		};
		
		var attributes = {
			id:"player1", 
			name:"player1"
		};
	    
	    swfobject.embedSWF("player/player.swf", "videoPlayerContainerContents", "667", "376", "9.0.0","player/expressInstall.swf", flashvars, params, attributes);
		
		player = window.document["player1"]; 
	}
}

function loadPlayer(videoUrl, mediaImage) {
	var flashvars = {
		file: videoUrl,
		image: mediaImage,
		streamer: streamUrl
	};
	
	var params = {
		allowfullscreen: "true",
		allowscriptaccess: "always",
		wmode: "opaque"
	};
	
	var attributes = {
		id:"player1", 
		name:"player1"
	};

	swfobject.embedSWF("player/player.swf", "videoPlayerContainerContents", "667", "376", "9.0.0","player/expressInstall.swf", flashvars, params, attributes);
	
	player = window.document["player1"]; 
}

function extractVideoRatings(data) {

	var ratingsHTML = "";

	if (data.stars != null && data.stars != undefined && data.stars != "") {
		ratingsHTML += "<img src=\"";
		ratingsHTML += data.stars;
	    ratingsHTML += "\" alt=\"Rating: ";
		ratingsHTML += data.averageRating;
		ratingsHTML += " with ";
		ratingsHTML += data.numberOfReviews;
		ratingsHTML += " reviews.";
	    ratingsHTML += "\" />";
		ratingsHTML += lcloVideoMessages["common.rating.basedOn"];
		ratingsHTML += " ";
		ratingsHTML += data.numberOfReviews;
		ratingsHTML += " ";
		ratingsHTML += lcloVideoMessages["common.rating.ratings"];
	
	} else {

		ratingsHTML += "<em>";
		ratingsHTML += lcloVideoMessages["common.rating.notRatedYet"];
		ratingsHTML += "</em>";
	}
	
	return ratingsHTML;
}

function extractVideoDetails(data) {
	
	var detailsHTML = "<h3>";
	detailsHTML += data.title;
	detailsHTML += "</h3>";

//	detailsHTML += "<span id=\"inlineRatingContent\">";
//	detailsHTML += extractVideoRatings(data);
//	detailsHTML += "</span>";

	detailsHTML += "<span class=\"postDate\">";
	detailsHTML += lcloVideoMessages["videos.posted.label"];
	detailsHTML += " ";
	detailsHTML += data.cdate;
	detailsHTML += "</span>";
//	detailsHTML += "<span class=\"tags\">";
//	detailsHTML += lcloVideoMessages["videos.category.label"];
//	detailsHTML += " ";
//	detailsHTML += "<a href=\"#\">";
//	detailsHTML += data.cat;
//	detailsHTML += "</a></span>"; 	
	if (data.desc != null && data.desc != undefined && data.desc != "") {
		detailsHTML += "<div class=\"description\"><p>";
		detailsHTML += data.desc;
		detailsHTML += "</p></div>"
	}
	
	currentVideoId=data.vid;
	favouriteVideoId=data.favouriteId;

	return detailsHTML;
}

function extractVideoItems(data, categoryId) {
	var itemsHTML = "<ul>";
	
	for (x=0; x < data.vList.length; x++) {
	    itemsHTML += "<li>"
//	    itemsHTML += "<img src=\"";
//	    itemsHTML += imagePath;
//	    itemsHTML += data.vList[x].img;
//	    itemsHTML += "\" alt=\"";
//	    itemsHTML += data.vList[x].name;
//	    itemsHTML += "\" />"
	    itemsHTML += "<a href=\"Javascript:changeVideo('";
		itemsHTML += data.vList[x].id;
		itemsHTML += "');\" class=\"videoTitle\">";
		itemsHTML += data.vList[x].name;
		itemsHTML += "</a>";

		itemsHTML += "<span class=\"ratingContent\">";
		itemsHTML += extractVideoRatings(data.vList[x]);
		itemsHTML += "</span>";

//		itemsHTML += "<p>";
//		itemsHTML += data.vList[x].desc;
//		itemsHTML += "</p>";

		itemsHTML += "</li>";
    }
    
    itemsHTML += "</ul><div class=\"clear\"/><div id=\"paginationNavigation\"><ul>";
    
    if (data.pid != "0") {
    	itemsHTML += "<li><a href=\"Javascript:getVideoItems('";
    	itemsHTML += categoryId;
    	itemsHTML += "','";
    	itemsHTML += data.pid;
    	itemsHTML += "');\">"
    	itemsHTML += lcloVideoMessages["videos.prev.link"];
    	itemsHTML += "</a></li>";
    } else {
    	itemsHTML += "<li>";
    	itemsHTML += lcloVideoMessages["videos.prev.link"];
    	itemsHTML += "</li>";
    }
    
    for (x=0; x < data.iList.length; x++) {
    	
    	if (data.iList[x].index == data.cid) {
	    	itemsHTML += "<li class=\"box current\">";
    		itemsHTML += data.iList[x].index;
    	} else {
	    	itemsHTML += "<li class=\"box\">";
    		itemsHTML += "<a href=\"Javascript:getVideoItems('";
    		itemsHTML += categoryId;
    		itemsHTML += "','"
    		itemsHTML += data.iList[x].index;
    		itemsHTML += "');\">";
    		itemsHTML += data.iList[x].index;
    		itemsHTML += "</a>";
    	}
    	
    	itemsHTML += "</li>";
    }
    
    if (data.nid != "0") {
    	itemsHTML += "<li><a href=\"Javascript:getVideoItems('";
    	itemsHTML += categoryId;
    	itemsHTML += "','";
    	itemsHTML += data.nid;
    	itemsHTML += "');\">"
    	itemsHTML += lcloVideoMessages["videos.next.link"];
    	itemsHTML += "</a></li>";
    } else {
    	itemsHTML += "<li>";
    	itemsHTML += lcloVideoMessages["videos.next.link"];
    	itemsHTML += "</li>";
    }
    
    itemsHTML += "</ul></div>";
    
	return itemsHTML;
}

function getVideoItems(categoryId, index) {

		// send the request
		jQuery.post('video_landing_page.jsp', 
			{form_action:'videoItems',
			 categoryId:categoryId,
			 currentIndex:index
	         },
			 function (jsonData) { 
			 
				var videoItemsHtml = extractVideoItems(jsonData, categoryId);
	    		if (categoryId == "") {
	    			jQuery("#featuredTab").empty();
					jQuery("#featuredTab").html(videoItemsHtml);
	    		} else {
	    			jQuery("#tab_"+categoryId).empty();
					jQuery("#tab_"+categoryId).html(videoItemsHtml);
	    		}
			 }, 
			 "json"); 
}

function changeVideo(videoId) {

	jQuery.post('video_landing_page.jsp', 
		{form_action:'videoDetails',
		 vid:videoId
         },
		 function (jsonData) { 
			 
			 var videoDetailsHtml = extractVideoDetails(jsonData);
					
			 jQuery("#featuredVideoDetails").empty();
			 jQuery("#featuredVideoDetails").html(videoDetailsHtml);

			 loadStreamingPlayer(jsonData.ss, jsonData.video, jsonData.img);

			player.sendEvent('LOAD',{file: jsonData.video,image:jsonData.img});
			player.sendEvent("PLAY", true);

			 updateReview(jsonData);
			 updateAddToFavouritesLink();
		 }, 
		 "json"); 
}

function changeVideoWithoutPlay(videoId) {

	jQuery.post('video_landing_page.jsp', 
		{form_action:'videoDetails',
		 vid:videoId
         },
		 function (jsonData) { 
			 
			 var videoDetailsHtml = extractVideoDetails(jsonData);
					
			 jQuery("#featuredVideoDetails").empty();
			 jQuery("#featuredVideoDetails").html(videoDetailsHtml);

			 loadStreamingPlayer(jsonData.ss, jsonData.video, jsonData.img);

			player.sendEvent('LOAD',{file: jsonData.video,image:jsonData.img});
			player.sendEvent("PLAY", false);

			 updateReview(jsonData);
			 updateAddToFavouritesLink();
		 }, 
		 "json"); 
}

function loadVideo(videoId) {

	$.post('video_landing_page.jsp', 
		{form_action:'videoDetails',
		 vid:videoId
         },
		 function (jsonData) { 
			 
			 var videoDetailsHtml = extractVideoDetails(jsonData);
					
			 $("#featuredVideoDetails").empty();
			 $("#featuredVideoDetails").html(videoDetailsHtml);

			 loadStreamingPlayer(jsonData.ss, jsonData.video, jsonData.img);

			 updateReview(jsonData);
			 updateAddToFavouritesLink();
		 }, 
		 "json"); 
}

function getURLParam(strParamName){
	var strReturn = "";
	var strHref = window.location.href;
	if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
			if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
		}
	}
	return strReturn;
}

function loadFeaturedVideo() {

	$.post('video_landing_page.jsp', 
		{form_action:'videoDetails'
         },
		 function (jsonData) { 
			 
			 var videoDetailsHtml = extractVideoDetails(jsonData);

			 $("#featuredVideoDetails").empty();
			 $("#featuredVideoDetails").html(videoDetailsHtml);

			 loadStreamingPlayer(jsonData.ss, jsonData.video, jsonData.img);
			 
			 updateReview(jsonData);
			 updateAddToFavouritesLink();
		 }, 
		 "json"); 

}

function updateReview(jsonData) {

	$("#video_review_link").attr("href", jsonData.urlRateAndReview);
	$("#video_printable_reviews").attr("href", jsonData.urlPrintableReview);
	        
	$("#BVReturnURL").empty();
	$("#BVReturnURL").html(jsonData.returnUrlEntityEscaped);

	$("#BVContainerPageURL").empty();
	$("#BVContainerPageURL").html(jsonData.urlContainerPage);

	// load the review through BV	
	bvLoadRR(jsonData.bvPage);
}

function hideShowComments(showComments) {

	if (showComments) {
	
		$("#show_comments").hide();
		$("#hide_comments").show();
		$("#videoReviews").show();
		
	} else {

		$("#show_comments").show();
		$("#hide_comments").hide();
		$("#videoReviews").hide();
	}
}
