function signup(fo_obj){
	var validator = xe.getApp('validator')[0];
	if(!validator) return false;
	if(!fo_obj.elements['_filter']) jQuery(fo_obj).prepend('<input type="hidden" name="_filter" value="" />');
	fo_obj.elements['_filter'].value = 'signup';
	validator.cast('ADD_CALLBACK', ['signup', function(form){
		var params={}, responses=[], elms=form.elements, data=jQuery(form).serializeArray();
		jQuery.each(data, function(i, field){
			var val = jQuery.trim(field.value);
			if(!val) return true;
			if(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '');
			if(params[field.name]) params[field.name] += '|@|'+val;
			else params[field.name] = field.value;
		});
		params['password'] = params['password1']; delete params['password1'];
		responses = ['error','message','redirect_url'];
		if(!confirm('등록하시겠습니까?')) return false;
		exec_xml('member','procMemberInsert', params, completeInsert, responses, params, form);
	}]);
	validator.cast('VALIDATE', [fo_obj,'signup']);
	return false;
};

(function($){
	var validator = xe.getApp('Validator')[0];
	if(!validator) return false;
	validator.cast('ADD_FILTER', ['signup', {
		'user_id': {required:true,minlength:3,maxlength:20,rule:'userid'},
		'password1': {required:true,minlength:6,maxlength:20},
		'password2': {required:true,minlength:6,maxlength:20,equalto:'password1'},
		'user_name': {required:true,minlength:2,maxlength:40},
		'nick_name': {required:true,minlength:2,maxlength:40},
		'email_address': {required:true,minlength:1,maxlength:200,rule:'email'},
		'specfim' : {required:true},
		'open_specfim' : {},
		'realname' : {required:true},
		'open_realname' : {},
		'kaddre' : {required:true},
		'open_kaddre' : {},
		'vga' : {required:true},
		'open_vga' : {},
		'cellno' : {},
		'open_cellno' : {}
	}]);
	validator.cast('ADD_MESSAGE', ['user_id', '아이디']);
	validator.cast('ADD_MESSAGE', ['password1', '비밀번호']);
	validator.cast('ADD_MESSAGE', ['password2', '비밀번호 확인']);
	validator.cast('ADD_MESSAGE', ['user_name', '이름']);
	validator.cast('ADD_MESSAGE', ['nick_name', '닉네임']);
	validator.cast('ADD_MESSAGE', ['email_address', '이메일 주소']);
	validator.cast('ADD_MESSAGE', ['specfim', '서명란스펙기재']);
	validator.cast('ADD_MESSAGE', ['open_specfim', 'open_specfim']);
	validator.cast('ADD_MESSAGE', ['realname', '실명확인']);
	validator.cast('ADD_MESSAGE', ['open_realname', 'open_realname']);
	validator.cast('ADD_MESSAGE', ['kaddre', '주소입력']);
	validator.cast('ADD_MESSAGE', ['open_kaddre', 'open_kaddre']);
	validator.cast('ADD_MESSAGE', ['vga', '사용중인 그래픽카드']);
	validator.cast('ADD_MESSAGE', ['open_vga', 'open_vga']);
	validator.cast('ADD_MESSAGE', ['cellno', '휴대폰번호']);
	validator.cast('ADD_MESSAGE', ['open_cellno', 'open_cellno']);
	validator.cast('ADD_MESSAGE', ['accept_agreement', '약관동의']);
	validator.cast('ADD_MESSAGE', ['member_srl', 'member_srl']);
	validator.cast('ADD_MESSAGE', ['password', '비밀번호']);
	validator.cast('ADD_MESSAGE', ['homepage', '홈페이지']);
	validator.cast('ADD_MESSAGE', ['blog', '블로그']);
	validator.cast('ADD_MESSAGE', ['birthday', '생일']);
	validator.cast('ADD_MESSAGE', ['allow_mailing', '메일링 가입']);
	validator.cast('ADD_MESSAGE', ['isnull', '%s을 입력해주세요.']);
	validator.cast('ADD_MESSAGE', ['outofrange', '%s의 글자 수를 맞추어 주세요.']);
	validator.cast('ADD_MESSAGE', ['equalto', '%s이 잘못되었습니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_email', '%s의 형식이 잘못되었습니다. (예: xe@xpressengine.com)']);
	validator.cast('ADD_MESSAGE', ['invalid_userid', '%s의 형식이 잘못되었습니다.\n영문, 숫자와 _로 만드실 수 있으며, 첫 글자는 영문이어야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_user_id', '%s의 형식이 잘못되었습니다.\n영문, 숫자와 _로 만드실 수 있으며, 첫 글자는 영문이어야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_homepage', '%s의 형식이 잘못되었습니다. (예: http://www.xpressengine.com)']);
	validator.cast('ADD_MESSAGE', ['invalid_korean', '%s의 형식이 잘못되었습니다. 한글로만 입력하셔야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_korean_number', '%s의 형식이 잘못되었습니다. 한글과 숫자로만 입력하셔야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_alpha', '%s의 형식이 잘못되었습니다. 영문으로만 입력하셔야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_alpha_number', '%s의 형식이 잘못되었습니다. 영문과 숫자로만 입력하셔야 합니다.']);
	validator.cast('ADD_MESSAGE', ['invalid_number', '%s의 형식이 잘못되었습니다. 숫자로만 입력하셔야 합니다.']);
})(jQuery);
