/*
	functions.forms.js
	JQuery / DOM Form Functions
	Creator: Matt Kircher
*/
// ==========================================================================================================
// GENERAL FUNCTIONS	
// ==========================================================================================================

function validateEmail(e){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test($.trim(e));
}

function addNotificationBar(mssg){
	
	$('.notification_bar').remove();
	
	var message = $('<div class="notification_bar"><p>'+mssg+'&nbsp;&nbsp;&nbsp;<a class="close_notifier" href="#">ok</a></p></div>');
	$(message).find('a').bind('click', function(){ 
		$('.notification_bar').fadeOut(400, function(){ 
			$('.notification_bar').remove(); 
		});
		return false;
	}).end().hide().prependTo($('body')).slideDown(400);
	
	setTimeout("$('.notification_bar a').trigger('click')", 5000);
	
	return true;
}


// ==========================================================================================================
// HOMEPAGE SETTINGS	
// ==========================================================================================================

function setupHomeSettingsForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateHomeSettings',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){},
		success:    	function(data){
			
			if(data.status == "OK"){
				addNotificationBar(data.status_message);
			} else {
				addNotificationBar(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsHomeForm').ajaxForm(options); 
}

function setupHomeImageForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateHomeImages',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){
			
			var m = (!$('#cmsHomeImageForm input[name="deleteImage[]"]:checked').length)?"Are you sure you want to UPDATE your homepage images?":"Are you sure you want to UPDATE and DELETE selected homepage images?";
			return(confirm(m));
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				$('#cmsHomeImageForm #makeHome'+data.makeHomeId).trigger('click');
				
				$('#cmsHomeImageForm input[name="deleteImage[]"]').each(function(){
					if($(this).is(':checked')){
						$(this).parent().parent().remove();
					}
				});
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);				
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsHomeImageForm').ajaxForm(options);
}

function setupHomeImageUploadForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=uploadHomeImage',
		dataType:	'json',
		resetForm:	true,
		beforeSubmit: function(){
			
				if($.trim($('#home_image_file').val()) == ""){
					alert('Please choose your digital file before adding your homepage image.');
					$('#home_image_file').focus();
					return false;
				} else {
					return true;	
				}
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				addNotificationBar(data.status_message);
				
				var newImage = $('<div class="image"></div>');
				$(newImage).append('<input class="radio_button" type="radio" id="makeHome'+data.vars["newImageId"]+'" name="makeHome[]" value="'+data.vars["newImageId"]+'" />');
				$(newImage).append('<label class="image_label" for="makeHome'+data.vars["newImageId"]+'"><img src="'+data.vars["newImageSrc"]+'" width="100" /></label>');
				$(newImage).append('<div class="actions"></div>');
				$(newImage).find('div.actions').append('<input type="text" id="image'+data.vars["newImageId"]+'" name="vTitle['+data.vars["newImageId"]+']" value="'+data.vars["newImageTitle"]+'" />')
				$(newImage).find('div.actions').append('<input type="checkbox" id="deleteImage'+data.vars["newImageId"]+'" name="deleteImage[]" value="'+data.vars["newImageId"]+'" /> <label for="deleteImage'+data.vars["newImageId"]+'">Delete?</label>');
					
				$('#cmsHomeImageForm fieldset #image-thumbnails').append($(newImage));
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsHomeImageUploadForm').ajaxForm(options);
}

// ==========================================================================================================
// COLLECTION, SET, & INVENTORY RELATIONSHIPS
// ==========================================================================================================

function setupRelationshipForm(relA, relB){
	
	$('.collection_image').colorbox({ width:'33%', height:'50%' });
	$('.set_image').colorbox({ width:'33%', height:'50%' });
	$('.item_image').colorbox({ width:'33%', height:'50%' });
	$('.rel_container').equalHeights().addClass('closed');
	
	$('.toggle_rel_container').each(function(){
		$(this).bind('click', function(){
			var container = $(this).parent().parent().find('.rel_container');
			$(container).toggleClass('closed');

			if($(container).hasClass('closed')){
				$(this).text('Show');
			} else {
				$(this).text('Hide');
			}
			
			$('#main-content, #sub-content').removeAttr('style');
			$('#content').equalHeights();
			return false;
		});
	});
	
	var action = '';
	switch(relA){
		case 'collections': 	action = 'updateCollectionSetRel'; break;
		case 'sets': 		action = 'updateSetItemRel'; break;
		case 'inventory': 	action = 'updateItemImageRel'; break;
	}
	
	if(action != ''){
		
		// prepare Options Object 
		var options = {
			type:		'POST',
			url:        	'includes/cms.process.php?action='+action,
			dataType:	'json',
			resetForm:	false,
			beforeSubmit: function(){
				return(confirm("Update ALL "+relB+" in your "+relA+"?"));
			},
			success:    	function(data){
				
				if(data.status == "OK"){
					addNotificationBar(data.status_message);
				} else {
					addNotificationBar(data.status_message);
				}
			}
		};
		
		// pass options to ajaxForm 
		$('#cmsRelationshipForm').ajaxForm(options);
	}
}


