

function flashMessage(messages) {

	$('#noticeMessage').html('');
	$('#errorMessage').html('');
	var messageBox;

	var isError = false;

	if (typeof messages === 'object') {
		//check that we haven't been handed a single message

		if(typeof messages[0] === 'undefined') {
			//make it an array so the rest of the code works
			messages = new Array(messages);
		}

		if (messages[0].message || messages[0].data) {

			var dialogText = '';
			if (messages[0].message) {
				dialogText = messages[0].message + '<br />';				
			}
				
			if (messages[0].message_type === 'error') {
				
				isError = true;

				messageBox = $('#errorMessage').dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
				
				if (messages[0].data) {
					if (messages[0].data.form_validation) {
						for (i in messages[0].data.form_validation) {
							if(messages[0].data.form_validation[i].field !== ''){
								var targetElement = $('[name=' + messages[0].data.form_validation[i].field + ']');
								if(typeof messages[0].data.form_validation[i].eq !== 'undefined' &&
								messages[0].data.form_validation[i].eq !== '') {
									targetElement = $('[name="' + messages[0].data.form_validation[i].field + '"]:eq('+messages[0].data.form_validation[i].eq+')');
								}
								targetElement.addClass('ui-state-error');
							}
							if ($('label[for='+messages[0].data.form_validation[i].field+']').html()) {
								if(messages[0].data.form_validation[i].field !== ''){
									dialogText += $('label[for='+messages[0].data.form_validation[i].field+']').html();
								} 
								dialogText += messages[0].data.form_validation[i].reason + '<br />';
							}
							else if (typeof messages[0].data.form_validation[i].eq !== 'undefined' &&
								messages[0].data.form_validation[i].eq !== '') {
								if (typeof messages[0].data.form_validation[i].reason !== 'undefined') {
									dialogText += messages[0].data.form_validation[i].reason + '<br />';
								}
							} else {
								dialogText += messages[0].data.form_validation[i].field + ' ' + messages[0].data.form_validation[i].reason + '<br />';
							}
							
						}
					}
					
				}
			} else if (messages[0].message_type === 'cart') {
				messageBox = $("#noticeMessage").dialog( "option", "buttons", { 
					"Continue Shopping": function() { $(this).dialog("close"); },
					"View Cart": function() { window.location = '/cart/';}
				} );
			} else {
				messageBox = $("#noticeMessage").dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
			}
			
			if (messages[0].title) {
				messageBox.dialog('option', 'title', messages[0].title);
			}

			messageBox.append(dialogText);
		} else {
			messageBox = $("#noticeMessage").dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
			messageBox.append(messages[0]);
		}
	} else {
		messageBox = $("#noticeMessage").dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
		messageBox.append(messages);
	}
	messageBox.dialog('open');
	
	return messageBox;
}


$(function() {
	$('body').append('<div id="errorMessage"></div>');
	$('body').append('<div id="noticeMessage"></div>');
	
	// default dialogs
	$("#errorMessage").dialog({
		autoOpen: false,
		width: 450,
		close: function(){
			$("#errorMessage").dialog('option', 'width', 450);
			$("#errorMessage").dialog('option', 'title', '');
			$("#errorMessage").html("");
			$("#errorMessage").dialog('option', 'buttons', {"Ok": function() { $(this).dialog("close"); } });
			}
	});
	
	$('#noticeMessage').dialog({
		autoOpen: false,
		width: 450,
		close: function(){
			$("#noticeMessage").dialog('option', 'width', 450);
			$("#noticeMessage").dialog('option', 'title', '');
			$("#noticeMessage").dialog('option', 'buttons', {"Ok": function() { $(this).dialog("close"); } });
			$("#noticeMessage").html("");
			}
	});
	
});
