
function getcaptcha(){
	setTimeout('document.getElementById("captcha").src="/members/captcha.php?rand='+(new Date().getTime())+';"',100);
}
function clearform(){
	$('#mail,#fname,#lname,#pwd,#captchatext').val('');
	$('#Display_name,#errmsg').html('');
}

function Display_Method(){
	if(document.getElementById('DM').value == 'N'){
		$('#Display_name').html($('#fname').val()+" "+$('#lname').val());		
	}else{
		$('#Display_name').html($('#lname').val()+" "+$('#fname').val());		
	}
}
function signup_ajax(){
	var param=$("#commentForm").serialize();
	$.ajax({
		type:"POST",
		url:'/members/process/sign_up_process.php',
		data:param,
		dataType:"json",
		cache:false, 
		timeout:10000,
		beforeSend: function(){},
		success: function(data){
			$('#contact_loading').remove();	
			if(data.sts == 'OK'){
				clearMask = function(uid){					
					if(typeof uid == 'undefined'){
						location.href = '';
					}else{					
						location.href = "/p/p.php?uid="+uid;
					}				
				};
				dynamicJsCssLoader("/members/js/invite_friends.js","js",function(){
					startRequest("/members/invite_friends.php","","inviteRA(xmlhttp.responseText)");
				});		
			}else if(data.sts =="ERROR"){
				if(data.obj == 'err'){
					$('#errmsg').html(data.msg);	
				}else{						
					$("#"+data.obj).focus();
					var errData = {};
					errData[data.obj]=data.msg;							
					validator.showErrors(errData);													
				}		
				getcaptcha();
				$('#captchatext').val('');
				$('#send').css('color','#333').attr('disabled','');		
				$('#reset').css('color','#666').attr('disabled','');									
			}					
		},
		error: function(){
			$('#contact_loading').remove();
			$('#errmsg').html(data.msg);	
			getcaptcha();
			$('#captchatext').val('');
			$('#send').css('color','#333').attr('disabled','');	
			$('#reset').css('color','#666').attr('disabled','');				
		}
	});	
}

$( function() {	
	$('#fname,#lname').live('keyup',Display_Method);
	$("#DM").live('change',Display_Method);

	$(".commentForm").live('click',function(){
		$.validator.addMethod("validpwd", function(value) {
			return value.match(/^[a-zA-Z0-9_]{6,12}$/);
		},'');
		$.validator.addMethod("validname", function(value) {
			return value.match(/^[^\"\.\\\/\*\+\?\{\}\[\]\$\(\)\~\!\@\#\%\^\<\>\&\:\;\|\,\_\-\=\`]*$/);
		},'');
		$.validator.addMethod("chkdate", function(value) {
			return isDate($("#yyyy").val()+"-"+$("#mm").val()+"-"+$("#dd").val());
		},$('#lang13').val());
		$.validator.addMethod("chkage", function(value) {
			ar=new Array(parseInt($("#yyyy").val()),parseInt($("#mm").val())-1,parseInt($("#dd").val()));  
			var birthday=new Date(ar[0],ar[1],ar[2]); 
			var d=new Date();  
			var age = d.getFullYear()-birthday.getFullYear()-((d.getMonth()<birthday.getMonth() || d.getMonth()==birthday.getMonth() && d.getDate()<birthday.getDate())?1:0);
			return age>=13;
		},$('#lang10').val());
		
		validator =$("#commentForm").validate({
			errorPlacement: function(error, element) {
				if(element.attr("name") == 'mail'){						
					$('#mail').css('color','#000');
				}
				if(element.attr("name") == 'agree'){				
					error.appendTo(element.parent("div").next("div"));
				}else{
					error.appendTo(element.parent("td").next("td"));	
				}
			},
      event: "submit",
			groups:{
				birthday:"mm dd yyyy"
			},
      rules:{
      	mail:{
      		required:true,
      		email:true
      	},
      	pwd:{
      		required:true,
      		validpwd:'validpwd'
      	},
        fname:{
    			required:true,
    			validname:'validname'
        },
        lname:{
        	required:true,
        	validname:'validname'
        },
        dd:{
        	required:true,
					chkage:'chkage',
        	chkdate:'chkdate'
        },
        mm:{
        	required:true,
					chkage:'chkage',
        	chkdate:'chkdate'
        },
        yyyy:{
        	required:true,
        	chkdate:'chkdate',
        	chkage:'chkage'
        },
        captchatext:{
        	required:true,
        	remote: "/members/process/captcha_process.php"
        },
        agree:{
        	required:true
        }
      },
      submitHandler:function(){
				$("#lat").val(geoip_latitude());
				$("#lng").val(geoip_longitude());
      	//提交前進行一些自定義處理
				$('#errmsg').html('');
      	$('#send,#reset').css('color','#999').attr('disabled','disabled');
				$('#reset').after("<img style='vertical-align:middle;margin:0 0 0 20px;position:relative;top:-1px;' id='contact_loading' src='/img/loading2.gif' />");
      	signup_ajax();
      },
      messages:{
      	mail:{
    			required: $('#lang1').val(),
    			email: $('#lang2').val()
        },
        pwd:{
    			required:$('#lang3').val(),
    			validpwd:$('#lang11').val()
        },
        fname:{
    			required:$('#lang5').val(),
    			validname:$('#lang4').val()
        },
        lname:{
    			required:$('#lang6').val(),
    			validname:$('#lang4').val()
        },
        captchatext:{
        	required:$('#lang7').val()
        },
        agree:{
        	required:$('#lang8').val()
        }
      }
		});
	});
	
});
function isDate(str){   
	if(!str.match(/^\d{4}\-\d\d?\-\d\d?$/)){ 
		return false; 
	};   
	var ar=str.replace(/\-0/g,"-").split("-");
	ar=new Array(parseInt(ar[0]),parseInt(ar[1])-1,parseInt(ar[2]));  
	var d=new Date(ar[0],ar[1],ar[2]);   			
	return d.getFullYear()==ar[0] && d.getMonth()==ar[1] && d.getDate()==ar[2];   
};
