var selectedAds = new Array();
var selectedAdIds = new Array();
var totalPrice = 0;

var lastElementSelected = '';

var selectAdResponse = '';

var videoPreviewWindow = '';

var PATH_REMOTE = '';

function createUpdateOnLoad(action, path_remote)
{
	PATH_REMOTE = path_remote;
	reloadAdSelection(action);
}

function viewUpdateOnLoad(path_remote)
{
	PATH_REMOTE = path_remote;
	playFirstVideo();
}

function setPathRemote(pathRemote)
{
	PATH_REMOTE = pathRemote;
}

function prevPage(pageNum, create)
{
	pageNum = pageNum - 1;
	//var city_code = document.getElementById('city')[document.getElementById('city').selectedIndex].value;
	var genre = document.getElementById('genre')[document.getElementById('genre').selectedIndex].value;
	if(create == 'true')
	{
		new Ajax.Request(//'/city/' + city_code + 
			PATH_REMOTE + 'pooling/movieupdate/page/' + pageNum + '/genre/' + genre + '/create/' + create,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
	else
	{
		new Ajax.Request(//'/city/' + city_code + 
			PATH_REMOTE + 'pooling/movieupdate/page/' + pageNum + '/genre/' + genre,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
}

function nextPage(pageNum, create)
{
	pageNum = pageNum + 1;
	//var city_code = document.getElementById('city')[document.getElementById('city').selectedIndex].value;
	var genre = document.getElementById('genre')[document.getElementById('genre').selectedIndex].value;
	
	if(create == 'true')
	{
		new Ajax.Request(//'/city/' + city_code + 
			PATH_REMOTE + 'pooling/movieupdate/page/' + pageNum + '/genre/' + genre + '/create/' + create,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
	else
	{
		new Ajax.Request(//'/city/' + city_code + 
			PATH_REMOTE + 'pooling/movieupdate/page/' + pageNum + '/genre/' + genre,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
}

function movieUpdate(create)
{
	//var city_code = document.getElementById('city')[document.getElementById('city').selectedIndex].value;
	var genre = document.getElementById('genre')[document.getElementById('genre').selectedIndex].value;
	
	selectedAds = new Array();
	selectedAdIds = new Array();
	document.getElementById('selectedDiv').innerHTML = '';
	document.getElementById('adList').value = '';
	
	if(create)
	{
		new Ajax.Request(//city/' + city_code + '/
			PATH_REMOTE + 'pooling/movieupdate/page/0/genre/' + genre + '/create/' + create,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
	else
	{
		new Ajax.Request(//city/' + city_code + '/
			PATH_REMOTE + 'pooling/movieupdate/page/0/genre/' + genre,
			{
				method: 'get',
				onComplete: updateDisplay
			}
		);
	}
}

function updateDisplay(o)
{
	document.getElementById('adsDiv').innerHTML = o.responseText;
}

function playFirstVideo()
{
	var donation_id = document.getElementById('donationID').value;
	
	new Ajax.Request(
		PATH_REMOTE + 'pooling/playfirstvideo/id/' + donation_id,
		{
			method: 'get',
			onComplete: videoEmbedFirst
		}
	);
}

function videoEmbedFirst(o)
{
	document.getElementById('videoDiv').innerHTML = o.responseText;
}

//'Re-select' the ads which had already been selected.
function reloadAdSelection(action)
{
	/*//Deletion. bsmith 12/1/2008 17:05:08 Not displaying ads in this case
	if(action == 'update')
	{
		var donation_id = document.getElementById('donationID').value;
		new Ajax.Request(
			'pooling/selectedadsupdate/id/' + donation_id,
			{
				method: 'get',
				onComplete: updateSelected
			}
		);
	}
	else*/
	if(action == 'createFailed')
	{
		var moviesList = document.getElementById('adList').value;
		moviesList.replace(/,/, "-");
		
		new Ajax.Request(
			'pooling/selectedadsupdate/movies/' + moviesList,
			{
				method: 'get',
				onComplete: updateSelected
			}
		);
	}
	else
	{
	}
}

function updateSelected(o)
{
	document.getElementById('selectedDiv').innerHTML = o.responseText;
}

function reselectAds(movies)
{
	for(var i = 0; i < movies.length; i++)
	{
		var currentAd = new Array();
		currentAd['movie_id'] = movies[i]['movie_id'];
		currentAd['name'] = movies[i]['name'];
		currentAd['short_name'] = movies[i]['short_name'];
		currentAd['description'] = movies[i]['description'];
		currentAd['bc_code'] = movies[i]['bc_code'];
		currentAd['thumbnail_path'] = movies[i]['thumbnail_path'];
		selectedAds[movie_id] = currentAd;
		selectedAdIds.push(movie_id);
	}
	
	document.getElementById('selectedDiv').removeChild(document.getElementById('finishedLoading'));
	document.getElementById('adList').value = selectedAdIds.toString();
}

//Function to call in order to embed the video player on the page for a specific ad
function clickAd(movie_id, movie)
{
	if(!movie)
	{
		lastElementSelected = movie_id;
		
		document.getElementById('videoInfo').innerHTML = '<strong>Title:</strong> ' + selectedAds[movie_id]['name'] + '<br />' +
														 '<strong>Description:</strong> ' + selectedAds[movie_id]['description'];
		
		videoEmbedRequest(selectedAds[movie_id]['bc_code']);
	}
	else
	{
		lastElementSelected = movie['movie_id'];
		
		document.getElementById('videoInfo').innerHTML = '<strong>Title:</strong> ' + movie['name'] + '<br />' +
														 '<strong>Description:</strong> ' + movie['description'];
		
		videoEmbedRequest(movie['bc_code'], movie['userName']);
	}
}

function popupPreview(movie_id, path_remote)
{
	lastElementSelected = movie_id;
	
	if(videoPreviewWindow && videoPreviewWindow != '')
	{
		videoPreviewWindow.close();
	}
	
	videoPreviewWindow = window.open(path_remote + "pooling/popuppreview/movie_id/" + movie_id, "", "height=400,width=315,left=250,top=270");
}

function videoEmbedRequest(bc_code, adUsername)
{
	if(!adUsername)
	{
		new Ajax.Request(
			PATH_REMOTE + 'pooling/videoembed/bc_code/' + bc_code,
			{
				method: 'get',
				onComplete: videoEmbedUpdate
			}
		);
	}
	else
	{
		new Ajax.Request(
			PATH_REMOTE + 'pooling/videoembed/bc_code/' + bc_code + '/user/' + adUsername,
			{
				method: 'get',
				onComplete: videoEmbedUpdate
			}
		);
	}
}

function videoEmbedUpdate(o)
{
	document.getElementById('videoPreview').innerHTML = o.responseText;
}

/**
 * Places an ad into the selectedAds array and updates the hidden adList variable
 */
function selectAd(movie_id, movie, mini)
{
	if(!selectedAds[movie['movie_id']] || (selectedAds[movie['movie_id']]['movie_id'] != movie['movie_id']))
	{
		var currentAd = new Array();
		currentAd['movie_id'] = movie['movie_id'];
		currentAd['name'] = movie['name'];
		currentAd['short_name'] = movie['short_name'];
		currentAd['description'] = movie['description'];
		currentAd['bc_code'] = movie['bc_code'];
		currentAd['thumbnail_path'] = movie['thumbnail_path'];
		selectedAds[movie_id] = currentAd;
		selectedAdIds.push(movie_id);
		
		if(mini == 'true')
		{
			document.getElementById('selectedDiv').innerHTML += '<div class="selectedAdDiv" id="selected' + movie['movie_id'] + '">' +
				'<a href="javascript: void(0);" onclick=" popupPreview(' + movie['movie_id'] + ', \'' + PATH_REMOTE + '\');">' +
					'<img id="adThumb" src="' + movie['thumbnail_path'] + '" />' +
				'</a><br />' +
				'<a href="javascript: void(0);" onclick="removeAd(' + movie['movie_id'] + ');" style="color: red;">Remove</a>' +
				'</div>';
		}
		else
		{
			document.getElementById('selectedDiv').innerHTML += '<div class="selectedAdDiv" id="selected' + movie['movie_id'] + '">' +
				'<a href="javascript: void(0);" onclick="clickAd(' + movie['movie_id'] + ');">' +
					'<img id="adThumb" src="' + movie['thumbnail_path'] + '" />' +
				'</a><br />' +
				'<a href="javascript: void(0);" onclick="clickAd(' + movie['movie_id'] + ');">' +
					movie['short_name'] +
				'</a><br />' +
				'<a href="javascript: void(0);" onclick="removeAd(' + movie['movie_id'] + ');" style="color: red;">Remove This Ad</a>' +
				'</div>';
		}
		
		document.getElementById('adList').value = selectedAdIds.toString();
	}
	else
	{
		alert('You may only select an ad once');
	}
}

/**
 * Function to un-position an ad which has already been positioned.
 * @param index - The index of the ad we wish to remove inside of selectedAds
 */
function removeAd(index)
{
	document.getElementById('selectedDiv').removeChild(document.getElementById('selected'+index));
	selectedAds.splice(index, 1);
	for(var i = 0; i < selectedAdIds.length; i++)
	{
		if(selectedAdIds[i] == index)
		{
			selectedAdIds.splice(i, 1);
		}
	}
	document.getElementById('adList').value = selectedAdIds.toString();
}
