﻿try {Type.registerNamespace('Vehix.Widgets.Video');}
catch(e)
{
	(function(namespacePath)
	{
		var p = window;
		var nsp = namespacePath.split('.');

		for (var i = 0; i < nsp.length; i++) 
		{
			var c = nsp[i];
			var ns = p[c];
			if (ns && !ns.__namespace) throw 'invalid namespace';
			if (!ns) 
			{
				ns = p[c] = 
					{	__namespace: true
					, __typeName: nsp.slice(0, i + 1).join('.')
					, getName: function() {return this.__typeName;}
					};
				var n;
				try {n = eval(ns.__typeName);}
				catch(e){n = null;}
				if (n !== ns) {
						delete p[c];
						throw 'invalid namespace: '+namespacePath;
				}										
			}
			p = ns;
		}
	})('Vehix.Widgets.Video');			
}

if(typeof(VehixPathToWidgetScripts) == "undefined") 
{
	var scripts = document.getElementsByTagName('script');
	for(var i = 0; i < scripts.length; i++)
	{
		var o = scripts[i];
		if(o.src.indexOf('_js/Vehix.Widgets.Video.SyndicatedPlayer') != -1)
		{
			VehixPathToWidgetScripts = o.src.replace("Vehix.Widgets.Video.SyndicatedPlayer.js", "");
			break;
		}
	}
}
document.write('<link rel="stylesheet" type="text/css" href="');
document.write(VehixPathToWidgetScripts.replace("_js", "_css") + 'CssHandler.ashx?f=Vehix.Widgets.Video.SyndicatedPlayer.css" />');
document.write('<s'+'cript type="text/javascript" src="');
document.write(VehixPathToWidgetScripts + 'Vehix.Widgets.Main.js"></s'+'cript>');
document.write('<s'+'cript type="text/javascript" src="');
document.write(VehixPathToWidgetScripts + 'Vehix.Widgets.Utils.js"></s'+'cript>');
document.write('<s'+'cript type="text/javascript" src="');
document.write(VehixPathToWidgetScripts + 'Vehix.Services.Presentation.js"></s'+'cript>');
document.write('<s'+'cript type="text/javascript" src="');
document.write(VehixPathToWidgetScripts + 'Vehix.Services.Presentation.Flash.js"></s'+'cript>');
	
Vehix$Widgets$Video$SyndicatedPlayer = function(config)
{
	if(config && typeof(config) == "object")
	{
		if(config.PartnerID)
			this.PartnerID = config.PartnerID;
		if(config.FlashVars)
			this._fv = this.FlashVars(config.FlashVars);
		if(config.VideoID != null && typeof(config.VideoID) != "undefined")
			this.VideoID = config.VideoID;
		if(config.PlayerType != null && typeof(config.PlayerType) != "undefined")
		{
			this._playerType = config.PlayerType;
		}
		else
		{
			this._playerType = "SyndicatedVideoPlayer";
		}
	}
}

Vehix$Widgets$Video$SyndicatedPlayer.prototype =
{
	Render : function(container)
	{
		var qs = new Vehix.Widgets.Utils.QueryString();
		var gv = qs.GetValue.bind(qs);
		var swfurl = VehixPathToWidgetScripts.replace("_js", "_video") + this._playerType + ".swf";
		var vid = gv("vid");
		var fp = VehixFlashPresentationService;
		var p = VehixPresentationService;
		var div = p.div("vx_widgets-video-syndicatedplayer-container");
		var width = 635;
		var height = this._playerType == "SyndicatedVideoPlayer" ? 849 : 816;
		var fv = "";
		var urlchngd = false;
		if(this._fv && typeof(this._fv) == "object")
		{
			fv = this._fv;
		}
		if(this.VideoID && this.VideoID.length)
		{
			swfurl += "?vid=" + this.VideoID;
			urlchngd = true;
		}
		else if(vid && vid.length)
		{
			swfurl += "?vid=" + vid;
			urlchngd = true;
		}
		if(this.PartnerID && this.PartnerID.length)
		{
			swfurl += urlchngd ? "&" : "?";
			swfurl += "pid=" + 	this.PartnerID;
		}
		div.style.width = width + "px";
		div.style.height = height + "px";
		div.innerHTML = fp.FlashObjectString(this._playerType, width, height, swfurl, fv, 9, 0, 124);
		//VehixWidgetsUtils.WriteString();
		p._replaceChildren(container, div);
	},
	
	FlashVars : function(arg)
	{
		var _getUpdateNext = function(s)
		{
			var res = "0";
			switch(s)
			{
				case "PLAY_ALL":
					res = "1";
					break;
				case "PLAY_NONE":
					res = "2";
					break;
			}
			return res;
		}
		var result = new Object();
		var keys = [["PageName", "pgnm"], ["Channel", "chnl"], ["Account", "acct"], ["Buffer", "buffer"], ["SiteBrand", "stbrnd"], ["SubBrand", "sbbrnd"], ["UpNext", "upnext"],
					["PreRollTile", "adTagTile"], ["InitialActionClip", "iac"], ["MetricsPlayerName", "mpnm"], ["PreRollOrd", "adTagOrd"], ["PreRollUrl", "adTagUrl"],
					["SelectorPosition1", "cat"], ["SelectorPosition2", "sc1"], ["SelectorPosition3", "sc2"], ["LCEnabled", "lcad"], ["Taxons", "txns"],
					["MetricsUpdateInterval", "mui"], ["ChangeCallbackMethod", "vccb"], ["AdSection", "adsec"], ["MetricsVisitorID", "mvid"], ["Z1", "Z1"], ["Z2", "Z2"], ["Z3", "Z3"],
					["LinkPanelType", "lpt"], ["Zip", "zip"], ["LibraryTaxonKinds", "ltxns"], ["Make", "mk"], ["Model", "mdl"], ["BodyStyle", "bdystyl"]
					, ["Segment", "sgmnt"], ["Section", "sctn"], ["StopPreRoll", "nopreroll"]]
		for(var key in arg)
		{
			for(var i = 0; i < keys.length; i++)
			{
				if(key == keys[i][0])
				{
					result[keys[i][1]] = key == "UpNext" ? _getUpdateNext(arg[key]) : arg[key];
					break;
				}
			}
		}
		
		if(this._cid)
		    result.cid = this._cid;
		return result;
	},
	
	__initialized : true
}

Vehix.Widgets.Video.SyndicatedPlayer = Vehix$Widgets$Video$SyndicatedPlayer;
