//Set global variables

var sizesArray = new Array("100%", "102%", "103%", "105%");
var sizePointer;
var ruleCounter;	// ruleCounter is used for Mozilla due to the necessity to write the new CSS rule in the last position so that it is applied.
var resizeArray = new Array();

var CDC_SIZER_COOKIE_NAME = "sizePrefv2v2";
var CDC_SIZER_COOKIE_NAME_LEGACY = "sizePref";

//******************************************************************************************//
//******************************************************************************************//
//*                               Common Utility Functions                                 *//
//******************************************************************************************//
//******************************************************************************************//

//******************************************************************************************//
// A browser-aware function to get an HTML element by its ID.
//******************************************************************************************//
function GetElementById(e) {
	if (typeof(e) != "string")
		return e;
	if (document.getElementById)
		e = document.getElementById(e);
	else if (document.all)
		e = document.all[e];
	else
		e = null;
	return e;
}

//******************************************************************************************//
// A utility function to return an array of elements with the specified class.
//******************************************************************************************//
function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if (node == null)
		node = document;
	if (tag == null)
		tag = "*";
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	for (var i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

//******************************************************************************************//
// A function to add a function to the window.onload event handler "stack".
//******************************************************************************************//
function addLoadEvent(func) {
	var oldLoad = window.onload;
	if (typeof window.onload != "function") {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldLoad();
			func();
		}
	}
}

//******************************************************************************************//
// A function to add a function to the window.onresize event handler "stack".
//******************************************************************************************//
function addResizeEvent(func) {
	var oldResize = window.onresize;
	if (typeof window.onresize != "function") {
		window.onresize = func;
	}
	else {
		window.onresize = function() {
			oldResize();
			func();
		}
	}
}

//******************************************************************************************//
// A function to retrieve the named cookie from the request.  Returns an empty string if
// the cookie is not found.
//******************************************************************************************//
function getCookie(c_name)
{
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1) { 
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "";
}

//******************************************************************************************//
//******************************************************************************************//
//            Main Window Event Handlers
//******************************************************************************************//
//******************************************************************************************//

//for IE 6 to retest the container size after all page element load.
function loaderFunction() {
	// Apply the styles to the "blocks" elements on the page.
	try {
		// hover effect for topic blocks
		blocksHover("blocks");
	}
	catch(err){}
	
	// Adjust the search box if necessary.
	resizeSearch();
}

// Associate the loaderFunction function to the window.onload event.
addLoadEvent(loaderFunction);


//******************************************************************************************//
// This function returns the current size of the browser "window".
//******************************************************************************************//
function getWindowSize() {
	var size = 0;
	if (document.body && document.body.clientWidth)
		size = document.body.clientWidth;
	else if (window.innerWidth && window.innerWidth > 0) 
		size = window.innerWidth;
		
	var content = document.getElementById("bottom-container");
	if (content && content.clientWidth && content.clientWIdth > 0)
		size = content.clientWidth;
		
	return size;	
}

//******************************************************************************************//
// This function resizes the search text box if necessary when the window is resized.
//******************************************************************************************//
function resizeSearch() {
	// Check to see if the Search textbox needs to be resized.
	if (getWindowSize() < 835) {
		GetElementById("searchBox").style.width = "120px";
		GetElementById("searchForm").style.width = "190px";
	}
	else {
		//default sets to original sizes
		GetElementById("searchBox").style.width = "230px";
		GetElementById("searchForm").style.width = "300px";
	}
}

//******************************************************************************************//
// The event handler for the window.onresize event.
//******************************************************************************************//
function resizeElements() {
	
	// Check to see if the Search textbox needs to be resized.
	resizeSearch();

	// Iterate through list list of CDC.Video objects that have been "registered" to be resized.
	for (var i = 0; i < resizeArray.length; i++) {
		var mov = resizeArray[i];
		mov.resize();
	}

}

// Associate the resizeElements function to the window.onresize event.
addResizeEvent(resizeElements);

//******************************************************************************************//
// This function sets the mouse hover and click events for the given section identified by
// a class name.
//******************************************************************************************//
function blocksHover (section) {
	if (!document.getElementsByTagName) return false;
	var tags = getElementsByClass(section);
    for (var i = 0; i < tags.length; i++) {
		tags[i].onmouseover = function() {this.className += " blocksHover";}
		tags[i].onmouseout = function() {this.className = this.className.replace(new RegExp(" blocksHover\\b"), "")}
		tags[i].onclick = function () {location.href = this.getElementsByTagName("a")[0].href}
	}
}

