﻿$(document).ready(function() {
	$('#errorMessageEmail').html('');
	$('#errorMessageEmail').css('display', 'none');
	$("#frmRegister").validate({
		errorClass	: 'errorMessage',
		errorElement: 'span',
		onfocusout	: false,
		onkeyup		: false,
		rules: {
			txtEmail:{
				required 			: true,
				email				: true,
				isExistEmail		: true
			},
			txtPassword:{
				required			: true,
				minlength			: 5
			},
			txtConfirmPassword:{
				required			: true,
				equalTo				: '#txtPassword'
			},
			txtUsername:{
				required			: true,
				rangelength			: [5,20],
				isValidUsername		: true,
				isExistUsername		: true
			},
			cbGender:{
				required			: true
			},
			cbOccupation:{
				required			: true
			},
			cbEducation:{
				required			: true
			},
			cbYear:{
				required			: true
			},
			cbDay:{
				validateDay			: true
			},
			cbEmo: {
				required			: true
			},
			cbProvince: {
				required			: true
			},
			txtIntroduce: {
				required			: true,
				rangelength			: [30,1000],
				validateIntroduce	: true
			},
			txtMobile:{
				required			: true,
				number				: true,
				validateMobile		: true				
			},
			txtAvatar: {
				validateAvatar		: true
			},
			txtCaptCha: {
				validateCaptcha		: true
			}
		},
		messages: {
			txtEmail:{
				required 			: user_msg_registeremail,
				email				: user_msg_registeremail,
				isExistEmail		: user_msg_registeremailexist
			},
			txtPassword:{
				required			: user_msg_registerpassword,
				minlength			: user_msg_registerpassword
			},
			txtConfirmPassword:{
				required			: user_msg_registerconfirmpassword,
				equalTo				: user_msg_registerconfirmpassword
			},
			txtUsername:{
				required			: user_msg_requiredusername,
				rangelength			: user_msg_invalidusername,
				isValidUsername		: user_msg_invalidusername,
				isExistUsername		: user_msg_registerusernameexist
			},
			cbGender:{
				required			: user_msg_registergender
			},
			cbOccupation:{
				required			: user_msg_registeroccupation
			},
			cbEducation:{
				required			: user_msg_registereducation
			},
			cbYear:{
				required			: com_msg_requiredbirthyear				
			},
			cbDay:{
				validateDay			: com_msg_registerday				
			},
			cbEmo: {
				required			: user_msg_registeremostatus
			},
			cbProvince: {
				required			: user_msg_registerprovince
			},
			txtIntroduce: {
				required			: com_msg_requiredintroduce,
				rangelength			: com_msg_invalidintroduce,
				validateIntroduce	: com_msg_invalidintroduce
			},
			txtMobile:{
				required			: user_msg_registerrequiredmobile,
				number				: user_msg_registerrequiredmobile,
				validateMobile		: user_msg_registerinvalidmobile				
			},
			txtAvatar: {
				validateAvatar		: com_msg_invalidimage
			},
			txtCaptCha: {
				validateCaptcha		: com_msg_invalidcaptcha
			}
		},
		errorPlacement: function(label, element) {
			var id = element.attr('id');
			if (id == 'cbYear')	{
				label.insertAfter($('#cbDay'));
			} else {
				label.insertAfter($('#' + id));
			}
		}
	});
	$.validator.addMethod('isExistEmail', function() {
		var result = false;
		var strEmail = $('#txtEmail').val();
		var strUrl = HOST_HAT + 'valid/isexistemail';
		$.ajax({
			cache	: false,
            async	: false,
            type	: 'POST',
			data	: 'email=' + strEmail + '&regis=1',
			url		: strUrl,
			success	: function(response) {
				if (response == '-1') {
					$('#errorMessageEmail').html('');
					$('#errorMessageEmail').css('display', 'none');
					result = true;
				} else if(response == '1') {
					$('#errorMessageEmail').html(user_msg_registeremailactived);
					$('#errorMessageEmail').css('display', 'block');
				} else {
					var user_msg_notactived = '- Địa chỉ email này đã được đăng ký nhưng chưa kích hoạt. <br/> - Vui lòng nhắn tin theo cú pháp <b>VNC KH [username]</b> gửi đến [8x77] để kích hoạt tài khoản.'; 	
					var arrProfile = response.split('|');	
					var msg = user_msg_notactived.replace('[username]', arrProfile[0]);
					var	msgadd = msg.replace('[8x77]', arrProfile[1]);
					$('#errorMessageEmail').html(msgadd);
					$('#errorMessageEmail').css('display', 'block');
				}
			}
		});
		return result;
	});
	$.validator.addMethod('isValidUsername', function() {
		var username = $('#txtUsername').val();
		return isAlphabetAndNumber(username);
	});
	
	$.validator.addMethod('isExistUsername', function() {
		var result = false;
		var strUsername = $('#txtUsername').val();
		var strUrl = HOST_HAT + 'valid/isexistusername';
		$.ajax({
			cache	: false,
            async	: false,
            type	: 'POST',
			data	: 'username=' + strUsername,
			url		: strUrl,
			success	: function(response) {
				result = (response == 1 ? false : true);
			}
		});
		return result;
	});
	$.validator.addMethod('validateIntroduce', function() {															
		var lenIntro = stripTags($('#txtIntroduce').val(), '');			
		if (lenIntro.length >= 30 && lenIntro.length <= 1000) return true;
		return false;
	});
	$.validator.addMethod('validateMobile', function() {
		var mobile = $('#txtMobile').val();
		return isPhoneNumber(mobile);
	});	
	$.validator.addMethod('validateAvatar', function() {
		if ($('#txtAvatar').val() != '')
			return isValidImage($('#txtAvatar').val());
		return true;
	});
	
	$.validator.addMethod('validateDay', function() { 
		var cbYear = parseInt($('#cbYear').val());
		var cbMonth = parseInt($('#cbMonth').val());
		var cbDay = parseInt($('#cbDay').val());
		if((cbYear%2==1) && cbMonth==2 && cbDay==29){			
			return false; 
		}
		return true;
	});
	
	$.validator.addMethod('validateCaptcha', function() {
		var strCaptchaInput = $('#txtCaptCha').val();
		return validateCaptcha(strCaptchaInput, 'default');
	});
	var tooltipObj = new DHTMLgoodies_formTooltip();
	tooltipObj.setTooltipPosition('left');
	tooltipObj.setPageBgColor('#EEEEEE');
	tooltipObj.setTooltipCornerSize(15);
	tooltipObj.setTooltipWidth(250);
	tooltipObj.initFormFieldTooltip();
});
