/**
 * Dynamic HTML effects
 */

window.addEvent('domready', function() {	

/**
 * DEV
 */

/*if(location.href.indexOf('/index.php') == -1)
{
	var s = new Element('span', { });
	s.innerHTML = '<a href="index.php" style="position:absolute;top:1px;right:1px;background:#4c4;color:#fff;padding:1px;font-size:9px;text-decoration:none;">EXIT<\/a>';
	document.getElement('body').grab(s);
}*/





/**
 * Navigation highlight
 */

var NavHilite = 0;
switch (PageID)
{
	case '1':
		NavHilite = 1;
	break;
	case '40':
	case '41':
	case '42':
		NavHilite = 3;
	break;
	case '20':
	case '21':
	case '151'://sustainability
		NavHilite = 4;
	break;
	case '60':
	case '61':
		NavHilite = 5;
	break;
	case '50':
	case '51':
	case '52':
		NavHilite = 7;
	break;
	case '30':
	case '31':
	case '32':
		NavHilite = 6;
	break;
	case '120':
	case '121':
	case '122':
	case '123':
	case '124':
	case '125':
	case '126':
	case '127':
	case '128':
		NavHilite = 2;
	break;
	case '150':
		NavHilite = 8;
	break;
}
var NavActive = $('Site-Nav-'+NavHilite);
if(NavActive)
	NavActive.getParent().addClass('On');





/**
 * Flash text replacement
 */

FlashReplaceDo = true;
FlashTitlesFound = false;
var FlashTitles = document.getElement('body').getElements('div.Title-Section');
if(FlashTitles && FlashReplaceDo)
{
	FlashTitlesFound = true;
	FlashTitles.each(function(el,i){
		el.id = 'Flash-Title-'+i;
		var H2 = el.getElement('h2');
		if(H2)//these can be empty
		{
			H2.innerHTML = H2.innerHTML.replace(/%/gi,"%25");//@hack
			var Size = H2.getSize();
			SI_replaceElement('div#Flash-Title-'+i+'>h2','stylesheets/title-section'+(PageMode=='K'? '-K':'')+'.swf',Size.x,Size.y,'');
		}
	});
}

var FlashTitles = document.getElement('body').getElements('div.Title-Feature');
if(FlashTitles && FlashReplaceDo)
{
	FlashTitlesFound = true;
	FlashTitles.each(function(el,i){
		el.id = 'Flash-Title-Feature-'+i;
		var H2 = el.getElement('h2');
		var Size = H2.getSize();
		var Link = H2.getElement('a');
		var K = el.hasClass('K')? true:false;//can have white text manually, without PageMode
		if(Link)
			Link.innerHTML = Link.innerHTML.toUpperCase();
		else
			H2.innerHTML = H2.innerHTML.toUpperCase();
		H2.innerHTML = H2.innerHTML.replace(/%/gi,"%25");//@hack

		//IE drops the " quote marks!?
		var str = H2.innerHTML;
		var s = H2.innerHTML.replace(/<FONT color="*(#[^"]+)"*>([^<]+)<\/FONT>/i,'<font color="$1">$2</font>',str);
		H2.innerHTML = escape(s);

		SI_replaceElement('div#Flash-Title-Feature-'+i+'>h2','stylesheets/title-feature'+((PageMode=='K' || K)? '-K':'')+'.swf',Size.x,Size.y,'');
	});
}

var FlashTitles = document.getElement('body').getElements('div.Sub-Title-Feature');
if(FlashTitles && FlashReplaceDo)
{
	FlashTitlesFound = true;
	FlashTitles.each(function(el,i){
		el.id = 'Flash-Sub-Title-Feature-'+i;
		el.innerHTML = el.innerHTML.replace(/%/gi,"%25");//@hack
		var Size = el.getElement('h3').getSize();
		SI_replaceElement('div#Flash-Sub-Title-Feature-'+i+'>h3','stylesheets/sub-title-feature'+(PageMode=='K'? '-K':'')+'.swf',Size.x,Size.y,'');
	});
}

var FlashTitles = document.getElement('body').getElements('div.Banner-Caption');
if(FlashTitles && FlashReplaceDo)
{
	FlashTitlesFound = true;
	FlashTitles.each(function(el,i){
		el.id = 'Flash-Banner-Caption-'+i;
		el.innerHTML = el.innerHTML.replace(/%/gi,"%25");//@hack
		var Size = el.getElement('h3').getSize();
		SI_replaceElement('div#Flash-Banner-Caption-'+i+'>h3','stylesheets/title-banner-type-2.swf',Size.x,Size.y,'txt_width='+Size.x);
	});
}

var FlashTitles = document.getElement('body').getElements('div.Banner-Title');
if(FlashTitles && FlashReplaceDo)
{
	FlashTitlesFound = true;
	FlashTitles.each(function(el,i){
		el.id = 'Flash-Banner-Title-'+i;
		el.innerHTML = el.innerHTML.replace(/%/gi,"%25");//@hack
		var Size = el.getElement('h2').getSize();
		SI_replaceElement('div#Flash-Banner-Title-'+i+'>h2','stylesheets/title-banner-type-2.swf',Size.x,Size.y,'txt_width='+Size.x);
	});
}

if(FlashTitlesFound)
	SI_forceRedraw();





/**
 * Scrolling page lists
 */

var PageLists = document.getElement('body').getElements('.List-Pages');
if(PageLists)
	PageLists.each(function(el,i){

		el.id = 'List-Pages-'+i;
		var elContent = el.getElement('.List-Pages-Content');
		elContent.id = 'List-Pages-Content-'+i;
		el.Pages = el.getElements('.List-Page');
		el.Items = el.getElements('.Abstract');
		el.ItemsCount = el.Items? el.Items.length:0;

		if(el.Pages.length < 2)
			return;

		//Page scroll points and index
		el.Count = 0;
		var x = el.Pages[0].getSize().x;
		el.ScrollPoints = new Array();
		for(var i = 0; i < el.Pages.length; i++)
			el.ScrollPoints[i] = 0 - (x * i);

		//Count items per page
		var total = 0;
		for(var Pi = 0; Pi < el.Pages.length; Pi++)
		{
			var n = el.Pages[Pi].getElements('.Abstract');
			el.Pages[Pi].ItemsCount = n? n.length:0;//count per page
			el.Pages[Pi].ItemsCountN = total;//total up to this page
			total+= el.Pages[Pi].ItemsCount;
		};
		
		//Create scrolling tween (uses margin left for position)
		el.ScrollEffect = new Fx.Tween(elContent.id,{
			property: 'margin-left',
			duration: 0, 
			transition: Fx.Transitions.Sine.easeInOut//Fx.Transitions.Bounce.easeOut
		});
		el.style.marginLeft = 0;

		//Scoll button actions
		el.moveNext = function() {
			if(el.Count + 1 < el.ScrollPoints.length)
			{
				el.Count++;
				this.ScrollEffect.start(el.ScrollPoints[el.Count]);
			}
			this.SetBtns();
		}
		el.movePrev = function() {
			if(el.Count - 1 > -1)
			{
				el.Count--;
				this.ScrollEffect.start(el.ScrollPoints[el.Count]);
			}
			this.SetBtns();
		}

		//Adjust button styles and page count
		el.SetBtns = function() {
			if(!this.Count)
				this.BtnPrev.addClass('Disabled');
			else
				this.BtnPrev.removeClass('Disabled');
			if(this.Count >= (this.ScrollPoints.length - 1))
				this.BtnNext.addClass('Disabled');
			else
				this.BtnNext.removeClass('Disabled');
			this.CountMsg.innerHTML = (this.Count+1)+' / '+this.Pages.length; //(this.Pages[this.Count].ItemsCountN+1)+' to '+(this.Pages[this.Count].ItemsCount + this.Pages[this.Count].ItemsCountN)+' of '+this.ItemsCount;
		}
		
		//Count page items
		el.CountItemsPage = function() {
			var n = this.Pages[this.Count].getElements('.Abstract');
			return n? n.length:0;
		}
		
		//Make controls
		var Ctrls = el.getElement('.List-Pages-Controls');
		Ctrls.innerHTML = '<span id="List-Pages-'+i+'-Count" class="Count"><\/span>  <a href="#" id="List-Pages-'+i+'-Prev" class="Previous Link-Feature Disabled">Previous<\/a> | <a href="#" id="List-Pages-'+i+'-Next" class="Next Link-Feature">Next<\/a>';
		el.CountMsg = $('List-Pages-'+i+'-Count');
		el.BtnPrev = $('List-Pages-'+i+'-Prev');
		el.BtnNext = $('List-Pages-'+i+'-Next');
		el.SetBtns();
		el.BtnPrev.addEvent('click',function() {
			this.getParent().getParent().movePrev();
			this.blur();
			return false;
		});
		el.BtnNext.addEvent('click',function() {
			this.getParent().getParent().moveNext();
			this.blur();
			return false;
		});
	});





/**
 * List nav show/hide
 */

var ListNavCtrls = $$('.List-Nav-Filter');
if(ListNavCtrls)
{
	for(var i=0; i<ListNavCtrls.length; i++)
	{
		if(!ListNavCtrls[i].id)
			ListNavCtrls[i].id = 'ListNavCtrls-'+i;

		ListNavCtrls[i].List = $(ListNavCtrls[i].id+'-List');
		if(ListNavCtrls[i].List)
		{
			ListNavCtrls[i].Slide = new Fx.Slide(ListNavCtrls[i].List,{
				mode:'vertical',
				onStart:function(el) {
					if(!this.open)
						el.Btn.addClass('ShowHide-Open')
					else
						el.Btn.removeClass('ShowHide-Open')
				}
			});
			ListNavCtrls[i].List.Btn = ListNavCtrls[i].getElement('.ShowHide');
			if(ListNavCtrls[i].List.Btn)
			{
				ListNavCtrls[i].Slide.hide();
				ListNavCtrls[i].List.getParent().getParent().removeClass('List-Nav-Hidden');//parent might be a special "hide during online" box (extra getParent() is for MooTools wrapper)
				ListNavCtrls[i].List.Btn.i = i;
				ListNavCtrls[i].List.Btn.addEvent('click',function(){
					this.blur();
					ListNavCtrls[this.i].Slide.toggle()
					return false;
				});
			}
		}
	}
}





/**
 * Filter
 */

Filters = $$('.List-Nav-Filter');
if(Filters)
	Filters.each(function(el,i) {
	
	Filters[i].i = i;
	Filters[i].On = new Array();
	Filters[i].List = $(el.id + '-List');
	Filters[i].IconList = $(el.id + '-Icon-List');
	Filters[i].FilterLinks = Filters[i].getElements('span.Filter-Links A');
	Filters[i].ResetOnClick = Filters[i].getElements('span.Reset-Onclick');//add this class to make filter reset on click action
	Filters[i].FilterAllLink = Filters[i].getElement('A.ALL');
	Filters[i].Links = Filters[i].List.getElements('A');

	if(!Filters[i].List || !Filters[i].FilterAllLink)
		return;

	Filters[i].FilterLinks.each(function(A,A_i) {
		A.i = i;
		A.FilterClass = A.className
		A.removeProperty('href');
		A.style.cursor = 'pointer';
		A.addEvent('click',function() {
			Filters[this.i].Filter(this.FilterClass);
			this.blur();
		});
	});

	//Set widths for normal-bold onclick style change
	Filters[i].FilterLinks.each(function(A,A_i) {
		A.getParent().style.width = (A.getSize().x+14/*+ for padding*/)+'px';
	});

	Filters[i].ResetFilter = function(i){
		Filters[i].Filter(Filters[i].FilterAllLink.className);
	}

	//'all' button
	Filters[i].FilterAllLink.i = i;
	Filters[i].FilterAllLink.FilterClass = Filters[i].FilterAllLink.className;
	Filters[i].FilterAllLink.removeProperty('href');
	Filters[i].FilterAllLink.style.cursor = 'pointer';
	Filters[i].FilterAllLink.addEvent('click',function() {
		Filters[this.i].ResetFilter(this.i);//Filters[this.i].Filter(this.FilterClass);
		this.blur();
	});

	for(var ii=0;ii<Filters[i].Links.length;ii++)
	{
		Filters[i].Links[ii].i = i;
		Filters[i].Links[ii].addEvent('click',function() {
			if(Filters[this.i].ResetOnClick && this.getStyle('color') == '#cccccc')//@hack - if "off" do show all function to find target
				Filters[this.i].ResetFilter(this.i);
			this.blur();
		});
	}

	Filters[i].Filter = function(Type) {

		if(Type == 'ALL')//clicked all
		{
			//reset filter buttons
			Filters[this.i].FilterLinks.each(function(el,n){
				el.style.fontWeight = 'normal';
				el.style.paddingLeft = '2px';
			});
			//all button to 'on'
			Filters[this.i].FilterAllLink.style.fontWeight = 'bold';
			Filters[this.i].FilterAllLink.style.paddingLeft = '1px';

			//reset all links
			Filters[this.i].Links.each(function(el,n){
					el.tween('color', '#898585');
				});
			//empty 'on' group
			Filters[this.i].On = new Array();
		}
		else//clicked cat
		{
			//all button to 'off'
			Filters[this.i].FilterAllLink.style.fontWeight = 'normal';
			Filters[this.i].FilterAllLink.style.paddingLeft = '2px';

			//is it already on?
			var isOn = Filters[this.i].On.contains(Type);

			//no?
			if(!isOn)
			{
				//these lines set it to run as only one filter on at a time
				//comment to turn on/off
				// // // // //
					for(var i=0;i<Filters[this.i].On.length;i++)
						Filters[this.i].getElements('.'+Filters[this.i].On[i]).each(function(el,n){
								el.style.fontWeight = 'normal';
								el.style.paddingLeft = '2px';
							});
				
					if(Filters[this.i].On.length)
						Filters[this.i].On = new Array();
				// // // // //

				//hilight button
				Filters[this.i].getElements('.'+Type).each(function(el,n){
					el.style.fontWeight = 'bold';
					el.style.paddingLeft = '1px';
				});
				//and add to 'on' group
				Filters[this.i].On[Filters[this.i].On.length] = Type;
			}
			//yes? then acts as turning 'off'
			else
			{
				//reset button
				Filters[this.i].getElements('.'+Type).each(function(el,n){
					el.style.fontWeight = 'normal';
					el.style.paddingLeft = '2px';
				});
				//remove from 'on' group
				Filters[this.i].On.erase(Type);
			}

			if(!Filters[this.i].On.length)
				Filters[this.i].Filter('ALL');
			else
				Filters[this.i].Links.each(function(el,n){
					var On = false;
					for(var i=0; i<Filters[el.i].On.length; i++)
					{
						if(el.hasClass(Filters[el.i].On[i]))
						{
							On = true;
							break;
						}
					}
					if(On)
						el.tween('color', '#898585');
					else
						el.tween('color', '#cccccc');
				});
		}
		
		Filters[this.i].IconFadeOut = function(el){
			el.style.display = 'none';
		};
		
		Filters[this.i].IconFadeIn = function(el){
			el.style.display = 'block';
		};

		if(Filters[this.i].IconList)
		{
			//var List = $$('.List-Icons li');
			if(Filters[this.i].IconList.nodeName == 'UL')
				var List = $(Filters[this.i].IconList).getElements('li');
			else
				var List = $(Filters[this.i].IconList).getElements('div.Column-2Fifth');//@todo .Column-2Fifth is a hack

			if(List)
			{
				if(!Filters[this.i].On.length)
				{
					for(var ii = 0; ii<List.length; ii++)
						Filters[this.i].IconFadeIn(List[ii]);
				}
				else
					for(var ii = 0; ii<List.length; ii++)
					{
						var On = false;
						for(var i=0; i<Filters[this.i].On.length; i++)
						{
							if(List[ii].hasClass(Filters[this.i].On[i]))
							{
								On = true;
								break;
							}
						}
						if(On)
							Filters[this.i].IconFadeIn(List[ii]);
						else
							Filters[this.i].IconFadeOut(List[ii]);
					};
			}
		}
	}

	//init
	Filters[i].Filter('ALL');
});





/**
 * Image abstract links
 * 
 * Rolling over title link also sets rollover highlight on image link.
 */

var ImageLinks = $$('.Image-Links');
if(ImageLinks)
{
	for(var i=0;i<ImageLinks.length;i++)
	{
		var Links = ImageLinks[i].getElements('.Abstract .Link-Feature');
		if(Links)
		{
			Links.each(function(el,i){
				var Img = el.getParent().getPrevious();
				if(Img)
				{
					el.Img = Img;
					el.addEvent('mouseover',function(){
						var ImgLink = this.Img.getElement('a');
						if(ImgLink)
							ImgLink.addClass('Img-Link-Hilite');
					});
					el.addEvent('mouseout',function(){
						var ImgLink = this.Img.getElement('a');
						if(ImgLink)
							ImgLink.removeClass('Img-Link-Hilite');
					});
				}
			});
		}
	}
}





/**
 * Panel links
 * 
 * Primary link is effective on items parent box (panel)
 */

var PanelLinks = $$('.Panel-Links');
if(PanelLinks)
{
	for(var i=0;i<PanelLinks.length;i++)
	{
		var Links = PanelLinks[i].getElements('.Link-Feature');
		if(Links)
		{
			Links.each(function(el,i){
				var Link = el.href;
				var Parent = el.getParent();
				while(Parent && Parent.nodeName != 'LI' && Parent.nodeName != 'DIV')
					Parent = Parent.getParent();

				if(Parent.nodeName == 'LI' || Parent.nodeName == 'DIV')
				{
					Parent.style.cursor = 'pointer';
					Parent.Link = Link;
					Parent.addEvent('click',function(){
						location.href = this.Link;
					});
				}
			});
		}
	}
}





/**
 * Slideshow
 */

Slideshows = $$('.Slideshow');

if(Slideshows)
	Slideshows.each(function(el,i) {

	Slideshows[i].Timer = null;
	Slideshows[i].Interval = 1900;
	Slideshows[i].i_self = i;
	Slideshows[i].i = 0;
	var Size = el.getSize();
	Slideshows[i].x = Size.x;
	Slideshows[i].y = Size.y;
	Slideshows[i].Imgs = new Array();
	Slideshows[i].Running = false;
	Slideshows[i].Captions = false;
	
	//First image
	var Img = el.getElement('.First img');
	Slideshows[i].Imgs[0] = {
		Fx : new Fx.Tween(Img,{ wait:false }),
		Img : Img
	}

	//Other images
	var Imgs = el.getElements('.Additional img');
	if(Imgs)
	{
		Imgs.each(function(img,img_i) {
			Slideshows[i].Imgs[img_i+1] = {
				Fx : new Fx.Tween(img,{ wait:false }),
				Img : img
			}
			Slideshows[i].Imgs[img_i+1].Fx.set('opacity',0);
			var Size = img.getSize();
			img.style.top = Math.floor((el.y - Size.y)/2)+'px';
			img.style.left = 0;//Math.floor((el.x - Size.x)/2)+'px';
		});
		
		Slideshows[i].ChangeSlide = function(i) {
			this.Imgs[this.i].Fx.start('opacity',0);
			/*@todo slow timing down*/
			this.i = (this.i + 1 >= this.Imgs.length)? 0:this.i + 1;
			this.Imgs[this.i].Fx.start('opacity',1);
			if(this.Captions)
				this.Captions.innerHTML = this.Imgs[this.i].Img.alt;
			this.SetCount();
			this.Timer = setTimeout('Slideshows['+i+'].ChangeSlide('+i+')',Slideshows[i].Interval);
		};
		
		Slideshows[i].ViewSlide = function(i) {
			this.Stop();
			this.Imgs[this.i].Fx.start('opacity',0);
			this.i = i;
			this.Imgs[this.i].Fx.start('opacity',1);
			if(this.Captions)
				this.Captions.innerHTML = this.Imgs[this.i].Img.alt;
			this.SetCount();
		};
		
		Slideshows[i].Next = function() {
			this.Stop();
			this.ViewSlide(((this.i + 1 >= this.Imgs.length)? 0:this.i+1));
		};
		
		Slideshows[i].Prev = function() {
			this.Stop();
			this.ViewSlide(((this.i - 1 < 0)? this.Imgs.length-1:this.i-1));
		};
		
		Slideshows[i].Start = function() {
			this.ChangeSlide(this.i_self);
			Slideshows[i].Running = true;
		};
		
		Slideshows[i].Stop = function() {
			clearTimeout(Slideshows[this.i_self].Timer);
			Slideshows[i].Running = false;
			this.Ctrls.Toggle.innerHTML = 'Start Slideshow';
		};
		
		Slideshows[i].SetCount = function() {
			//if(this.Ctrls)
				//this.Ctrls.Count.innerHTML = (this.i + 1) + ' of ' + (this.Imgs.length);
		};

		Slideshows[i].RunToggle = function() {
			if(this.Running)
				this.Stop();
			else
				this.Start();
			this.Ctrls.Toggle.innerHTML = 	this.Running? 'Stop slideshow':'Start Slideshow';
		};

		var Manual = el.getElement('.Manual');
		if(!Manual)//assume auto
		{
			Slideshows[i].Running = true;
			Slideshows[i].Timer = setTimeout('Slideshows['+i+'].ChangeSlide('+i+')',this.Interval);
		}
	}
	
	//Control bar
	Slideshows[i].Ctrls = Slideshows[i].getNext('.Slideshow-Controls');
	if(Slideshows[i].Ctrls)
	{
		//<span class="Count">1 of 8</span> | <a href="#" class="RunSlideshow">Start slideshow</a> | <a href="#" class="Previous" onclick="Slideshows[0].Prev();this.blur();return false;"><span>Previous</span></a> <a href="#" class="Next" onclick="Slideshows[0].Next();this.blur();return false;"><span>Next</span></a>
		/*Slideshows[i].Ctrls.Count = new Element('span', { });
		Slideshows[i].Ctrls.Count.className = 'Count';
		Slideshows[i].Ctrls.grab(Slideshows[i].Ctrls.Count);
		Slideshows[i].SetCount();
		
		var Txt = new Element('text');
		Txt.innerHTML = ' | ';
		Slideshows[i].Ctrls.grab(Txt);*/
		
		Slideshows[i].Ctrls.Prev = new Element('a', { });
		Slideshows[i].Ctrls.Prev.className = 'Previous';
		Slideshows[i].Ctrls.Prev.i = i;
		Slideshows[i].Ctrls.Prev.innerHTML = '<span>Previous</span>';
		Slideshows[i].Ctrls.Prev.addEvent('click',function(){
			Slideshows[this.i].Prev();
			this.blur();
			return false;
		});
		Slideshows[i].Ctrls.grab(Slideshows[i].Ctrls.Prev);

		Slideshows[i].Ctrls.Next = new Element('a', { });
		Slideshows[i].Ctrls.Next.className = 'Next';
		Slideshows[i].Ctrls.Next.i = i;
		Slideshows[i].Ctrls.Next.innerHTML = '<span>Next</span>';
		Slideshows[i].Ctrls.Next.addEvent('click',function(){
			Slideshows[this.i].Next();
			this.blur();
			return false;
		});
		Slideshows[i].Ctrls.grab(Slideshows[i].Ctrls.Next);

		var Txt = new Element('text');
		Txt.innerHTML = ' | ';
		Slideshows[i].Ctrls.grab(Txt);
		
		Slideshows[i].Ctrls.Toggle = new Element('a', { });
		Slideshows[i].Ctrls.Toggle.className = 'RunSlideshow';
		Slideshows[i].Ctrls.Toggle.i = i;
		Slideshows[i].Ctrls.Toggle.innerHTML = 	Slideshows[i].Running? 'Stop slideshow':'Start Slideshow';
		Slideshows[i].Ctrls.Toggle.addEvent('click',function(){
			Slideshows[this.i].RunToggle();
			this.blur();
			return false;
		});
		Slideshows[i].Ctrls.grab(Slideshows[i].Ctrls.Toggle);
	}
	
	//Control bar
	Slideshows[i].Captions = Slideshows[i].getNext('.Slideshow-Labels');
	if(Slideshows[i].Captions)
	{
		//first load
		Slideshows[i].Captions.innerHTML = Slideshows[i].Imgs[0].Img.alt;
	}

	//Slideshow thumbs
	Slideshows[i].Thumbs = Slideshows[i].getNext('.Slideshow-Thumbs');
	if(Slideshows[i].Thumbs)
	{
		var Thumbs = Slideshows[i].Thumbs.getElements('img');
		if(Thumbs)
			for(var thumb_i=0;thumb_i<Thumbs.length;thumb_i++)
			{
				Thumbs[thumb_i].Slides_i = i;
				Thumbs[thumb_i].i = thumb_i;
				Thumbs[thumb_i].addEvent('click',function(){
					Slideshows[this.Slides_i].ViewSlide(this.i);
				});
				Thumbs[thumb_i].style.cursor = 'pointer';
			}
	}

});





/**
 * Scroller List
 */

ScrollLists = $$('.Scroll-List');

if(ScrollLists)
	for(var i=0;i<ScrollLists.length;i++) {

	ScrollLists[i].i = i;

	ScrollLists[i].Box = ScrollLists[i].getElement('.List-Box');
	var ListN = ScrollLists[i].getElements('LI');
	if(!ListN)
		continue;

	//This working in Safari, so doing via other way below
	//var WindowWidth = Box.getSize().x;
		var MarginRight = ScrollLists[i].Box.getStyle('margin-right').toInt();
		var W = ('width',ScrollLists[i].getSize().x - ScrollLists[i].Box.getStyle('margin-left').toInt() - MarginRight);
		W = W-4;
		WindowWidth = W;
		ScrollLists[i].Box.style.width = W + 'px';

	ScrollLists[i].MoveAmt = ListN[0].getStyle('width').toInt() + ListN[0].getStyle('margin-right').toInt() + ListN[0].getStyle('border-right').toInt() + ListN[0].getStyle('border-left').toInt();

	var ScrollLength = (ScrollLists[i].MoveAmt * ListN.length) - MarginRight;

	if(ScrollLength <= WindowWidth)//don't set up if too few
		continue;

	ScrollLists[i].BtnR = ScrollLists[i].getElement('.Scroll-Right');
	ScrollLists[i].BtnR.i = i;
	ScrollLists[i].BtnL = ScrollLists[i].getElement('.Scroll-Left');
	ScrollLists[i].BtnL.i = i;
	ScrollLists[i].pos = 0;
	ScrollLists[i].max = Math.ceil(((ScrollLength + MarginRight) - WindowWidth) / ScrollLists[i].MoveAmt);
	ScrollLists[i].Timer = null;

	ScrollLists[i].Scroller = new Fx.Scroll(ScrollLists[i].Box,{
		wait : false,
		duration: 300,
		offset: {
	        'x': 0,
	        'y': 0
    		},
    	transition: Fx.Transitions.Cubic.linear,
		onComplete : function(){
			ScrollLists[this.i].SetBtns();
			},
		onCancel : function(){
			ScrollLists[this.i].SetBtns();
			}
		}
	);
	ScrollLists[i].Scroller.i = i;

	ScrollLists[i].SetBtns = function() {
		if(this.max == this.pos + 1)
			this.BtnR.addClass('Scroll-Right-Disabled');
		else
			this.BtnR.removeClass('Scroll-Right-Disabled');

		if(this.pos == 0)
			this.BtnL.addClass('Scroll-Left-Disabled');
		else
			this.BtnL.removeClass('Scroll-Left-Disabled');
	}
	
	ScrollLists[i].MoveRight = function() {
		this.Cancel();
		if(this.pos + 1 < this.max)
		{
			this.pos++;
			this.Scroller.start((this.MoveAmt*this.pos),0);
			this.Timer = setTimeout('ScrollLists['+this.i+'].MoveRight()',700);
		}
	}

	ScrollLists[i].MoveLeft = function() {
		this.Cancel();
		if(this.pos - 1 >= 0)
		{
			this.pos--;
			this.Scroller.start((this.MoveAmt*this.pos),0);
			this.Timer = setTimeout('ScrollLists['+this.i+'].MoveLeft()',700);
		}
	}

	ScrollLists[i].Cancel = function() {
		clearTimeout(this.Timer);
	}

	ScrollLists[i].BtnR.addEvent('mousedown',function(){
		ScrollLists[this.i].MoveRight();
	});
	
	ScrollLists[i].BtnR.addEvent('mouseup',function(){
		ScrollLists[this.i].Cancel();
	});
	
	ScrollLists[i].BtnL.addEvent('mousedown',function(){
		ScrollLists[this.i].MoveLeft();
	});
	
	ScrollLists[i].BtnL.addEvent('mouseup',function(){
		ScrollLists[this.i].Cancel();
	});
	
	//init
	ScrollLists[i].SetBtns();
}





/**
 * Disable disabled links
 */

var Dlinks = document.getElement('body').getElements('a.Disabled');
if(Dlinks)
	Dlinks.each(function(el,i){
		el.removeProperty('href');
		el.addEvent('click',function(){this.blur;return false;});
	});





//end window.addEvent()
});