// YuMe 
if (typeof YUME == "undefined") YUME = {};
YUME.f_cb_medrect1_served = false;
YUME.f_cb_leaderboard1_served = false;
YUME.f_cb_halfban1_served = false;
YUME.f_need_cb = false;
//YUME.adServerSiteDocRoot = "whatever"; set in XSL
//YUME.domain = "wherever";

/*
function reload_div(flash_id) {
	if(flash_id=="flash_flv_player") {
		try {
			document.getElementById("flvPlayerDiv").innerHTML = "";
			//playContent(); in example, reloads swf with swfobject
		} catch (err) {}	
	}
}
*/
function yume_player_event(event_name) {
	// I have no idea what this is
}
var firebugEnabled = (typeof console == "object") && (typeof console.debug == "function"); 
function yume_serve_cb_frame(banner_div_id, banner_frame_id, frame_src_url) {
	var rc = 0;
	var cb_width = document.getElementById(banner_div_id).style.width;
	var cb_height = document.getElementById(banner_div_id).style.height;
	var y_c_frame = document.getElementById(banner_frame_id);
	try {
		y_c_frame.contentWindow.document.getElementsByTagName("body")[0].innerHTML = 
			"<iframe src='"+frame_src_url+"' height='"+cb_height+"' width='"+cb_width+"' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' style='overflow:hidden'></iframe>";
		rc = 1;
	} catch(e) {
          if (firebugEnabled) console.debug("YuMe ad: error: " + e);
	  try {
	  	document.getElementById(banner_div_id).firstChild.src = frame_src_url;
                rc = 1;
          } catch (e2) {
 		if (firebugEnabled) console.debug("YuMe ad: error2: " + e2);
          } 
	}
	return rc;
}
function yume_serve_cb_image(banner_div_id, banner_frame_id, frame_img, frame_link) {
        if (firebugEnabled) console.debug("yume_flash_callback: (cmd,arg1,arg2,arg3) " + command +", " + arg1 + ", " + arg2+ ", " + arg3);

	var rc=0;
	var cb_width = document.getElementById(banner_div_id).style.width;
	var cb_height = document.getElementById(banner_div_id).style.height;
	var y_c_frame = document.getElementById(banner_frame_id);
	try {
		y_c_frame.contentWindow.document.getElementsByTagName("body")[0].innerHTML = 
			"<a href='"+frame_link+"' target='_blank'><img src='"+frame_img+"' border='0' width='"+cb_width+"' height='"+cb_height+"'></a>";
		rc = 1;
	} catch(e) {}
	return rc;
}
function yume_flash_callback(command, arg1, arg2, arg3){
	//alert("yume_flash_callback: (cmd,arg1,arg2,arg3) " + command +", " + arg1 + ", " + arg2+ ", " + arg3);
	switch (command) {
		case "companionbanner/iframe":
			if (arg3 == "cb1" || arg3 == "cb_medrect1") {
				if (yume_serve_cb_frame("cb_medrect1_div", "cb_medrect1_frame", arg1) > 0) {
					YUME.f_cb_medrect1_served = true;
				}
			} else if (arg3 == "cb_leaderboard1") {
				if (yume_serve_cb_frame("cb_leaderboard1_div", "cb_leaderboard1_frame", arg1) > 0) {
					YUME.f_cb_leaderboard1_served = true;
				}
			} else if (arg3 == "cb_halfban1") {
				if (yume_serve_cb_frame("cb_halfban1_div", "cb_halfban1_frame", arg1) > 0) {
					YUME.f_cb_halfban1_served = true;
				}
			}

			break;
		
		case "companionbanner/image":
			if (arg3 == "cb1" || arg3 == "cb_medrect1") {
				if (yume_serve_cb_image("cb_medrect1_div", "cb_medrect1_frame", arg1, arg2) > 0) {
					YUME.f_cb_medrect1_served = true;
				}
			} else if (arg3 == "cb_leaderboard1") {
				if (yume_serve_cb_image("cb_leaderboard1_div", "cb_leaderboard1_frame", arg1, arg2) > 0) {
					YUME.f_cb_leaderboard1_served = true;
				}
			} else if (arg3 == "cb_halfban1") {
				if (yume_serve_cb_image("cb_halfban1_div", "cb_halfban1_frame", arg1, arg2) > 0) {
					YUME.f_cb_halfban1_served = true;
				}
			}

			break;
			
		case "yume_preroll_start":
		case "yume_postroll_start":
		case "yume_midroll_start":
			YUME.f_need_cb = true;
			break;
			
		case "yume_preroll_end":
		case "yume_postroll_end":
		case "yume_midroll_end":
			YUME.f_need_cb = false;
			break;
			
		case "yume_ad_end":
			YUME.f_cb_medrect1_served = false;
			YUME.f_cb_leaderboard1_served = false;
			YUME.f_cb_halfban1_served = false;
			break;
			
		case "yume_end":
			if (arg1 != "0") break;
				
		case "yume_ad_start":
		//alert("yume_flash_callback: (cmd,arg1,arg2,arg3) " + command +", " + arg1 + ", " + arg2+ ", " + arg3);
			if (YUME.f_need_cb) {
				if (!YUME.f_cb_medrect1_served) {
					if (yume_backfill_banner("cb_medrect1_div", "cb_medrect1_frame", "medrect") > 0) {
						YUME.f_cb_medrect1_served = true;
					}
				}
				if (!YUME.f_cb_leaderboard1_served) {
					if (yume_backfill_banner("cb_leaderboard1_div", "cb_leaderboard1_frame", "leaderboard") > 0) {
						YUME.f_cb_leaderboard1_served = true;
					}
				}
				if (!YUME.f_cb_halfban1_served) {
					if (yume_backfill_banner("cb_halfban1_div", "cb_halfban1_frame", "halfban") > 0) {
						YUME.f_cb_halfban1_served = true;
					}
				}
			}
			break;
		default:;	
	}
}
function yume_backfill_banner(banner_div_id, banner_frame_id, imu_type) {
    if (firebugEnabled) console.debug("YuMe backfill: " + banner_div_id + ", " + banner_frame_id);
    var bannerDiv = document.getElementById(banner_div_id);
	var w = bannerDiv.style.width.split("px", 1);
	var h = bannerDiv.style.height.split("px", 1);
	//="__YUME_EX_AD_SERVER_SITE_DOC_ROOTdynamic_banner_iframe.html?domain=__YUME_EX_DOMAIN&width="+cb_w+"&height="+cb_h+"&imu="+imu_type;
	var url = YUME.adServerSiteDocRoot + "dynamic_banner_iframe.html?domain=" + YUME.domain + "&width="+w+"&height="+h+"&imu="+imu_type;
	try {
	/*
		y_c_frame.contentWindow.document.getElementsByTagName("body")[0].innerHTML = 
			"<iframe src='"+arg1+"' height='"+cb_height+"' width='"+cb_width+"' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' style='overflow:hidden'></iframe>";
    */	
        bannerDiv.innerHTML = "<iframe id='"+ banner_frame_id + "' src='"+url+"' height='"+h+"' width='"+w+"' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' style='overflow:hidden'></iframe>";
		return 1;
	} catch(e) {
	   // alert("YuMe backfill error: " + e);	
	}
	return 0;
}