//******************************************************************************************//
//******************************************************************************************//
//*									Page Options Functions                                 *//
//******************************************************************************************//
//******************************************************************************************//

//******************************************************************************************//
// Email/Print Script
//******************************************************************************************//
var WindowObjectReference; // global variable
function openRequestedPopup(){
    document.url = location.href;
    WindowObjectReference = window.open("http://www.cdc.gov/email.do?url=" + escape(location.href), "_blank",  "height=320,width=576,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes," + "resizable=yes");
}

//******************************************************************************************//
// Text sizing version 2.0 Script
//******************************************************************************************//
function drawTextSizer() {
	var sizerHTML = '<ul>\n';
		sizerHTML = sizerHTML + '<li class="first-child">Text size:</li>\n';
		sizerHTML = sizerHTML + '<li><a onclick="textSizer(0);" title="Small Text Size" id="Size0" class="default">s</a></li>\n';
		sizerHTML = sizerHTML + '<li><a onclick="textSizer(1);" title="Medium Text Size"id="Size1" class="default">m</a></li>\n';
		sizerHTML = sizerHTML + '<li><a onclick="textSizer(2);" title="Large Text Size" id="Size2" class="default">l</a></li>\n';
		sizerHTML = sizerHTML + '<li><a onclick="textSizer(3);" title="Extra Large Text Size" id="Size3" class="default">xl</a></li>\n';
	sizerHTML = sizerHTML + '</ul>';
	
	GetElementById('text-sizer').innerHTML = sizerHTML;
	loadTextSize();
}

function loadTextSize() {
	if (getCookie(CDC_SIZER_COOKIE_NAME) != "") {
		sizePointer = Number(getCookie(CDC_SIZER_COOKIE_NAME))
		// assure value is in expected range.
		if(sizePointer > 3) sizePointer = 3;
		if(sizePointer < 0) sizePointer = 0;
		// now apply the font
		if (document.styleSheets[0].cssRules) {
			ruleCounter = document.styleSheets[0].cssRules.length;
			// Mozilla
			document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
		}
		else {
			//IE
			document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
		}
	}
	else {
		sizePointer = 0;
	}
	
	//change display
	GetElementById("Size" + sizePointer).className = "selected";

	sizeBoxes();
}


function textSizer (newSize) {
	
	//change display of current size to default
	GetElementById("Size" + sizePointer).className = "default";
	
	if (document.styleSheets[0].cssRules) {
	// Mozilla
		if (document.styleSheets[0].cssRules[0]) {
			if ((newSize >= 0) && (newSize < 4)) {
				sizePointer = newSize;
				ruleCounter = document.styleSheets[0].cssRules.length;
				document.cookie = CDC_SIZER_COOKIE_NAME + "=" + sizePointer + "; path=/; domain=.cdc.gov";
				document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
			}
		}
	}	
	else if (document.styleSheets[0].rules) {
	// IE
		if ((newSize >= 0) && (newSize < 4)) {
			sizePointer = newSize;
			document.cookie = CDC_SIZER_COOKIE_NAME + "=" + sizePointer + "; path=/; domain=.cdc.gov";
			document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
		}
	}
	
	//change display
	GetElementById("Size" + sizePointer).className = "selected";
	sizeBoxes();
	
}

function sizeBoxes() {
	var i;
	var boxSizeArray = new Array("14px", "16px", "18px", "20px");
	for (i = 0; i < boxSizeArray.length; i++) {
		//document.getElementById('Size'+i).style.width = boxSizeArray[sizePointer];
		//document.getElementById('Size'+i).style.paddingBottom = sizePointer;
		GetElementById("Size" + i).style.fontSize = "11px";
		GetElementById("text-sizer").style.fontSize = "11px";
	}
}

