(function($){ 
hcp = function() {
	
	$(".hcp_page form").live("submit",(function(){
		$('.hcp_page #error, .hcp_page #error_redirect').remove();
		
		//if only whitespace submitted
		$(".hcp_page #fname, .hcp_page #lname, .hcp_page #address, .hcp_page #phone, .hcp_page #city, .hcp_page #state, .hcp_page #zip, .hcp_page #membernumber").each(function(){
			if($(this).val().match(/[\S]+/) == null)
				$(this).val("");
		});
		
		//store missing, invalid state
			var missingFName = ($(".hcp_page #fname").val() == "") ? true: false;
			var missingLName = ($(".hcp_page #lname").val() == "") ? true: false;
			var missingAddress = ($(".hcp_page #address").val() == "") ? true: false;
			var missingCity = ($(".hcp_page #city").val() == "") ? true: false;
			var missingState = ($(".hcp_page #state").val() == "") ? true: false;
			var missingZip = ($(".hcp_page #zip").val() == "") ? true: false;
			if ($(".hcp_page #zip").val().length < 5)
				missingZip = true;
			var missingEmail = ($(".hcp_page #email").val() == "") ? true: false;
			var missingProduct = true;
			if ($('.hcp_page #product1').is(':checked') || $('.hcp_page #product2').is(':checked'))
				missingProduct = false;
			var missingMember = true;
			var memberVal = $('.hcp_page .member input:radio[name=membertype]:checked').val();
			if (memberVal != undefined){
				if ($('.hcp_page #membernumber').val() != "")
					missingMember = false;
			}
			var missingConfirm = true;
			if ($('.hcp_page #conf').is(':checked'))
				missingConfirm = false;
				
			
			var invalidmail = !isValidEmail($(".hcp_page #email").val());
			var missing = missingFName || missingLName || missingAddress || missingCity || missingZip || missingProduct || missingMember || missingEmail || missingState || missingConfirm;
			
			
			//create error div
			var error_string = "<span id='error'><ul>";
									  if (missing)
										error_string += "<li>Please fill in all fields.</li>";
									  if (invalidmail && (!missingEmail))
										error_string += "<li>Please enter a valid email address.</li>";
									  error_string += "</ul></span>";
									   
			//animate outlines
			if (missingFName){
				$(".hcp_page #fname").animate( borderColors, speed);
			}
			if (missingLName){
				$(".hcp_page #lname").animate( borderColors, speed);
			}
			if (missingCity){
				$(".hcp_page #city").animate( borderColors, speed);
			}
			if (missingState){
				$(".hcp_page #state").css({backgroundColor:"#ffc4c4",color:"#F00"});
				$(".hcp_page #state").animate( {
									   borderBottomColor: '#FF0000',
									   borderTopColor: '#FF0000',
									   borderLeftColor: '#FF0000',
									   borderRightColor: '#FF0000', 
									   backgroundColor:"#ffc4c4",
									   color:"#F00"}, speed);
			}
			if (missingZip){
				$(".hcp_page #zip").animate( borderColors, speed);
			}
			if (missingAddress){
				$(".hcp_page #address").animate( borderColors, speed);
			}
			if (missingMember){
				$(".hcp_page #dea_bottom_spacing").append('<div class="errorbox"></div>');
				$(".hcp_page #dea_bottom_spacing .errorbox").css("opacity",0);
				$(".hcp_page #dea_bottom_spacing .errorbox").animate({opacity:1},500);
			}
			if (missingProduct){
				$(".hcp_page .specify_selection").append('<div class="errorbox"></div>');
				$(".hcp_page .specify_selection .errorbox").css("opacity",0);
				$(".hcp_page .specify_selection .errorbox").animate({opacity:1},500);
			}
			if (missingConfirm){
				$(".hcp_page .member").append('<div class="errorbox"></div>');
				$(".hcp_page .member .errorbox").css("opacity",0);
				if(window.devicePixelRatio && (navigator.platform.indexOf("Mac") > -1))
					$(".hcp_page .member .errorbox").css("top","41px");
				$(".hcp_page .member .errorbox").animate({opacity:1},500);
			}
			if (missingEmail || invalidmail){
				$(".hcp_page #email").animate( borderColors, speed);
			}
			
			//listener for focus (remove red)
			$(".hcp_page #fname, .hcp_page #lname, .hcp_page #city, .hcp_page #zip, .hcp_page #address, .hcp_page #email").focus(function(){$(this).animate({ 
									   borderBottomColor: '#0D5BB1',
									   borderTopColor: '#0D5BB1',
									   borderLeftColor: '#0D5BB1',
									   borderRightColor: '#0D5BB1'}, 500);
			});
			$(".hcp_page #state").focus(function(){
				$(this).css({"background-color":"#DFEFFF", color:"#0052AC"});
				$(this).animate({ 
								   borderBottomColor: '#0D5BB1',
								   borderTopColor: '#0D5BB1',
								   borderLeftColor: '#0D5BB1',
								   borderRightColor: '#0D5BB1'}, 500);	
			});
			$(".hcp_page #product1, .hcp_page #product2").click(function(){											 
				$('.hcp_page .specify_selection .errorbox').animate({opacity:0},500, function(){
					$(this).remove();									  
				})
			});
			$(".hcp_page .member input").click(function(){											 
				$('.hcp_page #dea_bottom_spacing .errorbox').animate({opacity:0},500, function(){
					$(this).remove();									  
				})
			});
			
			$(".hcp_page #conf").click(function(){		   
				$('.hcp_page .member .errorbox').animate({opacity:0},500, function(){
					$(this).remove();									  
				})
			});
			
			//append error message and end function
			if (missing || invalidmail){
				$('.hcp_page .required').append(error_string);
				$('html,body').animate({scrollTop: 420}, 1000);
				return false;
			}									
	}));
	
	$(".hcp_page a.reset").live("click",(function(e){
		e.preventDefault();
		$('.hcp_page #error, .hcp_page #error_redirect').remove();
		$('.hcp_page input:text').val("");
		$('.hcp_page select').attr("selectedIndex", "0");
		$('.hcp_page select').css({"background-color":"#DFEFFF", color:"#0052AC"});
		if(window.devicePixelRatio)
			$('select').css("background-color","transparent");
		$('.hcp_page select, .hcp_page input').animate({ 
								   borderBottomColor: '#0D5BB1',
								   borderTopColor: '#0D5BB1',
								   borderLeftColor: '#0D5BB1',
								   borderRightColor: '#0D5BB1'}, 100);
		$('.hcp_page .errorbox').remove();
		$('.hcp_page .member input:radio[name=membertype]').attr("checked","");
		$('.hcp_page #product1, .hcp_page #product2, .hcp_page #conf').attr("checked","");
	}));															 
	
	$(".hcp_page a.submit").live("click",(function(e){
		e.preventDefault();
		$(".hcp_page form").submit();
	}));
	
}
})(jQuery);	
