$(document).ready(function() {

    jQuery.validator.addMethod("mailorphoneRequired", function(value, element) {
        var email = $("#cemail").val();
        var phone = $("#cphone").val();
        return email + phone != '';

    }, "Your must provide either an email or a phone number.");

    jQuery.validator.addMethod("subcribeemailRequired", function(value, element) {
        var email = $("#cemail").val();
        var newsletter = $("#cnewsletter");
        var inital = newsletter.is(":checked");
        if (inital && email == '')
            return false;
        else
            return true;

    }, "Your must provide email to subscribe to the newsletter.");


    function dateRegex(dateVal) {
        var pattern = /^(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)(day)\, ((31(?!\ (Feb(ruary)?|Apr(il)?|June?|(Sep(?=\b|t)t?|Nov)(ember)?)))|((30|29)(?!\ Feb(ruary)?))|(29(?=\ Feb(ruary)?\ (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])\ (Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\b|t)t?|Nov|Dec)(ember)?)\ ((1[6-9]|[2-9]\d)\d{2})$/;
        return pattern.test(dateVal);
    }

    jQuery.validator.addMethod("checkinDate", function(value, element) {
        return dateRegex(value);
    }, "Please enter a valid date");


    $("#booking").validate();

});
// apply inline-box only for mozilla
if( jQuery.browser.mozilla ) {
	// do when DOM is ready
	$( function() {
		// search form, hide it, search labels to modify, filter classes nocmx and error
		$( 'form.bookingform' ).hide().find( 'p>label:not(.nocmx):not(.error)' ).each( function() {
			var $this = $(this);
			var labelContent = $this.html();
			var labelWidth = document.defaultView.getComputedStyle( this, '' ).getPropertyValue( 'width' );
			// create block element with width of label
			var labelSpan = $("<span>")
				.css("display", "block")
				.width(labelWidth)
				.html(labelContent);
			// change display to mozilla specific inline-box
			$this.css("display", "-moz-inline-box")
				// remove children
				.empty()
				// add span element
				.append(labelSpan);
		// show form again
		}).end().show();
	});
};