'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=54f9ca54787279c733b271df&allow_any=false") > -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":{"deposit_required_sentence_prefix":"To secure this booking, we will need to hold your card details for a deposit of %1","payment_required_sentence_prefix":"To secure this booking, we will need to take a payment of %1.","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":"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[6361707181050] = {"id":"6361707181050","type":"collins","form":"dmn-form-6361707181050","venueId":["54f9ca54787279c733b271df"],"venues":[{"_id":"54f9ca54787279c733b271df","title":"Lola Lo Cambridge","booking_restrictions":{"5512f2b10df690657d0cd4e0":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"thursday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"friday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"saturday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"}},"5512f2b10df690657d0cd4e2":{"monday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"tuesday":{"booking_available":false,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"wednesday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"thursday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"friday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"saturday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"sunday":{"booking_available":false,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120}},"5e8da2ae3d928709a96d54f0":{"monday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"tuesday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"wednesday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"thursday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"friday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"saturday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"sunday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180}},"5512f2b10df690657d0cd4e3":{"monday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"tuesday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"wednesday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"thursday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"friday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"saturday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"sunday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120}},"551538030df690803b0cd4e0":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:00"},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":30,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"00:00","bookings_shut":"21:00"},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:00"},"thursday":{"booking_available":false,"bookings_from":"22:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:30"},"friday":{"booking_available":false,"bookings_from":"21:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"20:30"},"saturday":{"booking_available":true,"bookings_from":"20:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The free guest list closes at 11pm, when entry will be \u00a35<\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"19:30"},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"00:00","bookings_shut":"21:00"}},"63b5859c9e93ee6d3a756da4":{"monday":{"booking_notes":"


<\/p>","booking_available":false},"tuesday":{"booking_notes":"


<\/p>","booking_available":false},"wednesday":{"booking_notes":"


<\/p>","booking_available":false},"thursday":{"booking_notes":"


<\/p>","booking_available":false},"friday":{"booking_notes":"


<\/p>","booking_available":false},"saturday":{"booking_notes":"


<\/p>","booking_available":false},"sunday":{"booking_notes":"


<\/p>","booking_available":false}},"63d4f7c8c824ba59aa1ee2bf":{"monday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"tuesday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"wednesday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"thursday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"friday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"saturday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"22:00","bookings_to":"23:00","bookings_shut":"20:00","min_duration":120,"min_people":6},"sunday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_to":"23:00"}},"6450ecba8da9664e5a5bf01a":{"monday":{"booking_notes":"


<\/p>","booking_available":false},"tuesday":{"booking_notes":"


<\/p>","booking_available":false},"wednesday":{"booking_notes":"


<\/p>","booking_available":false},"thursday":{"booking_notes":"


<\/p>","booking_available":false},"friday":{"booking_notes":"


<\/p>","booking_available":false},"saturday":{"booking_notes":"


<\/p>","booking_available":false},"sunday":{"booking_notes":"


<\/p>","booking_available":false}},"648704e0bcf3472e61394f28":{"monday":{"booking_notes":"


<\/p>","booking_available":false},"tuesday":{"booking_notes":"


<\/p>","booking_available":false},"wednesday":{"booking_notes":"


<\/p>","booking_available":false},"thursday":{"booking_notes":"


<\/p>","booking_available":false},"friday":{"booking_notes":"


<\/p>","booking_available":false,"bookings_from":"18:00","bookings_to":"20:30","bookings_shut":"17:00","min_people":1,"max_people":50,"min_duration":60},"saturday":{"booking_notes":"


<\/p>","booking_available":false},"sunday":{"booking_notes":"


