
// Displays the event preview in the column next to the calendar.
function preview(id, date) {

	var elementList = document.getElementsByClassName("selected");
	var elements = $A(elementList);	

	elements.each(function(element){
			Element.removeClassName(element, 'selected');
			});

	Element.addClassName('date_' + date, 'selected');

	Element.hide('eventinfo_wrapper');
	$('viewpane').innerHTML = '<img id="viewpane_indicator" src="/CMS/shared/images/indicator_medium.gif" alt="activity indicator">';
	//new Effect.SlideUp('eventinfo',{duration:0.3, afterFinish:function(){
		var url = '/CMS/themes/superdeluxe/viewpane.php';
		var params = 'eventid=' + id;
		var ajax = new Ajax.Updater(
		{success: 'viewpane'},
		url,
		{method: 'get', parameters: params, onComplete:function(){
			
			Element.show('eventinfo_wrapper');
			//new Effect.SlideDown('eventinfo',{duration:0.3});
			
		}});
	
	//}})
}

function trim(str) // trims whitespace from strings
{
   return str.replace(/^\s+|\s+$/g,'');
}

//Validates the reservation form
function save_res() {

	var url = '/CMS/themes/superdeluxe/functions/save_res.php';

	var event_id_1 = $('event_id_1').value;
	var firstname_1 = $('firstname_1').value;
	var surname_1 = $('surname_1').value;
	var tel_no_1 = $('tel_no_1').value;
	var email_1 = $('email_1').value;
	var lang = $('lang_1').value;
	var validator = $('validator').value;
	var event_res_key = $('event_res_key').value;

	if(trim(firstname_1) == 'Firstname' || trim(firstname_1) == '名前（フリガナ）' || trim(firstname_1) == '' )
	{
		if(lang == 'en') {alert('Please enter a firstname.');}
		else {alert('名前を入力してください。');}
		new Effect.Highlight('firstname_1', {startcolor:'#ff9999', endcolor:'#ffff99'});
		return false;
	}
		else if(trim(surname_1) == 'Surname' || trim(surname_1) == '名字（フリガナ）' || trim(surname_1) == '' )
	{
		if(lang == 'en') {alert('Please enter a surname.');}
		else {alert('名字を入力してください。');}
		new Effect.Highlight('surname_1', {startcolor:'#ff9999', endcolor:'#ffff99'});
		return false;
	}
		else if(!/[0-9\-\s]{8,20}/.test(tel_no_1))
	{
		if(lang == 'en') {alert('Please enter a valid telephone number.');}
		else {alert('有効な電話番号を入力してください。');}
		new Effect.Highlight('tel_no_1', {startcolor:'#ff9999', endcolor:'#ffff99'});
		return false;
	}
		else  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email_1))
	{
		if(lang == 'en') {alert('Please enter a valid e-mail.');}
		else {alert('有効なEメールアドレスを入力してください。');}
		new Effect.Highlight('email_1', {startcolor:'#ff9999', endcolor:'#ffff99'});
		return false;
	}

	var params = 'event_id_1=' + event_id_1 + '&firstname_1=' + firstname_1 + '&surname_1=' + surname_1 + '&tel_no_1=' + tel_no_1 + '&email_1=' + email_1 + '&lang_1=' + lang + '&validator=' + validator;

	if (Element.visible('res_form_2')){
		var event_id_2 = $('event_id_2').value;
		var firstname_2 = $('firstname_2').value;
		var surname_2 = $('surname_2').value;
		var tel_no_2 = $('tel_no_2').value;
		var email_2 = $('email_2').value;

		if(trim(firstname_2) == 'Firstname' || trim(firstname_2) == '名前（フリガナ）' || trim(firstname_2) == '' )
		{
			if(lang == 'en') {alert('Please enter a firstname.');}
			else {alert('名前を入力してください。');}
			new Effect.Highlight('firstname_2', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else if(trim(surname_2) == 'Surname' || trim(surname_2) == '名字（フリガナ）' || trim(surname_2) == '' )
		{
			if(lang == 'en') {alert('Please enter a surname.');}
			else {alert('名字を入力してください。');}
			new Effect.Highlight('surname_2', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
		else if(!/[0-9\-\s]{8,20}/.test(tel_no_2))
		{
			if(lang == 'en') {alert('Please enter a valid telephone number.');}
			else {alert('有効な電話番号を入力してください。');}
			new Effect.Highlight('tel_no_2', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email_2))
		{
			if(lang == 'en') {alert('Please enter a valid e-mail.');}
			else {alert('有効なEメールアドレスを入力してください。');}
			new Effect.Highlight('email_2', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
		
		var params = params + '&form_2=true&event_id_2=' + event_id_2 + '&firstname_2=' + firstname_2 + '&surname_2=' + surname_2 + '&tel_no_2=' + tel_no_2 + '&email_2=' + email_2;
	}

	if (Element.visible('res_form_3')){
		var event_id_3 = $('event_id_3').value;
		var firstname_3 = $('firstname_3').value;
		var surname_3 = $('surname_3').value;
		var tel_no_3 = $('tel_no_3').value;
		var email_3 = $('email_3').value;

		if(trim(firstname_3) == 'Firstname' || trim(firstname_3) == '名前（フリガナ）' || trim(firstname_3) == '' )
		{
			if(lang == 'en') {alert('Please enter a firstname.');}
			else {alert('名前を入力してください。');}
			new Effect.Highlight('firstname_3', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else if(trim(surname_3) == 'Surname' || trim(surname_3) == '名字（フリガナ）' || trim(surname_3) == '' )
		{
			if(lang == 'en') {alert('Please enter a surname.');}
			else {alert('名字を入力してください。');}
			new Effect.Highlight('surname_3', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
		else if(!/[0-9\-\s]{8,20}/.test(tel_no_3))
		{
			if(lang == 'en') {alert('Please enter a valid telephone number.');}
			else {alert('有効な電話番号を入力してください。');}
			new Effect.Highlight('tel_no_3', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email_3))
		{
			if(lang == 'en') {alert('Please enter a valid e-mail.');}
			else {alert('有効なEメールアドレスを入力してください。');}
			new Effect.Highlight('email_3', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
		
		var params = params + '&form_3=true&event_id_3=' + event_id_3 + '&firstname_3=' + firstname_3 + '&surname_3=' + surname_3 + '&tel_no_3=' + tel_no_3 + '&email_3=' + email_3;
	}
			
	if(!/[a-zA-Z]{4}/.test(validator) || validator != event_res_key.substring(7,11))
	{
		if(lang == 'en') {alert('Please enter the exact characters from the image.');}
		else {alert('イメージの文字を入力してください。');}
		new Effect.Highlight('validator', {startcolor:'#ff9999', endcolor:'#ffff99'});
		return false;
	}
		
	var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){
		Form.disable('res_form');
		if(lang == 'en') {$('res_msg').innerHTML = 'Reservation received - please check your email to confirm!';}
		else {$('res_msg').innerHTML = '予約が受け取られました。。Eメールをチェックしてください。';}
		new Effect.Highlight('res_msg');}

		});

}

//used on the 'Reservations' page when the arrived checkbox is checked.
function arrived(id) {
	var url = '/CMS/themes/superdeluxe/functions/arrived.php';
	var params = 'id=' + id;
	var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){ 
	if (Element.hasClassName('row_' + id, 'fade')) {
		Element.removeClassName('row_' + id, 'fade');
	}
	else {
		Element.addClassName('row_' + id, 'fade');
	}
	}});
}

//Adds a person to the blacklist.
function add_blacklist(firstname, surname, email, events_missed_no, events_missed) {
	var answer = confirm("Are you sure?");
	if (answer==true) { 
		var url = '/CMS/themes/superdeluxe/functions/add_blacklist.php';
		var params = 'firstname=' + firstname + '&surname=' + surname + '&email=' + email + '&events_missed_no=' + events_missed_no + '&events_missed=' + events_missed;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){
			
			Effect.Fade('row_' + firstname + surname + events_missed_no);
			if ( $('empty_row') && Element.visible('empty_row') ) {
		  	Element.hide('empty_row');
			}

			var tr = document.createElement("tr");
			tr.id = 'new_row';
			var td1 = document.createElement("td");
			td1.className = 'narrow';
			td1.innerHTML = events_missed_no;
			var td2 = document.createElement("td");
			td2.innerHTML = firstname + ' ' + surname;
			var td3 = document.createElement("td");
			td3.innerHTML = '<a href="mailto:' + email + '" >' + email + '</a>';
			var td4 = document.createElement("td");
			td4.className = 'narrow';
			td4.innerHTML = 'Just Added!';
			$('blacklist').appendChild(tr);
			$('new_row').appendChild(td1);
			$('new_row').appendChild(td2);
			$('new_row').appendChild(td3);
			$('new_row').appendChild(td4);
			
			new Effect.Highlight('new_row');

								
		}}); 
	}
}

//removes a person from the blacklist.
function remove_blacklist(id) {
	var answer = confirm("Are you sure?");
	if (answer==true) { 
		var url = '/CMS/themes/superdeluxe/functions/remove_blacklist.php';
		var params = 'id=' + id;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){ 
			Effect.Fade('row_'+id);
		}});
	}
}

