/// this fires when the dom tree is loaded
window.addEvent('domready', function(){
	
	// add withjs class to page container for js related styling
	$('pagecontainer').addClass('withjs');
	
	// set up sitemap links hover
	$$('div#pagesitemap ul').each(function(el,i){
		el.addEvents({
			'mouseenter': function(e){
				el.addClass('selected');
			},
			'mouseleave': function(e){
				el.removeClass('selected');
			}
		});
	});
	
	// set up search box
	if($('searchtext')){
		new setUpSearchBox($('searchtext'));
	}
	
	// set up image buttons
	var imageButtons = $$('input.button','img.button');
	if(imageButtons.length > 0){
		new setUpImageButtonsClass(imageButtons);
	}
	
	// set up simulated radio buttons
	$$('div.radiogroup ul').each(function(el,i){ new setUpSimulatedRadioButtonsClass(el) });
	
	// set up simulated select boxes
	$$('div.simselect120dummy').each(function(el,i){ new setUpSimulatedSelectBoxesClass(el,i) });
	$$('div.simselect161dummy').each(function(el,i){ new setUpSimulatedSelectBoxesClass(el,i) });
	$$('div.simselect236dummy').each(function(el,i){ new setUpSimulatedSelectBoxesClass(el,i) });
	$$('div.simselect403dummy').each(function(el,i){ new setUpSimulatedSelectBoxesClass(el,i) });

	// set up simulated file inputs
	// Sadly Opera for MAC does not fully support opacity on file inputs yet so custom file
	// inputs are disabled for all opera browsers
	if(!window.opera){
		$$('div.fileinputcontainer').each(function(el,i){ new setUpSimulatedFileInputClass(el) });
	}

	// set up main navigation menu
	if($$('div#pagenavigation ul').length > 0){
		new mainNavigationMenuClass($$('div#pagenavigation ul'));
	}
	
	// set up hero shot fader
	if($('heroshot')){
		new heroShotFadeClass($('heroshot'));
	}

	// set up forum change options
	if($('forumchange') && $('forumchangeoptions') && $('forumchangespacer')){
		var setUpForumChange = new setUpForumChangeClass($('forumchange'),$('forumchangeoptions'),$('forumchangespacer'));
	}
	
	// set up video and photo album media viewer
	if($('videoviewer')){
		new mediaViewerClass($('videoviewer'),$('videoviewer').getProperty('class'));
	}
	if($('photoviewer')){
		new mediaViewerClass($('photoviewer'),$('photoviewer').getProperty('class'));
	}
	
	// Browser Tweaks
	if(window.opera){
		$$('div.heroshot').each(function(el,i){
			el.setStyle('padding-top','27px');
		});
		$$('div#videoviewer div.optionstop').each(function(el,i){
			el.setStyle('height','336px');
		});
		$$('div#photoviewer div.optionstop').each(function(el,i){
			el.setStyle('height','336px');
		});
		$$('input.text','textarea.text').each(function(el,i){
			el.setStyles({
				'line-height':'23px',
				'padding':'0 5px',
				'margin-bottom':'6px'
			});
		});
	}
	if(window.webkit){
		$$('input.text','textarea.text').each(function(el,i){
			el.setStyles({
				'line-height':'23px',
				'padding':'0 5px',
				'margin-bottom':'6px'
			});
		});
	}
	if(window.ie){
		$$('div.formblockbuttonsingle').each(function(el,i){
			el.setStyle('margin-top','-39px');
		});
		$$('div.formblockbuttondouble').each(function(el,i){
			el.setStyle('margin-top','-39px');
		});
		$$('div.formblockbuttonsearch').each(function(el,i){
			el.setStyle('margin-bottom','-32px');
		});
		if($('videoviewer')){
			$('viewer').setStyle('margin-left','-5px');
		}
		if($('photoviewer')){
			$('photoviewer').setStyle('margin-left','-5px');
		}
	}
	if(window.ie6){
		$$('div#videoviewer div#scrollnav').each(function(el,i){
			el.setStyle('padding-bottom','5px');
		});
		$$('div#photoviewer div#scrollnav').each(function(el,i){
			el.setStyle('padding-bottom','5px');
		});
	}

	if(!window.ie){
		document.getElement('body').setStyle('background-color','#000000');
		$('pagecontainer').setStyle('background-color','#00728f');
	}

});

