var banner_160_ID = "banner_160x600";
var banner_728_ID = "banner_728x90";
var banner_300_ID  = "banner_300x250";
var banner_170_ID = ".pinkAd";

var bcExp = '';
var modVP = '';
var modExp = ''; 
var modCon = '';
var modAd = ''; 
var modCP = '';
var adDuration=0;



// called when template loads, this function stores a reference to the player and modules.
function onTemplateLoaded(experienceID) {
  
	bcExp = brightcove.getExperience(experienceID);  
    modVP 	= bcExp.getModule(APIModules.VIDEO_PLAYER);
    modExp 	= bcExp.getModule(APIModules.EXPERIENCE);
    modCon 	= bcExp.getModule(APIModules.CONTENT);
    modAd 	= bcExp.getModule(APIModules.ADVERTISING);
    modAd.enableExternalAds(true);  
	
	modExp.addEventListener(BCExperienceEvent.CONTENT_LOAD, onContentLoad);
	modAd.addEventListener(BCAdvertisingEvent.EXTERNAL_AD, playExternalAd);
	modAd.addEventListener(BCAdvertisingEvent.AD_COMPLETE, bc_adComplete); 	
}


function playExternalAd(adEvent) {		   
	
	//Parse Ad xml to get the values for external Ad calls
	pXML = adEvent.ad;	
	
	try {	
		
		pXML = bc_replaceChars(pXML, "&", "%26");
	
		bc_gAdPlaying = true;
		if (window.ActiveXObject) {
			//parses the XML for IE browsers
			var adXML = new ActiveXObject("Microsoft.XMLDOM");
			adXML.async = false;
			adXML.loadXML(pXML);
		} else if (window.XMLHttpRequest) {
			//parses the XML for Mozilla browsers
			var adXML = (new DOMParser()).parseFromString(pXML, "text/xml");
			
		}
		
		
		adXml = bc_removeTextNodes(adXML); //Removes text nodes from XML. 
		
		
		var videoAd = new Object();
		var nodeItems = adXML.firstChild.childNodes.length; //the number of items in the XML
		var currentNode = adXML.firstChild.firstChild; //sets the first node in the XML as the current node
		
		//checks to see the duration was set and sets the variable
		if (adXML.firstChild.getAttribute("duration") !== "") videoAd.duration = adXML.firstChild.getAttribute("duration");
		adDuration =adXML.firstChild.getAttribute("duration");
		if (adXML.firstChild.getAttribute("trackStartURLs") !== "") {
			var trackStr = adXML.firstChild.getAttribute("trackStartURLs");
			var urls = trackStr.split(",");
			videoAd.trackStartURLs = urls;
		}

		var banner_728x900 = null;
		var banner_728x900_ClickURL = null;
		var banner_300x250 = null;
		var banner_300x250_ClickURL = null;			
		var banner_160x600 = null;
		var banner_160x600_ClickURL = null;	
		var banner_170x30 = null;
		var banner_170x30_ClickURL = null;
		
		
		for (var i = 0; i < nodeItems; i++) {
			//checks to see if the current nodes are in our Rich Media Templates and assigns them if they exist
			if (currentNode.firstChild !== null) {
				if (currentNode.nodeName == "videoURL") {
					videoAd.videoURL = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "videoClickURL") {
					videoAd.videoClickURL = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_728x90URL") {
					banner_728x900 = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_728x90ClickURL") {
					banner_728x900_ClickURL = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_300x250URL") {
					banner_300x250 = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_300x250ClickURL") {
				   banner_300x250_ClickURL = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_160x600URL") {
				   banner_160x600 = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_160x600ClickURL") {					
					banner_160x600_ClickURL = currentNode.firstChild.nodeValue;					
				} else if (currentNode.nodeName == "banner_170x30URL") {
					banner_170x30 = currentNode.firstChild.nodeValue;
				} else if (currentNode.nodeName == "banner_170x30ClickURL") {
					banner_170x30_ClickURL = currentNode.firstChild.nodeValue;
				}
			}
			//move to the next node for the next pass of the loop
			currentNode = currentNode.nextSibling;
		}
		
		//Generate Ads
		
		//Render Video Ad
		videoAd.type = "videoAd";					
		modAd.showAd(videoAd);						
		
		//Render 728 banner ad.
		if(document.getElementById(banner_728_ID)){
			bc_show728Ad(banner_728x900, banner_728x900_ClickURL);
		}
		//Render 300x250 or  right rail Ads
		if(document.getElementById(banner_300_ID)){   
			bc_show300Ad(banner_300x250, banner_300x250_ClickURL);
		}
	
		if (document.getElementById(banner_160_ID)) {
			bc_showArticle160Ad(banner_160x600, banner_160x600_ClickURL);	
		}
			   
		if (jQuery(banner_170_ID).length > 0) {
			bc_show170Ad(banner_170x30, banner_170x30_ClickURL);
		}

	} catch (e) {
		console.info(e);
		modAd.resumeAfterExternalAd();
		
	}
}

