function speedtest(){$.jGrowl('Sorry, the form is taking a long time to process. Please give it just a little longer...',{sticky: true,theme:"error"});var mysubtimer = setTimeout(fail,15000);}
function fail(){$.jGrowl('The form should not take this long - it may have failed. I will give you the form again so you can try one more time',{sticky: true,theme:"error"});$('form').show();$('.loading').remove();}
function showsend(){$('#formsend').show();sendonce = 0;}
function showform(){
	$('form').slideDown();
	showsend();
	$('#serverresponse').remove();
	sendonce = 0;
}
var sendonce = 0;
function postit(){
	//blur();
	
		var $form = $('form');
		if (sendonce == 0){
			sendonce = 1;
		var haserror=false;
		var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		var namecheckReg =/^([a-zA-Z '-'_]+)$/;
		var specialcharReg = /[*%=<>]/;
		
		var $email = $('#email');
		var cur_id=$('#cur_id').val();
		
		$email.val($email.val().replace(/ /,''));
		var email=$email.val();
		
		var password=$('#password').val();
		var nickname=$('#nickname').val();
		var firstname=$('#firstname').val();
		var lastname=$('#lastname').val();
		var dob=$('#dob').val();
		var gender=$('#gender').val().toLowerCase();
		var mobile=$('#mobile').val();	
		var postal_number=$('#postal_number').val();
		var postal_street=$('#postal_street').val();
		var postal_suburb=$('#postal_suburb').val();
		var postal_postcode=$('#postal_postcode').val();
		var postal_state=$('#postal_state').val();
		
		var met_spend=$('#met_spend').val();
		var met_frequency=$('#met_frequency').val();
		var met_more=$('#met_more').val();
		
		var errormsg="";
		
		if(email==""){haserror=true;errormsg+="email is empty<br />";}else{if(!emailReg.test(email)){haserror=true;errormsg+="email does not look right<br />";}}
		if(cur_id==""){haserror=true;errormsg+="you need to give us your current member number<br />";}
		if(password==""){haserror=true;errormsg+="password can not be blank<br />";}
		if(specialcharReg.test(password)){haserror=true;errormsg+="password can not contain '*, %, =, < or ><br />";}
		if(gender.length==1){if(gender!="m"&&gender!="f"){haserror=true;errormsg+="gender must be m,f or blank<br />";}}
		
		if(nickname==""){haserror=true;errormsg+="nickname can not be blank<br />";}
		if(specialcharReg.test(nickname)){haserror=true;errormsg+="sorry but your nickname can not contain '*, %, =, < or ><br />";}
		
		if(firstname==""){haserror=true;errormsg+="first name can not be blank<br />";}
		if(!namecheckReg.test(firstname)){haserror=true;errormsg+="first name can only contain letters, spaces, underline (_), and hyphens<br />";}
			
		if(lastname==""){haserror=true;errormsg+="last name can not be blank<br />";}
		if(!namecheckReg.test(lastname)){haserror=true;errormsg+="last name can only contain letters, spaces, underline (_), and hyphens<br />";}
		
		if(dob==""){haserror=true;errormsg+="date of birth can not be blank<br />";}
		if(dob.length!=8){haserror=true;errormsg+="date of birth is not the correct length<br />";}
		if(isNaN(dob)){haserror=true;errormsg+="date of birth needs to be in format YYYYMMDD (eg: 19700321)<br />";}
		
		// postal info
		if(postal_number==""){haserror=true;errormsg+="postal number can not be blank<br />";}
		if(postal_number.toLowerCase().indexOf("po") == -1){
		if(postal_street==""){
			haserror=true;errormsg+="street name can not be blank<br />";
		}else{
			if(!namecheckReg.test(postal_street)){
				haserror=true;errormsg+="street names should only contain letters and spaces<br />";
			}
		}
		}
		
		if(postal_suburb==""){haserror=true;errormsg+="suburb can not be blank<br />";}else{if(!namecheckReg.test(postal_suburb)){haserror=true;errormsg+="suburbs should only contain letters and spaces<br />";}}
		
		if(postal_state==null){haserror=true;errormsg+="you must select a state<br />";}
		if((postal_postcode.length!=4)||(isNaN(postal_postcode))){haserror=true;errormsg+="postcode looks wrong<br />";}
		if(isNaN(postal_postcode)){haserror=true;errormsg+="postcode needs to be a number<br />";}
		
		// survey
		if(met_spend=="" || met_spend == null){haserror=true;errormsg+="you need to pick your average spend<br />";}
		if(met_frequency=="" || met_frequency == null){haserror=true;errormsg+="how often do you go to The MET?<br />";}
	
		if(haserror==false){
			str=$form.serialize();
			var mysubtimer = setTimeout(speedtest,15000);
			$form.after('<div class="loading">&nbsp;</div>').slideUp();
			$.post("mm_post.asp",str,function(data){
				var $loading = $('.loading');							  
				if(data == 'success'){
					$loading.after('<div class="msg notes" id="serverresponse">Success<br />Your form has been successfully sent<span class="debug_redo">.</span></div>').remove();
					$loading.remove();
					$('#helpnotes').remove();
					$('.debug_redo').click(function(){showform();})
					return false;
					
				}else{
					$loading.after('<div class="msg notes" id="serverresponse">There was an error reported by the server. <br />Wait whilst I reload your form...</div>').remove();
					$.jGrowl('For debugging, your error is:<br />'+data,{sticky:true,theme:"error"});
					var mytimerresponse = setTimeout(showform,4000);
					
				}
				clearInterval(mysubtimer);
			});
		}else{
			$.jGrowl(errormsg,{life:7000,theme:"error"});
			//$('#formsend').show();
			//sendonce = 0;
			var mytimerresponse = setTimeout(showsend,1000);
			return false;
		}
		
	}
		return false;
}

function init(){
	$('.panel, .hlist a, .msg').corners();
	if (document.title == 'Untitled Document' || document.title =='Member Manager (Loading...)'){document.title = 'Member Manager';}
	
	/* datapicker */
	$('#dob').datePicker({startDate:'19070101',clickInput:true,createButton:false,verticalOffset:30}).dpSetDisplayedMonth(0,1980);
	
	/* buttons */
	$form = $('form');
	$('.btn_cancel').css({cursor:"pointer"}).click(function(){this.blur();$form.clearForm();$('html,body').animate({scrollTop: $form.offset().top}, 1000);return false;});
	$('#formsend').css({cursor:"pointer"}).click(function(){this.blur();postit();return false;});
	
	
}
function init_form(){
/* init the form */	
}
/*
function init_btns(){
	
	// cancel
	$('.cancel').click(function(){this.blur();$('form').clearForm();return false;});
	

}
	*/
$(function(){
		
		/* function to clear the form values */
		$.fn.clearForm=function(){
			return this.each(function(){
				var type=this.type,tag=this.tagName.toLowerCase();
				if(tag=='form')return $(':input',this).clearForm();
				if(type=='text'||type=='password'||tag=='textarea')this.value='';else if(type=='checkbox'||type=='radio')this.checked=false;
				else if(tag=='select')this.selectedIndex=-1
			})
		};
		
		$('form').clearForm();
		Date.format='yyyymmdd';
		$('#loader').hide();
		
		//$('#met_more').
		
		init();
		
});
