'use strict'; (function(){ var isDescendantOf = function(element, tagName){ tagName = tagName.toUpperCase(); var isDescendant = false; var parentElement; while ( parentElement = element.parentElement ){ isDescendant = isDescendant || parentElement.nodeName === tagName; element = parentElement; } return isDescendant; } if ( typeof dmnConfig === 'undefined' || !dmnConfig.fields ){ var dmnFormHtml = '
{{locale.language_name}}

{{getLocaleString('booking_details.make_an_enquiry')}}

Powered by DesignMyNight.com
'; if ( typeof dmnElement !== 'undefined' && dmnElement ){ dmnElement.insertAdjacentHTML('beforeend', dmnFormHtml); } else { var scripts = document.getElementsByTagName('script'); var numScripts = scripts.length; var written = false; for ( var i = 0; i < numScripts; i++ ){ var currentScript = scripts[i]; if ( !written && decodeURIComponent(currentScript.src).indexOf("designmynight.com/pf/js?venue_id=592feb99fbe9424e2754cff3") > -1 ){ if ( isDescendantOf(currentScript, 'body') ){ currentScript.insertAdjacentHTML('afterend', dmnFormHtml); written = true; } } } if ( !written ){ document.write(dmnFormHtml); } } } })(); var DMN = DMN || {}; DMN.baseUrl = 'https://bookings.designmynight.com'; DMN.debug = false; DMN.newDayCutoff = 7; DMN.days = 'sunday,monday,tuesday,wednesday,thursday,friday,saturday'.split(','); DMN.months = 'January,February,March,April,May,June,July,August,September,October,November,December'.split(','); DMN.locales = [{"code":"en-GB","locale_name":"British English","language_name":"English","country_code":"GB","strings":{"booking_actions":{"add_to_calendar":"Add to calendar","booking_cancelled":"Your booking at %1 has been cancelled","cancel_booking":"Cancel your booking","change":"Change","change_booking":"Change your booking"},"booking_details":{"alternative_time_selected_sentence":"You've updated your booking time. Please make sure you're aware that this booking will now take place at %1.","alternative_times_and_venues_found_sentence":"Sorry, %1 isn't available at the time you've selected, but there is availability at the times and venues below.","alternative_times_found_sentence":"Sorry, %1 isn't available at the time you've selected, but there is availability at the times below.","alternative_venue_selected_sentence":"You've changed the location of your booking. Please make sure you're aware that this booking will now take place at %1.","alternative_venues_found_sentence":"Sorry, %1 isn't available at the time you've selected, but there is availability at the venues below.","assigned_area":"Assigned area","book_now":"Book Now","booking_ref":"Reference code","booking_type":"Booking type","continuing_as_enquiry_sentence":"You've opted to continue making this enquiry. Please be advised that the %1 team may not be able to fit you in as the venue appears to be full at this time.","customer_requests":"Special Requests","date":"Date","deposit_or_preorder_required_sentence":"To secure this booking, you will either need to pre-order and pay for some items, or we will need to hold your card details for an amount of %1. If we hold your card details, no money will be taken unless you fail to turn up for your booking or break the booking terms.","deposit_required_sentence":"To secure this booking, we will need to hold your card details for an amount of %1. We hold your card details, but no money will be taken unless you fail to turn up for your booking or break the booking terms.","pre_order_payment_and_payment_required_sentence":"You will need to pre-order and pay for some items and make a payment of %1 in order to complete this booking","pre_order_no_payment_and_payment_required_sentence":"You will need to pre-order some items and make a payment of %1 to complete this booking","pre_order_no_payment_and_deposit_required_sentence":"You will need to pre-order some items and we'll hold your card details for a deposit of %1 to complete this booking","dob":"Birthday","email":"Email","enquire_now":"Enquire Now","first_name":"First Name","guest":"guest","guest_list_names":"Guest list names","guest_list_names_required_sentence":"Only names provided will be put on the guest list.","guests":"guests","last_name":"Last Name","make_a_booking":"Make a booking","make_an_enquiry":"Make a booking enquiry","may_enquire_sentence":"You can still make an enquiry for your chosen time if you wish, but do please note that %1 appears to be full at the time you selected.","miles_from":"miles from","min_spend_sentence":"You have a minimum spend of %1 with %2 remaining to spend on your visit.","no_availability_sentence":"Sorry, %1 has no booking slots available for your time and number of people, nor within 3 hours either side of your requested time.","num_people":"Number of people","offers":"Offers","offers_available_sentence":"Do you want to include an offer in your booking?","payment_or_preorder_required_sentence":"To secure this booking, you will either need to pre-order and pay for some items, or we will need to take a payment of %1.","payment_required_sentence":"To secure this booking, we will need to take a payment of %1.","phone":"Mobile Number","pre_order_and_deposit_required_sentence":"You will need to pre-order some items and pay a deposit for your chosen items in order to complete this booking.","pre_order_and_payment_required_sentence":"You will need to pre-order some items and pay for your chosen items in order to complete this booking.","pre_order_required_sentence":"You will need to pre-order some items in order to complete this booking.","selected_offer":"Selected offer","service_charge":"Discretionary service charge","summary_sentence":"You are making a %1 booking enquiry for %2 people at %3 on %4.","time":"Time","time_warning_sentence":"Note: We highly recommend booking at least 24 hours prior to your preferred date.","total_seated_capacity":"total seated capacity","until":"Until","venue":"Venue","summary_sentence_booking":"You are making a %1 booking for %2 people at %3 on %4."},"booking_emails":{"booking_cancelled_subject":"Booking Cancelled","booking_confirmation_subject":"Booking Confirmation","change_booking_sentence":"To change your booking please reply to this email.","closing_sentence":"Thanks for booking and have a great time at %1.","dont_forward_advice":"We don't recommend forwarding this email, as that will allow others in your group to manage all pre-orders for your booking.","enquiry_not_confirmed_sentence":"Please note this booking is not yet confirmed.","enquiry_received_intro_sentence":"Thank you for your enquiry, we will be in touch shortly.","enquiry_received_next_steps_sentence":"Thank you for your enquiry, we will be in touch shortly to give you more information about your enquiry at %1.","enquiry_received_subject":"Booking Enquiry Received","enquiry_received_title":"Your enquiry for %1 has been received","general_subject_booking_no_venue":"Regarding your booking","general_subject_booking":"Your booking at %1","general_subject_enquiry_no_venue":"Regarding your enquiry","general_subject_enquiry":"Your enquiry at %1","heading_payment_request":"Secure your booking at %1","heading_preorder":"Pre-order now for your booking at %1","heading_preorder_now":"Pre order now for your booking at %1","heading_preorder_received":"We have received your pre order","info_from_venue":"Information from %1 about your booking","message_from_venue":"Message from %1","payment_request_cta":"Secure your booking online now","preorder_received_closing_sentence":"Thanks for your enquiry!","preorder_received_intro_sentence":"Thank you, we have received your pre-order for your booking at 1% on 2%.","salutation_formal":"Dear","summary_sentence":"%1 people on %2 %3."},"booking_process":{"booking_cancelled_confirmation_sentence":"Thank you, your booking has been cancelled.","booking_confirmed_sentence":"Your booking at %1 is now confirmed.","booking_policy":"Booking Policy","booking_policy_confirm_sentence":"I confirm I have read this booking policy.","booking_received_confirmed_sentence":"Thanks! Your booking at %1 is confirmed. You will receive confirmation by email shortly.","confirm_cancel_booking_sentence":"Please confirm that you want to cancel this booking.","marketing_permission_sentence":"I am happy for %1 and venues associated with %1 to send me exclusive information and deals, from time to time.","interested_in_a_package":"Interested in a package?","thank_you_for_booking":"Thank you for booking!","booking_cancelled_sentence":"Your booking at %1 has been cancelled.","enquiry_cancelled_sentence":"Thank you, your enquiry has been cancelled."},"dates":{"april":"April","august":"August","day":"day","december":"December","february":"February","friday":"Friday","january":"January","july":"July","june":"June","march":"March","may":"May","monday":"Monday","month":"month","november":"November","october":"October","saturday":"Saturday","september":"September","sunday":"Sunday","thursday":"Thursday","tuesday":"Tuesday","wednesday":"Wednesday","year":"year"},"general":{"add_another":"Add another","continue":"continue","female":"female","gender":"gender","male":"male","next":"next","no_thanks":"No thanks","please_correct_errors":"Please correct the errors above before continuing.","powered_by":"Powered by","sorry":"sorry","update":"update"},"payments":{"auth_request_sentence":"To secure your booking at %1, we need to verify your card details for %2. No money will be taken unless you fail to turn up for your booking or break the %3 booking terms.","card_details_request":"Please provide your card details using the secure form below.","card_number":"Card Number","cardholder_name":"Cardholder Name","cvc":"CVC","expiry_date":"Expiry","payment_request_sentence":"To secure this booking, we will need to hold your card details for an amount of %1. If we hold your card details, no money will be taken unless you fail to turn up for your booking or break the booking terms.","postcode":"Postcode","submit_text":"Submit card details","summary_sentence_auth":"No money will be taken from your card. %1 are just validating your card details for \u00a3X to confirm your booking.","summary_sentence_payment":"To secure this booking, we will need to take a payment of %1."},"preorders":{"a_la_carte":"A La Carte","add_preorders_link_intro":"If you want to let others in your group pre-order items you can share this link below:","amend_your_order":"Amend your order","canapes":"Canapes","comments_label":"Dietary requirements & order comments","complete_action_intro_no_payment":"No payment is required at this time. When all orders have been received, please mark your pre-orders as complete below.","complete_cta":"Complete your pre-order","dessert":"Dessert","email_label":"Email address","main":"Main","manage_preorder_after_adding_note":"After adding your pre-orders, please always come back to this page to finalise your pre-order with the venue, using the \"Complete Pre-Order\" button below.","manage_preorders_action_intro":"Use this button to manage your pre-orders and see what items others in your group have ordered:","manage_preorders_cta":"Manage your order","name_label":"Your name","no_items_added":"No orders have been added to your order yet.","no_items_added_prompt":"Add some items to get started!","order_received_lead_booker_note":"If you are the lead booker please go back to the Manage Your Order page to let the venue know when your pre-order is complete.","order_received_sentence":"Thank you, we have received your order. Confirmation of this order has also been sent to %1.","order_summary":"Order Summary","pay_now_cta":"Pay Now","payment_required_prompt":"A payment of %1 is now required, which you can make securely below.","payment_required_to_complete":"To complete your order, a payment of %1 will be required.","place_order_cta":"Place Order","preorder_cta":"Pre-order items now","preorder_received":"Pre Order received","price":"Price","quantity":"Quantity","starter":"Starter","summary":"Summary","your_details_heading":"Your details","bookings_close_on_date_sentence":"Please note that pre-orders for your booking will close on %1."},"website_actions":{"back_cta":"< Back","close_action":"Close","continue_as_guest":"Continue as guest","log_out_action":"Not you? Log out","view_on_map":"View on map"}}}]; DMN.formConfig = DMN.formConfig || {}; DMN.formConfig[111536966139] = {"id":"111536966139","type":"collins","form":"dmn-form-111536966139","venueId":["592feb99fbe9424e2754cff3"],"venues":[{"_id":"592feb99fbe9424e2754cff3","title":"Cellarium Cafe & Terrace","booking_restrictions":{"594a640191c0980a937c9bb8":{"monday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"tuesday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"wednesday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"thursday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"friday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"saturday":{"bookings_from":"09:00","bookings_to":"16:30","booking_available":true,"booking_notes":""},"sunday":{"bookings_from":"10:00","bookings_to":"16:00","booking_available":true,"booking_notes":""}},"594a62eac697f00e114e70ea":{"monday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"tuesday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"wednesday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"thursday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"friday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"saturday":{"booking_available":true,"bookings_from":"09:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"sunday":{"booking_available":true,"bookings_from":"10:00","bookings_to":"11:30","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""}},"594a638791c09809c55993fc":{"monday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"tuesday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"wednesday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"thursday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"friday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"saturday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"sunday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""}},"5981b631e46e7934a078dc57":{"monday":{"booking_available":false,"booking_notes":""},"tuesday":{"booking_available":false,"booking_notes":""},"wednesday":{"booking_available":true,"bookings_from":"17:00","bookings_to":"19:00","bookings_shut":"11:00","max_people":70,"booking_notes":""},"thursday":{"booking_available":false,"booking_notes":""},"friday":{"booking_available":false,"booking_notes":""},"saturday":{"booking_available":false,"booking_notes":""},"sunday":{"booking_available":false,"booking_notes":""}}},"booking_unavailable":{"594a638791c09809c55993fc":[{"id":"595bde9792c70456774db0a2","unavailable_from":"2018-07-10","unavailable_from_time":"12:00","unavailable_to":"2018-07-10","unavailable_to_time":"12:45","unavailable_message":"Private hire"}],"594a640191c0980a937c9bb8":[{"id":"595bdec7e46e794dc47e44a2","unavailable_from":"2018-07-17","unavailable_from_time":"15:30","unavailable_to":"2018-07-17","unavailable_to_time":"18:00","unavailable_message":"Private hire"}],"all":[{"id":"5978d17fe46e79262b63407b","unavailable_from":"2018-05-24","unavailable_from_time":null,"unavailable_to":"2018-05-24","unavailable_to_time":null,"unavailable_message":"Private hire","close_admin":false},{"id":"5b1134875a00b377fe4d8aeb","unavailable_from":"2018-06-08","unavailable_to":"2018-06-08","close_admin":true,"unavailable_message":"Westminster Abbey Event"},{"id":"5b56f2847447b343e24f7d08","unavailable_from":"2018-07-24","unavailable_from_time":"10:30","unavailable_to":"2018-07-24","unavailable_to_time":"18:00","close_admin":true}],"594a62eac697f00e114e70ea":[{"id":"5ad888144f4b1808147d6967","unavailable_from":"2018-09-11","unavailable_from_time":"08:00","unavailable_to":"2018-07-10","unavailable_to_time":"12:00","unavailable_message":"Abbey event"}],"5981b631e46e7934a078dc57":[{"id":"5b17a435e20c8835e9753803","unavailable_from":"2018-08-15","unavailable_from_time":"17:00","unavailable_to":"2018-08-15","unavailable_to_time":"21:00","unavailable_message":"No Wednesday late due to Abbey event"}]},"opening_times":{"monday":{"status":true,"open":"08:00","close":"18:00","private_hire":false},"tuesday":{"status":true,"open":"08:00","close":"18:00","private_hire":false},"wednesday":{"status":true,"open":"08:00","close":"18:00","private_hire":false},"thursday":{"status":true,"open":"08:00","close":"18:00","private_hire":false},"friday":{"status":true,"open":"08:00","close":"18:00","private_hire":false},"saturday":{"status":true,"open":"09:00","close":"17:00","private_hire":false},"sunday":{"status":true,"open":"10:00","close":"16:00","private_hire":false}},"bookings_shut":{"monday":{"time":"17:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"tuesday":{"time":"17:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"wednesday":{"time":"17:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"thursday":{"time":"17:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"friday":{"time":"17:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"saturday":{"time":"16:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"},"sunday":{"time":"15:00","message":"Online bookings are now closed, if you\u2019re trying to make a booking for today's date - call the venue directly on 020 7222 0516"}},"venue_group":"57ce799fe94744df0f2c3d23","booking_types":[{"id":"594a640191c0980a937c9bb8","name":"Afternoon Tea","value":16,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"color":"#E32322","booking_rules":{"monday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"tuesday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"wednesday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"thursday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"friday":{"bookings_from":"08:00","bookings_to":"17:00","booking_available":true,"booking_notes":""},"saturday":{"bookings_from":"09:00","bookings_to":"16:30","booking_available":true,"booking_notes":""},"sunday":{"bookings_from":"10:00","bookings_to":"16:00","booking_available":true,"booking_notes":""}},"time_interval":15,"cover_limits":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":true},"from":"08:00","to":"16:00","max_arrivals":50},{"date_type":"date","date":"2017-10-25","from":"14:00","to":"21:00","max_arrivals":0}],"auto_confirm_rules":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":true},"min_people":1,"max_people":9,"time_from":"10:00","time_to":"16:00"}],"areas":[{"id":"594a670cc697f0140b018498","name":"102"},{"id":"594a670c91c0980bd06504a4","name":"103"},{"id":"594a670dc4b5737c9b4f2ff6","name":"104"},{"id":"594a670dc4b5737c9b4f2ff7","name":"106"},{"id":"594a670e91c0980cf90875f2","name":"107"},{"id":"594a670e91c0980cf90875f3","name":"108"},{"id":"594a670fc4b5737b77533c6e","name":"109"},{"id":"594a671091c0980b227658c3","name":"110"},{"id":"594a6711c697f013c2613472","name":"111"},{"id":"594a6711c4b5737ab3405a8e","name":"112"},{"id":"594a673ac697f012831258b8","name":"113"},{"id":"594a673a91c0980d81772002","name":"123"},{"id":"594a673b91c0980d81772003","name":"124"},{"id":"594a673bc697f012831258b9","name":"125"},{"id":"594a673c91c0980d81772004","name":"126"},{"id":"594a673d91c0980d81772005","name":"114"},{"id":"594a6752c697f00e06165d89","name":"115"},{"id":"594a6752c697f00e06165d8a","name":"116"},{"id":"594a6753c697f00e06165d8b","name":"117"},{"id":"594a676391c0980b227658c4","name":"118"},{"id":"594a6763c4b5737b7137454d","name":"119"},{"id":"594a6764c697f0110c6868bd","name":"120"},{"id":"594a676a91c0980b227658c5","name":"121"},{"id":"594a676ac4b573778a2b9351","name":"122"},{"id":"594a676bc697f0140a7c75d9","name":"301"},{"id":"594a676c91c0980b227658c6","name":"302"},{"id":"594a6777c697f0110c6868be","name":"303"},{"id":"594a6777c697f0110c6868bf","name":"304"}],"send_confirmation_emails":true,"send_cancellation_emails":false,"send_confirmation_sms":false,"confirmation_email_message":"Thank you for booking Cellarium Cafe and Terrace.\nWe are looking forward to seeing you.\nPlease be aware we hold the right to release your table if you do not arrive within 20 minutes of your designated reservation time.\nIf you wish to cancel or amend your reservation, please call the restaurant on 020 7222 0516 westminsterabbey@benugo.com","acknowledgement_email_message":"Thank you for your enquiry. Someone will get in touch with your shortly.\nHave a lovely day.\nCellarium Cafe and Terrace","label_colour":"#f7c6c7"},{"id":"594a62eac697f00e114e70ea","name":"Breakfast","value":10,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"color":"#8CBB26","booking_rules":{"monday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"tuesday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"wednesday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"thursday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"friday":{"booking_available":true,"bookings_from":"08:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"saturday":{"booking_available":true,"bookings_from":"09:00","bookings_to":"11:00","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""},"sunday":{"booking_available":true,"bookings_from":"10:00","bookings_to":"11:30","bookings_shut":"07:30","max_duration":120,"min_people":1,"max_people":80,"booking_notes":""}},"time_interval":15,"cover_limits":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":true},"from":"08:00","to":"11:00","max_arrivals":40}],"auto_confirm_buffer":15,"apply_buffer_to_admin":false,"auto_confirm_rules":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":false},"min_people":1,"max_people":8,"time_from":"08:00","time_to":"11:00"},{"weekdays":{"saturday":true},"min_people":1,"max_people":8,"time_from":"09:00","time_to":"11:00"},{"weekdays":{"sunday":true},"min_people":1,"max_people":8,"time_from":"10:00","time_to":"11:00"}],"areas":[{"id":"594a61e291c09808ae74d1a5","name":"1"},{"id":"594a6435c4b5737b68186931","name":"2"},{"id":"594a6435c4b5737b68186932","name":"3"},{"id":"594a6436c4b5737b65619f9a","name":"5"},{"id":"594a6437c697f012ec5ec840","name":"6"},{"id":"594a6437c697f012ec5ec841","name":"7"},{"id":"594a6438c697f012ec5ec843","name":"8"},{"id":"594a644dc697f012fe4a66fe","name":"9"},{"id":"594a644d91c09809803454d3","name":"10"},{"id":"594a644ec697f012fe4a6702","name":"11"},{"id":"594a644fc697f013007b581d","name":"12"},{"id":"594a6450c697f012fe4a6706","name":"13"},{"id":"594a649cc4b5737b696da104","name":"14"},{"id":"594a649cc697f00f751030bf","name":"15"},{"id":"594a649c91c0980b3743b45f","name":"16"},{"id":"594a64a191c0980a9566a773","name":"17"},{"id":"594a64dec4b5737cab20e95e","name":"18"},{"id":"594a64de91c0980b716a5109","name":"19"},{"id":"594a64df91c0980bda43fa92","name":"21"},{"id":"594a64dfc697f012f258bdc6","name":"22"},{"id":"594a64e0c697f00eaa4062ad","name":"23"},{"id":"594a64f4c4b5737ca0520fd2","name":"24"},{"id":"594a64fdc4b5737c255426cd","name":"224"},{"id":"594a6501c4b5737c29338700","name":"25"},{"id":"594a6503c4b5737c255426da","name":"26"},{"id":"594a650bc4b5737c1078dc31","name":"27"},{"id":"594a650cc4b5737c1078dc32","name":"28"},{"id":"594a650fc4b5737c255426db","name":"29"},{"id":"594a6510c4b5737b68186941","name":"30"},{"id":"594a6512c4b5737c255426dc","name":"31"},{"id":"594a6518c697f013c40594f2","name":"55"},{"id":"594a651a91c09809d2062706","name":"56"}],"send_confirmation_emails":true,"send_cancellation_emails":true,"send_confirmation_sms":false,"confirmation_email_message":"Thank you for booking Cellarium Cafe and Terrace.\nWe are looking forward to seeing you.\nPlease be aware we hold the right to release your table if you do not arrive within 20 minutes of your designated reservation time.\nIf you wish to cancel or amend your reservation, please call the restaurant on 020 7222 0516 westminsterabbey@benugo.com","acknowledgement_email_message":"Thank you for your enquiry. Someone will get in touch with your shortly.\nHave a lovely day.\nCellarium Cafe and Terrace","customer_changes_max_num_people":4,"label_colour":"#fad8c7"},{"id":"594a638791c09809c55993fc","name":"Lunch","value":15,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"color":"#FDC60B","booking_rules":{"monday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"tuesday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"wednesday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"thursday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"friday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"saturday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""},"sunday":{"bookings_from":"12:00","bookings_to":"15:30","bookings_shut":"11:00","booking_available":true,"booking_notes":""}},"time_interval":15,"booking_overrides":[{"id":"59d23b6e246ed02d93297c4c","date_from":"2017-10-25T00:00:00","date_to":"2017-10-25T00:00:00","booking_available":true,"bookings_from":"12:00","bookings_to":"14:00"}],"cover_limits":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":true},"from":"12:00","to":"15:30","max_arrivals":50},{"date_type":"date","date":"2017-09-28","from":"12:00","to":"13:30","max_arrivals":0},{"date_type":"date","date":"2017-09-28","from":"15:30","to":"17:30","max_arrivals":0},{"date_type":"date","date":"2017-10-25","from":"14:00","to":"21:00","max_arrivals":0}],"auto_confirm_buffer":15,"apply_buffer_to_admin":false,"auto_confirm_rules":[{"weekdays":{"monday":true,"tuesday":true,"wednesday":true,"thursday":true,"friday":true,"saturday":true,"sunday":true},"min_people":1,"max_people":9,"time_from":"12:00","time_to":"16:00"}],"areas":[{"id":"594a670dc4b5737c9b4f2ff6","name":"104"},{"id":"594a670dc4b5737c9b4f2ff7","name":"106"},{"id":"594a670e91c0980cf90875f2","name":"107"},{"id":"594a670e91c0980cf90875f3","name":"108"},{"id":"594a670fc4b5737b77533c6e","name":"109"},{"id":"594a671091c0980b227658c3","name":"110"},{"id":"594a6711c697f013c2613472","name":"111"},{"id":"594a6711c4b5737ab3405a8e","name":"112"},{"id":"594a673ac697f012831258b8","name":"113"},{"id":"594a673a91c0980d81772002","name":"123"},{"id":"594a673b91c0980d81772003","name":"124"},{"id":"594a673bc697f012831258b9","name":"125"},{"id":"594a673c91c0980d81772004","name":"126"},{"id":"594a673d91c0980d81772005","name":"114"},{"id":"594a6752c697f00e06165d89","name":"115"},{"id":"594a6752c697f00e06165d8a","name":"116"},{"id":"594a6753c697f00e06165d8b","name":"117"},{"id":"594a676391c0980b227658c4","name":"118"}],"send_confirmation_emails":true,"send_cancellation_emails":true,"send_confirmation_sms":false,"confirmation_email_message":"Thank you for booking Cellarium Cafe and Terrace.\nWe are looking forward to seeing you.\nPlease be aware we hold the right to release your table if you do not arrive within 20 minutes of your designated reservation time.\nIf you wish to cancel or amend your reservation, please call the restaurant on 020 7222 0516 westminsterabbey@benugo.com","acknowledgement_email_message":"Thank you for your enquiry. Someone will get in touch with your shortly.\nHave a lovely day.\nCellarium Cafe and Terrace","customer_changes_max_num_people":4,"label_colour":"#fef2c0"},{"id":"5981b631e46e7934a078dc57","name":"WEDNESDAY LATES","value":10,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"color":"#6D398B","booking_rules":{"monday":{"booking_available":false,"booking_notes":""},"tuesday":{"booking_available":false,"booking_notes":""},"wednesday":{"booking_available":true,"bookings_from":"17:00","bookings_to":"19:00","bookings_shut":"11:00","max_people":70,"booking_notes":""},"thursday":{"booking_available":false,"booking_notes":""},"friday":{"booking_available":false,"booking_notes":""},"saturday":{"booking_available":false,"booking_notes":""},"sunday":{"booking_available":false,"booking_notes":""}},"time_interval":15,"cover_limits":[{"date_type":"date","date":"2017-10-25","from":"14:00","to":"21:00","max_arrivals":0}],"areas":[{"id":"594a61e291c09808ae74d1a5","name":"1"},{"id":"594a6435c4b5737b68186931","name":"2"},{"id":"594a6435c4b5737b68186932","name":"3"},{"id":"594a6436c4b5737b65619f9a","name":"5"},{"id":"594a6437c697f012ec5ec840","name":"6"},{"id":"594a6437c697f012ec5ec841","name":"7"},{"id":"594a6438c697f012ec5ec843","name":"8"},{"id":"594a644dc697f012fe4a66fe","name":"9"},{"id":"594a644d91c09809803454d3","name":"10"},{"id":"594a644ec697f012fe4a6702","name":"11"},{"id":"594a644fc697f013007b581d","name":"12"},{"id":"594a6450c697f012fe4a6706","name":"13"},{"id":"594a649cc4b5737b696da104","name":"14"},{"id":"594a649cc697f00f751030bf","name":"15"},{"id":"594a649c91c0980b3743b45f","name":"16"},{"id":"594a64a191c0980a9566a773","name":"17"},{"id":"594a64dec4b5737cab20e95e","name":"18"},{"id":"594a64de91c0980b716a5109","name":"19"},{"id":"594a64df91c0980bda43fa92","name":"21"},{"id":"594a64dfc697f012f258bdc6","name":"22"},{"id":"594a64e0c697f00eaa4062ad","name":"23"},{"id":"594a64f4c4b5737ca0520fd2","name":"24"},{"id":"594a64fdc4b5737c255426cd","name":"224"},{"id":"594a6501c4b5737c29338700","name":"25"},{"id":"594a6503c4b5737c255426da","name":"26"},{"id":"594a650bc4b5737c1078dc31","name":"27"},{"id":"594a650cc4b5737c1078dc32","name":"28"},{"id":"594a650fc4b5737c255426db","name":"29"},{"id":"594a6510c4b5737b68186941","name":"30"},{"id":"594a6512c4b5737c255426dc","name":"31"},{"id":"594a6518c697f013c40594f2","name":"55"},{"id":"594a651a91c09809d2062706","name":"56"}],"send_confirmation_emails":true,"send_cancellation_emails":true,"send_confirmation_sms":false,"label_colour":"#bfe5bf"}]}],"multiple_venues":false,"anyVenueEnabled":false}; !function(){var e=window.angular,t=window.angular={};!function(e,t,n){"use strict";function r(e){return!(!e||"number"!=typeof e.length)&&("function"!=typeof e.hasOwnProperty&&"function"!=typeof e.constructor||(e instanceof ie||zt&&e instanceof zt||"[object Object]"!==Qt.call(e)||"function"==typeof e.callee))}function o(e,t,n){var i;if(e)if(D(e))for(i in e)"prototype"!=i&&"length"!=i&&"name"!=i&&e.hasOwnProperty(i)&&t.call(n,e[i],i);else if(e.forEach&&e.forEach!==o)e.forEach(t,n);else if(r(e))for(i=0;i=0&&e.splice(n,1),t}function F(e,t){if(_(e)||C(e))throw Error("Can't copy Window or Scope");if(t){if(e===t)throw Error("Can't copy equivalent objects or arrays");if(k(e)){t.length=0;for(var n=0;n2?j(arguments,2):[];return!D(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,n.concat(Jt.call(arguments,0))):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function I(e,r){var o=r;return/^\$+/.test(e)?o=n:_(r)?o="$WINDOW":r&&t===r?o="$DOCUMENT":C(r)&&(o="$SCOPE"),o}function L(e,t){return JSON.stringify(e,I,t?" ":null)}function U(e){return y(e)?JSON.parse(e):e}function R(e){if(e&&0!==e.length){var t=Rt(""+e);e=!("f"==t||"0"==t||"false"==t||"no"==t||"n"==t||"[]"==t)}else e=!1;return e}function H(e){e=Yt(e).clone();try{e.html("")}catch(t){}var n=3,r=Yt("
").append(e).html();try{return e[0].nodeType===n?Rt(r):r.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+Rt(t)})}catch(t){return Rt(r)}}function B(e){var t,n,r={};return o((e||"").split("&"),function(e){e&&(t=e.split("="),n=decodeURIComponent(t[0]),r[n]=!g(t[1])||decodeURIComponent(t[1]))}),r}function W(e){var t=[];return o(e,function(e,n){t.push(z(n,!0)+(e===!0?"":"="+z(e,!0)))}),t.length?t.join("&"):""}function Y(e){return z(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function z(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function X(e,n){function r(e){e&&u.push(e)}var i,a,u=[e],s=["ng:app","ng-app","x-ng-app","data-ng-app"],c=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;o(s,function(n){s[n]=!0,r(t.getElementById(n)),n=n.replace(":","\\:"),e.querySelectorAll&&(o(e.querySelectorAll("."+n),r),o(e.querySelectorAll("."+n+"\\:"),r),o(e.querySelectorAll("["+n+"]"),r))}),o(u,function(e){if(!i){var t=" "+e.className+" ",n=c.exec(t);n?(i=e,a=(n[2]||"").replace(/\s+/g,",")):o(e.attributes,function(t){!i&&s[t.name]&&(i=e,a=t.value)})}}),i&&n(i,a?[a]:[])}function K(t,n){var r=function(){t=Yt(t),n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),n.unshift("ng");var e=_e(n);return e.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),e},i=/^NG_DEFER_BOOTSTRAP!/;return e&&!i.test(e.name)?r():(e.name=e.name.replace(i,""),void(en.resumeBootstrap=function(e){o(e,function(e){n.push(e)}),r()}))}function G(e,t){return t=t||"_",e.replace(nn,function(e,n){return(n?t:"")+e.toLowerCase()})}function J(){zt=e.jQuery,zt?(Yt=zt,l(zt.fn,{scope:pn.scope,controller:pn.controller,injector:pn.injector,inheritedData:pn.inheritedData}),oe("remove",!0),oe("empty"),oe("html")):Yt=ie,en.element=Yt}function Z(e,t,n){if(!e)throw new Error("Argument '"+(t||"?")+"' is "+(n||"required"));return e}function Q(e,t,n){return n&&k(e)&&(e=e[e.length-1]),Z(D(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ee(e){function t(e,t,n){return e[t]||(e[t]=n())}return t(t(e,"angular",Object),"module",function(){var e={};return function(n,r,o){return r&&e.hasOwnProperty(n)&&(e[n]=null),t(e,n,function(){function e(e,n,r){return function(){return t[r||"push"]([e,n,arguments]),u}}if(!r)throw Error("No module: "+n);var t=[],i=[],a=e("$injector","invoke"),u={_invokeQueue:t,_runBlocks:i,requires:r,name:n,provider:e("$provide","provider"),factory:e("$provide","factory"),service:e("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),filter:e("$filterProvider","register"),controller:e("$controllerProvider","register"),directive:e("$compileProvider","directive"),config:a,run:function(e){return i.push(e),this}};return o&&a(o),u})}})}function te(t){l(t,{bootstrap:K,copy:F,extend:l,equals:A,element:Yt,forEach:o,injector:_e,noop:d,bind:q,toJson:L,fromJson:U,identity:h,isUndefined:v,isDefined:g,isString:y,isFunction:D,isObject:$,isNumber:b,isElement:x,isArray:k,version:rn,isDate:w,lowercase:Rt,uppercase:Ht,callbacks:{counter:0}}),Xt=ee(e);try{Xt("ngLocale")}catch(n){Xt("ngLocale",[]).provider("$locale",vt)}Xt("ng",["ngLocale"],["$provide",function(e){e.provider("$compile",Te).directive({a:An,input:Wn,textarea:Wn,form:In,script:Mr,select:Sr,style:Or,option:Tr,ngBind:rr,ngBindHtmlUnsafe:ir,ngBindTemplate:or,ngClass:ar,ngClassEven:sr,ngClassOdd:ur,ngCsp:fr,ngCloak:cr,ngController:lr,ngForm:Ln,ngHide:br,ngInclude:hr,ngInit:mr,ngNonBindable:vr,ngPluralize:gr,ngRepeat:$r,ngShow:yr,ngSubmit:dr,ngStyle:wr,ngSwitch:kr,ngSwitchWhen:Dr,ngSwitchDefault:_r,ngOptions:xr,ngView:Er,ngTransclude:Cr,ngModel:Jn,ngList:er,ngChange:Zn,required:Qn,ngRequired:Qn,ngValue:nr}).directive(Pn).directive(pr),e.provider({$anchorScroll:Ce,$browser:Me,$cacheFactory:xe,$controller:Ne,$document:Fe,$exceptionHandler:Ve,$filter:$t,$interpolate:Ae,$http:dt,$httpBackend:ht,$location:ze,$log:Xe,$parse:tt,$route:ot,$routeParams:it,$rootScope:at,$q:nt,$sniffer:ut,$templateCache:Se,$timeout:gt,$window:st})}])}function ne(){return++un}function re(e){return e.replace(ln,function(e,t,n,r){return r?n.toUpperCase():n}).replace(fn,"Moz$1")}function oe(e,t){function n(){for(var e,n,o,i,a,u,s,c=[this],l=t;c.length;)for(e=c.shift(),n=0,o=e.length;n 
"+e,n.removeChild(n.firstChild),me(this,n.childNodes),this.remove()}else me(this,e)}function ae(e){return e.cloneNode(!0)}function ue(e){ce(e);for(var t=0,n=e.childNodes||[];t-1}function de(e,t){t&&o(t.split(" "),function(t){e.className=M((" "+e.className+" ").replace(/[\n\t]/g," ").replace(" "+M(t)+" "," "))})}function he(e,t){t&&o(t.split(" "),function(t){pe(e,t)||(e.className=M(e.className+" "+M(t)))})}function me(e,t){if(t){t=t.nodeName||!g(t.length)||_(t)?[t]:t;for(var n=0;n0){var e=unescape(a.substring(0,s));M[e]===n&&(M[e]=unescape(a.substring(s+1)))}return M}t===n?l.cookie=escape(e)+"=;path="+S+";expires=Thu, 01 Jan 1970 00:00:00 GMT":y(t)&&(o=(l.cookie=escape(e)+"="+escape(t)+";path="+S).length+1,o>4096&&r.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+o+" > 4096 bytes)!"))},c.defer=function(e,t){var n;return $++,n=h(function(){delete g[n],a(e)},t||0),g[n]=!0,n},c.defer.cancel=function(e){return!!g[e]&&(delete g[e],m(e),a(d),!0)}}function Me(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,r){return new Ee(e,r,t,n)}]}function xe(){this.$get=function(){function e(e,n){function r(e){e!=f&&(p?p==e&&(p=e.n):p=e,o(e.n,e.p),o(e,f),f=e,f.n=null)}function o(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in t)throw Error("cacheId "+e+" taken");var i=0,a=l({},n,{id:e}),u={},s=n&&n.capacity||Number.MAX_VALUE,c={},f=null,p=null;return t[e]={put:function(e,t){var n=c[e]||(c[e]={key:e});r(n),v(t)||(e in u||i++,u[e]=t,i>s&&this.remove(p.key))},get:function(e){var t=c[e];if(t)return r(t),u[e]},remove:function(e){var t=c[e];t&&(t==f&&(f=t.p),t==p&&(p=t.n),o(t.n,t.p),delete c[e],delete u[e],i--)},removeAll:function(){u={},i=0,c={},f=p=null},destroy:function(){u=null,a=null,c=null,delete t[e]},info:function(){return l({},a,{size:i})}}}var t={};return e.info=function(){var e={};return o(t,function(t,n){e[n]=t.info()}),e},e.get=function(e){return t[e]},e}}function Se(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function Te(e){var r={},i="Directive",a=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,s=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,c="Template must have exactly one root element. was: ",f=/^\s*(https?|ftp|mailto|file):/;this.directive=function p(t,n){return y(t)?(Z(n,"directive"),r.hasOwnProperty(t)||(r[t]=[],e.factory(t+i,["$injector","$exceptionHandler",function(e,n){var i=[];return o(r[t],function(r){try{var o=e.invoke(r);D(o)?o={compile:m(o)}:!o.compile&&o.link&&(o.compile=m(o.link)),o.priority=o.priority||0,o.name=o.name||t,o.require=o.require||o.controller&&o.name,o.restrict=o.restrict||"A",i.push(o)}catch(a){n(a)}}),i}])),r[t].push(n)):o(t,u(p)),this},this.urlSanitizationWhitelist=function(e){return g(e)?(f=e,this):f},this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document",function(e,u,p,d,v,g,b,w,_){function C(e,t,n){e instanceof Yt||(e=Yt(e)),o(e,function(t,n){3==t.nodeType&&t.nodeValue.match(/\S+/)&&(e[n]=Yt(t).wrap("").parent()[0])});var r=x(e,t,e,n);return function(t,n){Z(t,"scope");for(var o=n?pn.clone.call(e):e,i=0,a=o.length;id.priority));W++){if((x=d.scope)&&(P("isolated scope",q,d,R),$(x)&&(E(R,"ng-isolate-scope"),q=d),E(R,"ng-scope"),j=j||d),h=d.name,(x=d.controller)&&(w=w||{},P("'"+h+"' controller",w[h],d,R),w[h]=d),(x=d.transclude)&&(P("transclusion",v,d,R),v=d,T=d.priority,"element"==x?(m=Yt(r),R=i.$$element=Yt(t.createComment(" "+h+": "+i[h]+" ")),r=R[0],L(u,Yt(m[0]),r),B=C(m,a,T)):(m=Yt(ae(r)).contents(),R.html(""),B=C(m,a))),x=d.template)if(P("template",I,d,R),I=d,x=Y(x),d.replace){if(m=Yt("
"+M(x)+"
").contents(),r=m[0],1!=m.length||1!==r.nodeType)throw new Error(c+x);L(u,R,r);var X={$attr:{}};e=e.concat(S(r,e.splice(W+1,e.length-(W+1)),X)),N(i,X),z=e.length}else R.html(x);if(d.templateUrl)P("template",I,d,R),I=d,f=F(e.splice(W,e.length-W),f,R,i,u,d.replace,B),z=e.length;else if(d.compile)try{_=d.compile(R,i,B),D(_)?s(null,_):_&&s(_.pre,_.post)}catch(K){p(K,H(R))}d.terminal&&(f.terminal=!0,T=Math.max(T,d.priority))}return f.scope=j&&j.scope,f.transclude=v&&B,f}function O(t,o,a,u){var s=!1;if(r.hasOwnProperty(o))for(var c,l=e.get(o+i),f=0,d=l.length;fc.priority)&&c.restrict.indexOf(a)!=-1&&(t.push(c),s=!0)}catch(h){p(h)}return s}function N(e,t){var n=t.$attr,r=e.$attr,i=e.$$element;o(e,function(r,o){"$"!=o.charAt(0)&&(t[o]&&(r+=("style"===o?";":" ")+t[o]),e.$set(o,r,!0,n[o]))}),o(t,function(t,o){"class"==o?(E(i,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==o?i.attr("style",i.attr("style")+";"+t):"$"==o.charAt(0)||e.hasOwnProperty(o)||(e[o]=t,r[o]=n[o])})}function F(e,t,n,r,o,i,a){var u,s,f=[],p=n[0],h=e.shift(),m=l({},h,{controller:null,templateUrl:null,transclude:null,scope:null});return n.html(""),d.get(h.templateUrl,{cache:v}).success(function(l){var d,h,v;if(l=Y(l),i){if(v=Yt("
"+M(l)+"
").contents(),d=v[0],1!=v.length||1!==d.nodeType)throw new Error(c+l);h={$attr:{}},L(o,n,d),S(d,e,h),N(r,h)}else d=p,n.html(l);for(e.unshift(m),u=T(e,d,r,a),s=x(n[0].childNodes,a);f.length;){var g=f.pop(),$=f.pop(),y=f.pop(),b=f.pop(),w=d;y!==p&&(w=ae(d),L($,Yt(y),w)),u(function(){t(s,b,w,o,g)},b,w,o,g)}f=null}).error(function(e,t,n,r){throw Error("Failed to load template: "+r.url)}),function(e,n,r,o,i){f?(f.push(n),f.push(r),f.push(o),f.push(i)):u(function(){t(s,n,r,o,i)},n,r,o,i)}}function A(e,t){return t.priority-e.priority}function P(e,t,n,r){if(t)throw Error("Multiple directives ["+t.name+", "+n.name+"] asking for "+e+" on: "+H(r))}function j(e,t){var n=u(t,!0);n&&e.push({priority:0,compile:m(function(e,t){var r=t.parent(),o=r.data("$binding")||[];o.push(n),E(r.data("$binding",o),"ng-binding"),e.$watch(n,function(e){t[0].nodeValue=e})})})}function I(e,t,r,o){var i=u(r,!0);i&&t.push({priority:100,compile:m(function(e,t,r){var a=r.$$observers||(r.$$observers={});"class"===o&&(i=u(r[o],!0)),r[o]=n,(a[o]||(a[o]=[])).$$inter=!0,(r.$$observers&&r.$$observers[o].$$scope||e).$watch(i,function(e){r.$set(o,e)})})})}function L(e,t,n){var r,o,i=t[0],a=i.parentNode;if(e)for(r=0,o=e.length;r0){var o=A[0],i=o.text;if(i==e||i==t||i==n||i==r||!e&&!t&&!n&&!r)return o}return!1}function s(e,n,r,o){var a=u(e,n,r,o);return!!a&&(t&&!a.json&&i("is not valid json",a),A.shift(),a)}function c(e){s(e)||i("is unexpected, expecting ["+e+"]",u())}function f(e,t){return function(n,r){return e(n,r,t)}}function p(e,t,n){return function(r,o){return t(r,o,e,n)}}function h(){for(var e=[];;)if(A.length>0&&!u("}",")",";","]")&&e.push(L()),!s(";"))return 1==e.length?e[0]:function(t,n){for(var r,o=0;o","<=",">="))&&(t=p(t,e.fn,D())),t}function _(){for(var e,t=C();e=s("+","-");)t=p(t,e.fn,C());return t}function C(){for(var e,t=E();e=s("*","/","%");)t=p(t,e.fn,E());return t}function E(){var e;return s("+")?M():(e=s("-"))?p(V,e.fn,E()):(e=s("!"))?f(e.fn,E()):M()}function M(){var e;if(s("("))e=L(),c(")");else if(s("["))e=O();else if(s("{"))e=N();else{var t=s();e=t.fn,e||i("not a primary expression",t)}for(var n,r;n=s("(","[",".");)"("===n.text?(e=j(e,r),r=null):"["===n.text?(r=e,e=I(e)):"."===n.text?(r=e,e=q(e)):i("IMPOSSIBLE");return e}function x(e){var t=s().text,n=et(t,o);return l(function(t,r,o){return n(o||e(t,r),r)},{assign:function(n,r,o){return Je(e(n,o),t,r)}})}function S(e){var t=$();return c("]"),l(function(r,o){var i,a,u=e(r,o),s=t(r,o);return u?(i=u[s],i&&i.then&&(a=i,"$$v"in i||(a.$$v=n,a.then(function(e){a.$$v=e})),i=i.$$v),i):n},{assign:function(n,r,o){return e(n,o)[t(n,o)]=r}})}function T(e,t){var n=[];if(")"!=a().text)do n.push($());while(s(","));return c(")"),function(r,o){for(var i=[],a=t?t(r,o):r,u=0;u1;o++){var i=r.shift(),a=e[i];a||(a={},e[i]=a),e=a}return e[r.shift()]=n,n}function Ze(e,t,n){if(!t)return e;for(var r,o=t.split("."),i=e,a=o.length,u=0;u7),hasEvent:function(n){if("input"==n&&9==Gt)return!1;if(v(t[n])){var r=e.document.createElement("div");t[n]="on"+n in r}return t[n]},csp:!1}}]}function st(){this.$get=m(e)}function ct(e){var t,n,r,i={};return e?(o(e.split("\n"),function(e){r=e.indexOf(":"),t=Rt(M(e.substr(0,r))),n=M(e.substr(r+1)),t&&(i[t]?i[t]+=", "+n:i[t]=n)}),i):i}function lt(e){var t=$(e)?e:n;return function(n){return t||(t=ct(e)),n?t[Rt(n)]||null:t}}function ft(e,t,n){return D(n)?n(e,t):(o(n,function(n){e=n(e,t)}),e)}function pt(e){return 200<=e&&e<300}function dt(){var e=/^\s*(\[|\{[^\{])/,t=/[\}\]]\s*$/,r=/^\)\]\}',?\n/,i=this.defaults={transformResponse:[function(n){return y(n)&&(n=n.replace(r,""),e.test(n)&&t.test(n)&&(n=U(n,!0))),n}],transformRequest:[function(e){return $(e)&&!E(e)?L(e):e}],headers:{common:{Accept:"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},post:{"Content-Type":"application/json;charset=utf-8"},put:{"Content-Type":"application/json;charset=utf-8"}}},u=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(e,t,r,s,c,f){function p(e){function n(e){var t=l({},e,{data:ft(e.data,e.headers,u)});return pt(e.status)?t:c.reject(t)}e.method=Ht(e.method);var r,a=e.transformRequest||i.transformRequest,u=e.transformResponse||i.transformResponse,s=i.headers,f=l({"X-XSRF-TOKEN":t.cookies()["XSRF-TOKEN"]},s.common,s[Rt(e.method)],e.headers),p=ft(e.data,lt(f),a);return v(e.data)&&delete f["Content-Type"],r=m(e,p,f),r=r.then(n,n),o(w,function(e){r=e(r)}),r.success=function(t){return r.then(function(n){t(n.data,n.status,n.headers,e)}),r},r.error=function(t){return r.then(null,function(n){t(n.data,n.status,n.headers,e)}),r},r}function d(e){o(arguments,function(e){p[e]=function(t,n){return p(l(n||{},{method:e,url:t}))}})}function h(e){o(arguments,function(e){p[e]=function(t,n,r){return p(l(r||{},{method:e,url:t,data:n}))}})}function m(t,n,r){function o(e,t,n){u&&(pt(e)?u.put(h,[e,t,ct(n)]):u.remove(h)),i(t,e,n),s.$apply()}function i(e,n,r){n=Math.max(n,0),(pt(n)?f.resolve:f.reject)({data:e,status:n,headers:lt(r),config:t})}function a(){var e=O(p.pendingRequests,t);e!==-1&&p.pendingRequests.splice(e,1)}var u,l,f=c.defer(),d=f.promise,h=g(t.url,t.params);if(p.pendingRequests.push(t),d.then(a,a),t.cache&&"GET"==t.method&&(u=$(t.cache)?t.cache:b),u)if(l=u.get(h)){if(l.then)return l.then(a,a),l;k(l)?i(l[1],l[0],F(l[2])):i(l,200,{})}else u.put(h,d);return l||e(t.method,h,n,o,r,t.timeout,t.withCredentials),d}function g(e,t){if(!t)return e;var r=[];return a(t,function(e,t){null!=e&&e!=n&&($(e)&&(e=L(e)),r.push(encodeURIComponent(t)+"="+encodeURIComponent(e)))}),e+(e.indexOf("?")==-1?"?":"&")+r.join("&")}var b=r("$http"),w=[];return o(u,function(e){w.push(y(e)?f.get(e):f.invoke(e))}),p.pendingRequests=[],d("get","delete","head","jsonp"),h("post","put"),p.defaults=i,p}]}function ht(){this.$get=["$browser","$window","$document",function(e,t,n){return mt(e,xn,e.defer,t.angular.callbacks,n[0],t.location.protocol.replace(":",""))}]}function mt(e,t,n,r,i,a){function u(e,t){var n=i.createElement("script"),r=function(){i.body.removeChild(n),t&&t()};n.type="text/javascript",n.src=e,Gt?n.onreadystatechange=function(){/loaded|complete/.test(n.readyState)&&r()}:n.onload=n.onerror=r,i.body.appendChild(n)}return function(i,s,c,l,f,p,h){function m(t,n,r,o){var i=(s.match(wn)||["",a])[1];n="file"==i?r?200:404:n,n=1223==n?204:n,t(n,r,o),e.$$completeOutstandingRequest(d)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"==Rt(i)){var v="_"+(r.counter++).toString(36);r[v]=function(e){r[v].data=e},u(s.replace("JSON_CALLBACK","angular.callbacks."+v),function(){r[v].data?m(l,200,r[v].data):m(l,-2),delete r[v]})}else{var g=new t;g.open(i,s,!0),o(f,function(e,t){e&&g.setRequestHeader(t,e)});var $;g.onreadystatechange=function(){if(4==g.readyState){var e=g.getAllResponseHeaders(),t=["Cache-Control","Content-Language","Content-Type","Expires","Last-Modified","Pragma"];e||(e="",o(t,function(t){var n=g.getResponseHeader(t);n&&(e+=t+": "+n+"\n")})),m(l,$||g.status,g.responseText,e)}},h&&(g.withCredentials=!0),g.send(c||""),p>0&&n(function(){$=-1,g.abort()},p)}}}function vt(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(e){return 1===e?"one":"other"}}}}function gt(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(e,t,n,r){function o(o,a,u){var s,c,l=n.defer(),f=l.promise,p=g(u)&&!u;return s=t.defer(function(){try{l.resolve(o())}catch(t){l.reject(t),r(t)}p||e.$apply()},a),c=function(){delete i[f.$$timeoutId]},f.$$timeoutId=s,i[s]=l,f.then(c,c),f}var i={};return o.cancel=function(e){return!!(e&&e.$$timeoutId in i)&&(i[e.$$timeoutId].reject("canceled"),t.defer.cancel(e.$$timeoutId))},o}]}function $t(e){function t(t,r){return e.factory(t+n,r)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",bt),t("date",xt),t("filter",yt),t("json",St),t("limitTo",Tt),t("lowercase",Fn),t("number",wt),t("orderBy",Ot),t("uppercase",Vn)}function yt(){return function(e,t){if(!k(e))return e;var n=[];n.check=function(e){for(var t=0;t-1;case"object":for(var n in e)if("$"!==n.charAt(0)&&r(e[n],t))return!0;return!1;case"array":for(var o=0;oo+1?a="0":(u=a,c=!0)}if(!c){var f=(a.split(Sn)[1]||"").length;v(o)&&(o=Math.min(Math.max(t.minFrac,f),t.maxFrac));var p=Math.pow(10,o);e=Math.round(e*p)/p;var d=(""+e).split(Sn),h=d[0];d=d[1]||"";var m=0,g=t.lgSize,$=t.gSize;if(h.length>=g+$){m=h.length-g;for(var y=0;y0||i>-n)&&(i+=n),0===i&&n==-12&&(i=12),Dt(i,t,r)}}function Ct(e,t){return function(n,r){var o=n["get"+e](),i=Ht(t?"SHORT"+e:e);return r[i][o]}}function Et(e){var t=-1*e.getTimezoneOffset(),n=t>=0?"+":"";return n+=Dt(Math[t>0?"floor":"ceil"](t/60),2)+Dt(Math.abs(t%60),2)}function Mt(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function xt(e){function t(e){var t;if(t=e.match(n)){var r=new Date(0),o=0,i=0;return t[9]&&(o=f(t[9]+t[10]),i=f(t[9]+t[11])),r.setUTCFullYear(f(t[1]),f(t[2])-1,f(t[3])),r.setUTCHours(f(t[4]||0)-o,f(t[5]||0)-i,f(t[6]||0),f(t[7]||0)),r}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r){var i,a,u="",s=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,y(n)&&(n=Nn.test(n)?f(n):t(n)),b(n)&&(n=new Date(n)),!w(n))return n;for(;r;)a=On.exec(r),a?(s=P(s,a,1),r=s.pop()):(s.push(r),r=null);return o(s,function(t){i=Tn[t],u+=i?i(n,e.DATETIME_FORMATS):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function St(){return function(e){return L(e,!0)}}function Tt(){return function(e,t){if(!(e instanceof Array))return e;t=f(t);var n,r,o=[];if(!(e&&e instanceof Array))return o;for(t>e.length?t=e.length:t<-e.length&&(t=-e.length),t>0?(n=0,r=t):(n=e.length+t,r=e.length);nv?(o.$setValidity("maxlength",!1),n):(o.$setValidity("maxlength",!0),e)};o.$parsers.push(g),o.$formatters.push(g)}}function Pt(e,t,r,o,i,a){if(At(e,t,r,o,i,a),o.$parsers.push(function(e){var t=Vt(e);return t||Hn.test(e)?(o.$setValidity("number",!0),""===e?null:t?e:parseFloat(e)):(o.$setValidity("number",!1),n)}),o.$formatters.push(function(e){return Vt(e)?"":""+e}),r.min){var u=parseFloat(r.min),s=function(e){return!Vt(e)&&ec?(o.$setValidity("max",!1),n):(o.$setValidity("max",!0),e)};o.$parsers.push(l),o.$formatters.push(l)}o.$formatters.push(function(e){return Vt(e)||b(e)?(o.$setValidity("number",!0),e):(o.$setValidity("number",!1),n)})}function jt(e,t,r,o,i,a){At(e,t,r,o,i,a);var u=function(e){return Vt(e)||Un.test(e)?(o.$setValidity("url",!0),e):(o.$setValidity("url",!1),n)};o.$formatters.push(u),o.$parsers.push(u)}function qt(e,t,r,o,i,a){At(e,t,r,o,i,a);var u=function(e){return Vt(e)||Rn.test(e)?(o.$setValidity("email",!0),e):(o.$setValidity("email",!1),n)};o.$formatters.push(u),o.$parsers.push(u)}function It(e,t,n,r){v(n.name)&&t.attr("name",s()),t.bind("click",function(){t[0].checked&&e.$apply(function(){r.$setViewValue(n.value)})}),r.$render=function(){var e=n.value;t[0].checked=e==r.$viewValue},n.$observe("value",r.$render)}function Lt(e,t,n,r){var o=n.ngTrueValue,i=n.ngFalseValue;y(o)||(o=!0),y(i)||(i=!1),t.bind("click",function(){e.$apply(function(){r.$setViewValue(t[0].checked)})}),r.$render=function(){t[0].checked=r.$viewValue},r.$formatters.push(function(e){return e===o}),r.$parsers.push(function(e){return e?o:i})}function Ut(e,t){return e="ngClass"+e,Nt(function(r,o,i){function a(e){t!==!0&&r.$index%2!==t||(c&&!A(e,c)&&u(c),s(e)),c=F(e)}function u(e){$(e)&&!k(e)&&(e=S(e,function(e,t){if(e)return t})),o.removeClass(k(e)?e.join(" "):e)}function s(e){$(e)&&!k(e)&&(e=S(e,function(e,t){if(e)return t})),e&&o.addClass(k(e)?e.join(" "):e)}var c=n;r.$watch(i[e],a,!0),i.$observe("class",function(t){var n=r.$eval(i[e]);a(n,n)}),"ngClass"!==e&&r.$watch("$index",function(n,o){var a=1&n;a!==o&1&&(a===t?s(r.$eval(i[e])):u(r.$eval(i[e])))})})}var Rt=function(e){return y(e)?e.toLowerCase():e},Ht=function(e){return y(e)?e.toUpperCase():e},Bt=function(e){return y(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Wt=function(e){return y(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)&-33)}):e};"i"!=="I".toLowerCase()&&(Rt=Bt,Ht=Wt);var Yt,zt,Xt,Kt,Gt=f((/msie (\d+)/.exec(Rt(navigator.userAgent))||[])[1]),Jt=[].slice,Zt=[].push,Qt=Object.prototype.toString,en=e.angular||(e.angular={}),tn=["0","0","0"];d.$inject=[],h.$inject=[],Kt=Gt<9?function(e){return e=e.nodeName?e:e[0],e.scopeName&&"HTML"!=e.scopeName?Ht(e.scopeName+":"+e.nodeName):e.nodeName}:function(e){return e.nodeName?e.nodeName:e[0].nodeName};var nn=/[A-Z]/g,rn={full:"1.0.7",major:1,minor:0,dot:7,codeName:"monochromatic-rainbow"},on=ie.cache={},an=ie.expando="ng-"+(new Date).getTime(),un=1,sn=e.document.addEventListener?function(e,t,n){e.addEventListener(t,n,!1)}:function(e,t,n){e.attachEvent("on"+t,n)},cn=e.document.removeEventListener?function(e,t,n){e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent("on"+t,n)},ln=/([\:\-\_]+(.))/g,fn=/^moz([A-Z])/,pn=ie.prototype={ready:function(t){function n(){r||(r=!0,t())}var r=!1;this.bind("DOMContentLoaded",n),ie(e).bind("load",n)},toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Yt(e>=0?this[e]:this[this.length+e])},length:0,push:Zt,sort:[].sort,splice:[].splice},dn={};o("multiple,selected,checked,disabled,readOnly,required".split(","),function(e){dn[Rt(e)]=e});var hn={};o("input,select,option,textarea,button,form".split(","),function(e){hn[Ht(e)]=!0}),o({data:fe,inheritedData:ge,scope:function(e){return ge(e,"$scope")},controller:ve,injector:function(e){return ge(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:pe,css:function(e,t,r){if(t=re(t),!g(r)){var o;return Gt<=8&&(o=e.currentStyle&&e.currentStyle[t],""===o&&(o="auto")),o=o||e.style[t],Gt<=8&&(o=""===o?n:o),o}e.style[t]=r},attr:function(e,t,r){var o=Rt(t);if(dn[o]){if(!g(r))return e[t]||(e.attributes.getNamedItem(t)||d).specified?o:n;r?(e[t]=!0,e.setAttribute(t,o)):(e[t]=!1,e.removeAttribute(o))}else if(g(r))e.setAttribute(t,r);else if(e.getAttribute){var i=e.getAttribute(t,2);return null===i?n:i}},prop:function(e,t,n){return g(n)?void(e[t]=n):e[t]},text:l(Gt<9?function(e,t){if(1==e.nodeType){if(v(t))return e.innerText;e.innerText=t}else{if(v(t))return e.nodeValue;e.nodeValue=t}}:function(e,t){return v(t)?e.textContent:void(e.textContent=t)},{$dv:""}),val:function(e,t){return v(t)?e.value:void(e.value=t)},html:function(e,t){if(v(t))return e.innerHTML;for(var n=0,r=e.childNodes;n":function(e,t,n,r){return n(e,t)>r(e,t)},"<=":function(e,t,n,r){return n(e,t)<=r(e,t)},">=":function(e,t,n,r){return n(e,t)>=r(e,t)},"&&":function(e,t,n,r){return n(e,t)&&r(e,t)},"||":function(e,t,n,r){return n(e,t)||r(e,t)},"&":function(e,t,n,r){return n(e,t)&r(e,t)},"|":function(e,t,n,r){return r(e,t)(e,t,n(e,t))},"!":function(e,t,n){return!n(e,t)}},En={n:"\n",f:"\f",r:"\r",t:"\t",v:"\x0B","'":"'",'"':'"'},Mn={},xn=e.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(n){}throw new Error("This browser does not support XMLHttpRequest.")};$t.$inject=["$provide"],bt.$inject=["$locale"],wt.$inject=["$locale"];var Sn=".",Tn={yyyy:_t("FullYear",4),yy:_t("FullYear",2,0,!0),y:_t("FullYear",1),MMMM:Ct("Month"),MMM:Ct("Month",!0),MM:_t("Month",2,1),M:_t("Month",1,1),dd:_t("Date",2),d:_t("Date",1),HH:_t("Hours",2),H:_t("Hours",1),hh:_t("Hours",2,-12),h:_t("Hours",1,-12),mm:_t("Minutes",2),m:_t("Minutes",1),ss:_t("Seconds",2),s:_t("Seconds",1),EEEE:Ct("Day"),EEE:Ct("Day",!0),a:Mt,Z:Et},On=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,Nn=/^\d+$/;xt.$inject=["$locale"];var Fn=m(Rt),Vn=m(Ht);Ot.$inject=["$parse"];var An=m({restrict:"E",compile:function(e,n){return Gt<=8&&(n.href||n.name||n.$set("href",""),e.append(t.createComment("IE fix"))),function(e,t){t.bind("click",function(e){t.attr("href")||e.preventDefault()})}}}),Pn={};o(dn,function(e,t){var n=Oe("ng-"+t);Pn[n]=function(){return{priority:100,compile:function(){return function(e,r,o){e.$watch(o[n],function(e){o.$set(t,!!e)})}}}}}),o(["src","href"],function(e){var t=Oe("ng-"+e);Pn[t]=function(){return{priority:99,link:function(n,r,o){o.$observe(t,function(t){t&&(o.$set(e,t),Gt&&r.prop(e,o[e]))})}}}});var jn={$addControl:d,$removeControl:d,$setValidity:d,$setDirty:d};Ft.$inject=["$element","$attrs","$scope"];var qn=function(e){return["$timeout",function(t){var r={name:"form",restrict:"E",controller:Ft,compile:function(){return{pre:function(e,r,o,i){if(!o.action){var a=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1};sn(r[0],"submit",a),r.bind("$destroy",function(){t(function(){cn(r[0],"submit",a)},0,!1)})}var u=r.parent().controller("form"),s=o.name||o.ngForm;s&&(e[s]=i),u&&r.bind("$destroy",function(){u.$removeControl(i),s&&(e[s]=n),l(i,jn)})}}}};return e?l(F(r),{restrict:"EAC"}):r}]},In=qn(),Ln=qn(!0),Un=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Rn=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,Hn=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Bn={text:At,number:Pt,url:jt,email:qt,radio:It,checkbox:Lt,hidden:d,button:d,submit:d,reset:d},Wn=["$browser","$sniffer",function(e,t){return{restrict:"E",require:"?ngModel",link:function(n,r,o,i){i&&(Bn[Rt(o.type)]||Bn.text)(n,r,o,i,t,e)}}}],Yn="ng-valid",zn="ng-invalid",Xn="ng-pristine",Kn="ng-dirty",Gn=["$scope","$exceptionHandler","$attrs","$element","$parse",function(e,t,n,r,i){function a(e,t){t=t?"-"+G(t,"-"):"",r.removeClass((e?zn:Yn)+t).addClass((e?Yn:zn)+t)}this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=n.name;var u=i(n.ngModel),s=u.assign;if(!s)throw Error(yn+n.ngModel+" ("+H(r)+")");this.$render=d;var c=r.inheritedData("$formController")||jn,l=0,f=this.$error={};r.addClass(Xn),a(!0),this.$setValidity=function(e,t){f[e]!==!t&&(t?(f[e]&&l--,l||(a(!0),this.$valid=!0,this.$invalid=!1)):(a(!1),this.$invalid=!0,this.$valid=!1,l++),f[e]=!t,a(t,e),c.$setValidity(e,t,this))},this.$setViewValue=function(n){this.$viewValue=n,this.$pristine&&(this.$dirty=!0,this.$pristine=!1,r.removeClass(Xn).addClass(Kn),c.$setDirty()),o(this.$parsers,function(e){n=e(n)}),this.$modelValue!==n&&(this.$modelValue=n,s(e,n),o(this.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}}))};var p=this;e.$watch(function(){var t=u(e);if(p.$modelValue!==t){var n=p.$formatters,r=n.length;for(p.$modelValue=t;r--;)t=n[r](t);p.$viewValue!==t&&(p.$viewValue=t,p.$render())}})}],Jn=function(){return{require:["ngModel","^?form"],controller:Gn,link:function(e,t,n,r){var o=r[0],i=r[1]||jn;i.$addControl(o),t.bind("$destroy",function(){i.$removeControl(o)})}}},Zn=m({require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Qn=function(){return{require:"?ngModel",link:function(e,t,n,r){if(r){n.required=!0;var o=function(e){return n.required&&(Vt(e)||e===!1)?void r.$setValidity("required",!1):(r.$setValidity("required",!0),e)};r.$formatters.push(o),r.$parsers.unshift(o),n.$observe("required",function(){o(r.$viewValue)})}}}},er=function(){return{require:"ngModel",link:function(e,t,r,i){var a=/\/(.*)\//.exec(r.ngList),u=a&&new RegExp(a[1])||r.ngList||",",s=function(e){var t=[];return e&&o(e.split(u),function(e){e&&t.push(M(e))}),t};i.$parsers.push(s),i.$formatters.push(function(e){return k(e)?e.join(", "):n})}}},tr=/^(true|false|\d+)$/,nr=function(){return{priority:100,compile:function(e,t){return tr.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e,!1)})}}}},rr=Nt(function(e,t,r){t.addClass("ng-binding").data("$binding",r.ngBind),e.$watch(r.ngBind,function(e){t.text(e==n?"":e)})}),or=["$interpolate",function(e){return function(t,n,r){var o=e(n.attr(r.$attr.ngBindTemplate));n.addClass("ng-binding").data("$binding",o),r.$observe("ngBindTemplate",function(e){n.text(e)})}}],ir=[function(){return function(e,t,n){t.addClass("ng-binding").data("$binding",n.ngBindHtmlUnsafe),e.$watch(n.ngBindHtmlUnsafe,function(e){t.html(e||"")})}}],ar=Ut("",!0),ur=Ut("Odd",0),sr=Ut("Even",1),cr=Nt({compile:function(e,t){t.$set("ngCloak",n),e.removeClass("ng-cloak")}}),lr=[function(){return{scope:!0,controller:"@"}}],fr=["$sniffer",function(e){return{priority:1e3,compile:function(){e.csp=!0}}}],pr={};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "),function(e){var t=Oe("ng-"+e);pr[t]=["$parse",function(n){return function(r,o,i){var a=n(i[t]);o.bind(Rt(e),function(e){r.$apply(function(){a(r,{$event:e})})})}}]});var dr=Nt(function(e,t,n){t.bind("submit",function(){e.$apply(n.ngSubmit)})}),hr=["$http","$templateCache","$anchorScroll","$compile",function(e,t,n,r){return{restrict:"ECA",terminal:!0,compile:function(o,i){var a=i.ngInclude||i.src,u=i.onload||"",s=i.autoscroll;return function(o,i){var c,l=0,f=function(){c&&(c.$destroy(),c=null),i.html("")};o.$watch(a,function(a){var p=++l;a?e.get(a,{cache:t}).success(function(e){p===l&&(c&&c.$destroy(),c=o.$new(),i.html(e),r(i.contents())(c),!g(s)||s&&!o.$eval(s)||n(),c.$emit("$includeContentLoaded"),o.$eval(u))}).error(function(){p===l&&f()}):f()})}}}}],mr=Nt({compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),vr=Nt({terminal:!0,priority:1e3}),gr=["$locale","$interpolate",function(e,t){var n=/{}/g;return{restrict:"EA",link:function(r,i,a){var u=a.count,s=i.attr(a.$attr.when),c=a.offset||0,l=r.$eval(s),f={},p=t.startSymbol(),d=t.endSymbol();o(l,function(e,r){f[r]=t(e.replace(n,p+u+"-"+c+d))}),r.$watch(function(){var t=parseFloat(r.$eval(u));return isNaN(t)?"":(t in l||(t=e.pluralCat(t-c)),f[t](r,i,!0))},function(e){i.text(e)})}}}],$r=Nt({transclude:"element",priority:1e3,terminal:!0,compile:function(e,t,n){return function(e,t,r){var o,i,a,u,s=r.ngRepeat,c=s.match(/^\s*(.+)\s+in\s+(.*)\s*$/);if(!c)throw Error("Expected ngRepeat in form of '_item_ in _collection_' but got '"+s+"'.");if(o=c[1],i=c[2],c=o.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!c)throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '"+o+"'.");a=c[3]||c[1],u=c[2];var l=new ke;e.$watch(function(e){var r,o,s,c,f,p,d,h,m=e.$eval(i),v=t,g=new ke;if(k(m))d=m||[];else{d=[];for(f in m)m.hasOwnProperty(f)&&"$"!=f.charAt(0)&&d.push(f);d.sort()}for(s=d.length-1,r=0,o=d.length;rC;)c.pop().element.remove()}for(;v.length>_;)v.pop()[0].element.remove()}var c;if(!(c=b.match(a)))throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '"+b+"'.");var l=r(c[2]||c[1]),f=c[4]||c[6],p=c[5],d=r(c[3]||""),h=r(c[2]?c[1]:f),m=r(c[7]),v=[[{element:o,label:""}]];w&&(e(w)(t),w.removeClass("ng-scope"),w.remove()),o.html(""),o.bind("change",function(){t.$apply(function(){var e,r,i,a,s,c,l,d,g=m(t)||[],$={};if(y)for(i=[],c=0,d=v.length;c@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}'),"".trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length>>>0,n=Number(arguments[1])||0;for(n=n<0?Math.ceil(n):Math.floor(n),n<0&&(n+=t);n-1;if(screen.availWidth<768||window.innerWidth<768||window.innerHeight<530||a)return void(document.location.href=e(!1));var u=t.element(document.getElementsByTagName("body")[0]);u.addClass("dmn-modal-open");var l=i.dialog({controller:"FormCtrl",resolve:{dialogsModel:function(){return r}},dialogFade:!1,dialogClass:"partner-form-modal",backdropFade:!1,backdropClick:!1,keyboard:!1,template:''});l.open().then(function(){u.removeClass("dmn-modal-open")})},r.venues=a.venues,r.getBookingTypes=function(){var e=r.currentVenue?t.copy(r.currentVenue.booking_types):[];if(r.locale){var n=r.currentVenue.locale_strings&&r.currentVenue.locale_strings[r.locale]?r.currentVenue.locale_strings[r.locale]:null;n&&t.forEach(e,function(e){n&&n[e.id]&&n[e.id].name&&(e.name=n[e.id].name)})}return e},r.getType=function(){if("undefined"==typeof r.type&&r.currentVenue){var e=!1;return t.forEach(r.currentVenue.booking_types,function(t){e||(e=t.id)}),e}return r.type},r.getTypeDetails=function(e){var n=!1;return r.currentVenue?(t.forEach(r.currentVenue.booking_types,function(t){t.id==e&&(n=t)}),n):[]},r.getBooking=function(){return{date:r.getDate(),time:r.time,num_people:r.numPeople}},r.getBookingRulesForDate=function(e,n){var r=t.isObject(n),o=r?DMN.days[n.getDay()]:n,i=!1;return e&&e.booking_rules?(r&&t.isDefined(e.booking_overrides)&&t.forEach(e.booking_overrides,function(e){if(!i){var t=DMN.dateFromString(e.date_from),r=DMN.dateFromString(e.date_to);n>=t&&n<=r&&(i=e)}}),i||(i=t.isDefined(e.booking_rules[o])?e.booking_rules[o]:{}),i):i},r.getBookingRulesForBooking=function(e,n){if(!n)return{};var o=r.getBookingRulesForDate(n,e.date),i=f(n,e.num_people);return t.extend({},o,i)},r.getBookableFromUntil=function(e,t,n){if("object"!=typeof t&&DMN.days.indexOf(t)>-1){var i=t,a=DMN.days.indexOf(t);for(t=new Date;t.getDay()!==a;)t=new Date(t.getTime()+864e5)}else{var u=parseInt(t.getMonth()+1,10);u=u<10?"0"+u:u;var s=parseInt(t.getDate(),10);s=s<10?"0"+s:s;var c=t.getFullYear()+"-"+u+"-"+s,i=DMN.days[t.getDay()]}var l=r.getTypeDetails(n),f=e.opening_times,p=r.getBookingRulesForDate(l,t),d="undefined"!=typeof f[c]?c:i,h=f[d].open,m=f[d].close,v=o(h,t),g=o(m,t),$=p.bookings_from||h,y=p.bookings_to||m,b=o($,t),w=o(y,t);if(!(b>g)||l.private_hire){if(bg&&!l.private_hire){var k=l.min_duration||15;w=new Date(g.getTime()-60*k*1e3);var D=w.getHours()<10?"0"+w.getHours():w.getHours(),_=w.getMinutes()<10?"0"+w.getMinutes():w.getMinutes();y=D+":"+_}return{from:$,until:y}}},r.venues.length>1){var l={};t.forEach(r.venues,function(e){"any"!==e._id&&t.forEach(DMN.days,function(t){var n=r.getBookableFromUntil(e,t);l[t]=l[t]||{};var o=!!l[t].open&&parseFloat(l[t].open.replace(":",".")),i=!!l[t].close&&parseFloat(l[t].close.replace(":","."));if(i=ii)&&(l[t].close=n.until),l[t].status=l[t].status||e.opening_times[t].status}})}),c.anyVenueEnabled!==!1&&"any"!==r.venues[0]._id&&r.venues.unshift({_id:"any",title:"Not sure",opening_times:l,venue_group:r.venues[0].venue_group}),r.venue_id="any"}r.minDate=new Date,r.dateOptions={"year-format":"'yy'","starting-day":0},r.getDate=function(){return r.date&&"undefined"!=typeof r.date?r.date:new Date},r.dateDisabled=function(e){if(r.currentVenue){var n=r.currentVenue.opening_times,o=r.currentVenue.bookings_shut||{},i=r.currentVenue.booking_types,a=r.currentVenue.booking_unavailable||{},u=new Date;u=new Date(u.getFullYear(),u.getMonth(),u.getDate());var s=p(u),c=p(e),l=e.getDate()<10?"0"+e.getDate():e.getDate(),f=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0),d=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59),h=r.getType(),m=r.getTypeDetails(h),v=i[h]||"",g=DMN.days[e.getDay()],$=m&&m.private_hire;if(!(eb)return[!0,"Only bookable up to "+w]}if(m.advance_bookings_min_days){var y=24*m.advance_bookings_min_days*60*60*1e3,k=new Date(u.getTime()+y);k.getDate()+" "+DMN.months[k.getMonth()].substr(0,3);if(e=o&&d<=u&&(S=e.unavailable_message?[!0,e.unavailable_message]:[!0,"Bookings unavailable"])})}),S)return S;var T=r.getBookingRulesForDate(m,e);if(!T.booking_available)return[!0,"No "+v+" bookings"];var O=!1;return t.forEach(r.currentVenue.events,function(e){if(!e.title||"public"!==e.status||O)return!1;var n=p(e.date);if(n===c)return void(O=e.title);if(e.recurrence&&["weekly","monthly","custom"].indexOf(e.recurrence.frequency)>-1){var r=p(e.recurrence.end_date);if(r&&r-1)return void(O=e.title);break;case"monthly":var i=!1,a=Math.floor((l-1)/7)+1;if(t.forEach(e.recurrence.frequency.weekdays,function(e){e.day===g&&parseInt(e.num)===a&&(i=!0)}),i)return void(O=e.title);break;case"custom":t.forEach(e.recurrence.custom_dates,function(t){var n=p(t);n===c&&(O=e.title)})}}}),!!O&&[!1,O]}}},r.getNumPeopleOptions=function(){var e=[],t=r.getType(),n=r.getDate(),o=(p(n),r.getTypeDetails(t)),i=r.getBookingRulesForDate(o,n);if(!r.date&&!i.booking_available)for(var a=0;a<7;a++){var u=(a+n.getDay())%7;if(i=r.getBookingRulesForDate(o,DMN.days[u]),i.booking_available)break}if(!i||!i.max_people)return e;var s=i.min_people||1;if(e[0]==s&&e[e.length-1]==i.max_people)return r.numPeopleOptions;for(var c=r.getLocaleString("booking_details.guest"),l=r.getLocaleString("booking_details.guests");s<=i.max_people;)e.push({value:s,label:s+" "+(1===s?c:l)}),s++;return e},r.getTimeOptions=function(){var e=[],n=r.getType(),o=r.getDate(),i=r.getTypeDetails(n),a=r.getBooking(),u=r.getBookingRulesForBooking(a,i),s=u.min_duration;if(r.timesAvailable=!1,!r.currentVenue||!r.currentVenue.opening_times)return e;var c=r.currentVenue.booking_unavailable||{},l=d(c,o,n),f=parseInt(o.getMonth()+1,10);f=f<10?"0"+f:f;var h=(o.getFullYear()+"-"+f+"-"+o.getDate(),DMN.days[o.getDay()],r.getBookableFromUntil(r.currentVenue,o,n));if(!h)return e;var m=h.from,v=h.until,g=new Date(o.getTime());g.setHours(m.split(":")[0]),g.setMinutes(m.split(":")[1]),g.setSeconds(0),g.setMilliseconds(0);var $=new Date(o.getTime());$.setHours(v.split(":")[0]),$.setMinutes(v.split(":")[1]),$.setSeconds(0),$.setMilliseconds(0);var y=i.time_interval||15,b=60*y*1e3;$-1){E=!0;var M=parseInt(u.bookings_shut.slice(1,-5))}for(;w<=$;){var x=w.getHours();x=x<10?"0"+x:x;var S=w.getMinutes();S=S<10?"0"+S:S;var T="";r.locale&&"en-GB"===r.locale.code&&(T=x>=12?"pm":"am");var O=w=e.from&&we.from&&nw&&(O=!0)}e.push({value:x+":"+S,label:x+":"+S+T,available:!O}),r.timesAvailable=r.timesAvailable||!O,w=new Date(w.getTime()+b)}return e},r.getDurationOptions=function(){var e=[];if(!r.currentVenue||!r.currentVenue.opening_times)return e;var n=r.currentVenue.opening_times||{},i=(r.currentVenue.booking_restrictions||{}, r.currentVenue.booking_unavailable||{}),a=r.getType(),u=r.getDate(),s=r.time,c=r.getTypeDetails(a);if(u){var l=d(i,u,a);if(s)var p=o(s,u)}var h=parseInt(u.getMonth()+1,10);h=h<10?"0"+h:h;var m=u.getDate();m=m<10?"0"+m:m;var v=u.getFullYear()+"-"+h+"-"+m,g=DMN.days[u.getDay()],$="undefined"!=typeof n[v]?v:g,y=(n[$].status,n[$].open);y=o(y);var b=n[$].close||"00:00";b=o(b,u);var w;t.forEach(l,function(e){!w&&e.from>p&&(w=e.from)}),w&&(b=w);var k=r.getBookingRulesForDate(c,u),D=f(c,r.numPeople);k=t.extend(k,D);var _=r.getBookableFromUntil(r.currentVenue,u,a);if(!_)return e;var C=_.from,E=b,M=k.min_duration||0,x=k.max_duration||0,S=o(s,u),C=o(C,u),T=!S||C>S?C:S;if(!T)return e;var O=c.time_interval||15,N=O,F=60*O*1e3;T=new Date(T.getTime()+F);for(;T<=E;){var V=T.getHours();V=V<10?"0"+V:V;var A=T.getMinutes();A=A<10?"0"+A:A;var P=V+":"+A,j=Math.floor(N/60),q=Math.floor(N%60),I=j+"hr";q&&(I+=" "+q+"min"),(!M||N>=M)&&(!x||N<=x)&&e.push({value:N,label:P+" ("+I+")"}),N+=O,T=new Date(T.getTime()+F)}return w||x&&!(N<=x)||e.unshift({value:-1,label:"Until close"}),r.time&&1===e.length?r.duration=e[0].value:r.time||(r.duration=null),e},r.$watch("venue_id",function(e){if(1===r.venues.length)r.currentVenue=r.venues[0],r.venue_id=r.currentVenue._id;else if("undefined"!=typeof e){var n=r.type_name?r.type_name.toUpperCase().trim():"";delete r.type,t.forEach(r.venues,function(t,n){e===t._id&&(r.currentVenue=t)}),r.timeSelectOptions=r.getTimeOptions()}if(r.currentVenue){r.venue_group=r.currentVenue.venue_group;var o=0;"any"!==r.currentVenue._id||r.currentVenue.booking_types&&r.currentVenue.booking_types.length?t.forEach(r.currentVenue.booking_types,function(e){var t=e.name.toUpperCase().trim();t===n&&(r.type=e.id),o++}):(r.currentVenue.booking_types=[],t.forEach(r.venues,function(e){t.forEach(e.booking_types,function(e){var n=e.name.toUpperCase().trim(),i=!1;t.forEach(r.currentVenue.booking_types,function(e){e=e.name.toUpperCase().trim(),e==n&&(i=!0)}),i||r.currentVenue.booking_types.push({id:e.id,name:n}),o++})})),r.numBookingTypes=o,1===r.numBookingTypes&&(r.type=r.currentVenue.booking_types[0].id)}}),r.$watch("date",function(){r.timeSelectOptions=r.getTimeOptions(),r.numPeopleOptions=r.getNumPeopleOptions()}),r.$watch("num_people",function(e){r.numPeople="undefined"!=typeof e?parseInt(e):void 0}),r.$watch("type",function(e){if(r.currentVenue&&"undefined"!=typeof e){if(r.date&&r.dateDisabled(r.date)!==!1&&(r.date=null),r.timeSelectOptions=r.getTimeOptions(),r.durationSelectOptions=r.getDurationOptions(),r.duration){var n=!1;t.forEach(r.durationSelectOptions,function(e){n=n||r.duration==e.value}),n||(r.duration=null)}var o={};t.forEach(r.currentVenue.booking_types,function(t){t.id===e&&(o=t)}),r.type_name=o.name}r.numPeopleOptions=r.getNumPeopleOptions()}),r.$watch("time",function(e){"undefined"!=typeof e&&(r.durationSelectOptions=r.getDurationOptions())}),r.$watch("date",function(e){e&&"undefined"!=typeof e&&(r.durationSelectOptions=r.getDurationOptions(),r.numPeopleOptions=r.getNumPeopleOptions())}),r.$watch("numPeople",function(e){e&&"undefined"!=typeof e&&(r.durationSelectOptions=r.getDurationOptions())}),r.$on("$localeChangeSuccess",function(){r.timeSelectOptions=r.getTimeOptions(),r.numPeopleOptions=r.getNumPeopleOptions()}),r.setLocale=function(t){s.setLocale(t);r.locale=t,e.$broadcast("$localeChangeSuccess",t,u)},r.getLocaleString=function(e){return s.getLocaleString(e)};var f=function(e,n){var r;return t.forEach(e.num_people_overrides,function(e){!r&&n>=e.num_people_from&&n<=e.num_people_to&&(r=e)}),r||{}},p=function(e){if(t.isString(e)){var n=e.split("T");return n[0]}if(!t.isDate(e))return"";var r=parseInt(e.getMonth()+1,10);r=r<10?"0"+r:r;var o=e.getDate()<10?"0"+e.getDate():e.getDate(),i=e.getFullYear()+"-"+r+"-"+o;return i},d=function(e,n,r){var o=[],i=new Date(n.getTime());i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0);var a=new Date(n.getTime());return a.setHours(23),a.setMinutes(59),a.setSeconds(59),a.setMilliseconds(999),t.forEach(e,function(e,n){"all"!==n&&n!==r||t.forEach(e,function(e){var t=e.unavailable_from.split("-"),n=new Date(t[0],t[1]-1,t[2]),r=e.unavailable_to.split("-"),u=new Date(r[0],r[1]-1,r[2]),s=e.unavailable_from_time||"07:00",c=e.unavailable_to_time||"06:59";n.setHours(s.split(":")[0]),n.setMinutes(s.split(":")[1]),u.setHours(c.split(":")[0]),u.setMinutes(c.split(":")[1]),ua||o.push({from:n,to:u})})}),o}}]),f.controller("EnquiryFormCtrl",["$scope","$http",function(e,t){var n=DMN.getFormConfig(e.formId)||{};e.valid=!0,e.enquiry={enquiry_type:"enquiry",source:"partner",venue_group:n.venueGroupId},e.minDate=new Date,e.dateOptions={"year-format":"'yy'","starting-day":0},e.checkInitialStage=function(){return e.valid=!0,e.enquiry.num_people&&e.enquiry.num_people.toString().replace(/[^0-9]/,"")||(e.dmnEnquiryForm.num_people.$setValidity(!1),e.valid=!1),e.enquiry.preferred_location&&e.enquiry.preferred_location.trim()||(e.dmnEnquiryForm.preferred_location.$setValidity(!1),e.valid=!1),e.valid},e.checkCustomerDetailsStage=function(){return e.valid=!0,e.enquiry.first_name&&e.enquiry.first_name.trim()||(e.dmnEnquiryForm.first_name.$setValidity(!1),e.valid=!1),e.enquiry.last_name&&e.enquiry.last_name.trim()||(e.dmnEnquiryForm.last_name.$setValidity(!1),e.valid=!1),e.enquiry.email&&e.enquiry.email.trim()||(e.dmnEnquiryForm.email.$setValidity(!1),e.valid=!1),e.valid},e.goToStage=function(t){switch(t){case"customer-details":e.checkInitialStage()&&(e.stage=t);break;case"initial":e.stage=t}},e.submitForm=function(){e.submitting=!0;var n="https:"+DMN.baseUrl+"/api/v4/bookings";e.enquiry.output="json",e.checkCustomerDetailsStage()&&t.post(n,e.enquiry).then(function(t){e.enquiry=t.data.payload.enquiry,e.stage="confirmation",e.submitting=!1},function(t){e.submitting=!1})};var r=function(){for(var e=[],t=DMN.newDayCutoff,n=23;t<=n;){var r=t<10?"0"+t:t;e.push(r+":00"),t++}return e};e.timeSelectOptions=r()}]),f.factory("LocaleManager",["$window","$parse","$locale",function(e,n,r){var o={},i=function(e,n){t.forEach(e,function(r,o){n[o]?t.isArray(n[o])&&(e[o].length=n[o].length):delete e[o]}),t.forEach(n,function(r,o){t.isArray(n[o])||t.isObject(n[o])?(e[o]||(e[o]=t.isArray(n[o])?[]:{}),i(e[o],n[o])):e[o]=n[o]})};return o.locales=DMN.locales,o.currentLocale=o.locales[0],o.getLocales=function(){return o.locales},o.getLocale=function(e){var n;return t.forEach(o.locales,function(t){t.code===e&&(n=t)}),n},o.getCurrentLocale=function(){return o.currentLocale},o.getCurrentLocaleCode=function(){return o.currentLocale?o.currentLocale.code:""},o.setLocale=function(e){var t=o.getLocale(e);o.currentLocale=t||o.locales[0],e=o.currentLocale.code;var n=DMN.angularLocales[e];return i(r,n),o.currentLocale},o.getLocaleString=function(e,n){var r,i=n?o.getLocale(n):o.currentLocale,a=i.strings,u=e.split(".");return t.forEach(u,function(e){a&&t.isObject(a)&&(a=a[e])}),a?r=a:"en-GB"!==n&&(r=o.getLocaleString(e,"en-GB")),r||(r=u[u.length-1]),r},o}]),f.controller("FormCtrl",["$scope","$http","dialog","dialogsModel","LocaleManager",function(e,n,r,o,i){e.loadingForm=!0;var a=o.type||"",u=(o.type_name||"",o.numPeople||""),s="";t.isDate(o.date)&&(s=o.date.getFullYear()+"-"+(o.date.getMonth()+1)+"-"+o.date.getDate());var c=o.time||"",l=o.duration||"",f=(o.notes||"",DMN.baseUrl+"/api/v4/venues/"+o.venue_id+"/booking-availability");f+="?type="+a+"&num_people="+u+"&date="+s+"&time="+c+"&duration="+l,f+="&source=partner&output=json",delete n.defaults.headers.common["X-Requested-With"];try{n({method:"GET",url:f}).success(function(t,n,r,o){var a=t.payload&&"accept"===t.payload.action;a?e.bookingModalTitle=i.getLocaleString("booking_details.make_a_booking"):e.bookingModalTitle=i.getLocaleString("booking_details.make_an_enquiry")}).error(function(t,n,r,o){e.bookingModalTitle=i.getLocaleString("booking_details.make_an_enquiry")})}catch(p){}e.close=function(e){r.close(e)}}]),f.filter("pastTimesFilter",function(){return function(e,n){var r=new Date;if(!n||n>r)return e;var o=[],i=new Date;return t.forEach(e,function(e){var t=e.value.split(":");i.setHours(t[0]),i.setMinutes(t[1]),i>r&&o.push(e)}),o}}),t.bootstrap(s,["DMNPartnerForm"])}},t.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.position","ui.bootstrap.tooltip","ui.bootstrap.datepicker","ui.bootstrap.transition","ui.bootstrap.dialog"]),t.module("ui.bootstrap.tpls",["template/datepicker/datepicker.html","template/tooltip/tooltip-popup.html","template/datepicker/popup.html","template/dialog/message.html"]),t.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,n){function r(e,t){return e.currentStyle?e.currentStyle[t]:n.getComputedStyle?n.getComputedStyle(e)[t]:e.style[t]}function o(e){return"static"===(r(e,"position")||"static")}var i,a;e.bind("mousemove",function(e){i=e.pageX,a=e.pageY});var u=function(t){for(var n=e[0],r=t.offsetParent||n;r&&r!==n&&o(r);)r=r.offsetParent;return r||n};return{position:function(n){var r=this.offset(n),o={top:0,left:0},i=u(n[0]);return i!=e[0]&&(o=this.offset(t.element(i)),o.top+=i.clientTop-i.scrollTop,o.left+=i.clientLeft-i.scrollLeft),{width:n.prop("offsetWidth"),height:n.prop("offsetHeight"),top:r.top-o.top,left:r.left-o.left}},offset:function(t){var r=t[0].getBoundingClientRect();return{width:t.prop("offsetWidth"),height:t.prop("offsetHeight"),top:r.top+(n.pageYOffset||e[0].body.scrollTop),left:r.left+(n.pageXOffset||e[0].body.scrollLeft)}},mouse:function(){return{x:i,y:a}}}}]),t.module("ui.bootstrap.tooltip",["ui.bootstrap.position"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var n={placement:"top",animation:!0,popupDelay:0},r={mouseenter:"mouseleave",click:"click",focus:"blur"},o={};this.options=function(e){t.extend(o,e)},this.setTriggers=function(e){t.extend(r,e)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(i,a,u,s,c,l,f){return function(i,p,d){function h(e){var t=e||m.trigger||d,n=r[t]||t;return{show:t,hide:n}}var m=t.extend({},n,o),v=e(i),g=f.startSymbol(),$=f.endSymbol(),y="<"+v+'-popup title="'+g+"tt_title"+$+'" content="'+g+"tt_content"+$+'" placement="'+g+"tt_placement"+$+'" animation="tt_animation()" is-open="tt_isOpen">";return{restrict:"EA",scope:!0,link:function(e,n,r){function o(){e.tt_isOpen?d():f()}function f(){e.tt_popupDelay?b=u(v,e.tt_popupDelay):e.$apply(v)}function d(){e.$apply(function(){g()})}function v(){var t,r,o,i;if(e.tt_content){switch($&&u.cancel($),k.css({top:0,left:0,display:"block"}),D?(w=w||c.find("body"),w.append(k)):n.after(k),t=D?l.offset(n):l.position(n),r=k.prop("offsetWidth"),o=k.prop("offsetHeight"),e.tt_placement){case"mouse":var a=l.mouse();i={top:a.y,left:a.x};break;case"right":i={top:t.top+t.height/2-o/2,left:t.left+t.width};break;case"bottom":i={top:t.top+t.height,left:t.left+t.width/2-r/2};break;case"left":i={top:t.top+t.height/2-o/2,left:t.left-r};break;default:i={top:t.top-o,left:t.left+t.width/2-r/2}}i.top+="px",i.left+="px",k.css(i),e.tt_isOpen=!0}}function g(){e.tt_isOpen=!1,u.cancel(b),t.isDefined(e.tt_animation)&&e.tt_animation()?$=u(function(){k.remove()},500):k.remove()}var $,b,w,k=a(y)(e),D=!!t.isDefined(m.appendToBody)&&m.appendToBody,_=h(void 0),C=!1;e.tt_isOpen=!1,r.$observe(i,function(t){e.tt_content=t}),r.$observe(p+"Title",function(t){e.tt_title=t}),r.$observe(p+"Placement",function(n){e.tt_placement=t.isDefined(n)?n:m.placement}),r.$observe(p+"Animation",function(n){e.tt_animation=t.isDefined(n)?s(n):function(){return m.animation}}),r.$observe(p+"PopupDelay",function(t){var n=parseInt(t,10);e.tt_popupDelay=isNaN(n)?m.popupDelay:n}),r.$observe(p+"Trigger",function(e){C&&(n.unbind(_.show,f),n.unbind(_.hide,d)),_=h(e),_.show===_.hide?n.bind(_.show,o):(n.bind(_.show,f),n.bind(_.hide,d)),C=!0}),r.$observe(p+"AppendToBody",function(n){D=t.isDefined(n)?s(n)(e):D}),D&&e.$on("$locationChangeSuccess",function(){e.tt_isOpen&&g()}),e.$on("$destroy",function(){e.tt_isOpen?g():k.remove()})}}}}]}).directive("tooltipPopup",function(){return{restrict:"E",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]),t.module("ui.bootstrap.datepicker",["ui.bootstrap.position"]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(e,n,r,o){function i(n,r){return t.isDefined(n)?e.$parent.$eval(n):r}function a(e,t){return new Date(e,t,0).getDate()}function u(e,t){for(var n=new Array(t),r=e,o=0;o0?7-p:-p,h=new Date(i),m=0;d>0&&(h.setDate(-d+1),m+=d),m+=a(n,o+1),m+=(7-m%7)%7;for(var v=u(h,m),g=new Array(7),$=0;$0||i;return a?[u,a]:u}}]).directive("datepicker",["dateFilter","$parse","datepickerConfig","$log",function(e,n,r,o){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(e,i,a,u){function s(){e.showWeekNumbers=0===m&&g}function c(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function l(n){var r=null,i=!0;h.$modelValue&&(r=new Date(h.$modelValue),isNaN(r)?(i=!1,o.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):n&&(v=r)),h.$setValidity("date",i);var a=d.modes[m],u=a.getVisibleDates(v,r);t.forEach(u.objects,function(e){var n=d.isDisabled(e.date,m);t.isArray(n)?(e.disabled=n[0],e.message=n[1]):e.disabled=n}),h.$setValidity("date-disabled",!r||!d.isDisabled(r)),e.rows=c(u.objects,a.split),e.labels=u.labels||[],e.title=u.title}function f(e){m=e,s(),l()}function p(e){var t=new Date(e);t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1}var d=u[0],h=u[1];if(h){var m=0,v=new Date,g=r.showWeeks;a.showWeeks?e.$parent.$watch(n(a.showWeeks),function(e){g=!!e,s()}):s(),a.min&&e.$parent.$watch(n(a.min),function(e){d.minDate=e?new Date(e):null,l()}),a.max&&e.$parent.$watch(n(a.max),function(e){d.maxDate=e?new Date(e):null,l()}),a.type&&e.$parent.$watch(n(a.type),function(e){l()}),h.$render=function(){l(!0)},e.select=function(e){if(0===m){var t=new Date(h.$modelValue);t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),h.$setViewValue(t),l(!0)}else v=e,f(m-1)},e.move=function(e){var t=d.modes[m].step;v.setDate(1),v.setMonth(v.getMonth()+e*(t.months||0)),v.setFullYear(v.getFullYear()+e*(t.years||0)),l()},e.toggleMode=function(){f((m+1)%d.modes.length)},e.getWeekNumber=function(t){return 0===m&&e.showWeekNumbers&&7===t.length?p(t[0].date):null},e.$on("$localeChangeSuccess",function(){e.move(0)})}}}}]).constant("datepickerPopupConfig",{dateFormat:"yyyy-MM-dd",closeOnDateSelection:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","datepickerPopupConfig",function(e,n,r,o,i,a){return{restrict:"EA",require:"ngModel",link:function(u,s,c,l){function f(e){return e?i(e,g):null}function p(e){if(e){var t=new Date(e);if(!isNaN(t))return t}return e}function d(e){b?b(u,!!e):$.isOpen=!!e}function h(e,t,r){e&&(u.$watch(n(e),function(e){$[t]=e}),_.attr(r||t,t))}function m(){$.position=o.position(s),$.position.top=$.position.top+s.prop("offsetHeight")}var v=t.isDefined(c.closeOnDateSelection)?$.$eval(c.closeOnDateSelection):a.closeOnDateSelection,g=c.datepickerPopup||a.dateFormat,$=u.$new();u.$on("$destroy",function(){$.$destroy()}),l.$formatters.push(f),l.$parsers.push(p);var y,b;c.open&&(y=n(c.open),b=y.assign,u.$watch(y,function(e){$.isOpen=!!e})),$.isOpen=!!y&&y(u);var w=function(e){$.isOpen&&e.target!==s[0]&&$.$apply(function(){d(!1)})},k=function(){$.$apply(function(){d(!0)})},D=t.element("
");D.attr({"ng-model":"date","ng-change":"dateSelection()"});var _=t.element(D.children()[0]);c.datepickerOptions&&_.attr(t.extend({},u.$eval(c.datepickerOptions)));var C=n(c.ngModel).assign;if($.dateSelection=function(){C(u,$.date),v&&d(!1)},$.$watch(function(){return l.$modelValue},function(e){if(t.isString(e)){var n=p(e);if(e&&!n)throw C(u,null),new Error(e+" cannot be parsed to a date object.");e=n}$.date=e,m()}),h(c.min,"min"),h(c.max,"max"),c.datepickerUpdate){var E=$.$eval(c.datepickerUpdate);t.forEach(E,function(e){h(e,e)})}c.showWeeks?h(c.showWeeks,"showWeeks","show-weeks"):($.showWeeks=!0,_.attr("show-weeks","showWeeks")),c.dateDisabled&&_.attr("date-disabled",c.dateDisabled),$.$watch("isOpen",function(e){e?(m(),r.bind("click",w),s.unbind("focus",k),s[0].focus()):s.bind("focus",k),b&&b(u,e)}),$.today=function(){C(u,new Date)},$.clear=function(){C(u,null)},s.after(e(D)($))}}}]).directive("datepickerPopupWrap",[function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(e,t,n){t.bind("click",function(e){e.preventDefault(),e.stopPropagation()})}}}]),t.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,n,r){function o(e){for(var t in e)if(void 0!==a.style[t])return e[t]}var i=function(o,a,u){u=u||{};var s=e.defer(),c=i[u.animation?"animationEndEventName":"transitionEndEventName"],l=function(e){r.$apply(function(){o.unbind(c,l),s.resolve(o)})};return c&&o.bind(c,l),n(function(){t.isString(a)?o.addClass(a):t.isFunction(a)?a(o):t.isObject(a)&&o.css(a),c||s.resolve(o)}),s.promise.cancel=function(){c&&o.unbind(c,l),s.reject("Transition cancelled")},s.promise},a=document.createElement("trans"),u={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},s={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return i.transitionEndEventName=o(u),i.animationEndEventName=o(s),i}]);var n=t.module("ui.bootstrap.dialog",["ui.bootstrap.transition"]);n.controller("MessageBoxController",["$scope","dialog","model",function(e,t,n){e.title=n.title,e.message=n.message,e.buttons=n.buttons,e.close=function(e){t.close(e)}}]),n.provider("$dialog",function(){var e={backdrop:!0,dialogClass:"modal",backdropClass:"modal-backdrop",transitionClass:"fade",triggerClass:"in",resolve:{},backdropFade:!1,dialogFade:!1,keyboard:!0,backdropClick:!0},n={},r={value:0};this.options=function(e){n=e},this.$get=["$http","$document","$compile","$rootScope","$controller","$templateCache","$q","$transition","$injector",function(o,i,a,u,s,c,l,f,p){function d(e){var n=t.element("
");return n.addClass(e),n}function h(r){var o=this,i=this.options=t.extend({},e,n,r);this._open=!1,this.backdropEl=d(i.backdropClass),i.backdropFade&&(this.backdropEl.addClass(i.transitionClass),this.backdropEl.removeClass(i.triggerClass)),this.modalEl=d(i.dialogClass),i.dialogFade&&(this.modalEl.addClass(i.transitionClass),this.modalEl.removeClass(i.triggerClass)),this.handledEscapeKey=function(e){27===e.which&&(o.close(),e.preventDefault(),o.$scope.$apply())},this.handleBackDropClick=function(e){o.close(),e.preventDefault(),o.$scope.$apply()}}var m=i.find("body");return h.prototype.isOpen=function(){return this._open},h.prototype.open=function(e,t){var n=this,r=this.options;if(e&&(r.templateUrl=e),t&&(r.controller=t),!r.template&&!r.templateUrl)throw new Error("Dialog.open expected template or templateUrl, neither found. Use options or open method to specify them.");return this._loadResolves().then(function(e){var t=e.$scope=n.$scope=e.$scope?e.$scope:u.$new();if(n.modalEl.html(e.$template),n.options.controller){var r=s(n.options.controller,e);n.modalEl.children().data("ngControllerController",r)}a(n.modalEl)(t),n._addElementsToDom(),setTimeout(function(){n.options.dialogFade&&n.modalEl.addClass(n.options.triggerClass),n.options.backdropFade&&n.backdropEl.addClass(n.options.triggerClass)}),n._bindEvents()}),this.deferred=l.defer(),this.deferred.promise},h.prototype.close=function(e){function t(e){e.removeClass(r.options.triggerClass)}function n(){r._open&&r._onCloseComplete(e)}var r=this,o=this._getFadingElements();if(o.length>0)for(var i=o.length-1;i>=0;i--)f(o[i],t).then(n);else this._onCloseComplete(e)},h.prototype._getFadingElements=function(){var e=[];return this.options.dialogFade&&e.push(this.modalEl),this.options.backdropFade&&e.push(this.backdropEl),e},h.prototype._bindEvents=function(){this.options.keyboard&&m.bind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.bind("click",this.handleBackDropClick)},h.prototype._unbindEvents=function(){this.options.keyboard&&m.unbind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.unbind("click",this.handleBackDropClick)},h.prototype._onCloseComplete=function(e){this._removeElementsFromDom(),this._unbindEvents(),this.deferred.resolve(e)},h.prototype._addElementsToDom=function(){m.append(this.modalEl),this.options.backdrop&&(0===r.value&&m.append(this.backdropEl),r.value++),this._open=!0},h.prototype._removeElementsFromDom=function(){this.modalEl.remove(),this.options.backdrop&&(r.value--,0===r.value&&this.backdropEl.remove()),this._open=!1},h.prototype._loadResolves=function(){var e,n=[],r=[],i=this;return this.options.template?e=l.when(this.options.template):this.options.templateUrl&&(e=o.get(this.options.templateUrl,{cache:c}).then(function(e){return e.data})),t.forEach(this.options.resolve||[],function(e,o){r.push(o),n.push(t.isString(e)?p.get(e):p.invoke(e))}),r.push("$template"),n.push(e),l.all(n).then(function(e){var n={};return t.forEach(e,function(e,t){n[r[t]]=e}),n.dialog=i,n})},{dialog:function(e){return new h(e)},messageBox:function(e,t,n){return new h({templateUrl:"template/dialog/message.html",controller:"MessageBoxController",resolve:{model:function(){return{title:e,message:t,buttons:n}}}})}}}]}),t.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){var t='',n='';e.put("template/datepicker/datepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{title}}
#{{label}}
{{ getWeekNumber(row) }}\n \n \n \n
\n')}]),t.module("template/datepicker/popup.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/popup.html","
\n
\t
\n
")}]),t.module("template/dialog/message.html",[]).run(["$templateCache",function(e){e.put("template/dialog/message.html",'\n\n\n')}]),t.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'
\n
\n
\n
\n')}]),DMN.init(),t.element(document).ready(function(){window.angular=e})}(); DMN.angularLocales = {}; DMN.angularLocales['en-GB'] = { "DATETIME_FORMATS": { "AMPMS": [ "AM", "PM" ], "DAY": [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], "MONTH": [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], "SHORTDAY": [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], "SHORTMONTH": [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], "fullDate": "EEEE, d MMMM y", "longDate": "d MMMM y", "medium": "d MMM y HH:mm:ss", "mediumDate": "d MMM y", "mediumTime": "HH:mm:ss", "short": "dd/MM/yyyy HH:mm", "shortDate": "dd/MM/yyyy", "shortTime": "HH:mm" }, "NUMBER_FORMATS": { "CURRENCY_SYM": "\u00a3", "DECIMAL_SEP": ".", "GROUP_SEP": ",", "PATTERNS": [ { "gSize": 3, "lgSize": 3, "macFrac": 0, "maxFrac": 3, "minFrac": 0, "minInt": 1, "negPre": "-", "negSuf": "", "posPre": "", "posSuf": "" }, { "gSize": 3, "lgSize": 3, "macFrac": 0, "maxFrac": 2, "minFrac": 2, "minInt": 1, "negPre": "\u00a4-", "negSuf": "", "posPre": "\u00a4", "posSuf": "" } ] }, "id": "en-gb", "pluralCat": function (n) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;} };