// ==========================================================================================================
// INVENTORY IMAGES	
// ==========================================================================================================

function setupInventoryImageForm(){
	
	$('.inventory_image').colorbox({ current:'', width:'33%', height:'50%' });
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateInventoryImages',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){
			
			var m = (!$('#cmsInventoryImageForm input[name="deleteImage[]"]:checked').length)?"Are you sure you want to UPDATE your inventory images?":"Are you sure you want to UPDATE and DELETE selected inventory images?";
			return(confirm(m));
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				
				//remove deleted
				$('#cmsInventoryImageForm input.delete_checkbox').each(function(){
					if($(this).is(':checked')){
						$(this).parent().parent().remove();
					}
				});
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);				
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsInventoryImageForm').ajaxForm(options);
}

function setupInventoryImageUploadForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=uploadInventoryImage',
		dataType:	'json',
		resetForm:	true,
		beforeSubmit: function(){
			
				if($.trim($('#image_file').val()) == ""){
					alert('Please choose your digital file before adding your image.');
					$('#image_file').focus();
					return false;
				} else if($.trim($('#image_name').val()) == ""){
					alert('Please name your image before adding to your inventory.');
					$('#image_name').focus();
					return false;
				} else {
					return true;	
				}
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				addNotificationBar(data.status_message);
				
				var newImage = $('<tr></tr>');
				$(newImage).append('<td align="center"><a class="inventory_image" rel="collection" title="Inventory image '+data.vars["newImageTitle"]+'" href="'+data.vars["newImageSrc"]+'"><img src="'+data.vars["newImageSrc"]+'" height="20" /></a></td>');
				$(newImage).append('<td><input type="text" name="'+data.vars["newImageTitle"]+'" maxlength="255" size="40" value="'+data.vars["newImageTitle"]+'" /></td>');
				$(newImage).append('<td>'+data.vars["newImageFilename"]+'</td>');
				$(newImage).append('<td align="center"><input type="checkbox" class="delete_checkbox" name="deleteImage[]" value="'+data.vars["newImageId"]+'" /></td>');
					
				$('#cmsInventoryImageForm fieldset table tbody').append($(newImage));
				
				$('.inventory_image').colorbox({ current:'', width:'33%', height:'50%' });
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsInventoryImageUploadForm').ajaxForm(options);
}


// ==========================================================================================================
// INVENTORY	
// ==========================================================================================================

function cmsNewInventoryForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=addNewInventoryItem',
		dataType:	'json',
		resetForm:	true,
		beforeSubmit: function(){
			
				if($.trim($('#inventory_name').val()) == ""){
					alert('Please give this inventory item a name before adding it.');
					$('#inventory_name').focus();
					return false;
				} else {
					return true;	
				}
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				
				var newItem = $('<tr></tr>');
				$(newItem).append('<td><input type="text" name="vTitle['+data.vars["nId"]+']" maxlength="255" size="30" value="'+data.vars["vItemName"]+'" /></td>');
				$(newItem).append('<td><a href="#" class="open_desc_button" rel="'+data.vars["nId"]+'">open</a></td>');
				$(newItem).append('<td><input type="text" name="fPrice['+data.vars["nId"]+']" size="6" value="'+data.vars["fPrice"]+'" /></td>');
				$(newItem).append('<td align="center"><input type="radio" name="homeItem[]" value="'+data.vars["bIsOnHomepage"]+'" /></td>');
				$(newItem).append('<td align="center"><input type="checkbox" class="active_checkbox" name="bActive[]" value="'+data.vars["nId"]+'" /></td>');
				$(newItem).append('<td align="center"><input type="checkbox" class="delete_checkbox" name="deleteImage[]" value="'+data.vars["nId"]+'" /></td>');
				$('#cmsInventoryForm fieldset table tbody').append($(newItem));
				
				var newItem = $('<tr></tr>');
				$(newItem).append('<td colspan="6" class="closed"><textarea name="tDesc['+data.vars["nId"]+']" cols="110" rows="2">'+data.vars["tDesc"]+'</textarea></td>');
				$('#cmsInventoryForm fieldset table tbody').append($(newItem));
				
				$('#cmsInventoryForm .open_desc_button:last').click(function(){
					var row = $('#inventory_table').find('textarea[name="tDesc['+$(this).attr('rel')+']"]').parent();
					$(row).toggleClass('closed');
					if($(row).hasClass('closed')){
						$(this).html('open');
					} else {
						$(this).html('close');
					}
					$('#main-content, #sub-content').removeAttr('style');
					$('#content').equalHeights();
					return false;
				});
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsNewInventoryForm').ajaxForm(options);
}

