var f_cb_medrect1_served = false;
var f_cb_medrect1_player_served = false;
var f_cb_leaderboard1_served = false;
var f_cb_wideskyscraper1_served = false;
var f_need_cb = false;
var f_cb_medrect1_real = false;
var f_cb_medrect1_player_real = false;
var f_cb_leaderboard1_real = false;
var f_cb_wideskyscraper1_real = false;

function findRG(win) {
	if (win.r != null) {
		return win.r;
	} else {
		return null;
	}
}

function findHeight(obj) {
	var rg = findRG(this);
	if (rg) {
		return rg.playerSize['playlist']; 
	} else {
		return null;
	}
}

function findPos(obj,tl) {
	var curleft = curtop = 0;
	var rg = findRG(this);

	if (obj.offsetParent && rg && rg.playerSize) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);

		if (tl == 'top') {
				return curtop + rg.playerSize['height'] - rg.playerSize['playlist'];
		} else { 
			if (tl == 'left') {
				return curleft;
			}
		}
	} else {
		return null;
	}
}

function yume_backfill_banner(banner_div_id, banner_frame_id, imu_type) {
	var rc=0;
	var cb_width = document.getElementById(banner_div_id).offsetWidth;
	var cb_height = document.getElementById(banner_div_id).offsetHeight;
	var y_c_frame = document.getElementById(banner_frame_id);
//	var cb_w = cb_width.split("px", 1);
//	var cb_h = cb_height.split("px", 1);
	var arg1 ="http://shadow01.yumenetworks.com/dynamic_banner_iframe.html?domain=88ElOFHxAh&width="+cb_width+"&height="+cb_height+"&imu="+imu_type;

//	var arg1 = rg1.YUME_AD_SERVER + rg1.YUME_BACKFILL_BANNER_PATH + "?domain="+playlistVideo.adDomain+"&width="+cb_width+"&height="+cb_height+"&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>";
		rc = 1;
	} catch(e) {}
	return rc;
}

function yume_serve_cb_frame(banner_div_id, banner_frame_id, frame_src_url) {
	var rc=0;
	var banner_div_ref = document.getElementById(banner_div_id);
	var cb_width = document.getElementById(banner_div_id).offsetWidth;
	var cb_height = document.getElementById(banner_div_id).offsetHeight;
	var y_c_frame = document.getElementById(banner_frame_id);

	if ( banner_div_id == "cb_medrect1_player_div") {
		var div_w = document.getElementById('real_gravity_slot').offsetWidth;
		var div_h = findHeight(document.getElementById('real_gravity_slot'));
		var div_x = findPos(document.getElementById('real_gravity_slot'),'top');
		var div_y = findPos(document.getElementById('real_gravity_slot'),'left');
		var ad_w = parseInt(document.getElementById('cb_medrect1_player_frame').width);
		var ad_h = parseInt(document.getElementById('cb_medrect1_player_frame').height);

		if ( ad_w > 0 && ad_h > 0 ) {
			var ad_margin_x = (div_w - ad_w)/2;
			var ad_margin_y = (div_h - ad_h)/2;

			document.getElementById(banner_div_id).style.width = div_w;
			document.getElementById(banner_div_id).style.height = div_h;
			document.getElementById(banner_div_id).style.top = div_x;
			document.getElementById(banner_div_id).style.left = div_y;
			document.getElementById(banner_div_id).style.position = "absolute";
			document.getElementById(banner_div_id).style.zIndex = "99";

// daveh - uncomment these lines to verify it's working by forcing the ad to display below the player
//			document.getElementById(banner_div_id).style.top = 950;
//			document.getElementById(banner_div_id).style.left = 10;

			document.getElementById(banner_frame_id).style.zIndex = "999";
			document.getElementById(banner_frame_id).style.marginTop = ad_margin_y;
			document.getElementById(banner_frame_id).style.marginLeft = ad_margin_x;
			document.getElementById(banner_frame_id).style.Position = "absolute";
			document.getElementById(banner_frame_id).style.top = div_y;
			document.getElementById(banner_frame_id).style.left = div_x;
			document.getElementById(banner_frame_id).setAttribute("width", ad_w);
			document.getElementById(banner_frame_id).setAttribute("height",ad_h);
//			document.getElementById(banner_frame_id).style ="filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)";

			document.getElementById(banner_div_id).style.display = "inline";
			try {
//				y_c_frame.contentWindow.document.getElementsByTagName("body")[0].style.backgroundColor = '#ff0000';
//				y_c_frame.contentWindow.document.getElementsByTagName("body")[0].setAttribute("BGCOLOR","#ff0000");
				y_c_frame.contentWindow.document.getElementsByTagName("body")[0].innerHTML = "<iframe src='"+frame_src_url+"' height='"+ad_h+"' width='"+ad_w+"' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' style='overflow:hidden;z-index:9999;'></iframe>";
				rc = 1;
			} catch(e) {}
		}
	} else {
		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) {}
	}
	return rc;
}

function yume_serve_cb_image(banner_div_id, banner_frame_id, frame_img, frame_link) {
	var rc=0;
	var banner_div_ref = document.getElementById(banner_div_id);
	var cb_width = document.getElementById(banner_div_id).offsetWidth;
	var cb_height = document.getElementById(banner_div_id).offsetHeight;
	var y_c_frame = document.getElementById(banner_frame_id);
	if ( banner_div_id == "cb_medrect1_player_div") {
		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) {}

	} else {
		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;
}

