var FeatureManager = new Object();FeatureManager.Display = function(FeatureList, displayUrl){	document.getElementById('featureContainer').onmouseout = FeatureManager.Out;	document.getElementById('featureContainer').onmouseover = FeatureManager.Hover;		Features = FeatureList;	FeatureManager.displayUrl = displayUrl;	if(FeatureManager.displayUrl) Features.sort(function() {return 0.5 - Math.random()})	FeatureManager.IsHovered = false;	//FeatureManager.preloadAll();	FeatureManager.createControls();	FeatureManager.create(Features[0]);}FeatureManager.preloadAll = function(){	for(var i=0; i<Features.length; i++)	{		var feature = Features[i];		var featureFile = new Image();		featureFile.src = feature.ImageFileUrl;	}	FeatureManager.create(Features[0]);}FeatureManager.preload = function(feature){	var featureFile = new Image();	featureFile.src = feature.ImageFileUrl;}FeatureManager.Initialize = function(filename){	Ajax.Request('GET', filename, FeatureManager.Parse);}FeatureManager.Parse = function(ajax){	Features = ajax.responseText.parseJSON();	FeatureManager.create(Features[0]);}FeatureManager.index = 0;FeatureManager.next = function(){	if(FeatureManager.index == (Features.length-1))	{		FeatureManager.index = 0;	}	else FeatureManager.index++;		/*var opacityTween = new OpacityTween(gebid('feature'), Tween.regularEaseOut, 100, 0, .25);	opacityTween.start();	opacityTween.onMotionFinished = function()	{			   FeatureManager.create( Features[FeatureManager.index] );	   this.onMotionFinished = undefined;	}*/	FeatureManager.create( Features[FeatureManager.index] );}FeatureManager.nextHover = function(){	FeatureManager.clearDelay();	if(document.getElementById('nextImg').filters) document.getElementById('nextImg').src = 'assets/imgs/widget/next_ie.png';	else document.getElementById('nextImg').src = 'assets/imgs/widget/next.png';}FeatureManager.nextOut = function(){	if(document.getElementById('nextImg').filters) document.getElementById('nextImg').src = 'assets/imgs/widget/next_disabled_ie.png';	else document.getElementById('nextImg').src = 'assets/imgs/widget/next_disabled.png';	//FeatureManager.setDelay(FeatureManager.currentFeature.Duration);}FeatureManager.previous = function(){	if(FeatureManager.index == 0)	{		FeatureManager.index = (Features.length-1);	}	else FeatureManager.index--;	FeatureManager.create( Features[FeatureManager.index] );}FeatureManager.previousHover = function(){	FeatureManager.clearDelay();	if(document.getElementById('prevImg').filters) document.getElementById('prevImg').src = 'assets/imgs/widget/previous_ie.png';	else document.getElementById('prevImg').src = 'assets/imgs/widget/previous.png';}FeatureManager.previousOut = function(){	if(document.getElementById('prevImg').filters) document.getElementById('prevImg').src = 'assets/imgs/widget/previous_disabled_ie.png';	else document.getElementById('prevImg').src = 'assets/imgs/widget/previous_disabled.png';	//FeatureManager.setDelay(FeatureManager.currentFeature.Duration);}FeatureManager.view = function(){	document.location = Features[FeatureManager.index].Url;}FeatureManager.viewHover = function(){	FeatureManager.clearDelay();	if(document.getElementById('viewImg').filters) document.getElementById('viewImg').src = 'assets/imgs/widget/view_ie.png';	else document.getElementById('viewImg').src = 'assets/imgs/widget/view.png';}FeatureManager.viewOut = function(){	if(document.getElementById('viewImg').filters) document.getElementById('viewImg').src = 'assets/imgs/widget/view_disabled_ie.png';	else document.getElementById('viewImg').src = 'assets/imgs/widget/view_disabled.png';	//FeatureManager.setDelay(FeatureManager.currentFeature.Duration);}FeatureManager.goto = function(){	FeatureManager.create( Features[FeatureManager.index] );}FeatureManager.Hover = function(){	FeatureManager.cancelFade();		if(document.getElementById('prevImg').style.opacity==0)	{		FeatureManager.opacityTweenPrev = new OpacityTween(gebid('prevImg'), Tween.regularEaseOut, 0, 100, .5);		FeatureManager.opacityTweenPrev.start();		FeatureManager.opacityTweenView = new OpacityTween(gebid('viewImg'), Tween.regularEaseOut, 0, 100, .5);		FeatureManager.opacityTweenView.start();		FeatureManager.opacityTweenNext = new OpacityTween(gebid('nextImg'), Tween.regularEaseOut, 0, 100, .5);		FeatureManager.opacityTweenNext.start();	}	else	{		document.getElementById('prevImg').style.opacity=1;		document.getElementById('viewImg').style.opacity=1;		document.getElementById('nextImg').style.opacity=1;				if(document.getElementById('nextImg').filters)		{			if(document.getElementById('nextImg').filters.alpha)			{				document.getElementById('prevImg').filters.alpha['opacity'] = 100;				document.getElementById('viewImg').filters.alpha['opacity'] = 100;				document.getElementById('nextImg').filters.alpha['opacity'] = 100;			}			else			{				document.getElementById('prevImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';				document.getElementById('viewImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';				document.getElementById('nextImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';			}		}	}	FeatureManager.IsHovered = true;}FeatureManager.Out = function(){	FeatureManager.IsHovered = false;	// Added timeout to ensure hover out of slideshow, rather than hover from one nav element to another	setTimeout("FeatureManager.HideNav(true)", 250);	//FeatureManager.HideNav(true);	FeatureManager.setDelay(FeatureManager.currentFeature.Duration);}FeatureManager.HideNav = function(fade){	FeatureManager.cancelFade();		if(fade && !FeatureManager.IsHovered)	{		FeatureManager.opacityTweenPrev = new OpacityTween(gebid('prevImg'), Tween.regularEaseOut, 100, 0, .5);		FeatureManager.opacityTweenPrev.start();		FeatureManager.opacityTweenView= new OpacityTween(gebid('viewImg'), Tween.regularEaseOut, 100, 0, .5);		FeatureManager.opacityTweenView.start();		FeatureManager.opacityTweenNext= new OpacityTween(gebid('nextImg'), Tween.regularEaseOut, 100, 0, .5);		FeatureManager.opacityTweenNext.start();	}	if(!fade)	{		document.getElementById('prevImg').style.opacity=0;		document.getElementById('viewImg').style.opacity=0;		document.getElementById('nextImg').style.opacity=0;				if(document.getElementById('nextImg').filters)		{			if(document.getElementById('nextImg').filters.alpha)			{				document.getElementById('prevImg').filters.alpha['opacity'] = 0;				document.getElementById('viewImg').filters.alpha['opacity'] = 0;				document.getElementById('nextImg').filters.alpha['opacity'] = 0;			}			else			{				document.getElementById('prevImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';				document.getElementById('viewImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';				document.getElementById('nextImg').style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';			}		}	}}FeatureManager.cancelFade = function(){	try {	FeatureManager.opacityTweenPrev.stop();	FeatureManager.opacityTweenView.stop();	FeatureManager.opacityTweenNext.stop();	} catch(err){}}FeatureManager.createControls = function(){	if(Features.length > 1)	{		var featureArrows = ce("div", {id: "featureArrows"});				if(document.getElementById('featureContainer').filters)		{			var prevArrow = ce('img', {id: 'prevImg', src: 'assets/imgs/widget/previous_disabled_ie.png', onclick: function() { FeatureManager.previous() }, onmouseover: function() { FeatureManager.previousHover() }, onmouseout: function() { FeatureManager.previousOut() }});						if(FeatureManager.displayUrl) var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/view_disabled_ie.png', onclick: function() { FeatureManager.view() }, onmouseover: function() { FeatureManager.viewHover() }, onmouseout: function() { FeatureManager.viewOut() }});			else var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/center_blank.png'});						var nextArrow = ce('img', {id: 'nextImg', src: 'assets/imgs/widget/next_disabled_ie.png', onclick: function() { FeatureManager.next() }, onmouseover: function() { FeatureManager.nextHover() }, onmouseout: function() { FeatureManager.nextOut() }});		}		else		{			var prevArrow = ce('img', {id: 'prevImg', src: 'assets/imgs/widget/previous_disabled.png', onclick: function() { FeatureManager.previous() }, onmouseover: function() { FeatureManager.previousHover() }, onmouseout: function() { FeatureManager.previousOut() }});						if(FeatureManager.displayUrl) var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/view_disabled.png', onclick: function() { FeatureManager.view() }, onmouseover: function() { FeatureManager.viewHover() }, onmouseout: function() { FeatureManager.viewOut() }});			else var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/center_blank.png'});						var nextArrow = ce('img', {id: 'nextImg', src: 'assets/imgs/widget/next_disabled.png', onclick: function() { FeatureManager.next() }, onmouseover: function() { FeatureManager.nextHover() }, onmouseout: function() { FeatureManager.nextOut() }});		}				var featureDisplay = ce("div", {id: "featureDisplay"});		ac(gebid('featureContainer'), ac(featureDisplay, ac(featureArrows, prevArrow, viewIcon, nextArrow)));	}	else	{		var featureDisplay = ce("div", {id: "featureDisplay"});		ac(gebid('featureContainer'), ac(featureDisplay));	}}FeatureManager.create = function(feature){	var nextIndex;	if(FeatureManager.index == (Features.length-1))	{		nextIndex = 0;	}	else nextIndex=FeatureManager.index+1;	FeatureManager.preload( Features[nextIndex] );		FeatureManager.clearDelay();	FeatureManager.currentFeature = feature;		rc(gebid("featureFileContainer"));	var featureFileContainer = ce("div", {id: "featureFileContainer" });	switch(feature.DisplayMode)	{		case 'Full':			switch(feature.ImageFileUrl.split(".")[1])			{				case 'swf':					var featureObject = ce("object", {classid: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", codebase: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0", width: "620", height: "275", id: "feature"});					var featureParam = ce("param", {name: "movie", value: feature.ImageFileUrl});					var featureEmbed = ce("embed", {src: feature.ImageFileUrl, loop: "false", menu: "false", quality: "high", bgcolor: "#ffffff", width: "620", height: "275", name: "feature", type: "application/x-shockwave-flash", pluginspage: "http://www.macromedia.com/go/getflashplayer"});					var featureImage = ac(featureFileContainer, ac(featureObject, featureParam, featureEmbed));					break;				default:					var featureFile = new Image();					featureFile.id = "feature";					featureFile.src = feature.ImageFileUrl;					var featureImage = ac(featureFileContainer, featureFile);										/*var featureFileCrossFade = new Image();					featureFileCrossFade.id = "featureCrossFade";					var featureCount = (this.index-1 > 0) ? this.index-1 : Features.length-1;					featureFileCrossFade.src = Features[featureCount].ImageFileUrl;					//var featureFile = ce("img", {id: "feature", src: feature.ImageFileUrl});					var featureImage = ac(featureFileContainer, featureFile, featureFileCrossFade);					featureFileCrossFade.style.position = 'relative';					featureFileCrossFade.style.left = 0;					featureFileCrossFade.style.top = 0;					featureFileCrossFade.style.opacity = 0;					featureFileCrossFade.style.filter = 'alpha(opacity=0)';*/			}			break;		default:	}		/*rc(gebid("featureDisplay"));	var featureDisplay = ce("div", {id: "featureDisplay"});*/		if(Features.length > 1)	{		// TODO: Only replace the feature image, leave the buttons as is...		/*		var featureArrows = ce("div", {id: "featureArrows"});		var prevArrow = ce('img', {id: 'prevImg', src: 'assets/imgs/widget/previous_disabled.png', onclick: function() { FeatureManager.previous() }, onmouseover: function() { FeatureManager.previousHover() }, onmouseout: function() { FeatureManager.previousOut() }});		if(FeatureManager.displayUrl) var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/view_disabled.png', onclick: function() { FeatureManager.view(feature.Url) }, onmouseover: function() { FeatureManager.viewHover() }, onmouseout: function() { FeatureManager.viewOut() }});		else var viewIcon = ce('img', {id: 'viewImg', src: 'assets/imgs/widget/center_blank.png'});		var nextArrow = ce('img', {id: 'nextImg', src: 'assets/imgs/widget/next_disabled.png', onclick: function() { FeatureManager.next() }, onmouseover: function() { FeatureManager.nextHover() }, onmouseout: function() { FeatureManager.nextOut() }});				ac(gebid('featureContainer'), ac(featureDisplay, featureImage, ac(featureArrows, prevArrow, viewIcon, nextArrow)));		*/				//console.log(gebid('featureArrows').parentNode);		gebid('featureArrows').parentNode.insertBefore(featureImage, gebid('featureArrows'));		//ac(gebid('featureDisplay'), featureImage);				if(!FeatureManager.IsHovered)		{			FeatureManager.HideNav(false);		}				try{ gebid('slideCount').innerHTML = "Slide "+ (FeatureManager.index+1) +" of "+ Features.length; }catch(err){}		try{ gebid('slideName').innerHTML = '<a href="'+feature.Url+'">'+feature.Name+'</a> >'; }catch(err){}		try{ gebid('slideDescription').innerHTML = feature.Description; }catch(err){}				var opacityTween = new OpacityTween(gebid('feature'), Tween.regularEaseOut, 0, 100, 1.25);		opacityTween.start();		opacityTween.onMotionFinished = function()		{				   FeatureManager.setDelay(feature.Duration);		   this.onMotionFinished = undefined;		}		//var opacityCrossFade = new OpacityTween(gebid('featureCrossFade'), Tween.regularEaseOut, 100, 0, 1.25);		//opacityCrossFade.start();	}	else ac(gebid('featureContainer'), ac(featureDisplay, featureImage));}FeatureManager.createNumberAction = function(featureNumber){	return function()	{		FeatureManager.index = featureNumber;		FeatureManager.goto();	}}FeatureManager.setDelay = function(delay){	FeatureManager.clearDelay();	FeatureManager.__delayInterval = setInterval("FeatureManager.next()", (delay*1000));	//console.log("set: "+FeatureManager.__delayInterval);}FeatureManager.clearDelay = function(){	clearInterval(FeatureManager.__delayInterval);	//console.log("clear: "+FeatureManager.__delayInterval);}