// left in for backwards compatibility.  -- It would need the sizeArray to be recalibrated to the 8 values.
function largerFont () {
	if (document.styleSheets[0].cssRules) {
	// Mozilla
		if (document.styleSheets[0].cssRules[0]) {
			if (sizePointer != 8) {
				ruleCounter = document.styleSheets[0].cssRules.length;
				sizePointer = sizePointer + 1;
				document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
				document.cookie = CDC_SIZER_COOKIE_NAME_LEGACY + "=" + sizePointer + "; path=/; domain=.cdc.gov";				
			}
		}	
	}	
	else if (document.styleSheets[0].rules) {
	// IE
		if (sizePointer < 8) {
			sizePointer = sizePointer + 1;
			document.cookie = CDC_SIZER_COOKIE_NAME_LEGACY + "=" + sizePointer + "; path=/; domain=.cdc.gov";				
			document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
		}
	}
}

function smallerFont () {
	if (document.styleSheets[0].cssRules) {
	// Mozilla
		if (document.styleSheets[0].cssRules[0]) {
			if (sizePointer != 0) {
				sizePointer = sizePointer - 1;
				ruleCounter = document.styleSheets[0].cssRules.length;
				document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
				document.cookie = CDC_SIZER_COOKIE_NAME_LEGACY + "=" + sizePointer + "; path=/; domain=.cdc.gov";				
			}
		}
	}	
	else if (document.styleSheets[0].rules) {
	// IE
		if (sizePointer > 0) {
			sizePointer = sizePointer - 1;
			document.cookie = CDC_SIZER_COOKIE_NAME_LEGACY + "=" + sizePointer + "; path=/; domain=.cdc.gov";				
			document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
		}
	}
}

//******************************************************************************************//
//******************************************************************************************//
// Flash Embeddding script 
//******************************************************************************************//
//******************************************************************************************//

/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
 // undeclared variables from functions