// return 1 if img_url is a SWF, 0 otherwise
function yume_img_is_swf(img_url) {
        var ix_getElement = img_url.indexOf("/getElement?", 0);
        var ix_extSWF = img_url.indexOf("ext=.swf", 0);
        var rc=0;

        if (ix_getElement > 0 && ix_extSWF > ix_getElement) {
                rc=1;
        }
        return rc;
}

function yume_flash_callback(command, arg1, arg2, arg3){

//        alert("yume_flash_callback:" + command +"," + arg1 + "," + arg2 + "," + arg3);
	if (command == 'companionbanner/iframe' || (command == 'companionbanner/image' && yume_img_is_swf(arg1) > 0) )  // serve SWFs as an Iframe
	{
		if (arg3=="cb1" || arg3=="cb_medrect1") {


			if ( document.getElementById("cb_medrect1_player_div")) {
				document.getElementById("cb_medrect1_player_div").style.display="inline";
				if (yume_serve_cb_frame("cb_medrect1_player_div", "cb_medrect1_player_frame", arg1) > 0) {
					f_cb_medrect1_player_served = true;
					f_cb_medrect1_player_real = true;
				}
			} 

			if (yume_serve_cb_frame("cb_medrect1_div", "cb_medrect1_frame", arg1) > 0) {
				f_cb_medrect1_served = true;
				f_cb_medrect1_real = true;
			}

		} else if (arg3=="cb_leaderboard1") {
			if (yume_serve_cb_frame("cb_leaderboard1_div", "cb_leaderboard1_frame", arg1) > 0) {
				f_cb_leaderboard1_served = true;
				f_cb_leaderboard1_real = true;
			}
			
		} else if (arg3=="cb_widesky1") {
			if (yume_serve_cb_frame("cb_wideskyscraper1_div", "cb_wideskyscraper1_frame", arg1) > 0) {
				f_cb_wideskyscraper1_served = true;
				f_cb_wideskyscraper1_real = true;
			}
		}
		
	} else if (command == 'companionbanner/image') { 
	
		if (arg3=="cb1" || arg3=="cb_medrect1") {
	
			if ( document.getElementById("cb_medrect1_player_div")) {
				if (yume_serve_cb_image("cb_medrect1_player_div", "cb_medrect1_player_frame", arg1, arg2) > 0) {
					f_cb_medrect1_player_served = true;
					f_cb_medrect1_player_real = true;
				}
			}

			if (yume_serve_cb_image("cb_medrect1_div", "cb_medrect1_frame", arg1, arg2) > 0) {
				f_cb_medrect1_served = true;
				f_cb_medrect1_real = true;
			}

		} else if (arg3=="cb_leaderboard1") {

			if (yume_serve_cb_image("cb_leaderboard1_div", "cb_leaderboard1_frame", arg1, arg2) > 0) {
				f_cb_leaderboard1_served = true;
				f_cb_leaderboard1_real = true;
			}

		} else if(arg3=="cb_widesky1"){

			if (yume_serve_cb_image("cb_wideskyscraper1_div", "cb_wideskyscraper1_frame", arg1, arg2) > 0) {
				f_cb_wideskyscraper1_served = true;
				f_cb_wideskyscraper1_real = true;
			}
		}

	} else if(command == "yume_preroll_start" || command == "yume_postroll_start" || command == "yume_midroll_start") {
		f_need_cb = true;

	} else if(command == "yume_preroll_end" || command == "yume_postroll_end" || command == "yume_midroll_end") {
	  	f_need_cb = false;

		if ( document.getElementById("cb_medrect1_player_div")) {
			document.getElementById("cb_medrect1_player_div").style.display="none";
				f_cb_medrect1_player_served = false;
				f_cb_medrect1_player_real = false;
		} 

		if(command == "yume_postroll_end") {
			  f_cb_medrect1_real = false;
			  f_cb_leaderboard1_real = false;
			  f_cb_wideskyscraper1_real = false;
		}
	} else if(command == "yume_ad_end") {
		f_cb_medrect1_served = false;
		f_cb_leaderboard1_served = false;
		f_cb_wideskyscraper1_served = false;

	} else if( (command == "yume_ad_start" && f_need_cb == true) || (command == "yume_end" && arg1 == "0" && f_need_cb == true) ) {

		if ((f_cb_medrect1_served == false)&&(f_cb_medrect1_real == false)) {
			if (yume_backfill_banner("cb_medrect1_div", "cb_medrect1_frame", "medrect") > 0) {
				f_cb_medrect1_served = true;
			}
		}
		
		if ((f_cb_leaderboard1_served == false)&&(f_cb_leaderboard1_real == false)) {
			if (yume_backfill_banner("cb_leaderboard1_div", "cb_leaderboard1_frame", "leaderboard") > 0) {
				f_cb_leaderboard1_served = true;
			}
		}

		if((f_cb_wideskyscraper1_served == false)&&(f_cb_wideskyscraper1_real == false)){
			if (yume_backfill_banner("cb_wideskyscraper1_div", "cb_wideskyscraper1_frame", "widesky") > 0) {
				f_cb_wideskyscraper1_served = true;
			}
		}
	}
}
