﻿var yume_flash_callback;

var Vehix$Video$Player$Module = function()
{
	this.adsRefreshing = false;
	this._yume =
		{
			MedAdServed: false,
			LeaderboardServed: false,
			ShoppingLinksServed: false,
			NeedCb: false
		}
	yume_flash_callback = this.YuMeCallback;
}

Vehix$Video$Player$Module.prototype =
{
	RefreshCompanionAdsWithLightningCast: function(ad, video, refresh)
	{
		if (ad)
		{
			if (ad.LightningCastEnabled && ad.LightningCastBannerSrc && ad.LightningCastBannerSrc != "")
			{
				if (gvhxCompanionAds && gvhxCompanionAds.length)
				{
					for (var i = 0; i < gvhxCompanionAds.length; i++)
					{
						var adobj = $("#" + gvhxCompanionAds[i]);
						if (adobj && adobj.attr("width") && adobj.attr("width") == 300 && adobj.attr("height") && adobj.attr("height") == 250)
						{
							adobj.empty();
							var adtype = ad.LightningCastBannerSrc.substr(ad.LightningCastBannerSrc.lastIndexOf('.') + 1);
							if (adtype == "html" || adtype == "swf")
							{
								adobj.append(this.LCBannerIframe(ad));
							}
							else
							{
								adobj.append(this.LCBannerAnchor(ad));
							}
						}
						if (adobj && adobj.width && adobj.width == 300 && adobj.height && adobj.height == 58)
						{
							adobj.empty();
						}
					}
				}
			}
			else
			{
				this.RefreshCompanionAds(ad, video);
			}
		}
	},

	RefreshCompanionAds: function(ad, video)
	{
		try
		{
			gvhxRefreshing = true;
			if (typeof (ad.Ord) != "undefined" && ad.Ord != "")
				jsor = ad.Ord;
			for (advertisementIndex = 0; advertisementIndex < gvhxCompanionAds.length; advertisementIndex++)
			{
				var advertisement = document.getElementById(gvhxCompanionAds[advertisementIndex]);
				advertisement.isCompanion = true;
				var parameterSetCount = 0;
				var bmake = false;
				var bmodel = false;
				var btype = false;
				var bZ1 = false;
				var bZ2 = false;
				var bZ3 = false;
				if (advertisement.parameters)
				{
					for (parameterIndex = 0; parameterIndex < advertisement.parameters.length; parameterIndex++)
					{
						var parameter = advertisement.parameters[parameterIndex];
						switch (parameter.name)
						{
							case "Make":
								parameter.value = ad.Make;
								parameterSetCount++;
								bmake = true;
								break;
							case "Model":
								parameter.value = ad.Model;
								parameterSetCount++;
								bmodel = true;
								break;
							case "BodyStyle":
								parameter.value = ad.Type;
								parameterSetCount++;
								btype = true;
								break;
							case "Segment":
								parameter.value = ad.Segment;
								parameterSetCount++;
								break;
							case "Brand":
								parameter.value = ad.Brand;
								parameterSetCount++;
								break;
							case "Suspend":
								parameter.value = false;
								parameterSetCount++;
								break;
							case "Roadblock":
								parameter.value = true;
								parameterSetCount++;
								break;
							case "Z1":
								parameter.value = ad.Z1;
								parameterSetCount++;
								bZ1 = true;
								break;
							case "Z2":
								parameter.value = ad.Z2;
								parameterSetCount++;
								bZ2 = true;
								break;
							case "Z3":
								parameter.value = ad.Z3;
								parameterSetCount++;
								bZ3 = true;
								break;
						}
						if (parameterSetCount == 10)
							break;
					}
					if (ad.Make != "" && !bmake)
					{
						advertisement.parameters.push({ "name": "Make", "value": ad.Make });
					}
					if (ad.Model != "" && !bmodel)
					{
						advertisement.parameters.push({ "name": "Model", "value": ad.Model });
					}
					if (ad.Type != "" && !btype)
					{
						advertisement.parameters.push({ "name": "BodyStyle", "value": ad.Type });
					}
					if (ad.Z1 != "" && !bZ1)
					{
						advertisement.parameters.push({ "name": "Z1", "value": ad.Z1 });
					}
					if (ad.Z2 != "" && !bZ2)
					{
						advertisement.parameters.push({ "name": "Z2", "value": ad.Z2 });
					}
					if (ad.Z3 != "" && !bZ3)
					{
						advertisement.parameters.push({ "name": "Z3", "value": ad.Z3 });
					}
					setTimeout(new Function('document.getElementById(\'' + gvhxCompanionAds[advertisementIndex] + '\').rotate()'), 1000);
				}
			}
		}
		catch (e) { }
		setTimeout('gvhxRefreshing=false;', 2000);
	},

	LCBannerIframe: function(ad)
	{
		var f = document.createElement("iframe");
		f.scrolling = "no";
		f.src = ad.LightningCastBannerSrc;
		f.frameBorder = 0;
		f.width = 300;
		f.height = 250;
		f.marginHeight = 0;
		f.marginWidth = 0;

		return f;
	},

	LCBannerAnchor: function(ad)
	{
		var adanc = document.createElement("a");
		adanc.href = ad.LightningCastBannerUrl && ad.LightningCastBannerUrl.length ? ad.LightningCastBannerUrl : "javascript:void(0)";
		adanc.target = "_blank";
		adanc.style.backgroundImage = "url(" + ad.LightningCastBannerSrc + ")";
		adanc.style.width = "300px";
		adanc.style.height = "250px";
		adanc.style.borderStyle = "none";
		adanc.style.display = "block";
		return adanc;
	},

	PlayLibraryVideo: function()
	{
		if (arguments && arguments[0] && arguments[0]._record && __vehixVideoPlayerModule.VideoPlayer)
		{
			__vehixVideoPlayerModule.VideoPlayer.PlayVideo(arguments[0]._record.Id);
			window.scrollTo(0, 130);
		}
	},

	AssignWidget: function(wdgt)
	{
		__vehixVideoPlayerModule.VideoPlayer = wdgt;
	},

	VideoChanged: function(ad, video, refresh)
	{
		if (refresh)
			__vehixVideoPlayerModule.RefreshCompanionAdsWithLightningCast(ad, video, refresh);
	},

	YuMeCallback: function(command, arg1, arg2, arg3)
	{
		if (typeof (__vehixVideoPlayerModule._yume.CompanionAdId) == "undefined")
		{
			if (gvhxCompanionAds && gvhxCompanionAds.length)
			{
				for (var i = 0; i < gvhxCompanionAds.length; i++)
				{
					var adobj = $("#" + gvhxCompanionAds[i]);
					if (adobj && adobj.attr("width") && adobj.attr("width") == 300 && adobj.attr("height") && adobj.attr("height") == 250)
					{
						__vehixVideoPlayerModule._yume.CompanionAdId = adobj.attr("id");
						break;
					}
				}
			}
		}
		if (command == 'companionbanner/iframe')
		{
			if (arg3 == "cb1" || arg3 == "cb_medrect1")
			{
				if (__vehixVideoPlayerModule.YuMeServeCbFrame(arg1) > 0)
				{
					__vehixVideoPlayerModule._yume.MedAdServed = true;
				}
			}
			else if (arg3 == "cb_31rect1")
			{
				if (__vehixVideoPlayerModule.YuMeGetShoppingLinksId() > 0)
				{
					if (__vehixVideoPlayerModule.YuMeServeSlFrame(arg1) > 0)
					{
						__vehixVideoPlayerModule._yume.ShoppingLinksServed = true;
					}
				}
			}
		} else if (command == 'companionbanner/image')
		{
			if (arg3 == "cb1" || arg3 == "cb_medrect1")
			{
				if (__vehixVideoPlayerModule.YuMeServeCbImage(arg1, arg2) > 0)
				{
					__vehixVideoPlayerModule._yume.MedAdServed = true;
				}
			}
			else if (arg3 == "cb_31rect1")
			{
				if (__vehixVideoPlayerModule.YuMeGetShoppingLinksId() > 0)
				{
					if (__vehixVideoPlayerModule.YuMeServeSlImage(arg1, arg2) > 0)
					{
						__vehixVideoPlayerModule._yume.ShoppingLinksServed = true;
					}
				}
			}
		} else
			if (command == "yume_preroll_start" || command == "yume_postroll_start" || command == "yume_midroll_start")
		{
			__vehixVideoPlayerModule._yume.NeedCb = true;
		} else
			if (command == "yume_preroll_end" || command == "yume_postroll_end" || command == "yume_midroll_end")
		{
			__vehixVideoPlayerModule._yume.NeedCb = false;
		} else
			if (command == "yume_ad_end")
		{
			__vehixVideoPlayerModule._yume.MedAdServed = false;
			__vehixVideoPlayerModule._yume.LeaderboardServed = false;
		} else
			if ((command == "yume_ad_start" && __vehixVideoPlayerModule._yume.NeedCb == true) || (command == "yume_end" && arg1 == "0" && __vehixVideoPlayerModule._yume.NeedCb == true))
		{
			if (__vehixVideoPlayerModule._yume.MedAdServed == false)
			{
				if (__vehixVideoPlayerModule.YuMeBackfillBanner(__vehixVideoPlayerModule._yume.CompanionAdId, __vehixVideoPlayerModule._yume.CompanionAdId + "_Frame", "medrect") > 0)
				{
					__vehixVideoPlayerModule._yume.MedAdServed = true;
				}
			}
		}
	},

	YuMeGetShoppingLinksId: function()
	{
		var rc = 1;
		if (typeof (__vehixVideoPlayerModule._yume.ShoppingLinksId) == "undefined")
		{
			rc = 0;
			if (gvhxCompanionAds && gvhxCompanionAds.length)
			{
				for (var i = 0; i < gvhxCompanionAds.length; i++)
				{
					var adobj = $("#" + gvhxCompanionAds[i]);
					if (adobj && adobj.attr("width") && adobj.attr("width") == 300 && adobj.attr("height") && adobj.attr("height") == 58)
					{
						__vehixVideoPlayerModule._yume.ShoppingLinksId = adobj.attr("id");
						rc = 1;
						break;
					}
				}
			}
		}
		return rc;
	},

	YuMeBackfillBanner: function(imu_type)
	{
		var rc = 0;
		var banner_div_id = __vehixVideoPlayerModule._yume.CompanionAdId;
		var banner_frame_id = __vehixVideoPlayerModule._yume.CompanionAdId + "_Frame";
		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);
		var cb_w = cb_width.split("px", 1);
		var cb_h = cb_height.split("px", 1);
		var arg1 = "http://pl.yumenetworks.com/dynamic_banner_iframe.html?domain=193yeOpIROX&width=" + cb_w + "&height=" + cb_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>";
			rc = 1;
		} catch (e) { alert(e) }
		return rc;
	},

	YuMeServeSlFrame: function(frame_src_url)
	{
		var rc = 0;
		var sl_div_id = __vehixVideoPlayerModule._yume.ShoppingLinksId;
		var sl_frame_id = __vehixVideoPlayerModule._yume.ShoppingLinksId + "_Frame";
		var cb_width = document.getElementById(sl_div_id).style.width;
		var cb_height = document.getElementById(sl_div_id).style.height;
		var y_c_frame = document.getElementById(sl_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;
			document.getElementById(sl_div_id).style.display = "block";
		} catch (e) { alert(e) }
		return rc;
	},

	YuMeServeSlImage: function(frame_img, frame_link)
	{
		var rc = 0;
		var sl_div_id = __vehixVideoPlayerModule._yume.ShoppingLinksId;
		var sl_frame_id = __vehixVideoPlayerModule._yume.ShoppingLinksId + "_Frame";
		var cb_width = document.getElementById(sl_div_id).style.width;
		var cb_height = document.getElementById(sl_div_id).style.height;
		var y_c_frame = document.getElementById(sl_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;
			document.getElementById(sl_div_id).style.display = "block";
		} catch (e) { alert(e) }
		return rc;
	},

	YuMeServeCbFrame: function(frame_src_url)
	{
		var rc = 0;
		var banner_div_id = __vehixVideoPlayerModule._yume.CompanionAdId;
		var banner_frame_id = __vehixVideoPlayerModule._yume.CompanionAdId + "_Frame";
		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) { alert(e) }
		return rc;
	},

	YuMeServeCbImage: function(frame_img, frame_link)
	{
		var rc = 0;
		var banner_div_id = __vehixVideoPlayerModule._yume.CompanionAdId;
		var banner_frame_id = __vehixVideoPlayerModule._yume.CompanionAdId + "_Frame";
		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) { alert(e) }
		return rc;
	}
}

var __vehixVideoPlayerModule = new Vehix$Video$Player$Module();