// lcSyncBanner JavaScript
//
// Copyright Lightningcast, Inc. 2005

var lastBanner = null;
var lastCurrentMedia = null;
var lastCurrentMediaName = "";
var lastPreviousMedia = null;
var lastPreviousMediaName = "";
var lastReplaceBanner = null;
var playerClickState = 0;
var debugWindow = null;

window.percentAuditTimer = null;
window.percentAuditPlayer = null;
window.auditDiv = null;

top.lcBasePath = 'http://plusdavid.hq.lightningcast.com:8088/';
top.lcGetPlaylistPath = 'http://web.lightningcast.net/servlets/getPlaylist';
top.lcNetworkId = 7370;
top.lcPlayerId = 'MediaPlayer';
top.lcLevel = 'HGTV:MATTFOX_TOOLBOX';
top.lcFormat = 'Video-Windows-300-400x300';

top.lcPlayerWidth = -1;
top.lcPlayerHeight = -1;
top.lcPlayerHeightPadding = 65; // For navigation controls.

top.lcPlayerURL = null;
top.lcMediaPlayer = null;
top.lcAuditDiv = null;
top.lcBannerDiv = null;

top.lcOnPlaylistEnd = null;

top.lcInitialBannerTimer = null;
top.lcInitialBannerEntry = null;
top.hasPlayerAccess = false;

// Array to contain all the Lightningcast Media Entries.
top.lcMediaEntries = new Array();
top.lcPlaylists = new Array();

function _lcGetMediaEntry(media) {
	for (i = 0; top.lcMediaEntries.length > i; i++) {
		if (top.lcMediaEntries[i].equals(media)) {
			top.lcMediaEntries[i].media = media;
			top.lcMediaEntries[i].duration = media.duration;
			return top.lcMediaEntries[i];
		}
	}
	mediaEntry = new LCMediaEntry(media);
	top.lcMediaEntries.push(mediaEntry);
	return mediaEntry;
}

function _lcAddMediaEntries(mediaPlayer) {
  	var playlist = mediaPlayer.currentPlaylist;
  	if ("undefined" == typeof(playlist) || null == playlist) {
		return;
	}
	
	var previousEntry = null;
	var currentEntry = null;
	var media = null;

	for (j = 0; j < playlist.count; j++ ) {
		media = playlist.item(j);
		currentEntry = _lcGetMediaEntry(media);
		currentEntry.previousEntry = previousEntry;
		if (null != previousEntry) {
			previousEntry.nextEntry = currentEntry;
		}
		previousEntry = currentEntry;
	}
	return null;
}

function LCMediaEntry(media) {
	// Current windows media player media entry.
	this.media = media;
	this.name = "unset";
	this.duration = 0;

	this.currentPosition = 0;
	this.percentPlayed = 0;
	
	this.previousEntry = null;
	this.nextEntry = null;
	
	this.preAuditSent = false;
	this.midAuditSent = false;
	this.postAuditSent = false;
	
	this.preAuditURLs = new Array();
	this.midAuditURLs = new Array();
	this.postAuditURLs = new Array();
	
	this.percentAuditURL = null;
	this.percentAudited = 0;
	this.percentFinal = false;
	this.bannerShown = false;
	
	if (null == media) {
		this.bannerURL = null;
		this.bannerClick = null;
		return;
	}
	
	this.name = media.name;
	this.duration = media.duration
	this.bannerURL = media.getItemInfo('IAB_URL');
	this.bannerClick = media.getItemInfo('IAB_CLICKTHRU');

	var auditURL;
	
	for (i = 1; i < 10; i++) {
		auditURL = media.getItemInfo("PTAGPRE"+i);
		if ("undefined" != typeof(auditURL) && null != auditURL && "" != auditURL) {
			this.preAuditURLs.push(auditURL);
		}
		auditURL = media.getItemInfo("PTAGMID"+i);
		if ("undefined" != typeof(auditURL) && null != auditURL && "" != auditURL) {
			this.midAuditURLs.push(auditURL);
		}
		auditURL = media.getItemInfo("PTAGPOST"+i);
		if ("undefined" != typeof(auditURL) && null != auditURL && "" != auditURL) {
			this.postAuditURLs.push(auditURL);
		}
	}
	
	auditURL = media.getItemInfo('LCAUDIT');
	if ("undefined" != typeof(auditURL) && null != auditURL && "" != auditURL) {
		this.preAuditURLs.push(auditURL);
	}
	
	auditURL = media.getItemInfo('LCPCTAUDIT');
	if ("undefined" != typeof(auditURL) && null != auditURL && "" != auditURL) {
		this.percentAuditURL = auditURL;
	}
}