window.addEvent('load', function(){
	
	if($('forumComboBoxId')){
		updateSessionCombobox();
	}
	if($('businessGroupComboBoxId')){
		updateCompanyCombobox();
	}
	if($('regionComboBoxId')){
		updateCountryCombobox();
	}
	if($chk($('hpmovie'))){
		new hpmovie();
	}
	if($chk($('forumportal'))){
		new forumrollover();
	}
	if($chk($('calendarpanel'))){
		new calendarbubble();
	}
	if(window.opera || window.webkit){
		$$('span.morning').each(function(el,i){
			el.setStyle('margin-left','0');
		});
		$$('span.afternoon').each(function(el,i){
			el.setStyle('margin-left','0');
		});
		$$('span.evening').each(function(el,i){
			el.setStyle('margin-left','0');
		});
	}
	if(window.ie){
		document.getElement('body').setStyle('background-color','#000000');
		$('pagecontainer').setStyle('background-color','#00728f');
	}
	
});

var calendarbubble = new Class({
	initialize: function(){
		this.bubbles = $$('div#calendarvisual li');
		var scope = this;
		this.bubbles.each(function(el,i){
			if(el.hasClass('booked')){
				el.getChildren().each(function(el,i){
					el.addEvents({
						'mouseenter': function(e){
							if(e.page.x > (window.getSize().size.x/2)){
								var dir = 'l';
							} else {
								var dir = 'r';
							}
							
							scope.displayPopup(el,i,dir,false);
						},
						'mouseleave': function(e){
							scope.cancelPopup();
						},
						'click': function(e){
							e = new Event(e).stopPropagation();
						}
					});
				});
				if(el.getChildren().length != 3){
					el.addEvents({
						'click': function(e){
							if(e.pageX > (window.getSize().size.x/2)){
								var dir = 'l';
							} else {
								var dir = 'r';
							}
							e = new Event(e).stopPropagation();
							scope.displayPopup(el,i,dir,true);
						}
					});
				}
			} else if(el.hasClass('date_dummy') || el.hasClass('first') ) { 
			} else {
				var ispan = new Element('span').setText(' ').injectTop(el);
				el.addEvents({
					'click': function(e){
						if(e.pageX > (window.getSize().size.x/2)){
							var dir = 'l';
						} else {
							var dir = 'r';
						}
						e = new Event(e).stopPropagation();
						scope.displayPopup(el,i,dir,true);
					}
				});
			}
		});
	},
	displayPopup: function(el,i,dir,canBook){
		this.cancelPopup();
		var cdiv = new Element('div',{'id':'calendarpopup','class':'bubble' + dir,'style':'visibility:hidden'}).injectInside($('calendarpanel'));
		if(window.ie6){
			var bdiv = new Element('div',{'class':'bottom'}).injectInside(cdiv);
		} else {
			var bdiv = new Element('div',{'class':'bottomnonie'}).injectInside(cdiv);
		}
		var tdiv = new Element('div',{'class':'top'}).injectInside(bdiv);
		var idiv = new Element('div',{'class':'inner'}).injectInside(tdiv);
		
		if(canBook){
			var ispan = new Element('span',{'class':'bookingsession'}).setText('Room Available to book').injectTop(idiv);
			var tspan = new Element('span').setText('To make a booking, click to download the booking form').injectInside(idiv);
			cdiv.addEvents({
				'click': function(e){
					this.cancelPopup();
					//document.location.href = '/files/roombooking/RoomBookingForm.doc';
					window.open('/files/roombooking/RoomBookingForm.doc','_blank');
					e = new Event(e).stopPropagation();
					cdiv.removeEvents();
				}.bind(this)
			});
			if(dir == 'r'){
				var xleft = (el.getPosition().x + 10);
			} else {
				var xleft = (el.getPosition().x - 190);
			}
			var ytop = ((el.getPosition().y - 75));
	
			if(window.ie6){
				ytop = (el.getPosition().y - 69);
			}
			
			if(window.webkit){
				ytop = (el.getFirst().getPosition().y - 85);
			}
		} else {
			el.getChildren().each(function(el,i){
				if(i==0){
					var ispan = new Element('span',{'class':'bookingsession'}).setText(el.getText()).injectTop(idiv);
				} else {
					var ispan = new Element('span').setText(el.getText()).injectInside(idiv);				
				}
			});
			if(dir == 'r'){
				if (window.opera || window.webkit) {
					var xleft = (el.getFirst().getPosition().x + 16);
				} else {
					var xleft = (el.getFirst().getPosition().x + 1);
				}
			} else {
				if (window.opera || window.webkit) {
					var xleft = (el.getFirst().getPosition().x - 200);
				} else {
					var xleft = (el.getFirst().getPosition().x - 217);
				}
			}
			var ytop = ((el.getFirst().getPosition().y - 90));
	
			if(window.ie6){
				ytop = (el.getFirst().getPosition().y - 84);
			}
			
			if(window.webkit){
				ytop = (el.getFirst().getPosition().y - 100);
			}
		}
		
		cdiv.setStyles({
			'top': ytop + 'px',
			'left': xleft + 'px',
			'cursor':'pointer',
			'visibility':'visible'
		});
	},
	cancelPopup: function(){
		if($('calendarpopup')){
			$('calendarpopup').removeEvents();
			$('calendarpopup').remove();
		}
	}
});

