email_regex = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
error = false;

$(document).ready(function(){
		$('#use_form,#contact_me').css({display:'block'});
		$('#contact_me').bind('submit',function(){
			
				// remove existing error spans
				if(error > 0) {
					for(i in error_spans) { $('#' + error_spans[i]).remove(); }
					$('#progress').remove();
				}
				
				// validate
				fields={}; errors={}; error_spans={}; error = 0;
				$(':input',$('#contact_me')).each(function(){
						switch(true) {
							case this.type != 'submit' && this.value == '':
							 	errors[this.id] = 'This field is required';
								error++;
								break;
							case this.id == 'email' && !email_regex.test(this.value):
								errors[this.id] = 'Invalid email address';
								error++;
							default:
								fields[this.id] = this.value;
						}	
					});
					
				// set error spans
				if(error > 0) {
					for(i in errors) {
						$('#'+i).before('<span class="alert_box error" id="' + i + '_error">' + errors[i] + '</span>');
						error_spans[i] = i + '_error';
					}
				}
				else {
					$('#submit').after('<span id="progress"> &nbsp; <img src="img/loading.gif" /> Sending...</span>');
					window.setTimeout(function() {
							fields['ua'] = navigator.userAgent;
							$.post('send.php',fields,function(ret){
									ret = eval('(' + ret + ')');
									if(ret.error == false) {
										$('#contact_me').slideUp('normal');
										$('#contact_me').after('<p class="green alert_box">Thank you. Your message has been sent.</p>');
									}
									else {
										$('#progress').html(' &nbsp; ' + ret.error);
										for(i in ret) {
											if($('#'.i)) { 
												$('#'+i).before('<span class="alert_box error" id="' + i + '_error">' + ret[i] + '</span>');
												error_spans[i] = i + '_error';
											}
										}
										error++;
									}
								});
						},500);
				}
				return false;
			});
	});