function cmsInventoryForm(){
		
	$('#cmsInventoryForm table input[name="homeItem[]"]').each(function(){
		$(this).bind('mousedown', function(){
			$(this).parent().parent().find('.active_checkbox').attr('checked', true);
		});
	});
	
	$('#cmsInventoryForm table .active_checkbox').each(function(){
		$(this).bind('mousedown', function(){
			$(this).parent().parent().find('input[name="homeItem[]"]').attr('checked', false);
		});
	});
	
	$('#cmsInventoryForm .open_desc_button').each(function(index){
		$(this).click(function(){
			var row = $('#inventory_table').find('textarea[name="tDesc['+$(this).attr('rel')+']"]').parent();
			$(row).toggleClass('closed');
			if($(row).hasClass('closed')){
				$(this).html('open');
			} else {
				$(this).html('close');
			}
			$('#main-content, #sub-content').removeAttr('style');
			$('#content').equalHeights();
			return false;
		});
	});
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateInventoryItem',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){
			
			var m = (!$('#cmsInventoryForm input[name="deleteImage[]"]:checked').length)?"Are you sure you want to UPDATE your inventory items?":"Are you sure you want to UPDATE and DELETE selected inventory items?";
			return(confirm(m));
		},
		success:    	function(data){
			
			if(data.status == "OK"){				
				
				//remove deleted
				$('#cmsInventoryForm input.delete_checkbox').each(function(){
					if($(this).is(':checked')){
						var row1 = $(this).parent().parent();
						var row2 = $(this).parent().parent().next();
						$(row1).remove();
						$(row2).remove();
					}
				});
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsInventoryForm').ajaxForm(options);
}


// ==========================================================================================================
// SETS	
// ==========================================================================================================

function setupSetsForm(){
	
	$('.set_image').colorbox({ current:'', width:'33%', height:'50%' });
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateSets',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){
			
			var m = (!$('#cmsSetsForm input.delete_checkbox:checked').length)?"Are you sure you want to UPDATE your sets?":"Are you sure you want to UPDATE and DELETE selected sets?";
			return(confirm(m));
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				
				//remove deleted
				$('#cmsSetsForm input.delete_checkbox').each(function(){
					if($(this).is(':checked')){
						$(this).parent().parent().remove();
					}
				});
				
				//rearrange order
				var listitems = $('#cmsSetsForm table input[name="nOrder[]"]').get();
				listitems.sort(function(a, b) {
					var compA = $(a).attr('value');
					compA = (compA == '')?'9999999999999999':compA;
					
					var compB = $(b).attr('value');
					compB = (compB == '')?'9999999999999999':compB;
					
					return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
				})
				$.each(listitems, function(idx, itm) { $('#cmsSetsForm table').append($(itm).parent().parent()); });
				
				//update images
				if(data.post['newImageFiles'] != null && data.post['newImageFiles'].length){
					for(x=0; x<data.post['newImageFiles'].length; x++){
						id 	  = data.post['newImageFiles'][x]["id"];
						filename = data.post['newImageFiles'][x]["filename"];
						src 	  = data.post['newImageFiles'][x]["src"];
						
						$('#cmsSetsForm table input[name="setId[]"]').each(function(){
							if($(this).attr('value') == id){
								var row = $(this).parent().parent();
								$(row).find('a.set_image').attr('href', src).find('img').attr('src', src);
								$(row).find('input[name="vFilename[]"]').val('');
							}
						});
					}
				}
				
				//if images went wrong
				if(data.file_status != "OK"){
					alert("Your sets were updated, however:\n\n"+data.file_status_message);
				}
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				addNotificationBar(data.status_message);
			}
		}
	};
	
	// pass options to ajaxForm 
	$('#cmsSetsForm').ajaxForm(options); 
}

function setupSetsImageUploadForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=uploadSetsImage',
		dataType:	'json',
		resetForm:	true,
		beforeSubmit: function(){
			
				if($.trim($('#set_image_file').val()) == ""){
					alert('Please choose your digital file before adding your set.');
					$('#set_image_file').focus();
					return false;
				} else if($.trim($('#set_name').val()) == ""){
					alert('Please name your set before adding your set.');
					$('#set_name').focus();
					return false;
				} else {
					return true;	
				}
		},
		success:    	function(data){
			
			if(data.status == "OK"){
								
				var newSet = $('<tr></tr>');
				$(newSet).append('<td><input type="hidden" name="setId[]" value="'+data.vars['newSetId']+'" /><input type="text" name="nOrder[]" maxlength="3" size="1" value="" /></td>');
				$(newSet).append('<td><input type="text" name="vSetName[]" maxlength="255" size="15" value="'+data.vars['vSetName']+'" /></td>');
				$(newSet).append('<td align="center"><a class="set_image" rel="set" title="Set image for \''+data.vars['vSetName']+'\' ('+data.vars['newSetImageFilename']+')" href="'+data.vars['newSetImageSrc']+'"><img src="'+data.vars['newSetImageSrc']+'" height="25" /></a></td>');
				$(newSet).append('<td><input type="file" name="vFilename[]" size="15" /></td>');
				$(newSet).append('<td align="center"><input type="checkbox" name="bActive['+data.vars['newSetId']+']" /></td>');
				$(newSet).append('<td align="center"><input type="checkbox" class="delete_checkbox" name="deleteSet['+data.vars['newSetId']+']" /></td>');
					
				$('#cmsSetsForm fieldset table tbody').append($(newSet));
				
				$('.set_image').colorbox({ current:'', width:'33%', height:'50%' });
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsSetsImageUploadForm').ajaxForm(options);
}


// ==========================================================================================================
// COLLECTIONS	
// ==========================================================================================================

function setupCollectionsForm(){
	
	$('.collection_image').colorbox({ current:'', width:'33%', height:'50%' });
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=updateCollections',
		dataType:	'json',
		resetForm:	false,
		beforeSubmit: function(){
			
			var m = (!$('#cmsCollectionsForm input.delete_checkbox:checked').length)?"Are you sure you want to UPDATE your collections?":"Are you sure you want to UPDATE and DELETE selected collections?";
			return(confirm(m));
		},
		success:    	function(data){
			
			if(data.status == "OK"){
				
				//remove deleted
				$('#cmsCollectionsForm input.delete_checkbox').each(function(){
					if($(this).is(':checked')){
						$(this).parent().parent().remove();
					}
				});
				
				//rearrange order
				var listitems = $('#cmsCollectionsForm table input[name="nOrder[]"]').get();
				listitems.sort(function(a, b) {
					var compA = $(a).attr('value');
					compA = (compA == '')?'9999999999999999':compA;
					
					var compB = $(b).attr('value');
					compB = (compB == '')?'9999999999999999':compB;
					
					return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
				})
				$.each(listitems, function(idx, itm) { $('#cmsCollectionsForm table').append($(itm).parent().parent()); });
				
				//update images
				if(data.post['newImageFiles'] != null && data.post['newImageFiles'].length){
					for(x=0; x<data.post['newImageFiles'].length; x++){
						id 	  = data.post['newImageFiles'][x]["id"];
						filename = data.post['newImageFiles'][x]["filename"];
						src 	  = data.post['newImageFiles'][x]["src"];
						
						$('#cmsCollectionsForm table input[name="collectionId[]"]').each(function(){
							if($(this).attr('value') == id){
								var row = $(this).parent().parent();
								$(row).find('a.collection_image').attr('href', src).find('img').attr('src', src);
								$(row).find('input[name="vFilename[]"]').val('');
							}
						});
					}
				}
				
				//if images went wrong
				if(data.file_status != "OK"){
					alert("Your collections were updated, however:\n\n"+data.file_status_message);
				}
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				addNotificationBar(data.status_message);
			}
		}
	};
	
	// pass options to ajaxForm 
	$('#cmsCollectionsForm').ajaxForm(options); 
}