LCMediaEntry.prototype.equals = function(media) {
	//return (this.name == media.name);
	return this.media.isIdentical(media);
}

LCMediaEntry.prototype.getPreAuditHTML = function() {
	if (this.preAuditSent) {
		return "";
	} else {
		auditHTML = "";
		for (x = 0; this.preAuditURLs.length > x; x++) {
			auditHTML += "<IMG src='"+this.preAuditURLs[x]+"'/>\n";
		}
		this.preAuditSent = true;
		return auditHTML;
	}
}

LCMediaEntry.prototype.getMidAuditHTML = function() {
	if (this.midAuditSent) {
		return "";
	} else {
		auditHTML = "";
		for (x = 0; this.midAuditURLs.length > x; x++) {
			auditHTML += "<IMG src='"+this.midAuditURLs[x]+"'/>\n";
		}
		if (null != this.percentAuditURL) {
			auditHTML += "<IMG src='"+this.percentAuditURL+"&pct=50'/>\n";
		}
		this.midAuditSent = true;
		return auditHTML;
	}
}

LCMediaEntry.prototype.getPostAuditHTML = function() {
	if (this.postAuditSent) {
		return "";
	} else {
		auditHTML = "";
		for (x = 0; this.postAuditURLs.length > x; x++) {
			auditHTML += "<IMG src='"+this.postAuditURLs[x]+"'/>\n";
		}
		if (null != this.percentAuditURL) {
			auditHTML += "<IMG src='"+this.percentAuditURL+"&pct=100&pctf=t'/>\n";
		}
		this.postAuditSent = true;
		return auditHTML;
	}
}


// Array to contain all the Content Clips.
top.lcContentClips = new Array();
top.lcCurrentContentClip = null;
top.lcClipInfiniteLoop = 0;

function _lcGetClipContent(clipId) {
	for (i = 0; top.lcContentClips.length > i; i++) {
		if (top.lcContentClips[i].clipId == clipId) {
			return top.lcContentClips[i];
		}
	}
	return null;
}

function LCContentClip(clipURL, level, name, description, thumbnailURL, clipId) {
	// Current windows media player media entry.
	this.clipURL = clipURL;
	this.level = level;
	this.name = name;
	this.description = description;
	this.thumbnailURL = thumbnailURL;
	this.clipId = clipId;
	
	this.previousClip = null;
	this.nextClip = null;
}

LCContentClip.prototype.play = function() {
	top.lcCurrentContentClip = this;
	lcPlayVideo(top.lcPlayerId, this.level, this.clipURL);
}

LCContentClip.prototype.playNext = function() {
	top.lcCurrentContentClip = this.nextClip;
	if (null == this.nextClip) {
		return;
	}
	lcPlayVideo(top.lcPlayerId, this.nextClip.level, this.nextClip.clipURL);
}

function lcAddContentClip(clipURL, level, name, description, thumbnailURL, clipId) {
	if (null == clipURL || typeof(clipURL) == "undefined") {
		return;
	}
	level = _lcSafeAttr(level, top.lcLevel);
	name = _lcSafeAttr(name, "");
	description = _lcSafeAttr(description, "");
	thumbnailURL = _lcSafeAttr(thumbnailURL, "");
	clipId = _lcSafeAttr(clipId, top.lcContentClips.length);	
	var contentClip = new LCContentClip(clipURL, level, name, description, thumbnailURL, clipId);
	if (top.lcContentClips.length != 0) {
		var previousClip = top.lcContentClips[top.lcContentClips.length-1];
		previousClip.nextClip = contentClip;
		contentClip.previousClip = previousClip;
	}
	top.lcContentClips.push(contentClip);
	if (null == top.lcCurrentContentClip) { top.lcCurrentContentClip = contentClip; }
	return contentClip;
}

function lcPlayContentClip(clipId) {
	var clipContent = _lcGetClipContent(clipId);
	if (null == clipContent) { return; }
	clipContent.play();
}