var forumrollover = new Class({
	initialize: function(){
		this.forumLinks = $$('div.forumportal div.simh2 a');
		this.forumLinks.each(function(el,i){
			var imgSrc = '/images/assets/side' + i + '.jpg';
			var img = new Element('img',{'src':imgSrc,'alt':'','width':'132','height':'295'});
			el.addEvents({
				'mouseenter': function(e){
					img.injectInside($(document.body).getElement('.rightcol'));
				},
				'mouseleave': function(e){
					$(document.body).getElement('.rightcol').setHTML();
				}
			});
		});
	}
});

var hpmovie = new Class({
	initialize: function(){
		
		//var targetname = '/files/media/videos/1.03C.Dior1947-1957.flv';
		var targetname = $('hpmovie').getFirst().getProperty('title');
		
		var so = new SWFObject('/video/player.swf','hpvideo','311','205','8');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addParam("wmode", "transparent");
		so.addVariable('height','205');
		so.addVariable('width','311');
		so.addVariable('file',targetname);
		so.addVariable('javascriptid','loadedplayer');
		so.addVariable('searchbar','false');
		so.addVariable('showstop','true');
		so.addVariable('showdigits','false');
		so.addVariable('displayheight','205');
		so.addVariable('autostart','false');
		//so.addVariable('logo','/lvmh-flats/images/assets/logo-small.png');
		var imagename = targetname.split('/')[targetname.split('/').length-1].replace(/.flv/,'.jpg');
		imagename='/files/media/thumbnails/' + imagename;
		so.addVariable('image',imagename);		
		so.write('hpmovie');

	}
});

function updateSessionLinks(switchto){
	var curhref = window.location.href;
	if(curhref.indexOf('sessionInode') != -1){
			var cursessionid;
			var cursession= curhref.substring((curhref.indexOf('sessionInode')+13))
			var endpos=cursession.indexOf('&')
			if(endpos==-1){
				cursessionid=cursession
			} else {
				cursessionid=cursession.substring(0,endpos)
			}
		//var cursessionid = curhref.substring((curhref.indexOf('sessionInode')+13),(curhref.indexOf('sessionInode')+18));
		window.location = curhref.replace(cursessionid,switchto);
	} else {
		$$('div.sessionlinks a').each(function(el,i){
			var curhref = el.getProperty('href');
			var cursessionid;
			var cursession= el.getProperty('href').substring((curhref.indexOf('sessionInode')+13))
			var endpos=cursession.indexOf('&')
			if(endpos==-1){
				cursessionid=cursession
			} else {
				cursessionid=cursession.substring(0,endpos)
			}			
			//var cursessionid = el.getProperty('href').substring((curhref.indexOf('sessionInode')+13),(curhref.indexOf('sessionInode')+18));
			el.setProperty('href',curhref.replace(cursessionid,switchto));
		});
	}
}