<\/p>","booking_available":false}},"64f88d8677ef2434134c235d":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"thursday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"friday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"saturday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300}}},"booking_unavailable":{"5e8da2ae3d928709a96d54f0":[{"id":"5f9ebddbac334230e617d685","unavailable_from":"2022-06-01","unavailable_to":"2022-10-31"}],"undefined":[{"id":"604669d6ea70397cf16f9724","unavailable_from":"2021-03-08","unavailable_to":"2021-05-20"},{"id":"63073e60efa0c06a78100d55","unavailable_from":"2022-08-25","unavailable_to":"2022-11-15"},{"id":"63073e774fc3e17a1345ae34","unavailable_from":"2022-12-31","unavailable_to":"2022-12-31"},{"id":"63073e834fc3e17a1345ae3c","unavailable_from":"2022-12-25","unavailable_to":"2022-12-25"}],"60466ae8e4285b10e94783f2":[{"id":"60d0ce4cc0a05a74f2786e38","unavailable_from":"2021-07-18","unavailable_to":"2025-04-27"}],"630741cd4fc3e1094d4270e6":[{"id":"630741f3efa0c07a5944ab5a","unavailable_from":"2022-08-25","unavailable_to":"2022-11-15"},{"id":"630741fe2e21570cf06e03f2","unavailable_from":"2022-12-25","unavailable_to":"2022-12-25"},{"id":"63074204e1dfd077f953f7f4","unavailable_from":"2022-12-31","unavailable_to":"2022-12-31"}],"all":[]},"opening_times":{"monday":{"status":true,"open":"22:30","close":"03:30","notes":"","private_hire":false},"tuesday":{"private_hire":true,"open":"22:00","close":"03:00","notes":"","status":false},"wednesday":{"private_hire":true,"open":"22:00","close":"03:00","notes":"Please check our events calendar for event details\/listings","status":false},"thursday":{"status":true,"open":"22:00","close":"03:30","notes":"Please check our events calendar for event details\/listings","private_hire":false},"friday":{"status":true,"open":"22:30","close":"03:30","notes":"Cocktail Masterclasses available to book from midday however the nightclub opens at 21:00.","private_hire":false},"saturday":{"status":true,"open":"22:00","close":"03:30","notes":"Cocktail Masterclasses available to book from midday however the nightclub opens at 20:00.","private_hire":false},"sunday":{"private_hire":true,"open":"22:00","close":"03:00","notes":"","status":false},"2023-12-14":{"status":"1","open":"20:00","close":"03:00"}},"bookings_shut":{"monday":{"time":"21:00","message":"Aloha! Online bookings are now shut for tonight, simply turn up and pay entry on the door! For VIP tables please ask a waitress at the bar."},"tuesday":{"message":"Aloha! Visit the event page to buy a ticket!","closed":false,"time":"21:00"},"wednesday":{"time":"21:00","message":"Aloha! Online bookings are shut for tonight. For bookings for today please phone the venue on 01223 367866. If your enquiry is for a VIP table, please speak with the hostess on arrival."},"thursday":{"time":"21:00","message":"Due to high demand the guest list for this event has closed. We have a limited number of VIP table packages available which include queue-jump. Please create a new enquiry for a VIP table if you'd like more information."},"friday":{"time":"20:00","message":"Aloha! Online bookings are now shut for tonight, simply turn up and pay entry on the door! If your enquiry is for a VIP table, please speak with the hostess at the main entrance on arrival."},"saturday":{"time":"20:00","message":"Aloha! Online bookings are now shut for tonight, simply turn up and pay entry on the door! If your enquiry is for a VIP table, please speak with the hostess at the main entrance on arrival."},"sunday":{"time":"17:00","message":"Aloha! Online bookings are now shut for tonight, simply turn up and pay entry on the door!"}},"venue_group":"5512f5440df6903c7c0cd4e9","booking_types":[{"id":"5512f2b10df690657d0cd4e0","name":"VIP Table","value":25,"guestlist":false,"dob_required":true,"no_duration":true,"dob_hidden":false,"use_standing_capacity":false,"color":"#C4037D","private_hire":false,"booking_rules":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"thursday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"friday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"saturday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":2,"max_people":20,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00"}},"time_interval":15,"duration_interval":15,"no_availability_action":"may_enquire","areas":[{"id":"5512ef457872791a57c4e4e6","name":"VIP Table 1"},{"id":"5512ef460df690c87c0cd505","name":"VIP Table 2"},{"id":"5512ef477872794b57c4e4b6","name":"VIP Table 3"},{"id":"5512ef4a787279c956c4e4ca","name":"VIP Table 4"},{"id":"5512ef4d2b588fa339049012","name":"VIP Table 5"},{"id":"5512ef4e2b588f123904901f","name":"VIP Table 6"},{"id":"5512ef4f7872794c56c4e4db","name":"VIP Table 7"},{"id":"5512ef500df690477d0cd4e0","name":"VIP Table 8"},{"id":"5512ef622b588f6339049014","name":"VIP Table 9"},{"id":"5512ef672b588f8c39049012","name":"VIP Table 10"},{"id":"5512ef69787279c956c4e4cb","name":"VIP Table 11"},{"id":"5512ef692b588f8c39049013","name":"VIP Table 12"},{"id":"5512ef697872792756c4e522","name":"VIP Table 13"},{"id":"5512ef6a2b588f8639049015","name":"VIP Table 14"}],"customer_preorder_settings":{"payment_required":""},"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"acknowledgement_email_message":"

Thank you for your booking enquiry at Lola Lo Cambridge!<\/p>

Our reservations team will review your enquiry and get back to you as soon as possible.<\/p>


<\/p>

Kind regards,<\/p>

Lola Lo Cambridge  <\/p>","exclude_from_google_reserve":true,"label_colour":"#f7c6c7"},{"id":"5512f2b10df690657d0cd4e2","name":"Tiki Cocktail Masterclass","value":28.95,"guestlist":false,"dob_required":true,"no_duration":true,"dob_hidden":false,"use_standing_capacity":false,"color":"#8CBB26","private_hire":true,"booking_rules":{"monday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"tuesday":{"booking_available":false,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"wednesday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"thursday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"friday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"saturday":{"booking_available":true,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"07:00","max_duration":120,"min_duration":120},"sunday":{"booking_available":false,"bookings_from":"12:00","min_people":8,"max_people":50,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"20:00","bookings_shut":"07:00","max_duration":120,"min_duration":120}},"time_interval":30,"duration_interval":120,"areas":[{"id":"5512f16b7872796a57c4e4b3","name":"Cocktail Masterclass First Floor"},{"id":"551537707872791166c4e4b3","name":"Cocktail Masterclass Second Floor"},{"id":"5750ea9c426ba1885fc90e4f","name":"Cocktail Masterclass Terrace"}],"customer_preorder_settings":{"payment_required":""},"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"acknowledgement_email_message":"

Thank you for your booking enquiry at Lola Lo Cambridge!<\/p>

Our reservations team will review your enquiry and get back to you as soon as possible.<\/p>

Kind regards,<\/p>

Lola Lo Cambridge  <\/p>","exclude_from_google_reserve":true,"label_colour":"#fad8c7"},{"id":"5e8da2ae3d928709a96d54f0","name":"Christmas 2023","value":0,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"use_standing_capacity":false,"color":"#E32322","private_hire":true,"booking_rules":{"monday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"tuesday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"wednesday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"thursday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"friday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"saturday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180},"sunday":{"booking_available":true,"bookings_from":"12:00","min_people":5,"max_people":540,"booking_notes":"

Please use the special requests box to let us know if you're interested in VIP tables, Tickets, Private Room Hire, a Christmas Cocktail Masterclass or Lola Treasures (drinks tokens) so we know how best to assist you! Please note that Lola Lo is strictly an 18+ venue and valid photo ID will be required on entry.      <\/p>","bookings_to":"23:00","bookings_shut":"18:00","min_duration":180}},"time_interval":15,"duration_interval":15,"booking_overrides":[{"id":"63d17fdbe2a81553994f710d","booking_notes":"


<\/p>","date_from":"2023-01-25T00:00:00","date_to":"2023-10-31T00:00:00","booking_available":false}],"customer_preorder_settings":{"payment_required":""},"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"acknowledgement_email_message":"

Get ready to start planning the festivities!<\/p>

Thank you for your Christmas enquiry at Lola Lo Cambridge. One of our sales managers will get back to you as soon as possible to help plan your ultimate festive celebration with us.<\/p>

From the nibbles to the drinks, we will cater to your every need.<\/p>

Speak soon \ud83d\ude0a<\/p>","exclude_from_google_reserve":true,"label_colour":"#fef2c0"},{"id":"5512f2b10df690657d0cd4e3","name":"Private Hire","value":0,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"use_standing_capacity":false,"color":"#6D398B","private_hire":true,"booking_rules":{"monday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"tuesday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"wednesday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"thursday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"friday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"saturday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120},"sunday":{"booking_available":true,"bookings_from":"10:00","min_people":50,"max_people":540,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n


<\/p>","bookings_to":"19:00","bookings_shut":"18:00","max_duration":480,"min_duration":120}},"time_interval":30,"duration_interval":60,"advance_bookings_min_days":2,"customer_preorder_settings":{"payment_required":""},"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"acknowledgement_email_message":"

Thank you for your booking enquiry at Lola Lo Cambridge!<\/p>

Our reservations team will review your enquiry and get back to you as soon as possible.<\/p>

Kind regards,<\/p>

Lola Lo Cambridge  <\/p>","exclude_from_google_reserve":true,"label_colour":"#bfe5bf"},{"id":"551538030df690803b0cd4e0","name":"Guest List","value":10,"guestlist":true,"dob_required":true,"no_duration":true,"dob_hidden":false,"use_standing_capacity":false,"color":"#F4E500","booking_rules":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:00"},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":30,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"00:00","bookings_shut":"21:00"},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:00"},"thursday":{"booking_available":false,"bookings_from":"22:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"21:30"},"friday":{"booking_available":false,"bookings_from":"21:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"20:30"},"saturday":{"booking_available":true,"bookings_from":"20:00","min_people":2,"max_people":540,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The free guest list closes at 11pm, when entry will be \u00a35<\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"23:00","bookings_shut":"19:30"},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":1,"max_people":500,"booking_notes":"

1. All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

2. The guest list closes at midnight sharp so please arrive in plenty of time and expect a queue on arrival. <\/em><\/p>\n

3. Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em> <\/p>","bookings_to":"00:00","bookings_shut":"21:00"}},"time_interval":30,"duration_interval":30,"no_availability_action":"may_enquire","areas":[{"id":"5750eaa07fb8d7114ea4c421","name":"Guest List"}],"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"confirmation_email_message":"


<\/p>","acknowledgement_email_message":"

Thank you for your booking enquiry at Lola Lo Cambridge!<\/p>

Our reservations team will review your enquiry and get back to you as soon as possible.<\/p>

Kind regards,<\/p>

Lola Lo Cambridge  <\/p>","exclude_from_google_reserve":true,"label_colour":"#bfdadc"},{"id":"64f88d8677ef2434134c235d","name":"Area Hire","value":0,"guestlist":false,"dob_required":false,"no_duration":false,"dob_hidden":false,"use_standing_capacity":false,"color":"#008E5B","booking_rules":{"monday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"tuesday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"wednesday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"thursday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"friday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"saturday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300},"sunday":{"booking_available":true,"bookings_from":"22:00","min_people":15,"max_people":49,"booking_notes":"

All members of your party will be required to present valid photo ID on arrival. We will only accept government issued ID such as a photo card driving licence or passport. 18+<\/em><\/p>\n

Admission is always at the discretion of the venue management. Lola Lo encourages people drink responsibly, so we reserve the right to refuse admission or service to customers who are, or appear to be, intoxicated.<\/em>  <\/p>\n


<\/p>","bookings_to":"00:00","bookings_shut":"20:00","max_duration":300}},"time_interval":15,"duration_interval":30,"send_confirmation_emails":false,"send_cancellation_emails":false,"send_confirmation_sms":false,"acknowledgement_email_message":"

Thank you for your booking enquiry at Lola Lo Cambridge!<\/p>

Our reservations team will review your enquiry and get back to you as soon as possible.<\/p>

Kind regards,<\/p>

Lola Lo Cambridge  <\/p>","exclude_from_google_reserve":true,"label_colour":"#fad8c7"}]}],"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||i)return void(document.location.href=e(!1));var l=t.element(document.getElementsByTagName("body")[0]);l.addClass("dmn-modal-open");var f=r.dialog({controller:"FormCtrl",resolve:{dialogsModel:function(){return n}},dialogFade:!1,dialogClass:"partner-form-modal",backdropFade:!1,backdropClick:!1,keyboard:!1,template:''});f.open().then(function(){l.removeClass("dmn-modal-open")})},n.venues=a.venues,n.getBookingTypes=function(){var e=n.currentVenue?t.copy(n.currentVenue.booking_types):[];if(n.locale){var r=n.currentVenue.locale_strings&&n.currentVenue.locale_strings[n.locale]?n.currentVenue.locale_strings[n.locale]:null;r&&t.forEach(e,function(e){r&&r[e.id]&&r[e.id].name&&(e.name=r[e.id].name)})}return e},n.getType=function(){if("undefined"==typeof n.type&&n.currentVenue){var e=!1;return t.forEach(n.currentVenue.booking_types,function(t){e||(e=t.id)}),e}return n.type},n.getTypeDetails=function(e){var r=!1;return n.currentVenue?(t.forEach(n.currentVenue.booking_types,function(t){t.id==e&&(r=t)}),r):[]},n.getBooking=function(){return{date:n.getDate(),time:n.time,num_people:n.numPeople}},n.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},n.getBookingRulesForBooking=function(e,r){if(!r)return{};var o=n.getBookingRulesForDate(r,e.date),i=l(r,e.num_people);return t.extend({},o,i)},n.getBookableFromUntil=function(e,t,r){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=n.getTypeDetails(r),f=e.opening_times,p=n.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}}},n.venues.length>1){var c={};t.forEach(n.venues,function(e){"any"!==e._id&&t.forEach(DMN.days,function(t){var r=n.getBookableFromUntil(e,t);c[t]=c[t]||{};var o=!!c[t].open&&parseFloat(c[t].open.replace(":",".")),i=!!c[t].close&&parseFloat(c[t].close.replace(":","."));if(i=ii)&&(c[t].close=r.until),c[t].status=c[t].status||e.opening_times[t].status}})}),s.anyVenueEnabled!==!1&&"any"!==n.venues[0]._id&&n.venues.unshift({_id:"any",title:"Not sure",opening_times:c,venue_group:n.venues[0].venue_group}),n.venue_id="any"}n.minDate=new Date,n.dateOptions={"year-format":"'yy'","starting-day":0},n.getDate=function(){var e;return e=n.date&&"undefined"!=typeof n.date?n.date:new Date,e.setHours(0),e.setMinutes(0),e},n.dateDisabled=function(e){if(n.currentVenue){var r=n.currentVenue.opening_times,o=n.currentVenue.bookings_shut||{},i=n.currentVenue.booking_types,a=n.currentVenue.booking_unavailable||{},u=new Date;u=new Date(u.getFullYear(),u.getMonth(),u.getDate());var s=f(u),c=f(e),l=e.getDate()<10?"0"+e.getDate():e.getDate(),p=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0),d=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59),h=n.getType(),m=n.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=n.getBookingRulesForDate(m,e);if(!T.booking_available)return[!0,"No "+v+" bookings"];var O=!1;return t.forEach(n.currentVenue.events,function(e){if(!e.title||"public"!==e.status||O)return!1;var n=f(e.date);if(n===c)return void(O=e.title);if(e.recurrence&&["weekly","monthly","custom"].indexOf(e.recurrence.frequency)>-1){var r=f(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=f(t);n===c&&(O=e.title)})}}}),!!O&&[!1,O]}}},n.getNumPeopleOptions=function(){var e=[],t=n.getType(),r=n.getDate(),o=(f(r),n.getTypeDetails(t)),i=n.getBookingRulesForDate(o,r);if(!n.date&&!i.booking_available)for(var a=0;a<7;a++){var u=(a+r.getDay())%7;if(i=n.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 n.numPeopleOptions;for(var c=n.getLocaleString("booking_details.guest"),l=n.getLocaleString("booking_details.guests");s<=i.max_people;)e.push({value:s,label:s+" "+(1===s?c:l)}),s++;return e},n.getTimeOptions=function(){var e=[],r=n.getType(),o=n.getDate(),i=n.getTypeDetails(r),a=n.getBooking(),u=n.getBookingRulesForBooking(a,i),s=u.min_duration;if(n.timesAvailable=!1,!n.currentVenue||!n.currentVenue.opening_times)return e;var c=n.currentVenue.booking_unavailable||{},l=p(c,o,r),d=parseInt(o.getMonth()+1,10);d=d<10?"0"+d:d;var h=(o.getFullYear()+"-"+d+"-"+o.getDate(),DMN.days[o.getDay()],n.getBookableFromUntil(n.currentVenue,o,r));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="";n.locale&&"en-GB"===n.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}),n.timesAvailable=n.timesAvailable||!O,w=new Date(w.getTime()+b)}return e},n.getDurationOptions=function(){var e=[];if(!n.currentVenue||!n.currentVenue.opening_times)return e; var r=n.currentVenue.opening_times||{},i=n.currentVenue.booking_unavailable||{},a=n.getType(),u=n.getDate(),s=n.time,c=n.getTypeDetails(a);if(u){var f=p(i,u,a);if(s)var d=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 r[v]?v:g,y=r[$].open;y=o(y);var b=r[$].close||"00:00";b=o(b,u);var w;t.forEach(f,function(e){!w&&e.from>d&&(w=e.from)}),w&&(b=w);var k=n.getBookingRulesForDate(c,u),D=l(c,n.numPeople);k=t.extend(k,D);var _=n.getBookableFromUntil(n.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.duration_interval||15,N=M||O,F=60*N*1e3,V=60*O*1e3;for(T=new Date(T.getTime()+F);T<=E;){var A=T.getHours();A=A<10?"0"+A:A;var P=T.getMinutes();P=P<10?"0"+P:P;var j=A+":"+P,q=Math.floor(N/60),I=Math.floor(N%60),L=q+"hr";I&&(L+=" "+I+"min"),(!M||N>=M)&&(!x||N<=x)&&e.push({value:N,label:j+" ("+L+")"}),N+=O,T=new Date(T.getTime()+V)}return w||x&&!(N<=x)||e.unshift({value:-1,label:"Until close"}),n.time&&1===e.length?n.duration=e[0].value:n.time||(n.duration=null),e},n.$watch("venue_id",function(e){if(1===n.venues.length)n.currentVenue=n.venues[0],n.venue_id=n.currentVenue._id;else if("undefined"!=typeof e){var r=n.type_name?n.type_name.toUpperCase().trim():"";delete n.type,t.forEach(n.venues,function(t,r){e===t._id&&(n.currentVenue=t)}),n.timeSelectOptions=n.getTimeOptions()}if(n.currentVenue){n.venue_group=n.currentVenue.venue_group;var o=0;"any"!==n.currentVenue._id||n.currentVenue.booking_types&&n.currentVenue.booking_types.length?t.forEach(n.currentVenue.booking_types,function(e){var t=e.name.toUpperCase().trim();t===r&&(n.type=e.id),o++}):(n.currentVenue.booking_types=[],t.forEach(n.venues,function(e){t.forEach(e.booking_types,function(e){var r=e.name.toUpperCase().trim(),i=!1;t.forEach(n.currentVenue.booking_types,function(e){e=e.name.toUpperCase().trim(),e==r&&(i=!0)}),i||n.currentVenue.booking_types.push({id:e.id,name:r}),o++})})),n.numBookingTypes=o,1===n.numBookingTypes&&(n.type=n.currentVenue.booking_types[0].id)}}),n.$watch("date",function(){n.timeSelectOptions=n.getTimeOptions(),n.numPeopleOptions=n.getNumPeopleOptions()}),n.$watch("num_people",function(e){n.numPeople="undefined"!=typeof e?parseInt(e):void 0}),n.$watch("type",function(e){if(n.currentVenue&&"undefined"!=typeof e){if(n.date&&n.dateDisabled(n.date)!==!1&&(n.date=null),n.timeSelectOptions=n.getTimeOptions(),n.durationSelectOptions=n.getDurationOptions(),n.duration){var r=!1;t.forEach(n.durationSelectOptions,function(e){r=r||n.duration==e.value}),r||(n.duration=null)}var o={};t.forEach(n.currentVenue.booking_types,function(t){t.id===e&&(o=t)}),n.type_name=o.name}n.numPeopleOptions=n.getNumPeopleOptions()}),n.$watch("time",function(e){"undefined"!=typeof e&&(n.durationSelectOptions=n.getDurationOptions())}),n.$watch("date",function(e){e&&"undefined"!=typeof e&&(n.durationSelectOptions=n.getDurationOptions(),n.numPeopleOptions=n.getNumPeopleOptions())}),n.$watch("numPeople",function(e){e&&"undefined"!=typeof e&&(n.durationSelectOptions=n.getDurationOptions())}),n.$on("$localeChangeSuccess",function(){n.timeSelectOptions=n.getTimeOptions(),n.numPeopleOptions=n.getNumPeopleOptions()}),n.setLocale=function(t){u.setLocale(t);n.locale=t,e.$broadcast("$localeChangeSuccess",t,i)},n.getLocaleString=function(e){return u.getLocaleString(e)};var l=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||{}},f=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},p=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;if(/^(0?[1-9]|[12][0-9]|3[01])[- \/.](0?[1-9]|1[012])[- \/.][0-9]+$/.test(e)){var n=e.split(/[- \/.]/);if(parseInt(n[2])<=99&&(n[2]=parseInt(n[2])+2e3),t=new Date(parseInt(n[2],10),parseInt(n[1],10)-1,parseInt(n[0],10)),!isNaN(t))return t}if(t=new Date(e),!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;} };