function _lcClipInfiniteLoop() {
  if (top.lcClipInfiniteLoop <= 0 || 0 == top.lcContentClips.length) {
    return;
  } else {
    top.lcOnPlaylistEnd = top.lcPlayNextContentClip;
    window.setTimeout("lcPlayContentClip('"+top.lcContentClips[0].clipId+"')", top.lcClipInfiniteLoop);
  }
}

function lcPlayNextContentClip() {
  if (null == top.lcCurrentContentClip) {
	_lcClipInfiniteLoop();
  }
  if (null == top.lcCurrentContentClip.nextClip) {
  	_lcClipInfiniteLoop();
  } else {
  	top.lcCurrentContentClip.playNext();
  }
}

top.lcAddContentClip = lcAddContentClip;
top.lcPlayContentClip = lcPlayContentClip;
top.lcPlayNextContentClip = lcPlayNextContentClip;



function _lcSafeAttr(attr, defaultValue) {
	if (attr == null || typeof(attr) == "undefined") {
		return defaultValue;
	} else {
		return attr;
	}
}

function lcUpdatePlaylistState(mediaPlayer, auditDiv, bannerDiv, newState) {
  top.lcAuditDiv = auditDiv;
  top.lcBannerDiv = bannerDiv;
  
  if ("undefined" == typeof(mediaPlayer) || null == mediaPlayer) {
    top.lcMediaPlayer = null;
  	return;
  }
  top.lcMediaPlayer = mediaPlayer;
  _lcAddMediaEntries(mediaPlayer);
  
  var currentMedia = mediaPlayer.currentMedia;
  if ("undefined" == typeof(currentMedia) || null == currentMedia) {
  	return;
  }
  _lcCheckPercentAudits(mediaPlayer, auditDiv);
  
  var currentMediaEntry = _lcGetMediaEntry(media);
  
  if (8 == newState) {
	lcReplaceBanner(currentMediaEntry.nextEntry);
	_lcAudit(currentMediaEntry, false);
  } else {
  	lcReplaceBanner(currentMediaEntry);
  	_lcAudit(currentMediaEntry, true);
  }
  
  if (10 == newState && null != top.lcOnPlaylistEnd) {
  	top.lcOnPlaylistEnd();
  }
}

function _lcAudit(mediaEntry, preAudit) {
	if ("undefined" == typeof(mediaEntry) || null == mediaEntry || "undefined" == typeof(top.lcAuditDiv) || null == top.lcAuditDiv) {
		return;
	}
	var auditHTML = "";
	if (preAudit) {
		if (null != mediaEntry.previousEntry) {
			auditHTML += mediaEntry.previousEntry.getPostAuditHTML();
		}
		auditHTML += mediaEntry.getPreAuditHTML();
	} else {
		if (null != mediaEntry.nextEntry) {
			auditHTML += mediaEntry.nextEntry.getPreAuditHTML();
		}
		auditHTML += mediaEntry.getPostAuditHTML()
	}
	if ("" == auditHTML) {
		return;
	}
	top.lcAuditDiv.innerHTML = auditHTML;
}

function lcGetPlaylistURL(url, level) {
	level = _lcSafeAttr(level, top.lcLevel);
	var playerURL = top.lcGetPlaylistPath+'?ver=2.0&nwid=';
	playerURL += top.lcNetworkId;
	if (top.lcHasPlayerAccess) {
		playerURL += '&audit=param';
	}
	playerURL += '&iab=AU1x1&l';
	playerURL += '&format='+top.lcFormat+'&level=';
	playerURL += escape(level);
	playerURL += '&content=';
	playerURL += escape(url);
	playerURL += '&responseType=ASX&mswmext=.asx';
	return playerURL;
}

function _lcCalcPlayerSize() {
        if (-1 != top.lcPlayerWidth && -1 != top.lcPlayerHeight) { return; }
	p1 = top.lcFormat.lastIndexOf('-');
	p2 = top.lcFormat.lastIndexOf('x');
	if (-1 == p1 || -1 == p2) { return };
        if (-1 == top.lcPlayerWidth) {
            top.lcPlayerWidth = parseInt(top.lcFormat.substring(p1+1, p2));
        }
        if (-1 == top.lcPlayerHeight) {
            top.lcPlayerHeight = parseInt(top.lcFormat.substring(p2+1));
        }
        if (-1 != top.lcPlayerWidth && -1 != top.lcPlayerHeight) { return; }
        if (-1 == top.lcPlayerWidth) { top.lcPlayerWidth = 320; }
        if (-1 == top.lcPlayerHeight) { top.lcPlayerHeight = 240; }
}