var setUpSearchBox = new Class({
	initialize: function(searchBox){
		this.searchBox = searchBox;
		this.searchBox.addEvents({
			'focus': function(e){
				if(this.searchBox.getProperty('value') == 'Search'){
					this.searchBox.setProperty('value','');
				}
			}.bind(this),
			'blur': function(e){
				if(this.searchBox.getProperty('value') == ''){
					this.searchBox.setProperty('value','Search');
				}
			}.bind(this)
		});
		
	}
});

var setUpImageButtonsClass = new Class({
	initialize: function(imageButtons){
		this.imageButtons = imageButtons;
		this.imageButtons.each(function(el,i){
			var startSRC = el.getProperty('src');
			el.addEvents({
				'mouseover': function(e){
					el.setProperty('src',startSRC.replace(/.gif/,'-o.gif'));
				},
				'mouseout': function(e){
					el.setProperty('src',startSRC);
				}
			});
		});
		
	}
});

var setUpSimulatedRadioButtonsClass = new Class({
	initialize: function(el){
		this.radioButtonsContainer = el;
		var radioChildren = this.radioButtonsContainer.getChildren();
		radioChildren.each(function(el,i){
			var elInput = el.getLast();
			el.addEvents({
				'click': function(e){
					radioChildren.each(function(el,i){ el.removeClass('selected'); });
					el.addClass('selected');
				}
			});
			if(elInput.getProperty('checked')){
				el.addClass('selected');
			}
		});	
	}
});

var setUpSimulatedSelectBoxesClass = new Class({
	initialize: function(el,i){
		this.selectcontainer = el;
		this.selectdropdown = el.getFirst();
		this.selectdropdownoptions = el.getFirst().getChildren();
		if(el.getFirst().selectedIndex){
			this.selectedItem = el.getFirst().selectedIndex;
		} else {
			this.selectedItem = 0;
		}

		var c = this.selectcontainer.getProperty('class');
		this.selectcontainer.setProperty('class',c.replace(/dummy/,''));
		this.selectcontainersize = this.selectcontainer.getProperty('class').substring(9,12);

		if(c.match('236')){
			var s = new Element('span').setText(this.selectdropdownoptions[this.selectedItem].getText().substring(0,32));
		} else {
			var s = new Element('span').setText(this.selectdropdownoptions[this.selectedItem].getText().substring(0,60));
		}
			s.addEvents({
				'click': function(e){
					this.selectcontainer.addClass('open' + this.selectcontainersize);
					if(window.ie){
						var win = document;
					} else {
						var win = window;
					}
					win.addEvent('mouseup', function(e) { this.selectcontainer.removeClass('open' + this.selectcontainersize); window.removeEvents('mouseup') }.bind(this));
				}.bind(this),
				'mouseover': function(e){
					this.selectcontainer.addClass('hover' + this.selectcontainersize);
				}.bind(this),
				'mouseout': function(e){
					this.selectcontainer.removeClass('hover' + this.selectcontainersize);
				}.bind(this)
			});
			s.injectTop(this.selectcontainer);

		var u = new Element('ul').injectInside(this.selectcontainer);
		u.addEvent('mouseup', function(e){ e = new Event(e).stopPropagation() });
		this.selectdropdownoptions.each(function(el,i){ 
			var l = new Element('li').injectInside(u);
			var ls = new Element('span').setHTML(el.getText());
				ls.addEvents({
					'click': function(e){
						this.selectcontainer.removeClass('open' + this.selectcontainersize);
						if(c.match('236')){
							this.selectcontainer.getFirst().setHTML(ls.getText().substring(0,32));
						} else {
							this.selectcontainer.getFirst().setHTML(ls.getText().substring(0,60));
						}
						this.selectdropdown.selectedIndex = i;
						if(this.selectdropdown == $('forumComboBoxId')){
							updateSessionCombobox();
						}
						if(this.selectdropdown == $('businessGroupComboBoxId')){
							updateCompanyCombobox();
						}
						if(this.selectdropdown == $('regionComboBoxId')){
							updateCountryCombobox();
						}
						if(this.selectdropdown == $('sessionComboBoxId')){
							if(this.selectdropdown.value != 'null'){
								$('selectSessionFormId').submit();
							}
						}
						if(this.selectdropdown == $('calendarswitcher')){
							document.location.href = this.selectdropdown[this.selectdropdown.selectedIndex].value;
						}
						if(this.selectdropdown == $('sessionswitcher')){
							updateSessionLinks(this.selectdropdown[this.selectdropdown.selectedIndex].value);
						}
					}.bind(this),
					'mouseover': function(e){
						ls.addClass('hover' + this.selectcontainersize);
					},
					'mouseout': function(e){
						ls.removeClass('hover' + this.selectcontainersize);
					}
				});
				ls.injectInside(l);
		}.bind(this));

	}
});

