//*********************************************
// CUSTOM SETTINGS
//	please edit the section below that's
//	 	rule: {}
//		message: {}
//*********************************************
$(function() {
		var loader = jQuery('<div id="loader" title="" style="text-align:center;height:100px;">connecting to server ... <img src="form_img/loading.gif" alt="loading..." /></div>')
//			.css({position: "relative", top: "1em", left: "25em"})
			.appendTo("body")
		$("#loader").dialog({ 
			modal: true, 
			overlay: { 
				opacity: 0.5, 
				background: "black" 
			},
			autoOpen: false,
			draggable: false,
			resizable: false,
			stack: true,
			model: true,
			height: 100
		});		
		jQuery().ajaxStart(function() {
			loader.dialog("open");
		}).ajaxStop(function() {
//			loader.dialog("close");
		}).ajaxError(function(a, b, e) {
			throw e;
		});
		
	var container = $('div.container');
	// validate the form when it is submitted
	var validator = $("#frmForm").validate({
		submitHandler: function(form) {
			jQuery(form).ajaxSubmit({
				success: showResponse
			});
		},
		errorContainer: container,
		errorLabelContainer: $("ol", container),
		wrapper: 'li',
		meta: "validate",
//*********************************************
// CUSTOM SETTINGS
// 	 	validation rules & messages
//*********************************************
		rules: {
			frm_first_name: {
				required: true,
				minlength: 2
			},
			frm_last_name: {
				required: true,
				minlength: 2
			},
			frm_company: {
				required: true,
				minlength: 5
			},
			frm_address: {
				required: false,
				minlength: 5
			},
			frm_zip: {
				required: false,
				maxlength: 6
			},
			frm_phone: {
				required: true,
				minlength: 10,
				maxlength: 16
			},
			frm_fax: {
				required: false,
				minlength: 10,
				maxlength: 16
			},
			frm_email_address: {
				required: true,
				email: true,
				maxlength: 50
			},
			frm_event_type: {
				required: true
			},
			frm_event_date: {
				required: true
			},
			frm_event_duration: {
				required: true
			},
			frm_guest: {
				required: true,
				number: true
			},
			frm_rooms: {
				required: false,
				number: true
			},
			frm_rooms_breakout: {
				required: false,
				number: true
			},
			frm_response_date: {
				required: true
			}

		},
		messages: {
			frm_first_name: {
				required: "Please enter your First Name.",
				minlength: "First Name must consist of at least 2 characters."
			},
			frm_last_name: {
				required: "Please enter your Last Name.",
				minlength: "Last Name must consist of at least 2 characters."
			},
			frm_company: {
				required: "Please enter Company Name.",
				minlength: "Company Name must consist of at least 5 characters."
			},
			frm_address: {
				minlength: "Address must consist of at least 5 characters."
			},
			frm_zip: {
				maxlength: "Zip Code / Postcode must not exit 6 characters."
			},
			frm_phone: {
				required: "Please enter your Phone Number.",
				minlength: "Phone Number must consist of at least 10 characters.",
				maxlength: "Phone Number must not exit 16 characters."
			},
			frm_fax: {
				minlength: "Fax Number must consist of at least 10 characters.",
				maxlength: "Fax Number must not exit 16 characters."
			},
			frm_email_address: {
				required: "Please enter your E-Mail Address.",
				email: "Please enter a valid E-Mail Address.",
				maxlength: "E-Mail Address must not exit 50 characters."
			},
			frm_event_type: {
				required: "Please enter Event Type."
			},
			frm_event_date: {
				required:"Please select Preferred Event Date(s)."
			},
			frm_event_duration: {
				required:"Please enter Duration of Event Requested."
			},
			frm_guest: {
				required: "Please enter Number of Guests.",
				number: "Number of Guests must be a numeric value."
			},
			frm_rooms: {
				required: "Please enter Number of Rooms Required.",
				number: "Number of Rooms Required must be a numeric value."
			},
			frm_rooms_breakout: {
				required: "Please enter Number of Breakout Rooms Required.",
				number: "Number of Breakout Rooms Required must be a numeric value."
			},
			frm_response_date: {
				required:"Please select Response to RFP Date."
			}
		}
	});

		
});

// post-submit callback 
function showResponse(responseText, statusText)  { 
    // for normal html responses, the first argument to the success callback 
    // is the XMLHttpRequest object's responseText property 
 
    // if the ajaxSubmit method was passed an Options Object with the dataType 
    // property set to 'xml' then the first argument to the success callback 
    // is the XMLHttpRequest object's responseXML property 
 
    // if the ajaxSubmit method was passed an Options Object with the dataType 
    // property set to 'json' then the first argument to the success callback 
    // is the json data object returned by the server 
 	if(responseText == '') {
		$("div#loader").html('Thank You');
		$("#frmForm").resetForm();
	} else {
		$("div#loader").html(responseText);
	}
//    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
//        '\n\nThe output div should have already been updated with the responseText.'); 
} 