function _lcPlayVideoNotIE(url, playerName) {
	var mediaPlayerDiv = document.getElementById("MediaPlayerDiv");
	if (typeof(mediaPlayerDiv) == "undefined") { return; }
	_lcCalcPlayerSize();
	mediaPlayerDiv.innerHTML = '<embed id="'+playerName+'" type="application/x-mplayer2" src="'+url+'" stretchToFit="true" uiMode="full"><param name="AUTOSTART" value="TRUE"><param name="uiMode" value="full"></embed>';
}
	
function lcPlayVideoClip(url) {
	return lcPlayVideo(top.lcPlayerId, top.lcLevel, url);
}

function lcPlayVideo(playerName, level, url) {
	var mediaPlayer = document.getElementById(playerName);
	if (null == mediaPlayer || typeof(mediaPlayer) == "undefined") {
		mediaPlayer = top.lcMediaPlayer;
		if (null == mediaPlayer || typeof(mediaPlayer) == "undefined") {
			return;
		}
	}
	top.lcMediaPlayer = mediaPlayer;
	top.lcHasPlayerAccess = (typeof(top.lcMediaPlayer.status) != "undefined");
	top.lcPlayerURL = lcGetPlaylistURL(url, level);
	if (top.lcHasPlayerAccess) {
		mediaPlayer.URL = top.lcPlayerURL;
		mediaPlayer.controls.play();
	} else {
		_lcPlayVideoNotIE(top.lcPlayerURL, playerName);
	}
	/*Woodworking*/
	flashOut_onLCPlayVideo();
	/*********************/
}

/**
 * This is the really basic banner replacement routine.
 */
function lcReplaceBanner(currentMediaEntry)
{
	if ("undefined" == typeof(currentMediaEntry) || null == currentMediaEntry) {
		window.setTimeout("_lcForceUpdate()", 3000);
		return;
	}
	if ("undefined" == typeof(top.lcBannerDiv) || null == top.lcBannerDiv) {
		window.setTimeout("_lcForceUpdate()", 3000);
		return;
	}
	if (null == lastReplaceBanner) {
		window.currentMediaEntry = currentMediaEntry;
	    lastReplaceBanner = window.setTimeout("lcReplaceBanner(window.currentMediaEntry)", 1000);
	} else {
		window.currentMediaEntry = null;
	    lastReplaceBanner = null;
	}
	
	var newBannerUrl = currentMediaEntry.bannerURL;	
	var newBannerClick = currentMediaEntry.bannerClick;
	
	if (typeof(newBannerUrl) == 'undefined' || newBannerUrl == null || newBannerUrl == "") {
		return;
	}
	
	var bannerHTML = newBannerUrl;
	if (lastBanner == newBannerUrl) { return; }
	
	if ("" == newBannerClick || "DHTML" == newBannerClick) {
		if (0 == bannerHTML.indexOf("js:")) {
	  		bannerHTML = '<BODY><SCRIPT language="JavaScript" src="' + newBannerUrl.substring(3) + '"></SCRIPT></BODY>';
	  	} else {
	  		bannerHTML = '<HTML><IFRAME src="' + newBannerUrl + '" frameborder="0" scrolling="no" width="100%" height="100%" marginwidth="0" marginheight="0"/></HTML>';
	  	}
	} else if (0 == bannerHTML.indexOf("http")) {
	  bannerHTML = '<HTML><CENTER><A HREF="' + newBannerClick + '" target="_blank"><IMG SRC="' + newBannerUrl + '" border="0"></A></CENTER></HTML>';		
	} else {
	  bannerHTML = '<HTML>' + newBannerUrl + '</HTML>';
	}
	if (null != top.lcInitialBannerTimer) {
		window.clearTimeout(top.lcInitialBannerTimer);
		top.lcInitialBannerTimer = null;
	}
	lastBanner = newBannerUrl;
	top.lcBannerDiv.innerHTML = bannerHTML;
}