//removes a person from the 'Repeated Non-arrivals' list.
function remove_list(firstname, surname, email, events_missed, num) {
	var answer = confirm("Are you sure?");
	if (answer==true) { 
		var url = '/CMS/themes/superdeluxe/functions/remove_blacklist.php';
		var params = 'firstname=' + firstname + '&surname=' + surname + '&email=' + email + '&events_missed=' + events_missed;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){ 
			Effect.Fade('row_'+ firstname + surname + num);
		}});
	}
}

//cancels a reservation
function cancel_res(id, from, lang, hashkey) {
	if (from == 'res_list') {
		var answer = confirm("Are you sure?");
	}
	if (answer==true || from=='email') {
		var url = '/CMS/themes/superdeluxe/functions/cancel_res.php';
		var params = 'id=' + id + '&from=' + from + '&hashkey=' + hashkey ;
		var ajax =  new Ajax.Request(url, {method:'post', parameters: params, onSuccess:function(){
			if (from=='res_list') { 
				Element.setStyle('centre_col_' + id, {textDecoration: 'line-through'});
				$('right_col_' + id).innerHTML = 'Cancelled';
				Element.addClassName('row_' + id, 'fade');
			}
			else {
				if ( lang == 'en' ) {
					$('cancel_comfirm_text').innerHTML = 'Your reservation has been successfuly cancelled.';
				} else {
					$('cancel_comfirm_text').innerHTML = '予約は取り消されました。';
				}
			}
		}}); 
	}

}