var c_start, spn, pn, __flash_unloadHandler, __flash_savedUnloadHandler;
if (typeof deconcept == "undefined") var deconcept = new Object();
if (typeof deconcept.util == "undefined") deconcept.util = new Object();
if (typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if (swf) { this.setAttribute('swf', swf); }
	if (id) { this.setAttribute('id', id); }
	if (w) { this.setAttribute('width', w); }
	if (h) { this.setAttribute('height', h); }
	if (ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	if (c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', useExpressInstall);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name];
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name];
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs.push(key +"="+ variables[key]);
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else{
		// do minor version lookup in IE, but avoid fp6 crashing issues
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}catch(e){
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // throws if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {
				if (PlayerVersion.major == 6) {
					return PlayerVersion;
				}
			}
			try {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch(e) {}
		}
		if (axo != null) {
			PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param) {
		var q = document.location.search || document.location.hash;
		if(q) {
			var pairs = q.substring(1).split("&");
			for (var i=0; i < pairs.length; i++) {
				if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
					return pairs[i].substring((pairs[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
	if (window.opera || !document.all) return;
	var objects = document.getElementsByTagName("OBJECT");
	for (var i=0; i < objects.length; i++) {
		objects[i].style.display = "none";
		for (var x in objects[i]) {
			if (typeof objects[i][x] == "function") {
				objects[i][x] = function(){};
			}
		}
	}
}
// fixes bug in fp9 see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
deconcept.SWFObjectUtil.prepUnload = function() {
	__flash_unloadHandler = function(){};
	__flash_savedUnloadHandler = function(){};
	if (typeof window.onunload == "function") {
		var oldUnload = window.onunload;
		window.onunload = function() {
			deconcept.SWFObjectUtil.cleanupSWFs();
			oldUnload();
		}
	} else {
		window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
	}
}
if (typeof window.onbeforeunload == "function") {
	var oldBeforeUnload = window.onbeforeunload;
	window.onbeforeunload = function() {
		deconcept.SWFObjectUtil.prepUnload();
		oldBeforeUnload();
	}
} else {
	window.onbeforeunload = deconcept.SWFObjectUtil.prepUnload;
}
/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;

//******************************************************************************************//
//******************************************************************************************//
//  CDC-specific Flash embedding script logic.
//******************************************************************************************//
//******************************************************************************************//
/*
This is used to create instances of Flash movies in a page using the following syntax:

	var myVideo = new CDC.Video(xmlData, altContentId, metricButton, isFeature, 
		 movieWidth, movieHeight, movieUrl, 
		 movieWidthSmall, movieHeightSmall, movieUrlSmall, 
		 resize, resizeWidthThreshold);
	myVideo.render();

Where, the parameters are defined as follows:

xmlData - The path to the XML file associated with the Flash movie.  Default 
	is "/images/home/xml/dcfeatures.xml" (or whatever we want this to be).
altContentId - The ID for the <DIV> element that contains the alternate content 
	for the Flash if it cannot be displayed.  Default is "flashALTcontent".
metricButton - The name that should be associated with this movie from a metrics 
	reporting standpoint.  If the movie is a feature movie, then the contant 
	"MovieFeature2ndTier" will be pre-pended to this value.  Default is "MyMetricButton".
	This value is used to track the clicks on the buttons in the Flash Movie and
	should be set to your channel name or site name or be in some way distinct 
	for each instance of your movie.
isFeature - A boolean value indicating whether this movie is a feature movie or not.
	Default is true.
movieWidth - The normal width (in pixels) to use when displaying the movie.  Default is 520.
movieHeight - The normal height (in pixels) to use when displaying the move.  Default is 150.
movieUrl - The URL to the Flash file.  Default is "/images/home/2ndTBanner.swf".
movieWidthSmall - The small width (in pixels) to use when displaying the movie and 
	window width is less than resizeWidthThreshold (see below).  The default is the 
	same as the movieWidth value (or 360 if movieWidth is not specified).
movieHeightSmall - The small height (in pixels) to use when displaying the move and 
	window width is less than resizeWidthThreshold (see below).  The default is the 
	same as the movieHeight value (or 176 if movieHeight is not specified).
movieUrlSmall - The URL to the Flash file to use when window width is less than 
	resizeWidthThreshold (see below).  The default is the same as the movieUrl value 
	(or "/TemplatePackage/alpha/images/Features800600.swf" if movieUrl is not specified).
resize - A boolean value indicating whether or not to resize the movie when the browser 
	window is resized.  The default is false (no resize).
resizeWidthThreshold - The threshold width (in pixels) to determine which movie to 
	display.  If the window width is less than this threshold then the small version of the movie will be displayed.  Otherwise, the large version is displayed.  The default value is 546.										
*/

if (typeof CDC == "undefined") var CDC = new Object();
if (typeof CDC.Video == "undefined") CDC.Video = new Object();
CDC.Video = function(xmlData, altContentId, metricButton, isFeature, 
					 movieWidth, movieHeight, movieUrl, 
					 movieWidthSmall, movieHeightSmall, movieUrlSmall, 
					 resize, resizeWidthThreshold) {
	this.attributes = new Array();
	if (typeof xmlData == "undefined")
		this.setAttribute("xmlData", "/TemplatePackage/alpha/images/hlfeatures.xml");
	else
		this.setAttribute("xmlData", xmlData);	
	if (typeof altContentId == "undefined") {
		this.setAttribute("altContentId", "flashALTcontent");
	}
	else
		this.setAttribute("altContentId", altContentId);		
	if (typeof metricButton == "undefined")
		this.setAttribute("metricButton", "MyMetricButton");
	else
		this.setAttribute("metricButton", metricButton);	
	if (typeof isFeature == "undefined")
		this.setAttribute("isFeature", true);
	else
		this.setAttribute("isFeature", isFeature);	
	if (typeof movieWidth == "undefined")
		this.setAttribute("movieWidth", 520);
	else
		this.setAttribute("movieWidth", movieWidth);
	if (typeof movieHeight == "undefined")
		this.setAttribute("movieHeight", 150);
	else
		this.setAttribute("movieHeight", movieHeight);	
	if (typeof movieUrl == "undefined")
		this.setAttribute("movieUrl", "/images/home/2ndTBanner.swf");
	else
		this.setAttribute("movieUrl", movieUrl);	

	if (typeof movieWidthSmall == "undefined") {
		if (typeof movieWidth == "undefined")
			this.setAttribute("movieWidthSmall", 360);
		else
			this.setAttribute("movieWidthSmall", movieWidth);			
	}
	else {
		this.setAttribute("movieWidthSmall", movieWidthSmall);	
	}
	if (typeof movieHeightSmall == "undefined") {
		if (typeof movieHeight == "undefined")
			this.setAttribute("movieHeightSmall", 176);
		else
			this.setAttribute("movieHeightSmall", movieHeight);			
	}
	else {
		this.setAttribute("movieHeightSmall", movieHeightSmall);	
	}
	if (typeof movieUrlSmall == "undefined") {
		if (typeof movieUrl == "undefined")
			this.setAttribute("movieUrlSmall", "/TemplatePackage/alpha/images/Features800600.swf");
		else
			this.setAttribute("movieUrlSmall", movieUrl);
	}
	else {
		this.setAttribute("movieUrlSmall", movieUrlSmall);	
	}
	
	// If the resize attribute is true add this object to the array of elements to be resized.
	if (typeof resize != "undefined" && resize)
		resizeArray.push(this);
		
	if (typeof resizeWidthThreshold == "undefined")
		this.setAttribute("resizeWidthThreshold", 546);
	else
		this.setAttribute("resizeWidthThreshold", resizeWidthThreshold);		

}
CDC.Video.prototype = {
	setAttribute: function(name, value) {
		this.attributes[name] = value;
	},
	getAttribute: function(name) {
		return this.attributes[name];
	},
	render: function() {
		
		var stamp = new Date();
		var xmlData = this.getAttribute("xmlData");
		var metricButtons = this.getAttribute("metricButtons");
		var isFeature = this.getAttribute("isFeature");
		var movieUrl = this.getAttribute("movieUrl");
		var movieWidth = this.getAttribute("movieWidth");
		var movieHeight = this.getAttribute("movieHeight");
		var movieUrlSmall = this.getAttribute("movieUrlSmall");
		var movieWidthSmall = this.getAttribute("movieWidthSmall");
		var movieHeightSmall = this.getAttribute("movieHeightSmall");
		var altContentId = this.getAttribute("altContentId");
		var resizeWidthThreshold = this.getAttribute("resizeWidthThreshold");

		// Set the URL, width, and height based on the current window size.
		var url;
		var x;
		var y;
		if (getWindowSize() < resizeWidthThreshold) {
			this.setAttribute("currentMovieWidth", movieWidthSmall);
			url = movieUrlSmall;
			x = movieWidthSmall;
			y = movieHeightSmall;
		}
		else {
			this.setAttribute("currentMovieWidth", movieWidth);
			url = movieUrl;
			x = movieWidth;
			y = movieHeight;
		}

		// If this is a features movie then prepend a constant to the channel name to group
		// these for Omniture reporting.
		if (isFeature) {
			metricButtons = "FeatureMovie2ndTier%20" + metricButtons;
		}
		// Create the full URL by adding the XML data, channel, and timestamp info
		url += "?x=" + xmlData + "&amp;c=" + metricButtons + "&amp;n=" + stamp.getTime();

		var so = new SWFObject(url, "Banner", x, y, "7");
		// This is a check to see if some version of Flash is installed.  This may need to be
		// modified to be more specific.
		if (so.installedVer.major > 0) {
			so.write(altContentId);
			so.addParam("scale", "noscale");
			so.addParam("allowScriptAccess","sameDomain");
			so.addParam("wmode", "transparent");
			so.addParam("quality", "best");
			so.addParam("align", "top"); 
			so.addParam("type", "application/x-shockwave-flash");
		}
		else {
			var altDiv = GetElementById(altContentId);
			if (altDiv) {
				var childElements = altDiv.childNodes;
				if (childElements && childElements.length > 0) {
					for (var i = 0; i < childElements.length; i++) {
						var childElement = childElements[i];
						if (childElement.nodeName.toLowerCase() == "ul") {
							childElement.style.visibility = "visible";
						}
						else if  (childElement.nodeName.toLowerCase() == "ul") {
							childElement.style.visibility = "visible";
						}
					}
				}
			}
		}


	},
	resize: function() {
		var currentMovieWidth = this.getAttribute("currentMovieWidth");
		var movieWidth = this.getAttribute("movieWidth");
		var movieWidthSmall = this.getAttribute("movieWidthSmall");
		var resizeWidthThreshold = this.getAttribute("resizeWidthThreshold");
		if (getWindowSize() < resizeWidthThreshold) {
			//reload only if size is different from current
			if (currentMovieWidth != movieWidthSmall) {
				this.render();
			}
		}
		else {
			//reload only if size is different from current
			if (currentMovieWidth != movieWidth) {
				this.render();
			}
		}
	}
}
 