function _lcCheckPercentAudits() {
    if (null != window.percentAuditTimer) {
    	window.clearTimeout(window.percentAuditTimer);
    	window.percentAuditTimer = null;
    }
    if (null == top.lcMediaPlayer || null == top.lcAuditDiv) {
    	return;
    }
    media = top.lcMediaPlayer.currentMedia;
    currentEntry = _lcGetMediaEntry(media);
    currentEntry.duration = media.duration;
    var timeout = 3000;
    if (0 != currentEntry.duration) {
    	var controls = top.lcMediaPlayer.controls;
    	if (controls.currentPosition > currentEntry.currentPosition) {
    	    currentEntry.currentPosition = controls.currentPosition;
    	}
    	currentEntry.percentPlayed = ((currentEntry.currentPosition * 100) / currentEntry.duration);
    	if (currentEntry.percentPlayed >= 50) {
    	    if (null != top.lcAuditDiv) {
    	        top.lcAuditDiv.innerHTML = currentEntry.getMidAuditHTML();
    	    }
    	} else {
    	    timeout = ((1000 * currentEntry.duration) / 2) - (1000 * currentEntry.currentPosition);
    	}
    }
    if (200 >= timeout) {
    	timeout = 200;
    } else if (timeout > 3000) {
    	timeout = 3000;
    }
    if (top.lcMediaPlayer.playState > 2 && 10 != top.lcMediaPlayer.playState) {
    	window.percentAuditTimer = window.setTimeout('top._lcCheckPercentAudits()', timeout);
    }
}

function _lcDisplayDebugWindow() {
    var debugWindow = window.open(null, "lcPlayerDebug", "resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no,directories=no,width=800,height=400");
    var d = debugWindow.document;
    d.write("<HTML><HEAD><TITLE>Lightningcast Player Debug</TITLE></HEAD>");
    d.write("<BODY onLoad=\"self.focus();\">");
    d.write("<H3>getPlaylist URL:</H3>");
    var currentURL = top.lcPlayerURL;
    if (null == top.lcPlayerURL) {
    	currentURL = top.lcMediaPlayer.URL;
    }
    d.write("<A id='getPlaylist' href='"+top.lcPlayerURL+"'>"+currentURL+"</A>");
    d.write("<H3>Current Playlist:</H3>");
    
    var playlist = top.lcMediaPlayer.currentPlaylist;
    var controls = top.lcMediaPlayer.controls;

    d.write("<PRE>\n");
    
    d.write("TITLE: "+playlist.name+"\n");

    for (i = 0; i < playlist.count; i++) {
      var listItem = playlist.item(i);
      d.write("    ENTRY #"+(i+1)+"\n");
      d.write("        TITLE: "+listItem.name+"\n");
      d.write("        SOURCE: <A target=\"_mediaView\" href=\""+listItem.sourceURL+"\">"+listItem.sourceURL+"</A>\n");
      for (j = 0; j < listItem.attributeCount; j++) {
        var name = listItem.getAttributeName(j);
        if (name == "SourceURL" || name == "Title") { continue; }
        var info = listItem.getItemInfo(name);
        if (name == "IAB_URL") {
          d.write("            "+name+": <A target=\"_bannerView\" href=\""+info+"\">"+info+"</A>\n");
        } else {
          d.write("            "+name+": "+info+"\n");
        }
      }
    }
    
    d.write("\nLightningcast Media Entries:\n");
    for (i = 0; top.lcMediaEntries.length > i; i++) {
        d.write("    ENTRY #"+(i+1)+"\n");
    	mediaEntry = top.lcMediaEntries[i];
    	d.write("        NAME: "+mediaEntry.name+" - "+mediaEntry.duration+" / "+mediaEntry.currentPosition+"\n");
    	if (null != mediaEntry.previousEntry) {
    	    d.write("        Previous Entry: "+mediaEntry.previousEntry.name+" - "+mediaEntry.previousEntry.duration+"\n");
    	}
    	if (null != mediaEntry.nextEntry) {
    	    d.write("        Next Entry: "+mediaEntry.nextEntry.name+" - "+mediaEntry.nextEntry.duration+"\n");
    	}
    	d.write("        Pre-Audit Sent: "+mediaEntry.preAuditSent+"\n");
    	for (x = 0; mediaEntry.preAuditURLs.length > x; x++) {
    	   d.write("                       "+mediaEntry.preAuditURLs[x]+"\n");
	    }
	    d.write("        Mid-Audit Sent: "+mediaEntry.midAuditSent+"\n");
    	for (x = 0; mediaEntry.midAuditURLs.length > x; x++) {
	       d.write("                       "+mediaEntry.midAuditURLs[x]+"\n");
	    }
    	d.write("        Post-Audit Sent: "+mediaEntry.postAuditSent+"\n");
    	for (x = 0; mediaEntry.postAuditURLs.length > x; x++) {
	       d.write("                       "+mediaEntry.preAuditURLs[x]+"\n");
	    }
	    d.write("        BannerURL: "+mediaEntry.bannerURL+"\n");
	    d.write("        BannerClick: "+mediaEntry.bannerClick+"\n");
    }
    d.write("</PRE>");
    d.write("</BODY>");
    d.close();
}