function updateSimulatedSelectBoxes(el){
	new updateSimulatedSelectBoxesClass($(el));
}

var updateSimulatedSelectBoxesClass = new Class({
	initialize: function(el){
		this.selectcontainer = el.getParent();
		this.selectcontainersize = this.selectcontainer.getProperty('class').substring(9,12);
		this.selecteddropdownitem = el.getParent().getFirst();
		this.selectdropdown = el;
		this.selectdropdownoptions = el.getChildren();
		if(el.selectedIndex){
			this.selectedItem = el.selectedIndex;
		} else {
			this.selectedItem = 0;
		}
		if(this.selectcontainer.getProperty('class').match('236')){
			this.selecteddropdownitem.setText(this.selectdropdownoptions[this.selectedItem].getText().substring(0,32));
		} else {
			this.selecteddropdownitem.setText(this.selectdropdownoptions[this.selectedItem].getText().substring(0,60));
		}
		
		var u = this.selectcontainer.getLast();
		u.empty();
		this.selectdropdownoptions.each(function(el,i){
			var l = new Element('li').injectInside(u);
			var ls = new Element('span').setHTML(el.getText());
				ls.addEvents({
					'click': function(e){
						this.selectcontainer.removeClass('open' + this.selectcontainersize);
						if(this.selectcontainer.getProperty('class').match('236')){
							this.selectcontainer.getFirst().setHTML(ls.getText().substring(0,32));
						} else {
							this.selectcontainer.getFirst().setHTML(ls.getText().substring(0,60));
						}
						this.selectdropdown.selectedIndex = i;
					}.bind(this),
					'mouseover': function(e){
						ls.addClass('hover' + this.selectcontainersize);
					},
					'mouseout': function(e){
						ls.removeClass('hover' + this.selectcontainersize);
					}
				});
				ls.injectInside(l);
		}.bind(this));
	}
});

var setUpSimulatedFileInputClass = new Class({
	initialize: function(el){
		this.fileInputContainer = el;
		this.fileInput = $('userphoto');
		var startSRC = '/images/buttons/btn-browse.gif';
		
		var pd = new Element('div').injectAfter(this.fileInput);
		var sp = new Element('span').setText('.').injectInside(pd);
		var im = new Element('img',{'src':startSRC,'class':'button','alt':''}).injectInside(pd);

		this.fileInput.setOpacity(0);
		this.fileInput.setStyle('visibility','visible');
		
		this.fileInputPath = sp;
		
		this.fileInput.addEvents({
			'mouseenter': function(e){
				im.setProperty('src',startSRC.replace(/.gif/,'-o.gif'));
			},
			'mouseleave': function(e){
				im.setProperty('src',startSRC);
			},
			'change': function(e){
				this.fileInputPath.setHTML(this.fileInput.value);
			}.bind(this)
		});

	}
});