//Validates the subscription form, then adds the subscriber using the subscribeme.php
function subscribe() {
	var lang = $('lang').value;
	var subscribefirstname = $('subscribefirstname').value;
	var subscribesurname = $('subscribesurname').value;
	var subscribeemail = $('subscribeemail').value;
	
	if(trim(subscribefirstname) == 'Firstname' || trim(subscribefirstname) == '名前（フリガナ）' || trim(subscribefirstname) == '' )
		{
			if(lang == 'en') {alert('Please enter your firstname.');}
			else {alert('名前を入力してください。');}
			new Effect.Highlight('subscribefirstname', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else if(trim(subscribesurname) == 'Surname' || trim(subscribesurname) == '名字（フリガナ）' || trim(subscribesurname) == '' )
		{
			if(lang == 'en') {alert('Please enter your surname.');}
			else {alert('名字を入力してください。');}
			new Effect.Highlight('subscribesurname', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}
			else  if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(subscribeemail))
		{
			if(lang == 'en') {alert('Please enter a valid e-mail.');}
			else {alert('有効なEメールアドレスを入力してください。');}
			new Effect.Highlight('subscribeemail', {startcolor:'#ff9999', endcolor:'#ffff99'});
			return false;
		}	else if(!$('email_pref_general').checked && !$('email_pref_genre').checked )
		{
			if(lang == 'en') {alert('Please choose a newsletter option.');}
			else {alert('メールマガジンオプションを選んでください。');}
			new Effect.Highlight('step2', {startcolor:'#ff9999', endcolor:'#ffffff'});
			return false;
		}
			else 
		{
			//do stuff
			Form.disable('subscriptionform');
			var url = '/CMS/themes/superdeluxe/functions/subscribeme.php';
			var params = Form.serialize('subscriptionform');
			var ajax =  new Ajax.Updater({success: 'statusmessagespan'}, url, {method:'post', parameters: params, onSuccess:function(){
				new Effect.Highlight('statusmessagespan');				
			}}); 
				
		}
}

//shows additional reservation forms.
function show_form(lang) {
	if(Element.visible('res_form_2')==false)
	{
		Element.show('res_form_2');
		Element.show('multi_res_msg');
		Element.update('form_minus_button', '<img src="/CMS/themes/superdeluxe/images/minus.gif" onclick="hide_form(\'' + lang + '\');" width="16px" height="16px" alt="minus_button">');
		if (lang=="en") {
			$('res_subtitle_txt').innerHTML = 'For <span style="text-decoration: underline;">2</span> people';
		} else {
			$('res_subtitle_txt').innerHTML = '二人';
		}
	}
	else 	
	{
		Element.show('res_form_3');
		Element.update('form_plus_button', '<img src="/CMS/themes/superdeluxe/images/add_faded.gif" width="16px" height="16px" alt="add_button faded" style="cursor: default;">');
		Element.update('form_minus_button', '<img src="/CMS/themes/superdeluxe/images/minus.gif" onclick="hide_form(\'' + lang + '\');" width="16px" height="16px" alt="minus_button">');
		if (lang=="en") {
			$('res_subtitle_txt').innerHTML = 'For <span style="text-decoration: underline;">3</span> people';
		} else {
			$('res_subtitle_txt').innerHTML = '三人';
		}
	}
}

//hides reservation forms.
function hide_form(lang) {
	if(Element.visible('res_form_3')==true)	
	{
		Element.hide('res_form_3');
		Element.update('form_plus_button', '<img src="/CMS/themes/superdeluxe/images/add.gif" onclick="show_form(\'' + lang + '\');" width="16px" height="16px" alt="add_button">');
		var lang = $('lang_3').value;
		if (lang=="en") {
			$('res_subtitle_txt').innerHTML = 'For <span style="text-decoration: underline;">2</span> people';
		} else {
			$('res_subtitle_txt').innerHTML = '二人';
		}
		
	}
	else if(Element.visible('res_form_2')==true)
	{
		Element.hide('res_form_2');	
		Element.hide('multi_res_msg');
		Element.update('form_minus_button', '<img src="/CMS/themes/superdeluxe/images/minus_faded.gif" width="16px" height="16px" alt="minus_button faded"  style="cursor: default;">');
		var lang = $('lang_2').value;
		if (lang=="en") {
			$('res_subtitle_txt').innerHTML = 'For <span style="text-decoration: underline;">1</span> person';
		} else {
			$('res_subtitle_txt').innerHTML = '一人';
		}
	}

}

//toggles between the booking request form and inquiries form.
function hideshow_contactform(lang) {
	if(Element.visible('booking_req')==false)
	{
		new Effect.BlindDown('booking_req',{duration:0.5});
		if (lang=="en") {
			$('contact_header').innerHTML = 'Booking Request';
		} else {
			$('contact_header').innerHTML = 'ブッキングお問い合せ';
		}
		
	}
	else 	
	{
		new Effect.BlindUp('booking_req',{duration:0.5});
		if (lang=="en") {
			$('contact_header').innerHTML = 'inquiries';
		} else {
			$('contact_header').innerHTML = 'お問い合せ';
		}
	}
}

//used on the 'Reservations' page to sort the order of reservations using sort.php
function orderby(event_id, col, order) {

	var url = '/CMS/themes/superdeluxe/functions/sort.php';
	var params = 'event_id=' + event_id + '&col=' + col + '&order=' + order;
	var myAjax = new Ajax.Updater('res_list_wrapper', url, {method: 'post', parameters: params});
}

//Validates the 'goods' page and 'inquiries' page form, then passes the data to contact_mail_form.php
function contact_form(goods) {

	if (goods == 1) {
		var order_str = unescape($('hidden_shopping_list').value);
		var address = $('address').value;
		var postcode = $('postcode').value;
		var country = $('country').value;
		var email_confirm = $('email_confirm').value;
	}
	
	var lang = $('lang').value;
	var firstname = $('firstname').value;
	var surname = $('surname').value;
	var tel = $('tel').value;
	var fax = $('fax').value;
	var email = $('email').value;
	if ($('reply_t').checked) {
		var reply = $('reply_t').value;
	}
	if ($('reply_f').checked) {
		var reply = $('reply_f').value;
	}
	if ($('reply_e').checked) {
		var reply = $('reply_e').value;
	}
	var extra_info = $('extra_info').value;
	var booking_request = $('booking_request').checked;
	if( goods == 1 && order_str == '' ) {
			if(lang == 'en') {alert('Please add some items.');}
			else {alert('商品を選んで下さい。');}
			return false;
	}
	else if(trim(firstname) == 'Firstname' || trim(firstname) == '名前（フリガナ）' || trim(firstname) == '' )
	{
		if(lang == 'en') {alert('Please enter your firstname.');}
		else {alert('名前を入力してください。');}
		new Effect.Highlight('firstname', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}
	else if(trim(surname) == 'Surname' || trim(surname) == '名字（フリガナ）' || trim(surname) == '' )
	{
		if(lang == 'en') {alert('Please enter your surname.');}
		else {alert('名字を入力してください。');}
		new Effect.Highlight('surname', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}
	else if( goods == 1 && ( trim(address) == 'Address' || trim(address) == 'ご住所' || trim(address) == '' ) )
	{
			if(lang == 'en') {alert('Please enter your address.');}
			else {alert('ご住所を入力してください。');}
			new Effect.Highlight('address', {startcolor:'#ff9999', endcolor:'#ffffcc'});
			return false;
	}
	else if( goods == 1 && ( trim(postcode) == 'Post Code' || trim(postcode) == '郵便番号' || trim(postcode) == '' ) )
	{
			if(lang == 'en') {alert('Please enter your post code.');}
			else {alert('郵便番号を入力してください。');}
			new Effect.Highlight('postcode', {startcolor:'#ff9999', endcolor:'#ffffcc'});
			return false;
	}
	else if( goods == 1 && ( trim(country) == 'Country' || trim(country) == '国' || trim(country) == '' ) )
	{
			if(lang == 'en') {alert('Please enter your country.');}
			else {alert('国を入力してください。');}
			new Effect.Highlight('country', {startcolor:'#ff9999', endcolor:'#ffffcc'});
			return false;
	}
		else if(!/[0-9\-\s]{8,20}/.test(tel))
	{
		if(lang == 'en') {alert('Please enter a valid telephone number.');}
		else {alert('有効な電話番語を入力してください');}
		new Effect.Highlight('tel', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}
	else if(!/[0-9\-\s]{8,20}/.test(fax) && fax != 'Fax' && fax != '')
	{
		if(lang == 'en') {alert('Please enter a valid fax number or leave blank.');}
		else {alert('有効なFax番語を入力してください');}
		new Effect.Highlight('fax', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}
		else if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
	{
		if(lang == 'en') {alert('Please enter a valid e-mail.');}
		else {alert('有効なEメールアドレスを入力してください。');}
		new Effect.Highlight('email', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}
	else if( goods == 1 && ( email != email_confirm ) )
	{
			if(lang == 'en') {alert('Your emails do not match.');}
			else {alert('あなたのEメールは異なってます。');}
			new Effect.Highlight('email', {startcolor:'#ff9999', endcolor:'#ffffcc'});
			new Effect.Highlight('email_confirm', {startcolor:'#ff9999', endcolor:'#ffffcc'});
			return false;
	}
		else if(!$('reply_t').checked && !$('reply_e').checked && !$('reply_f').checked )
	{
		if(lang == 'en') {alert('Please choose a method of reply.');}
		else {alert('ご希望の連絡方法を選んで下さい。');}
		new Effect.Highlight('m_o_r_text', {startcolor:'#ff9999', endcolor:'#ffffff'});
		return false;
	}
	else if( goods != 1 && extra_info == '' && !$('booking_request').checked)
	{
		if(lang == 'en') {alert('Please enter your comment, question, etc. into the comment box.');}
		else {alert('その他御質問・詳細等を入力して下さい。');}
		new Effect.Highlight('extra_info', {startcolor:'#ff9999', endcolor:'#ffffcc'});
		return false;
	}	
	 else if($('booking_request').checked) {


			if($('month1').value == '')
				{
					if(lang == 'en') {alert('Please enter the month of the date for your first choice.');}
					else {alert('第一希望の月を入力して下さい。');}
					new Effect.Highlight('fieldset1', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('day1').value == '')
				{
					if(lang == 'en') {alert('Please enter the day of the date for your first choice.');}
					else {alert('第一希望の日を入力して下さい。');}
					new Effect.Highlight('fieldset1', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('start_hr').value == '' )
				{
					if(lang == 'en') {alert('Please enter the start time of the your event (Hour).');}
					else {alert('御使用予定時間の始まる時間を入力して下さい。（時）');}
					new Effect.Highlight('fieldset2', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('start_min').value == '')
				{
					if(lang == 'en') {alert('Please enter the start time of the your event (Minutes).');}
					else {alert('御使用予定時間の始まる時間を入力して下さい。（分）');}
					new Effect.Highlight('fieldset2', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('end_hr').value == '' )
				{
					if(lang == 'en') {alert('Please enter the ending time of the your event (Hour).');}
					else {alert('御使用予定時間の終わり時間を入力して下さい。（時）');}
					new Effect.Highlight('fieldset2', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('end_min').value == '')
				{
					if(lang == 'en') {alert('Please enter the ending time of the your event (Minutes).');}
					else {alert('御使用予定時間の終わり時間を入力して下さい。（分）');}
					new Effect.Highlight('fieldset2', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if(!$('event_type_concert').checked && !$('event_type_dance').checked && !$('event_type_exhib').checked && !$('event_type_screen').checked && !$('event_type_party').checked && !$('event_type_other').checked)
				{
					if(lang == 'en') {alert('Please choose the type of event.');}
					else {alert('御使用内容を選んで下さい。');}
					new Effect.Highlight('fieldset3', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if($('attendees').value == '' )
				{
					if(lang == 'en') {alert('Please enter the approx. number of attendees.');}
					else {alert('御出席予定人数を入力して下さい。');}
					new Effect.Highlight('fieldset5', {startcolor:'#ff9999', endcolor:'#ffffff'});
					return false;
				}
			else if( goods != 1 && extra_info == '')
				{
					if(lang == 'en') {alert('Please enter your comment, question, etc. into the comment box.');}
					else {alert('その他御質問・詳細等を入力して下さい。');}
					new Effect.Highlight('extra_info', {startcolor:'#ff9999', endcolor:'#ffffcc'});
					return false;
				}	
	 		else {
				Form.disable('contactform');
				var url = '/CMS/themes/superdeluxe/functions/contact_mail_form.php';
				var params = Form.serialize('contactform');
				var ajax =  new Ajax.Updater({success: 'statusmessagespan'}, url, {method:'post', parameters: params, onSuccess:function(){
					new Effect.Highlight('statusmessagespan');				
				}});
	 		}				
	}	else if (goods == 1 ) {

			var lang = $('lang').value;
			var firstname = $('firstname').value;
			var surname = $('surname').value;

			var tel = $('tel').value;
			var fax = $('fax').value;
			var email = $('email').value;
			var extra_info = $('extra_info').value;
			var goods = $('goods_true').value;

			Form.disable('contactform');
			var url = '/CMS/themes/superdeluxe/functions/contact_mail_form.php';
			var params = 'lang=' + lang + '&firstname=' + firstname + '&surname=' + surname + '&address=' + address + '&postcode=' + postcode + '&country=' + country + '&tel=' + tel + '&fax=' + fax + '&email=' + email + '&booking_request=' + booking_request + '&reply=' + reply + '&extra_info=' + extra_info + '&order_str=' + order_str + '&goods=' + goods;
			var ajax =  new Ajax.Updater({success: 'statusmessagespan'}, url, {method:'post', parameters: params, onSuccess:function(){
				new Effect.Highlight('statusmessagespan');				
			}}); 

	}	else {
			var lang = $('lang').value;
			var firstname = $('firstname').value;
			var surname = $('surname').value;
			var tel = $('tel').value;
			var fax = $('fax').value;
			var email = $('email').value;
			var extra_info = $('extra_info').value;
			var booking_request = 'false';
			Form.disable('contactform');
			var url = '/CMS/themes/superdeluxe/functions/contact_mail_form.php';
			//var params = 'lang=' + lang + '&firstname=' + firstname + '&surname=' + surname + '&tel=' + tel + '&fax=' + fax + '&email=' + email + '&booking_request=' + booking_request + '&reply=' + reply + '&extra_info=' + extra_info;
			var params = Form.serialize('contactform');
			var ajax =  new Ajax.Updater({success: 'statusmessagespan'}, url, {method:'post', parameters: params, onSuccess:function(){
				new Effect.Highlight('statusmessagespan');				
			}}); 

	}
}

function get_goods(lang) {

	if ( ('goods_item1').checked || ('goods_item2').checked || ('goods_item3').checked ) {

		if ( ('goods_item1').checked ) {
			var goods_item1 = $('goods_item1_info').value;
		}
	
		if ( ('goods_item2').checked ) {
			var goods_item2 = $('goods_item2_info').value;
		}
	
		if ( ('goods_item3').checked ) {
			var goods_item3 = $('goods_item3_info').value;
		}
	
		$('goods_enquiry').value  = goods_item1 + ', ' + goods_item2 + ', ' + goods_item3;

	} else {
		if ( lang == 'en' ) {
			alert ("Please choose an item/s you're interested in.");
		} else {
			alert ("商品を選んで下さい。");
		}

	}

}


//adds a goods item to the shopping list.
function add_item(item_id ) {

	if ( $( item_id + '_checkbox' ).checked ) {
		
	} else {
		var item_title = $( item_id + '_title' ).innerHTML;
		var current_extra_info = $('extra_info').value
		$('extra_info').value = current_extra_info + '\n' + item_title;
	}	

}

//Confirms sending of weekly mail, then starts mail out using sendsubscriptions.php.
function really() {
	if (confirm("Really send the weekly mail?")) {
		Form.disable("subsform");
		$('message').innerHTML = '<span style="color: red; background: transparent url(/CMS/themes/superdeluxe/images/indicator_white.gif) top left no-repeat; padding: 0 0 0 30px;">Mails are now being sent</span>';
		var url = '/CMS/themes/superdeluxe/functions/sendsubscriptions.php';
		var en = encodeURIComponent($('en_mail_message').value);
		var ja = encodeURIComponent($('ja_mail_message').value);

		if ( $('onlymessage').checked ) {
			var onlymessage = "true";
		} else { 
			var onlymessage = "false";
		}		
		
		params = 'en=' + en + '&ja=' + ja + '&onlymessage=' + onlymessage;
		var ajax =  new Ajax.Request(url, {method: 'post', parameters: params, asynchronous:true, onSuccess: function(){
			$('message').innerHTML = '<span style="padding: 0 0 0 30px; background: transparent url(/CMS/themes/superdeluxe/images/accept.png) top left no-repeat; color: green; font-weight: bold">All done!</span>';
			new Effect.BlindUp('messagearea');
		}});
	} else {
		return false;
	}
}

//shows or hides an element.
function show_hide(id) {
	if (!Element.visible(id)) {
		new Effect.BlindDown(id);
	} else {
		new Effect.BlindUp(id);
	}
}

//Confirms sending of weekly mail, then starts mail out using periodical_mailer() below.
function send_mails(action, batch_no) {

	if ( Element.visible( 'messagearea' ) ) {
		if ( $('en_mail_message').value == 'English' && $('ja_mail_message').value == '日本語'  ) {
			alert('Please enter an English and Japanese message.');		
			new Effect.Highlight('en_mail_message', {startcolor:'#ff9999', endcolor:'#ffffff'});
			new Effect.Highlight('ja_mail_message', {startcolor:'#ff9999', endcolor:'#ffffff'});
			return false;
		} else if ( $('en_mail_message').value == 'English' ) {
			alert('Please enter an English messege.');
			new Effect.Highlight('en_mail_message', {startcolor:'#ff9999', endcolor:'#ffffff'});
			return false;
		} else if ( $('ja_mail_message').value == '日本語' ) {
			alert('Please enter a Japanese messege.');
			new Effect.Highlight('ja_mail_message', {startcolor:'#ff9999', endcolor:'#ffffff'});
			return false;
		}
	}
	
	if ( action == 'new' ) {
		var confirm_msg = "Really send the weekly mail?";
	} else {
		var confirm_msg = "Resume sending the weekly mail?";
	}
	
	if (confirm( confirm_msg )) {
		Form.disable("subsform");

		
		if ( action == 'new' ) {
			
				var url = '/CMS/themes/superdeluxe/functions/mailout_reset.php';			
				params = '';
				var ajax =  new Ajax.Request(url, {method: 'post', parameters: params, asynchronous:true, onSuccess: function(){

				periodical_mailer(batch_no)
					
				}});

		} else {

				periodical_mailer(batch_no)
				
		}
		
	}

}

//sends out the weekly email in batches using sendsubscriptions.php
function periodical_mailer(batch_no) {
		
		var url = '/CMS/themes/superdeluxe/functions/sendsubscriptions.php';
		var en = encodeURIComponent($('en_mail_message').value);
		var ja = encodeURIComponent($('ja_mail_message').value);

		if ( $('onlymessage').checked ) {
			var onlymessage = "true";
		} else { 
			var onlymessage = "false";
		}		

		if ( $('fromtomorrow').checked ) {
			var fromtomorrow = "true";
		} else { 
			var fromtomorrow = "false";
		}		

		pause = Math.round(batch_no * 0.7);
		
		params = 'en=' + en + '&ja=' + ja + '&onlymessage=' + onlymessage + '&batch_no=' + batch_no + '&fromtomorrow=' + fromtomorrow;
		new Ajax.PeriodicalUpdater('message', url , {method:'post', parameters: params, asynchronous:true, frequency: pause, onSuccess:function(){
		}});

}


//Validates, then adds an item to the shopping list
function add_item(id, lang) {
	var item_name = $( id + "_name" ).value;
	var item_color = $( id + "_color" ).options[$( id + "_color" ).selectedIndex].text;
	var item_size = $( id + "_size" ).options[$( id + "_size" ).selectedIndex].text;
	var item_quantity = $( id + "_quantity" ).options[$( id + "_quantity" ).selectedIndex].text;

	var now = (new Date()).getTime();
	if ( item_color == '' ) {
		if ( lang == 'en' ) {
			alert("Please select a color.");
		}	else {
			alert("色を選んで下さい。")  
		}
		new Effect.Highlight(id + "_color", {startcolor:'#ff9999', endcolor:'#ffffcc'});
	} else if ( item_size == '' ) {
		if ( lang == 'en' ) {
			alert("Please select a size.");
		}	else {
			alert("サイズを選んで下さい。")  
		}
		new Effect.Highlight(id + "_size", {startcolor:'#ff9999', endcolor:'#ffffcc'});
	} else if(/sold/.test(item_size)) {
		if ( lang == 'en' ) {
			alert("Sorry, that item has sold out.");
		}	else {
			alert("売り切られました。")  
		}
		new Effect.Highlight(id + "_size", {startcolor:'#ff9999', endcolor:'#ffffcc'});
	} else {

		Element.hide('shopping_list_placeholder');

		if ( lang == 'en' ) {
			var item = 'Item: ';
			var color = 'Color: ';
			var size = 'Size: ';
			var quantity = 'Quantity: ';
		}	else {
			var item = 'Item: ';
			var color = '色: ';
			var size = 'サイズ: ';
			var quantity = '数量: ';
		}	

		var li = document.createElement("li"); //creates new li element
		var shopping_list_item_ID = now + '_shopping_list_item';
		li.id = shopping_list_item_ID;


		var order_string = escape('][' + item_name + ', ' + color + item_color + ', ' + size + item_size + ', ' + quantity + item_quantity);
		var shopping_list_li = '<span class="name" >' + item_name + '</span><img src="/CMS/themes/superdeluxe/images/minus.gif" onclick="remove_item(\'' + shopping_list_item_ID + '\', \'' + order_string + '\', \'' + lang + '\')" /><span class="color" >' + color + item_color + '</span><span class="size" >' + size + item_size + '</span><span class="quantity" >' + quantity + item_quantity + '</span>';
	
		//alert(order_string);
	
		var current_contents = $('hidden_shopping_list').value;
		
		$('hidden_shopping_list').value = current_contents + '' + order_string;

		$( id + "_color" ).options[0].selected = true;
		$( id + "_size" ).options[0].selected = true;


		li.innerHTML = shopping_list_li;
		$('shopping_list').appendChild(li);

		if ( lang == 'en' ) {
			$(id + "_msg").innerHTML = "The item/s have been added to your shopping list.";
		}	else {
			$(id + "_msg").innerHTML = "商品はショッピングリストに追加されました。";
		}


	}

}

//Removes an item from the shopping list.
function remove_item(id, str, lang) {
	
	if ( lang == 'en' ) {
		confirm_msg = "Remove from your shopping list?";
	}	else {
		confirm_msg = "ショッピングリストから除きますか？";
	}
	
	if (confirm( confirm_msg )) {
		var current_items_str = $('hidden_shopping_list').value;
		regexp = new RegExp(str)
		var new_items_str = current_items_str.replace(regexp, '');
		$('hidden_shopping_list').value = new_items_str;
	
		Effect.Fade(id);
	
		if ( $('hidden_shopping_list').value == '' ) {
			Effect.Appear('shopping_list_placeholder');
		}

	}

}

//hides or show the fax checkbox.
function hide_show_fax() {

	if($('fax').value != 'Fax' && $('fax').value != '') {
		Effect.Appear('fax_checkbox');
	} else {
		Effect.DropOut('fax_checkbox');
		$('reply_f').checked=false;
	}

}

//hides or show the map location info on the map page.
function hide_show_map_info(id, html, x, y) {

	var elementList = document.getElementsByClassName("selected");
	var elements = $A(elementList);	

	elements.each(function(element){
			Element.removeClassName(element, 'selected');
			});
			
	Element.addClassName( id + '_link', 'selected');

	var point7 = new GLatLng(x, y)

	if (id == "sdlx_address") {
	
	var Icon = new GIcon();
  Icon.image = "/CMS/themes/superdeluxe/images/sdlx_marker.png";
  Icon.iconSize = new GSize(20, 34);
  Icon.shadow = "/CMS/themes/superdeluxe/images/sdlx_marker_shad.png";
  Icon.shadowSize = new GSize(38, 34);
  Icon.iconAnchor = new GPoint(8, 34);
  Icon.infoWindowAnchor = new GPoint(5, 2);
	  
  var marker7 = new GMarker(point7, Icon);

	} else {
  var marker7 = new GMarker(point7);

	};
	  
	map.closeInfoWindow();
  map.addOverlay(marker7);
  GEvent.addListener(marker7, "click", function() {
  	marker7.openInfoWindowHtml(html);
  });
  marker7.openInfoWindowHtml(html);	

	var elementList2 = document.getElementsByClassName("map_info");
	var elements2 = $A(elementList2);	

	elements2.each(function(element2){
			if (element2.visible) {
				element2.style.display = "none";
			}			
	});

	Element.show(id);
	
	map.panTo(point7);
	
}

//Updates the events dropdown depending on year or month selected.
function event_dropdown() {
	var month = $('event_month').value;
	var year = $('event_year').value;
	var url = '/CMS/themes/superdeluxe/functions/res_list_event_dropdown.php';
	var params = 'event_year=' + year + '&event_month=' + month;
	new Ajax.Updater('event_selector', url, {method:'post', parameters: params, onSuccess:function(){
		$('res_list_header').innerHTML = "Events for..";
	}});
}

//toggles the preferences checkboxes on the subscriptions page.
function toggle_taglist() {
	if(Element.visible('taglist')==false && $('email_pref_genre').checked )
	{
		new Effect.BlindDown('taglist',{duration:0.5});
	}
	else if ( Element.visible('taglist')==true && $('email_pref_general').checked ) 	
	{
		new Effect.BlindUp('taglist',{duration:0.5});
	}
}


function toggle_nightday(state, id1, id2) {
	if ( state == 'day' ) {
		Element.hide('night_' + id2);
		Element.show('day_' + id1);
	} else {
		Element.hide('day_' + id1);
		Element.show('night_' + id2);
	}

}

//show placeholder content for the days without events.
function non_event_preview(non_event, date) {

	var elementList = document.getElementsByClassName("selected");
	var elements = $A(elementList);	

	elements.each(function(element){
			Element.removeClassName(element, 'selected');
			});

	var date_id = date.replace(/\-/g,' ');
	Element.addClassName('date_' + date, 'selected');

	Element.hide('eventinfo_wrapper');
	$('viewpane').innerHTML = '<img id="viewpane_indicator" src="/CMS/shared/images/indicator_medium.gif" alt="activity indicator">';
	//new Effect.SlideUp('eventinfo',{duration:0.3, afterFinish:function(){
		var url = '/CMS/themes/superdeluxe/viewpane.php';
		var params = 'non_event=' + non_event + '&date=' + date_id;
		var ajax = new Ajax.Updater(
		{success: 'viewpane'},
		url,
		{method: 'get', parameters: params, onComplete:function(){
			
			Element.show('eventinfo_wrapper');
			//new Effect.SlideDown('eventinfo',{duration:0.3});
			
		}});
	
	//}})
}

//toggles the additional info in the about page.
function hide_show_about(show) {

	if ( show == 'floorplan') {

		if (!Element.visible('about_floorplan_list')) {

			if (Element.visible('about_photo_list')) {
			 new Effect.BlindUp('about_photo_list',{duration:0.5, afterFinish:function(){
			 	new Effect.BlindDown('about_floorplan_list',{duration:0.5});
				Element.addClassName('sub_nav_floorplan_link', 'selected');
				Element.removeClassName('sub_nav_interior_link', 'selected');
			 }});
			} else {
				new Effect.BlindDown('about_floorplan_list',{duration:0.5});
				Element.addClassName('sub_nav_floorplan_link', 'selected');
			}

		} else {
				new Effect.BlindUp('about_floorplan_list',{duration:0.5});
				Element.removeClassName('sub_nav_floorplan_link', 'selected');
		}


	} else if ( show == 'interior') {

		
		if (!Element.visible('about_photo_list')) {
		
			if (Element.visible('about_floorplan_list')) {
			 new Effect.BlindUp('about_floorplan_list',{duration:0.5, afterFinish:function(){
			 	new Effect.BlindDown('about_photo_list',{duration:0.5});
				Element.addClassName('sub_nav_interior_link', 'selected');
				Element.removeClassName('sub_nav_floorplan_link', 'selected');
			 }});
			} else {
				new Effect.BlindDown('about_photo_list',{duration:0.5});
				Element.addClassName('sub_nav_interior_link', 'selected');		
			}

		} else {
				new Effect.BlindUp('about_photo_list',{duration:0.5});
				Element.removeClassName('sub_nav_interior_link', 'selected');
		}

	}
	
}

//deletes a subscriber on the 'Mailing List' page.
function delete_subscriber(id) {
		if (confirm( "Delete subscriber?" )) {
			var url = '/CMS/themes/superdeluxe/functions/delete_subscriber.php';
			var params = 'id=' + id;
			var ajax = new Ajax.Request( url, {method: 'post', parameters: params, onComplete:function(){
				
				Effect.Fade('subscriber_' + id);
				
			}});
		} else {
			return false;
		}
}

//validation for the 'Add a subscriber' form on the 'Mailing List' page.
function add_sub_validation() {
	var firstname = $('sub_firstname').value;
	var lastname = $('sub_lastname').value;
	var email = $('sub_email').value;
	var email = $('sub_email').value;

	if ( firstname == '' ) {
		alert("Please enter a firstname.");
		new Effect.Highlight('sub_firstname', {startcolor:'#ff9999', endcolor:'#ffffff'});
		return false;
	} else if ( lastname == '' ) {
		alert("Please enter a lastname.");
		new Effect.Highlight('sub_lastname', {startcolor:'#ff9999', endcolor:'#ffffff'});
		return false;
	} else if ( email == '' ) {
		alert("Please enter an email address.");
		new Effect.Highlight('sub_email', {startcolor:'#ff9999', endcolor:'#ffffff'});
		return false;
	} else if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
		alert("Please enter a valid email address.");
		new Effect.Highlight('sub_email', {startcolor:'#ff9999', endcolor:'#ffffff'});
		return false;
	} else if ( !$('sub_lang_en').checked && !$('sub_lang_ja').checked ) {
		alert("Please select a language.");
		new Effect.Highlight('sub_firstname_lang', {startcolor:'#ff9999', endcolor:'#eeeeee'});
		return false;
	} else {
		return true;
	}	

}

//Toggles an element
function toggle_element(id) {

	if (Element.visible(id)) {
		new Effect.BlindUp(id,{duration:0.5});
	} else {
		new Effect.BlindDown(id,{duration:0.5});
	}
}

//hides the catering option on the booking request form.
function hide_catering() {
	if (Element.visible('catering_options')) {
		new Effect.BlindUp('catering_options',{duration:0.5});
		$('event_catering_food').checked = false;
		$('event_catering_drink').checked = false;
	}
}

//selects the correct array for the goods item on the goods page.
function item_size( item, lang ) {
	var style = $( item + "_color" ).options[$( item + "_color" ).selectedIndex].value;

	if ( style == 'item1_style1' && lang == 'en' ) {
		array = item1_style1_sizes_en;
	} else if ( style == 'item1_style2' && lang == 'en' ) {
		array = item1_style2_sizes_en;
	} else if ( style == 'item1_style1' && lang == 'ja' ) {
		array = item1_style1_sizes_ja;
	} else if ( style == 'item1_style2' && lang == 'ja' ) {
		array = item1_style2_sizes_ja;
		
	} else if ( style == 'item2_style1' && lang == 'en' ) {
		array = item2_style1_sizes_en;
	} else if ( style == 'item2_style2' && lang == 'en' ) {
		array = item2_style2_sizes_en;
	} else if ( style == 'item2_style1' && lang == 'ja' ) {
		array = item2_style1_sizes_ja;
	} else if ( style == 'item2_style2' && lang == 'ja' ) {
		array = item2_style2_sizes_ja;
		
	} else if ( style == 'item3_style1' && lang == 'en' ) {
		array = item3_style1_sizes_en;
	} else if ( style == 'item3_style1' && lang == 'ja' ) {
		array = item3_style1_sizes_ja;
		
	} else if ( style == 'item4_style1' && lang == 'en' ) {
		array = item4_style1_sizes_en;
	} else if ( style == 'item4_style2' && lang == 'en' ) {
		array = item4_style2_sizes_en;
	} else if ( style == 'item4_style3' && lang == 'en' ) {
		array = item4_style3_sizes_en;
	} else if ( style == 'item4_style1' && lang == 'ja' ) {
		array = item4_style1_sizes_ja;
	} else if ( style == 'item4_style2' && lang == 'ja' ) {
		array = item4_style2_sizes_ja;
	} else if ( style == 'item4_style3' && lang == 'ja' ) {
		array = item4_style3_sizes_ja;
		
	} else if ( style == 'item5_style1' && lang == 'en' ) {
		array = item5_style1_sizes_en;
	} else if ( style == 'item5_style2' && lang == 'en' ) {
		array = item5_style2_sizes_en;
	} else if ( style == 'item5_style1' && lang == 'ja' ) {
		array = item5_style1_sizes_ja;
	} else if ( style == 'item5_style2' && lang == 'ja' ) {
		array = item5_style2_sizes_ja;
		
	} else if ( style == 'item6_style1' && lang == 'en' ) {
		array = item6_style1_sizes_en;
	} else if ( style == 'item6_style2' && lang == 'en' ) {
		array = item6_style2_sizes_en;
	} else if ( style == 'item6_style1' && lang == 'ja' ) {
		array = item6_style1_sizes_ja;
	} else if ( style == 'item6_style2' && lang == 'ja' ) {
		array = item6_style2_sizes_ja;
		
	} else if ( style == 'item7_style1' && lang == 'en' ) {
		array = item7_style1_sizes_en;
	} else if ( style == 'item7_style2' && lang == 'en' ) {
		array = item7_style2_sizes_en;
	} else if ( style == 'item7_style1' && lang == 'ja' ) {
		array = item7_style1_sizes_ja;
	} else if ( style == 'item7_style2' && lang == 'ja' ) {
		array = item7_style2_sizes_ja;
	}
	
	for (i=0; i < array.length; i++) {
		$(item + "_size").options[i] = new Option(array[i],i);
	}

}


