window.addEvent('domready', function(){

	var cover = new overlay();

	//Multibox
	new multiBox('mb', {overlay: cover, descClassName: 'mbDesc', openFromLink: false});
	
	//Multibox for prodcution images
	new multiBox('mbProduction', {overlay: cover, descClassName: 'mbDesc', openFromLink: false});
	
	//Multibox for rehearsal images
	new multiBox('mbRehearsal', {overlay: cover, descClassName: 'mbDesc', openFromLink: false});
	
	//Multibox for other images
	new multiBox('mbOther', {overlay: cover, descClassName: 'mbDesc', openFromLink: false});
	
	//Multibox for cast bios
	new multiBox('mbCast', {overlay: cover, showControls: false, openFromLink: false});
	
	//Multibox for latest images
	new multiBox('mbLatest', {overlay: cover, descClassName: 'mbDesc', openFromLink: false});
	
	//Multibox for send to a friend & remind me
	new multiBox('mbPopup', {overlay: cover, _onClosed: function(){ resetSendRequest("sendToFriend"); }, openFromLink: false, showControls: false});
	
	cover.reset();

	//external links
	$$('a[rel=external]').set('target', '_blank');

	//Footer shadow
	var wrap = $$('.wrap')[0];
	var siteInfo = $$('.siteInfo')[0];	
	if(wrap){		
		new Element('span', {
			  'class': 'shadow'	 
			}).inject(wrap, 'bottom');
	}

	//change footer shadow if it is a Show page (different background colours)

	if($$('.showWrap')[0]){
		$$('.shadow').destroy(); 
		new Element('span', {
			  'class': 'showPageShadow'
			}).inject(siteInfo, 'before');
	}

	//Arrow on bottom of comment form
	var commentForm = $$('fieldset.comments')[0];	
	if(commentForm){
		new Element('span', {
			  'class': 'commentFormArrow'	 
			}).inject(commentForm, 'bottom');
	}

	//put white arrow on each comment box
	var commentsList = $$('ol.commentsList')[0];
	if(commentsList){
		var listArray = commentsList.getElements('li div');//)$$('ol.commentsList li div')
		listArray.each(function(el, i){
			new Element('span', { 
				}).inject(el, 'bottom');
		})
	}

	//Shadows on the inside of the selected tab (show information page)
	var shadows = $$('ul.tabs li.selected a')[0];
	if(shadows){
		new Element('span', {
			  'class': 't'	 
			}).inject(shadows, 'bottom');
		new Element('span', {
			  'class': 'r'	 
			}).inject(shadows, 'bottom');
		new Element('span', {
			  'class': 'l'	 
			}).inject(shadows, 'bottom');
	}
	
	
	//whats on filter
	var whatsOn = $$('div.whatsOnFilter');
	if(whatsOn[0]){
		var filters = $$('div.whatsOnFilter fieldset');
		filters.each(function(el,i){
			var cls = el.get('class');

			if(el.hasClass('filterWhere')){
				var div = new Element('div', {'class':'whereEnhanced'}).replaces(el);
				new Element('h2', {'text':'Where'}).inject(div);
				var ul = new Element('ul').inject(div);
				
				var options = el.getElements('select option')
				
				options.each(function(o,i){
					var selected = o.get('selected') == true ? 'selected' : '';
					if(o.get('selected')){
						filterVenue = o.get('value');
					}
					if(options[0].get('selected') && (o.get('text') == 'Everyman' || o.get('text') == 'Playhouse')){
						selected = 'selected';
					}
					
					new Element('li', {
						id: o.get('text').replace( /\s/g, ""),
						'class': selected,
						'html': '<a href="javascript:filterVenue=\''+o.get('value')+'\'; submitFilter();">'+(o.get('text') == 'Everyman and Playhouse' ? 'Both' : o.get('text'))+'</a>'
					}).inject(ul);
				});
				
			}else if(el.hasClass('filterWhen')){
				
				var div = new Element('div', {'class':'monthEnhanced'}).replaces(el);
				new Element('h2', {'text':"When"}).inject(div);
				var ul = new Element('ul').inject(div);
				
				var options = el.getElements('select option')
								
				var lastValue = options[options.length - 1].get('value');
				
				if(lastValue.indexOf('May') >= 0 || lastValue.indexOf('July') >= 0 || lastValue.indexOf('March') >= 0)
				{
					options.splice(1, 0, options.pop());
				}
				
				//var firstValue = options[1].get('value');
				
				//if(firstValue == 'April' || firstValue == 'June' || firstValue == 'August'){
				//	options.splice(1,0,options.pop());
				//}
				
				options.each(function(o, i){
					
					if(o.get('selected')){
						filterMonth = o.get('value');
					}
					
					var li = new Element('li', {
						'id': o.get('value') == '' ? 'all' : o.get('value').substr(0,3).toLowerCase(), 
						'class': o.get('selected') == true ? 'selected' : '', 
						'html':'<a href="javascript:filterMonth=\''+o.get('value')+'\'; submitFilter();">'+o.get('text')+'</a>'
					}).inject(ul);
					
					if(i == 1){
						li.addClass('first');
					}
				});
				
			}
			
			
		});
	}
	

	//form validation: send to a friend
	var sendToFriend = $('sendToFriend');
	if(sendToFriend){
		
		var serror = sendToFriend.getElement('span.popupFormError');
		if(!serror){
			serror = new Element('span', {'class':'popupFormError'}).inject($('btnSend'), 'after');
		}
		
		var sendToFriendRequest = new Request({
			url: document.location.href,
			method: 'post',
			onSuccess:function(){
				serror.set('text', 'Successfully sent :)');

				//hide form elements if successul - requeted by Everyman - bug  21697
				var labelArray = sendToFriend.getElements('li label');//)$$('ol.commentsList li div')
				labelArray.each(function(el, i){
					el.setStyle('display', 'none');
				})
				var labelArray = sendToFriend.getElements('li input');//)$$('ol.commentsList li div')
				labelArray.each(function(el, i){
					el.setStyle('display', 'none');
				})			

				//(function(){serror.set('text', '');}).delay(2000);	
				
			},
			onFailure:function(){
				serror.set('text', 'Sorry, its failed to send :(');
			}
		});
		
		var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
		
		$('btnSend').addEvent('click', function(e){
			
			var doSubmit = true;
			if($('txtYourName').get('value') == ''){
				//your name
				serror.set('text','Please enter your name.');
				doSubmit = false;
			}
			if($('txtFriendName').get('value') == '' && doSubmit){
				//friends name
				serror.set('text','Please enter your friends name.');
				doSubmit = false;
			}
			if($('txtFriendEmail').get('value') == '' && doSubmit){
				//email
				serror.set('text','Please enter your friends email.');
				doSubmit = false;
			}else if(!$('txtFriendEmail').get('value').toUpperCase().match(regEmail) && doSubmit){
				serror.set('text','Please enter a valid email.');
				doSubmit = false;
			}
			
			if(doSubmit){
				serror.set('text','Sending...');
				sendToFriendRequest.send('txtYourName='+$('txtYourName').get('value')+'&txtFriendName='+$('txtFriendName').get('value')+'&txtFriendEmail='+$('txtFriendEmail').get('value'));

			}
		});
	}
	
	//form validation: newsletter
	var newsletter = $('newsletterForm');
	if(newsletter){
		
		var nerror = newsletter.getElement('span.popupFormError');
		if(!nerror){
			nerror = new Element('span', {'class':'popupFormError'}).inject($('ucNewsletter_btnNewsGo'), 'after');
		}
		
		var newsletterRequest = new Request({
			url: document.location.href,
			method: 'post',
			onSuccess:function(){
				nerror.set('text', 'Successfully sent :)');
				
				(function(){nerror.set('text', '');}).delay(5000);
			},
			onFailure:function(){
				nerror.set('text', 'Sorry, its failed to send :(');
			}
		});
		
		var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
		
		$('ucNewsletter_btnNewsGo').addEvent('click', function(e){
			
			var doSubmit = true;
			if($('ucNewsletter_txtNewsName').get('value') == ''){
				//your name
				nerror.set('text','Please enter your name.');
				doSubmit = false;
			}
			if($('ucNewsletter_txtNewsEmail').get('value') == '' && doSubmit){
				//email
				nerror.set('text','Please enter your email.');
				doSubmit = false;
			}else if(!$('ucNewsletter_txtNewsEmail').get('value').toUpperCase().match(regEmail) && doSubmit){
				nerror.set('text','Please enter a valid email.');
				doSubmit = false;
			}
			
			if(doSubmit){
				nerror.set('text','Sending...');
				newsletterRequest.send('txtNewsName='+$('ucNewsletter_txtNewsName').get('value')+'&txtNewsEmail='+$('ucNewsletter_txtNewsEmail').get('value'));

			}
		});
	}
	
	
	//form validation: remind me
	var remindMe = $('remindMe');
	if(remindMe){
		
		var rerror = remindMe.getElement('span.popupFormError');
		if(!rerror){
			rerror = new Element('span', {'class':'popupFormError'}).inject($('btnRemindMe'), 'after');
		}
		
		var remindMeRequest = new Request({
			url: document.location.href,
			method: 'post',
			onSuccess:function(){
				rerror.set('text', 'Successfully sent :)');
				
				(function(){rerror.set('text', '');}).delay(5000);
			},
			onFailure:function(){
				rerror.set('text', 'Sorry, its failed to send :(');
			}
		});
		
		var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
		
		$('btnRemindMe').addEvent('click', function(e){
			
			var doSubmit = true;
			if($('txtReminderName').get('value') == ''){
				//your name
				rerror.set('text','Please enter your name.');
				doSubmit = false;
			}
			if($('txtReminderEmail').get('value') == '' && doSubmit){
				//email
				rerror.set('text','Please enter your email.');
				doSubmit = false;
			}else if(!$('txtReminderEmail').get('value').toUpperCase().match(regEmail) && doSubmit){
				rerror.set('text','Please enter a valid email.');
				doSubmit = false;
			}
			
			if(doSubmit){
				rerror.set('text','Sending...');
				remindMeRequest.send('txtNewsName='+$('txtReminderName').get('value')+'&txtNewsEmail='+$('txtReminderEmail').get('value'));

			}
		});
	}
	
	//Site Show
	//setTimeout(function(){$(document.body).setStyles({"visibility" : "visible", "background-color" : "#ffffff"});}, 0);
	$(document.body).setStyles({"visibility" : "visible", "background-color" : "#ffffff"});
});

var filterVenue;
var filterMonth;

function submitFilter(){
	document.location = '?ddlVenue='+filterVenue+'&ddlMonth='+filterMonth;
}
	
function resetSendRequest(parentId)
{
	var parentEntity = $(parentId);
	
	if(parentEntity)
	{
		var serror = parentEntity.getElement('span.popupFormError');
	}

	if(parentEntity)
	{	
		// show form elements if successul - requeted by Everyman - bug  21697
		var labelArray = parentEntity.getElements('li label');//)$$('ol.commentsList li div')
		labelArray.each(function(el, i){
			el.setStyle('display', 'block');
		});
		var labelArray = parentEntity.getElements('li input');//)$$('ol.commentsList li div')
		labelArray.each(function(el, i){
			el.setStyle('display', 'block');
			if(el.getProperty('type') != 'submit')
			{
				el.set('value', '');
			}
		});
	}
	
	if(serror)
	{
		serror.set('text', '');
	}
}