var mainNavigationMenuClass = new Class({
	initialize: function(menuLists){
		this.menuLists = menuLists;
		this.menuLists.each(function(el,i){
			var exitActive = false;
			var delayExit = function(){ if(exitActive == true){ el.removeClass('active') } };

			el.addEvents({
				'mouseenter': function(e){
					exitActive = false;
					el.addClass('active');
				},
				'mouseleave': function(e){
					exitActive = true;
					delayExit.delay(750);
				}
			});
		});
	}
});

var heroShotFadeClass = new Class({
	initialize: function(heroContainer){
		this.heroContainer = heroContainer;
		this.existingImg = this.heroContainer.getFirst();
		this.imgFade = new Fx.Styles(this.existingImg, {duration: 1000, transition: Fx.Transitions.linear});
		this.swapImage.periodical(12000,this);
	},
	swapImage: function(){
		//var num = $random(1,17);
		var oldImgSrc = this.existingImg.getProperty('src').split('/');
		var num = parseInt(oldImgSrc[oldImgSrc.length-1].substring(0,oldImgSrc[oldImgSrc.length-1].indexOf('.jpg')))+1;
		if(num>20){
			num = 1;
		}
		var newImgSrc = '/images/assets/heroshots/' + num + '.jpg';

		this.imgFade.start({
			'opacity': [1,0]
		}).chain(function(){
			this.existingImg.setProperty('src',newImgSrc);
			(function(){
				this.imgFade.start({
					'opacity': [0,1]
				})
			}).delay(2000,this);
		}.bind(this));
	}
});

var setUpForumChangeClass = new Class({
	initialize: function(changeLink, optionsContainer, optionsSpacer){
		this.changeLink = changeLink;
		this.currentText = this.changeLink.getFirst().getText();
		this.optionsContainer = optionsContainer;
		this.optionsLinks = this.optionsContainer.getChildren();
		this.optionsSpacer = optionsSpacer;
		
		this.optionsContainer.setStyle('display','block');
		this.optionsContainerHeight = (this.optionsContainer.getSize().size.y - 49);
		this.optionsContainer.setStyle('display','none');
		
		this.optionFading = new Fx.Styles(this.optionsContainer, {duration: 1000, transition: Fx.Transitions.linear});
		this.optionSpacer = new Fx.Styles(this.optionsSpacer, {duration: 750, transition: Fx.Transitions.linear});
		this.linkFading = new Fx.Styles(this.changeLink, {duration: 500, transition: Fx.Transitions.linear});
		
		this.changeLink.addEvents({
			'click': function(e){
				this.linkFading.start({
					'opacity': [1,0]
				}).chain(function(){
					this.changeLink.setStyles({'display':'none'});
					this.optionSpacer.start({
						'height': [1,this.optionsContainerHeight]
					}).chain(function(){
						this.optionsContainer.setStyle('display','block');
						this.optionFading.start({
							'opacity': [0,1]
						});
					}.bind(this));
				}.bind(this));
				e = new Event(e).stop();
			}.bind(this)
		});
		
		this.optionsLinks.each(function(el,i){
			var optionText = el.getFirst().getFirst().getText();
			if(optionText.match(this.currentText)){
				el.addEvents({
					'click': function(e){
						this.optionFading.start({
							'opacity': [1,0]
						}).chain(function(){
							this.optionSpacer.start({
									'height': [this.optionsContainerHeight,1]
							}).chain(function(){
								this.optionsContainer.setStyle('display','none');
							}.bind(this));
							this.changeLink.setStyle('display','block');
							this.linkFading.start({
								'opacity': [0,1]
							});
						}.bind(this));

						e = new Event(e).stop();
					}.bind(this)
				});
			}
		}.bind(this));
	}
});