function lcPlayerClickEvent(nButton, nShiftState, fX, fY) {
  if (nButton != 1 || fX > 20 || fY > 20) {
    lastPlayerClick = 0;
    return;
  }
  if (playerClickState == 0 && nShiftState == 2) {
    playerClickState = 1;
    return;
  }
  if (playerClickState == 1 && nShiftState == 6) {
    _lcDisplayDebugWindow();
  }
  playerClickState = 0;
}

function lcWritePlayer(doc, playlistURL, playerName, width, height, autoStart) {
    if (playlistURL == null || typeof(playlistURL) == "undefined") {
    	playlistURL = null;
    } else {
    	// We need to check here that we can actually communicate with the player.
    	playlistURL += "&audit=param";
    }
    _lcCalcPlayerSize();
    playerName = _lcSafeAttr(playerName, "MediaPlayer");
    //width = _lcSafeAttr(width, top.lcPlayerWidth);
    //height = _lcSafeAttr(height, (top.lcPlayerHeight+top.lcPlayerHeightPadding));
    autoStart = _lcSafeAttr(autoStart, "TRUE");
    
    doc.writeln('<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"');
    doc.writeln('	type="application/x-oleobject"');
    doc.writeln('	codebase="HTTP://ACTIVEX.MICROSOFT.COM/ACTIVEX/CONTROLS/MPLAYER/EN/NSMP2INF.CAB#VERSION=6,4,7,1112"');
    doc.writeln('	standby="Loading Windows Media Player components..."');
    doc.write(' id=\"');
    doc.write(playerName);
    doc.writeln('\">');
    if (null != playlistURL) {
	    doc.write('<param name="URL" value=\"');
        doc.write(playlistURL);
        doc.writeln('\"/>');
    }
    doc.writeln('<param name="AUTOSTART" value="'+autoStart+'"/>');
    doc.writeln('<param name="uiMode" value="full"/>');
    doc.writeln('<embed type="application/x-mplayer2" ');
    if (null != playlistURL) {
          doc.write('src=\"');
          doc.write(playlistURL);
          doc.write('\"');
    }
    doc.writeln('>');
    doc.writeln('<param name="AUTOSTART" value="'+autoStart+'"/>');
    doc.writeln('<param name="uiMode" value="full"/>');
    doc.writeln('</embed>');
    doc.writeln('</object>');
}

function lcSetInitialBanner(bannerURL, bannerClickThru, bannerDelay) {
	bannerClickThru = _lcSafeAttr(bannerClickThru, "");
	bannerDelay = _lcSafeAttr(bannerDelay, 3000);
	top.lcInitialBannerEntry = new LCMediaEntry(null);
	top.lcInitialBannerEntry.bannerURL = bannerURL;
	top.lcInitialBannerEntry.bannerClick = bannerClickThru;
	top.lcInitialBannerTimer = window.setTimeout("lcReplaceBanner(top.lcInitialBannerEntry)", bannerDelay);
}

function _lcForceUpdate() {
  top.lcMediaPlayer = document.getElementById(top.lcPlayerId);
  top.lcAuditDiv = document.getElementById("lcAuditDiv");
  top.lcBannerDiv = document.getElementById("lcBannerDiv");
  lcUpdatePlaylistState(top.lcMediaPlayer, top.lcAuditDiv, top.lcBannerDiv, 3);
}

// Make some functions available to the top level window.
top._lcCheckPercentAudits = _lcCheckPercentAudits;
top._lcDisplayDebugWindow = _lcDisplayDebugWindow;
top.lcGetPlaylistURL = lcGetPlaylistURL;
top.lcWritePlayer = lcWritePlayer;
top.lcPlayVideo = lcPlayVideo;
top.lcPlayVideoClip = lcPlayVideoClip;
top.lcReplaceBanner = lcReplaceBanner;
top.lcSetInitialBanner = lcSetInitialBanner;

// Force an update of audits and banners 700ms from when the script loads.
window.setTimeout("_lcForceUpdate()", 700);
