var registerPlayers = new Array();

function filmMicroBoxPreviewHandler(elToReplace, code, occurl, section) {

	// If this object set is in registerPlayers, the user clicked on a cancel
	// button.
	for (var i in registerPlayers) {

		if (i == elToReplace) {
			setTimeout('restoreFilmMicroBox(\''+registerPlayers[i][0]+'\', \''+registerPlayers[i][1]+'\', \''+registerPlayers[i][2]+'\', \''+registerPlayers[i][3]+'\');', 100);

			return;
		}

	}

	// Otherwise, the user clicked on a preview button. Clear out all SWFs, then
	// load the SWF for this request.

	for (var i in registerPlayers) {

		setTimeout('restoreFilmMicroBox(\''+registerPlayers[i][0]+'\', \''+registerPlayers[i][1]+'\', \''+registerPlayers[i][2]+'\', \''+registerPlayers[i][3]+'\');', 100);

	}

	setTimeout('loadMiniPlayer(\''+elToReplace+'\', \''+code+'\', \''+occurl+'\', \''+section+'\');', 100);

}

function loadMiniPlayer(elToReplace, code, occurl, section) {

	// Unload all players.
	/*
	for (var i in registerPlayers) {

		setTimeout('restoreFilmMicroBox(\''+registerPlayers[i][0]+'\', \''+registerPlayers[i][1]+'\', \''+registerPlayers[i][2]+'\', \''+registerPlayers[i][3]+'\');', 100);

		// 1/15/2009
		// If the element was requested to be loaded, but it is already showing a
		// player, we can assume that the user clicked on a "close preview" link,
		// and all we need to do is restore the film thumbnail.
		// This may not be the most elegant way to handle the "close preview" link,
		// but it does allow us to keep the href as void(0), and avoids the
		// inability of being able to assign a function and parameters to an onclick
		// handler (which only take function pointers).
		//if (i = elToReplace) {
		//	return;
		//}

	}
	*/
	var xmlHttp=getXmlHttpObject();

	xmlHttp.onreadystatechange = function() {

		if (xmlHttp.readyState == 4) {

			if (typeof(pageTracker) != 'undefined') {
				pageTracker._trackPageview('/films/thumbpreview/' + code);
			}

			el = document.getElementById(elToReplace);
			if (el) {
				el.innerHTML = xmlHttp.responseText;
			}

			el = document.getElementById(elToReplace + 'Link');
			if (el) {
				el.innerHTML = 'close';
				el.className = 'greyLink';
			}

		} else {

		}
	}

	el = document.getElementById(elToReplace);
	if (el) {
		el.innerHTML = loadingGraphic2blk;
	}

	var url = siteURL + '/filmcards/preview/previewfilm';

	registerPlayers[elToReplace] = new Array(elToReplace, code, occurl, section);

	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send('film=' + encodeURI(code) + '&occurl=' + encodeURI(occurl) + '&section=' + encodeURI(section));

}

function restoreFilmMicroBox(elToReplace, code, occurl, section) {

	var xmlHttp=getXmlHttpObject();

	xmlHttp.onreadystatechange = function() {

		if (xmlHttp.readyState == 4) {

			delete registerPlayers[elToReplace];

			el = document.getElementById(elToReplace);
			if (el) {
				el.innerHTML = xmlHttp.responseText;
			}

			el = document.getElementById(elToReplace + 'Link');
			if (el) {
				el.innerHTML = '';
				el.className = '';
				el.blur();
			}

		} else {

		}
	}

	el = document.getElementById(elToReplace);
	if (el) {
		el.innerHTML = loadingGraphic2blk;
	}

	var url = siteURL + '/filmcards/preview/restorefilm';

	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send('film=' + encodeURI(code) + '&occurl=' + encodeURI(occurl) + '&section=' + encodeURI(section));

}