var mediaViewerClass = new Class({
	initialize: function(mediaViewer,type){
		this.viewer = mediaViewer;
		this.type = type;
		var scrollDepth;
		
		switch(type){
			case 'photoalbum':
				this.player = $('photocontainer');
				this.album = $('photoscrollcontainer');
				this.scrollinner = $('photoscrollinner');
				this.files = this.scrollinner.getChildren();
				this.titletarget = $('phototitletarget');
				this.alttarget = $('photoalttarget');
				this.scrollnav = $('photoscrollnav');
				var playerh3 = new Element('h3',{'class':'label'}).setText('Photo...').injectBefore(this.player);
				this.album.getPrevious().setText('Photos:');
				this.setUpPhotos();
			break;
			case 'videoalbum':
				this.player = $('videocontainer');
				this.album = $('videoscrollcontainer');
				this.scrollinner = $('videoscrollinner');
				this.files = this.scrollinner.getChildren();
				this.titletarget = $('videotitletarget');
				this.alttarget = $('videoalttarget');
				this.scrollnav = $('videoscrollnav');
				var playerh3 = new Element('h3',{'class':'label'}).setText('Now Playing...').injectBefore(this.player);
				this.album.getPrevious().setText('Videos:');
				this.setUpVideos();
			break;
			default:
		}
		
		if(this.files.length > 10){
			this.scrollHeight = ((this.files.length/10).toInt())+1;
			this.setUpScroller();
		}
	},
	setUpScroller: function(){
		var iUp = new Element('img',{'src':'/images/buttons/btn-up.gif','alt':'','width':'32','height':'32'}).injectInside(this.scrollnav);
		var iDown = new Element('img',{'src':'/images/buttons/btn-down.gif','alt':'','width':'32','height':'32'}).injectInside(this.scrollnav);
		
		var scrollAvailableHeight = (this.scrollHeight-1)*255;
		this.scrollinner.setStyle('height',(this.scrollHeight*255) + 'px');
		var fileScroller = new Fx.Scroll(this.album, {wait:false, duration:1000, transition:Fx.Transitions.Quad.easeInOut}).scrollTo(0,0);
 		var startUpSRC = iUp.getProperty('src');
		var startDownSRC = iDown.getProperty('src');
		scrollDepth = 0;

 		iUp.addEvents({
			'click': function(e){
				if((scrollDepth-255) > 0){
					scrollDepth = scrollDepth-255;
				} else {
					scrollDepth = 0;
				}
				fileScroller.scrollTo(0,scrollDepth);
			},
			'mouseover': function(e){
				iUp.setProperty('src',startUpSRC.replace(/.gif/,'-o.gif'));
			},
			'mouseout': function(e){
				iUp.setProperty('src',startUpSRC);
			}
		});
 		iDown.addEvents({
			'click': function(e){
				if((scrollDepth+255) < scrollAvailableHeight){
					scrollDepth = scrollDepth+255;
				} else {
					scrollDepth = scrollAvailableHeight;
				}
				fileScroller.scrollTo(0,scrollDepth);
			},
			'mouseover': function(e){
				iDown.setProperty('src',startDownSRC.replace(/.gif/,'-o.gif'));
			},
			'mouseout': function(e){
				iDown.setProperty('src',startDownSRC);
			}
		});
	},
	setUpPhotos: function(){
		this.files.each(function(el,i){
			//var imgSrc = el.getFirst().getProperty('src').replace(/.jpg/,'-large.jpg');
			var imgSrc = el.getProperty('href');
			var fileDetails = el.getFirst().getProperty('title');
			var fileCaption = el.getFirst().getProperty('alt');
			el.getFirst().setProperty('title','');
			var anchorHref = el.getProperty('href');
			el.addEvents({
				'click': function(e){
					this.showPhoto(el,i,fileDetails,fileCaption,imgSrc,false);
					e = new Event(e).stop();
				}.bind(this),
				'mouseover': function(e){
					this.displayPopup(el,i,fileDetails,fileCaption,imgSrc);
				}.bind(this)
			});
			if(i==0){
				this.showPhoto(el,i,fileDetails,fileCaption,imgSrc,true);
			}
		}.bind(this));
		this.album.addEvents({
			'mouseleave': function(e){
				this.cancelPopup();
			}.bind(this)
		});
	},
	setUpVideos: function(){
		if(this.files.length != 0){
		this.files.each(function(el,i){
			var filename = el.getFirst().getProperty('src').split('/')[el.getFirst().getProperty('src').split('/').length-1].replace(/.jpg/,'');
			var targetname = '/files/media/videos/' + filename + '.flv';
			targetname= el.getProperty('href');
			var fileDetails = el.getFirst().getProperty('title');
			var fileCaption = el.getFirst().getProperty('alt');
			el.getFirst().setProperty('title','');
			el.addEvents({
				'click': function(e){
					this.loadVideo(el,i,fileDetails,fileCaption,targetname,false);
					e = new Event(e).stop();
				}.bind(this),
				'mouseover': function(e){
					this.displayPopup(el,i,fileDetails,fileCaption,targetname);
				}.bind(this)
			});
			if(i==0){
				this.loadVideo(el,i,fileDetails,fileCaption,targetname,true);
			}
		}.bind(this));
		this.album.addEvents({
			'mouseleave': function(e){
				this.cancelPopup();
			}.bind(this)
		});
		} else {
			this.loadVideo(null,null,'There are no videos in this album.','','/files/media/videos/blank.flv',false);
		}
	},
	showPhoto: function(el,i,fileDetails,fileCaption,imgSrc,firstphoto){
		if(firstphoto == false){
			this.player.empty();
		}
		var playertarget = new Element('img',{'src':imgSrc,'alt':''}).injectInside(this.player);
		
		this.titletarget.setText(fileDetails);
		this.alttarget.setText(fileCaption);
	},
	loadVideo: function(el,i,fileDetails,fileCaption,targetname,firstmovie){
		if(firstmovie == false){
			this.player.empty();
		}
		
		var so = new SWFObject('/video/player.swf','loadedplayer','383','245','8');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addParam("wmode", "transparent");
		so.addVariable('height','245');
		so.addVariable('width','383');
		so.addVariable('file',targetname);
		so.addVariable('javascriptid','loadedplayer');
		so.addVariable('searchbar','false');
		so.addVariable('showstop','true');
		so.addVariable('showdigits','false');
		so.addVariable('displayheight','245');
		if(firstmovie == false){
			so.addVariable('autostart','true');
		} else {
			so.addVariable('autostart','false');
		}

		var imagename = targetname.split('/')[targetname.split('/').length-1].replace(/.flv/,'.jpg');
		imagename='/files/media/thumbnails/' + imagename;
		so.addVariable('image',imagename);
		
		so.write(this.player);

		this.titletarget.setText(fileDetails);
		//this.alttarget.setHTML(fileCaption + ' [<a href="' + targetname.replace(/.flv/,".mp4") + '">Download this movie</a>]');
	},
	displayPopup: function(el,i,fileDetails,fileCaption,target){
		this.cancelPopup();
		
		if(this.files.length <= 10){
 			scrollDepth = 0;
 		}

		var cdiv = new Element('div',{'id':'mediapopup','class':'bubble','style':'visibility:hidden'}).injectInside(this.scrollinner);
		if(window.ie6){
			var bdiv = new Element('div',{'class':'bottom'}).injectInside(cdiv);
		} else {
			var bdiv = new Element('div',{'class':'bottomnonie'}).injectInside(cdiv);
		}
		var tdiv = new Element('div',{'class':'top'}).injectInside(bdiv);
		var idiv = new Element('div',{'class':'inner'}).setText(fileCaption).injectInside(tdiv);
		var ispan = new Element('span').setText(fileDetails).injectTop(idiv);

		var ytop = ((el.getFirst().getPosition().y - 80)-scrollDepth);

		if(window.ie6){
			ytop = (el.getFirst().getPosition([this.album]).y - 74) - scrollDepth;
		}
		
		cdiv.setStyles({
			'top': ytop + 'px',
			'left': (el.getFirst().getPosition().x + 41) + 'px',
			'cursor':'pointer',
			'visibility':'visible'
		});
		
		cdiv.addEvents({
			'click': function(e){
				if(this.type == 'photoalbum'){
					this.showPhoto(el,i,fileDetails,fileCaption,target,false);
				} else {
					this.loadVideo(el,i,fileDetails,fileCaption,target,false);
				}
				e = new Event(e).stop();
			}.bind(this)
		});

	},
	cancelPopup: function(){
		if($('mediapopup')){
			$('mediapopup').removeEvents();
			$('mediapopup').remove();
		}
	}
});

