
var bcExp;
var modVP;
var adModule;
var modExp;
var modCon;
var firstVideo;
var anchorTag = String(window.location).split("#/")[1];
var adShowing = false;

function onTemplateLoaded(experienceID) {
    
    bcExp = brightcove.getExperience(experienceID);
    modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
    modExp = bcExp.getModule(APIModules.EXPERIENCE);
    modCon = bcExp.getModule(APIModules.CONTENT);
    modExp.addEventListener(BCExperienceEvent.TEMPLATE_READY, onTemplateReady);
    modExp.addEventListener(BCExperienceEvent.CONTENT_LOAD, onContentLoad);
    modCon.addEventListener(BCContentEvent.VIDEO_LOAD, onVideoLoad);
	modVP.addEventListener("videoConnect", onVideoConnect);
	adModule = bcExp.getModule(APIModules.ADVERTISING);
	adModule.addEventListener(BCAdvertisingEvent.EXTERNAL_AD, onExternalAd);
	adModule.addEventListener(BCAdvertisingEvent.AD_COMPLETE, onAdComplete);
	adModule.enableExternalAds(true);
}

//////////////////
// COMPANION AD //
//////////////////
var prevAdHTML = "";
function onExternalAd(evt) {
    if(evt.ad.indexOf('href=')==-1) {
	    adShowing = true;
		var adXML = getXMLDoc(evt.ad);
		var videoAd = getVideoAd(adXML);
		var bannerAd = getCollapsedBanner(adXML);
		adModule.showAd(videoAd);
		var externalBanner = document.getElementById("squared_ad");
		prevAdHTML = externalBanner.innerHTML;
		 externalBanner.style.display = "block";
		var externalBannerHTML = "<a href='" + bannerAd.expandedBannerClickURL + "' target='_blank' ><img src='" + bannerAd.expandedBannerURL + "' /></a>";
	 	externalBanner.innerHTML = externalBannerHTML;
 	} else {
	 	
 	}
};

function displayCompanionAds(banners) {
	document.getElementById("videoExternalBanner").innerHTML = "";
	tmDisplayBanner(banners, "videoExternalBanner", 300, 250);
}

function getVideoAd(adXML){
	var videoAd = new Object();
	videoAd.type = "videoAd";
	var nodeItems = adXML.firstChild.childNodes.length;
	var currentNode = adXML.firstChild.firstChild;
	videoAd.duration = (adXML.firstChild.getAttribute("duration")) ? adXML.firstChild.getAttribute("duration") : 15;
	if(adXML.firstChild.getAttribute("trackStartURLs")) videoAd.trackStartURLs = adXML.firstChild.getAttribute("trackStartURLs").split(",");
	if(adXML.firstChild.getAttribute("trackMidURLs") ) videoAd.trackMidURLs = adXML.firstChild.getAttribute("trackMidURLs").split(",");
	if(adXML.firstChild.getAttribute("trackEndURLs") ) videoAd.trackEndURLs = adXML.firstChild.getAttribute("trackEndURLs").split(",");
	if(adXML.firstChild.getAttribute("trackPointURLs") ) videoAd.trackPointURLs = adXML.firstChild.getAttribute("trackPointURLs").split(",");
	videoAd.trackPointTime = (adXML.firstChild.getAttribute("trackPointTime") ) ? adXML.firstChild.getAttribute("trackPointTime") : 0;
	for(var i = 0; i < nodeItems; i++) {
		if(currentNode.nodeName == "videoURL" && currentNode.firstChild) videoAd.videoURL = currentNode.firstChild.nodeValue; 
		if(currentNode.nodeName == "videoClickURL" && currentNode.firstChild) videoAd.videoClickURL = currentNode.firstChild.nodeValue;			
		currentNode = currentNode.nextSibling;
	};
	return videoAd;
};
function getCollapsedBanner(adXML){
	var collapsedAd = new Object(); 
	var nodeItems = adXML.firstChild.childNodes.length;
	var currentNode = adXML.firstChild.firstChild;
	for(var i = 0; i < nodeItems; i++) {
		if(currentNode.nodeName == "expandedBannerURL" && currentNode.firstChild) collapsedAd.expandedBannerURL = currentNode.firstChild.nodeValue;
		if(currentNode.nodeName == "expandedBannerClickURL" && currentNode.firstChild) collapsedAd.expandedBannerClickURL = currentNode.firstChild.nodeValue;
		currentNode = currentNode.nextSibling;
	};
	return collapsedAd;
}	
function getXMLDoc(pXML){
	var adXML;
	if (window.ActiveXObject) {
		adXML = new ActiveXObject("Microsoft.XMLDOM");
		adXML.async = false;
		adXML.loadXML(pXML);
	} else if (window.XMLHttpRequest) {
		adXML = (new DOMParser()).parseFromString(pXML, "text/xml"); 
	};
	return adXML;		
};
function onAdComplete(evt) {
    //var externalBanner = document.getElementById("squared_ad");	
   // externalBanner.style.display = "none";	
	//externalBanner.innerHTML = prevAdHTML;
	adShowing = false;
};



// VIDEO LISTENERS
function onTemplateReady(evt) {
	if( anchorTag != undefined ) {
		loadVideo("",anchorTag);
		//5807270001
	} else {
		loadVideo(firstVideo[0],firstVideo[1]);
	}
};
function onVideoConnect(evt) {
	var currentVideo = modVP.getCurrentVideo();
	//alert(currentVideo.shortDescription);
};
function onVideoLoad(evt) {
	setLabel(evt.video.displayName);
	if(evt.video.longDescription != null ) {
		setDescription(evt.video.longDescription);
	} else if(evt.video.shortDescription != null ) {
		setDescription(evt.video.shortDescription);
	};
	modVP.loadVideo(evt.video.id);
};
function onContentLoad(evt) { };



// FUNCTIONS
function loadVideo(title,id) {
	if(!adShowing){
	modCon.getMediaAsynch(id);
	if(getLabel() =="") setLabel(title);
	}
};
function setLabel(title) {
	var element = document.getElementById("videoLabel");
	element.innerHTML = title;
	gradientText.set(new Array(element),'ff0065', 'ffa800');
};
function getLabel() {
	return document.getElementById("videoLabel").innerHTML;
};
function setDescription(text) {
	var element = document.getElementById("videoDescription");
	element.innerHTML = text;
};
function getDescription() {
	return document.getElementById("videoDescription").innerHTML;
};
function setFirstVideo( title, id ) {
	firstVideo = new Array(title,id);
};