function bc_replaceChars(pString, pOut, pAdd) {
	while (pString.indexOf(pOut) > -1) {
		var pos = pString.indexOf(pOut);
		pString = "" + (pString.substring(0, pos) + pAdd + pString.substring((pos + pOut.length), pString.length));
	}
	return pString;
}

function bc_removeTextNodes (xmlFragment) {
	if (!xmlFragment) {
		return false;
	}
	xmlFragment = xmlFragment.firstChild;
	
	for (var i=0; i<xmlFragment.childNodes.length; i++) {
		var cNode = xmlFragment.childNodes[i];
		
		if (cNode.nodeType === 3) {
			xmlFragment.removeChild(cNode);
		}
		
	}
	return xmlFragment;
}

function bc_adComplete(evt) {
	if (document.getElementById("buttonbottom")){
	jQuery('#buttonbottom').html("<a href='/golf/gallery/article/0,28242,1917234-1,00.html'>Click here for gallery</a>")
	location.href="/golf/gallery/article/0,28242,1917234-1,00.html";
	}
 
}
	
function onAdProgress(evt) {

	var seconds = adDuration - Math.floor(evt.position);
	if ((seconds < 0)) {                      
		jQuery('#buttonbottom').html("");
	} else {
		var string = "Your gallery will start in " + Math.ceil(seconds);
		jQuery('#buttonbottom').html(string);
	}				
}
	

function bc_showArticle300Ad(pAdUrl, pClickUrl) {   
	if (!pAdUrl) {
		return false;
	}
	if (pAdUrl.substr((pAdUrl.length - 3), 3) == "swf") {
		var objectTag = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="250" id="expandedBanner" align="middle">';
		objectTag += '<param name="allowScriptAccess" value="always" />';
		objectTag += '<param name="movie" value="' + pAdUrl + '" />';
		objectTag += '<param name="quality" value="high" />';
		objectTag += '<param name="bgcolor" value="#ffffff" />';
		objectTag += '<param name="FlashVars" value="clickTag=' + pClickUrl + '" />';
		objectTag += '<embed src="' + pAdUrl + '" quality="high" bgcolor="#ffffff" width="300" height="250" name="expandedBanner" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="clickTag=' + pClickUrl + '" />';
		objectTag += '</object>';
			  
	  jQuery("div.rightRailAd:first").innerHTML = objectTag;
	  jQuery("div.rightRailAd:last").innerHTML = objectTag;		  		 
	}
	else {
	 jQuery("div.rightRailAd:first").html("<a href='" + pClickUrl + "' target='_blank' ><img src='" + pAdUrl + "' /></a>");			
	}
}

function bc_showArticle160Ad(pAdUrl, pClickUrl) { 
	if (!pAdUrl) {
		return false;
	}
	jQuery("#" + banner_160_ID).empty().html("<a href='" + pClickUrl + "' target='_blank' ><img src='" + pAdUrl + "' /></a>");
}
function bc_show170Ad(pAdUrl, pClickUrl) {
	if (!pAdUrl) {
		return false;
	}
	jQuery(banner_170_ID).empty().html("<a href='" + pClickUrl + "' target='_blank' ><img src='" + pAdUrl + "' /></a>");
}


function bc_show300Ad(pAdUrl, pClickUrl) {   
	if (!pAdUrl) {
		return false;
	}
	var expandedBanner = document.getElementById(banner_300_ID);		
	
	if (pAdUrl.substr((pAdUrl.length - 3), 3) == "swf") {
		var objectTag = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="250" id="expandedBanner" align="middle">';
		objectTag += '<param name="allowScriptAccess" value="always" />';
		objectTag += '<param name="movie" value="' + pAdUrl + '" />';
		objectTag += '<param name="quality" value="high" />';
		objectTag += '<param name="bgcolor" value="#ffffff" />';
		objectTag += '<param name="FlashVars" value="clickTag=' + pClickUrl + '" />';
		objectTag += '<embed src="' + pAdUrl + '" quality="high" bgcolor="#ffffff" width="300" height="250" name="expandedBanner" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="clickTag=' + pClickUrl + '" />';
		objectTag += '</object>';
		expandedBanner.innerHTML = objectTag; 		  
	
	} else {
	   expandedBanner.innerHTML = "<a href='" + pClickUrl + "' target='_blank' ><img src='" + pAdUrl + "' /></a>"; 
	 
	}
}




function bc_show728Ad(pAdUrl, pClickUrl) {
	if (!pAdUrl) {
		return false;
	}
	    document.getElementById(banner_728_ID).innerHTML = "<a target='_blank' href='" + pClickUrl + "'><img border=0 src='"
	+ pAdUrl + "'/></a>";
}
	
function onContentLoad(evt) {
	
}

function onVideoLoad(evt) {
	
}
