  var player;  var adModule;  var adModuleExp;  var adModuleVp;  var adModuleComb;  // テンプレートがロードされるときに呼び出されます。これを使用して、プレーヤとモジュールへの  // リファレンスを格納し、外部広告用のイベントリスナーを追加します。  function onTemplateLoaded(experienceID) {    player= brightcove.getExperience(experienceID);	    // Ad Module API へのリファレンスを取得します。    adModule = player.getModule(APIModules.ADVERTISING);    adModuleExp = player.getModule(APIModules.EXPERIENCE);    adModuleVp = player.getModule(APIModules.VIDEO_PLAYER);		adModuleExp.addEventListener(BCExperienceEvent.TEMPLATE_READY, set_buffer_time);		// External Ads を有効にします。    adModule.enableExternalAds(true);    // externalAd イベント用のコールバック関数を設定します。    adModule.addEventListener(BCAdvertisingEvent.EXTERNAL_AD, onExternalAd);    // Ad Complete イベント用のコールバック関数を設定します。    adModule.addEventListener(BCAdvertisingEvent.AD_COMPLETE, onAdComplete); 	//Media Completeイベント用のコールバック関数の設定	adModuleVp.addEventListener(BCMediaEvent.COMPLETE, onmediaComplete);  }    	function set_buffer_time(evt){		//alert("EVENT: TEMPLATE_READY"); 		adModuleVp.setDefaultBufferTime(1);}  	function onmediaComplete(evt) {		var list = adModuleExp.getElementByID("videoList");		var nextIndex = list.getSelectedIndex() + 1;		if (nextIndex < list.getNumItems()) {			list.setSelectedIndex(nextIndex);			}		}  	function onExternalAd(evt) {        // In this specific example, evt.ad contains the synchedBanner XML          // Create an XML doc with externalAd XML sent by the player        var adXML = getXMLDoc(evt.ad);        //Extract specific XML nodes for a video Ad        var videoAd = getVideoAd(adXML);        //Extract specific XML nodes for a Banner        var bannerAd = get_Banner(adXML);			// Disable videoList			var vlist = adModuleExp.getElementByID("videoList");			vlist.setAlpha(0.3);			vlist.setEnabled(false);				        // Render a video Ad using the Adverstising module        adModule.showAd(videoAd);		        // Add an external banner to the HTML page using JS		// 横長のバナー書き込み        var externalBanner_large = document.getElementById("externalBanner_large");		//バナーがフラッシュか画像かで処理分け		var bn_type = new RegExp(".swf", "i");		if (bannerAd.collapsedBannerURL.search(bn_type) != -1){				//フラッシュの場合				var externalBannerHTML = make_flash_html(bannerAd.collapsedBannerURL, bannerAd.collapsedBannerClickURL, 728, 90);			} else {				//フラッシュじゃない場合				var externalBannerHTML = "<a href='" + bannerAd.collapsedBannerClickURL + "' target='_blank' ><img src='" + bannerAd.collapsedBannerURL + "' border='0' /></a>"; 		}        //writes out the regular anchor/tag to the externalBanner div         externalBanner_large.innerHTML = externalBannerHTML;        // Add an external banner to the HTML page using JS		// 中サイズのバナー書き込み        var externalBanner_middle = document.getElementById("externalBanner_middle");		//バナーがフラッシュか画像かで処理分け		var bn_type = new RegExp(".swf", "i");		if (bannerAd.expandedBannerURL.search(bn_type) != -1){				//サイズ違い毎の書き出し				var bn_size = new RegExp("300", "i");				if (bannerAd.expandedBannerURL.search(bn_size) != -1){					var externalBannerHTML = make_flash_html(bannerAd.expandedBannerURL, bannerAd.expandedBannerClickURL, 300, 250);				} else {					var externalBannerHTML = make_flash_html(bannerAd.expandedBannerURL, bannerAd.expandedBannerClickURL, 350, 240);				}			} else {				//フラッシュじゃない場合				var externalBannerHTML = "<a href='" + bannerAd.expandedBannerClickURL + "' target='_blank' ><img src='" + bannerAd.expandedBannerURL + "' border='0' /></a>"; 		}        //writes out the regular anchor/tag to the externalBanner div         externalBanner_middle.innerHTML = externalBannerHTML;  }  function onAdComplete(evt) {        // Remove the banner on Ad Complete    			//Enable videoList			var vlist = adModuleExp.getElementByID("videoList");			vlist.setAlpha(1);			vlist.setEnabled(true);        /*　動画ADの再生後に画像ADを非表示にする場合、コメントアウトをはずす。		var externalBanner_large = document.getElementById("externalBanner_large");                externalBanner_large.innerHTML ="";		var externalBanner_middle = document.getElementById("externalBanner_middle");                externalBanner_middle.innerHTML ="";        */  }	//値の表示	function debug(debug_str){		document.getElementById("debug").innerHTML = debug_str;}	function debug_obj(debug_str){		var debug_obj_list = "";		for(i in debug_str){		debug_obj_list = debug_obj_list+i+"<BR />";		}		document.getElementById("debug").innerHTML = debug_obj_list}	//FLASH用HTML生成	function make_flash_html(flash_path, flash_link_url, flash_width, flash_height){		var flash_html = "<object id='FlashID' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='" + flash_width + "' height='" + flash_height +"'><param name='movie' value='" + flash_path + "' /><param name='quality' value='high' /><param name='wmode' value='transparent' /><param name='FlashVars' value='clickTAG=" + flash_link_url + "' /><!-- 次のオブジェクトタグは IE 以外のブラウザーで使用するためのものです。IE では IECC を使用して非表示にします。 --><!--[if !IE]>--><object type='application/x-shockwave-flash' data='" + flash_path + "' width='" + flash_width + "' height='" + flash_height +"'><!--<![endif]--><param name='quality' value='high' /><param name='wmode' value='transparent' /><param name='FlashVars' value='clickTAG=" + flash_link_url + "' /><!-- ブラウザーには、Flash Player 6.0 以前のバージョンを使用して次の代替コンテンツが表示されます。 --><div></div><!--[if !IE]>--></object><!--<![endif]--></object>";		return flash_html;	}    // Parses a synchedBanner ad XML and creates a video Ad     // Change accordingly to the XML that you are trafficking as external ad.    function getVideoAd(adXML){        var videoAd = new Object();               videoAd.type = "videoAd";                var nodeItems = adXML.firstChild.childNodes.length;        var currentNode = adXML.firstChild.firstChild;                //get the root node attributes        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++)        {            //checks to see if the current nodes are in our Rich Media Templates and assigns them if they exist            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;    }        // Parses a synchedBanner ad XML and returns an object with the collapse banner URL and click URL    // Change accordingly to the XML format that you traffic as external ad	// 大バナーと中バナーを読み込み（Jin）    function get_Banner(adXML){        var collapsedAd = new Object();                 var nodeItems = adXML.firstChild.childNodes.length;        var currentNode = adXML.firstChild.firstChild;                    for(var i = 0; i < nodeItems; i++)        {            // Get only the collapseBanner attributes             if(currentNode.nodeName == "collapsedBannerURL" && currentNode.firstChild) collapsedAd.collapsedBannerURL = currentNode.firstChild.nodeValue;            if(currentNode.nodeName == "collapsedBannerClickURL" && currentNode.firstChild) collapsedAd.collapsedBannerClickURL = currentNode.firstChild.nodeValue;			//　この部分、中バナーを読み込み（jin）            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) {            //parses the XML for IE browsers            adXML = new ActiveXObject("Microsoft.XMLDOM");            adXML.async = false;            adXML.loadXML(pXML);        }        else //parses the XML for Mozilla browsers            if (window.XMLHttpRequest) {                adXML = (new DOMParser()).parseFromString(pXML, "text/xml");             }    return adXML;            }