function isValidEmail(str) {

	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
		return false;
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	
	if (str.indexOf(" ")!=-1){
		return false;
	}
	
	return true;

}

jQuery(function(){
	
	jQuery('form#contact-us-form #send').click(function(e){
		
		var valid = true;
		var name = /[^0-9a-zA-Z,.!@&()\[\]\-_;:\s]/;
		var phone = /[^0-9()\-\.\s]/;
		var subject = /[^0-9a-zA-Z,.\'\"\?!@&\#\$\%\*()\[\]\-_;:\/\\\+\=\s]/;
		var messages = new Array();
		var message = "<p>There are a few problems with your submission: </p>\n<ul>\n";
		
		jQuery('form#contact-us-form input, form#contact-us-form textarea').each(function(index){
			
			switch(jQuery(this).attr('name')){
				case 'name':
					if(jQuery(this).val() == '' || name.test(jQuery(this).val()) == true){
						valid = false;
						messages.push('<li>Your Name is required and can only contain letters, numbers, and basic punctuation</li>');
					}
					break;
				case 'email':
					if(jQuery(this).val() == '' || !isValidEmail(jQuery(this).val())){
						valid = false;
						messages.push('<li>Email Address is required and must be a valid e-mail address</li>');
					}
					break;
				case 'company':
					if(jQuery(this).val() == '' && name.test(jQuery(this).val()) == true){
						valid = false;
						messages.push('<li>Company Name can only contain letters, numbers, and basic punctuation</li>');
					}				
					break;
				case 'phone':
					if(jQuery(this).val() != '' && phone.test(jQuery(this).val()) == true){
						valid = false;
						messages.push('<li>Phone Number can only contain numbers, dashes, periods and parentheses</li>');
					}				
					break;
				case 'subject':
					if(jQuery(this).val() == '' || subject.test(jQuery(this).val()) == true){
						valid = false;
						messages.push('<li>Subject is required and can only contain letters, numbers, and basic punctuation</li>');
					}
					break;
				case 'message':
					if(jQuery(this).val() == '' || subject.test(jQuery(this).val()) == true){
						valid = false;
						messages.push('<li>Message is required and can only contain letters, numbers, and basic punctuation</li>');
					}
					break;
				default:
					break;
			}
			
		});
		
		if(!valid){
			message = message + messages.join("\n") + "\n</ul>";
			jQuery('form#contact-us-form div.errors').html(message);
		}
		else{
			jQuery.ajax({  
				type: 'POST',  
				url: jQuery('form#contact-us-form').attr('action'),  
				data: jQuery('form#contact-us-form').serialize(),  
				dataType: 'text',
				success: function(data, textStatus){
					data = eval('(' + data + ')');
					
					if(data.status == 'true' || data.status == true){
						jQuery('form#contact-us-form div.errors').addClass('success');
						jQuery('form#contact-us-form div.errors').css('display','none');
						jQuery('form#contact-us-form div.email-form').html('<div class="thanks">Thanks for contacting Rady Asset Management, LLC!  Someone in our offices will contact you as soon as possible.</div>');
					}
					else{
						jQuery('form#contact-us-form div.errors').removeClass('success');
						jQuery('form#contact-us-form div.errors').html('There was an error processing your message');
					}
				},
				error: function (XMLHttpRequest, textStatus, errorThrown){}
			});
		}			
	
	});

	jQuery('#get-directions').click(function(e){
		e.preventDefault();
		
		window.open('http://maps.google.com/maps?oe=utf-8&amp;client=firefox-a&amp;ie=UTF8&amp;q=rady+assets+la+jolla&amp;fb=1&amp;gl=us&amp;hq=rady+assets&amp;hnear=la+jolla&amp;cid=0,0,6179622397725713761&amp;ei=FH5wS8zCCIuisgOfpdyxDQ&amp;ved=0CAoQnwIwAA&amp;ll=32.847217,-117.274075&amp;spn=0.012258,0.016909&amp;z=14&amp;source=embed');
	});
});