function setupCollectionsImageUploadForm(){
	
	// prepare Options Object 
	var options = {
		type:		'POST',
		url:        	'includes/cms.process.php?action=uploadCollectionsImage',
		dataType:	'json',
		resetForm:	true,
		beforeSubmit: function(){
			
				if($.trim($('#collection_image_file').val()) == ""){
					alert('Please choose your digital file before adding your collection.');
					$('#collection_image_file').focus();
					return false;
				} else if($.trim($('#collection_name').val()) == ""){
					alert('Please name your collection before adding your collection.');
					$('#collection_name').focus();
					return false;
				} else {
					return true;	
				}
		},
		success:    	function(data){
			
			if(data.status == "OK"){
								
				var newCollection = $('<tr></tr>');
				$(newCollection).append('<td><input type="hidden" name="collectionId[]" value="'+data.vars['newCollectionId']+'" /><input type="text" name="nOrder[]" maxlength="3" size="1" value="" /></td>');
				$(newCollection).append('<td><input type="text" name="vCollectionName[]" maxlength="255" size="15" value="'+data.vars['newCollectionName']+'" /></td>');
				$(newCollection).append('<td align="center"><a class="collection_image" rel="collection" title="Collection image for \''+data.vars['newCollectionName']+'\'" href="'+data.vars['newCollectionImageSrc']+'"><img src="'+data.vars['newCollectionImageSrc']+'" height="25" /></a></td>');
				$(newCollection).append('<td><input type="file" name="vFilename[]" size="15" /></td>');
				$(newCollection).append('<td align="center"><input type="checkbox" name="bActive['+data.vars['newCollectionId']+']" /></td>');
				$(newCollection).append('<td align="center"><input type="checkbox" class="delete_checkbox" name="deleteCollection['+data.vars['newCollectionId']+']" /></td>');
					
				$('#cmsCollectionsForm fieldset table tbody').append($(newCollection));
				
				$('.collection_image').colorbox({ current:'', width:'33%', height:'50%' });
				
				$('#main-content, #sub-content').removeAttr('style');
				$('#content').equalHeights();
				
				addNotificationBar(data.status_message);
			} else {
				alert(data.status_message);
			}
		}
	}; 
	
	// pass options to ajaxForm 
	$('#cmsCollectionsImageUploadForm').ajaxForm(options);
}


// ==========================================================================================================
// CONTACT FORM	
// ==========================================================================================================

function setupForm(){
	$('form').each(function(){
		
		//recaptcha: remove logo from puzzle
		if($('#recaptcha_table').length){
			$('#recaptcha_table tbody tr').find(' > td:last').hide();
		}
	});
}

function validateForm(f){
	
	var specificForm = ($.trim(f) == "")?'form':f;
	
	//setup valid object
	var valid = { status:true, response:'', element:null };
	
	//remove classes, go through and check for non-values
	$('.select_required_attention').remove();
	
	$(specificForm+' .required')
	.each(function(){
		$(this).parent().removeClass('required_attention');
		if(($(this).val() == "" || $(this).val() == null)){
			$(this).parent().addClass('required_attention');
			valid.status = false;
			valid.response = 'One or more required fields have not been completed. Please complete them and resubmit the form.';
			if(valid.element == null){ valid.element = $(this); }
			
			if($(this).get(0).nodeName == "SELECT"){
				$(this).after('<span class="select_required_attention"><img src="images/content/check_form_input_icon.jpg" /></span>');
			}
		}
	});
	
	//if email is not of the form 'name@email.com', don't validate
	if(valid.status){
		$(specificForm+' .email_field').each(function(){	
			$(this).parent().removeClass('required_attention');
			if(!validateEmail($(this).val())){
				$(this).parent().addClass('required_attention');
				valid.status = false;
				valid.response = 'Please supply a valid email address.';
				valid.element = $(this);
			}
		});
	}
	
	//display alert, focus on first non-valued field
	if(!valid.status){ alert(valid.response); $(valid.element).focus(); }
	return valid.status;
}