$(document).ready(function() {
	$("#regwithcodeFrm").validate({
		rules: {
			username : "required",
			firstname: "required",
			password: {
				required: true,
				minlength: 5
			},
			confirmpassword : {
				required: true,
				minlength: 5,
				equalTo: "#password"
			},
			email: {
				required: true,
				email: true
			},
			comfirmemail : {
				required: true,
				equalTo: "#email"
			},
			agree : "required"
		},
		messages: {
			username: "Please enter your User Name .",
			firstname: "Please enter your First Name .",
			password : {
				required: "Please provide a password .",
				minlength: "Your password must be at least 5 characters long ."
			},
			confirmpassword: {
				required: "Please provide a password .",
				minlength: "Your password must be at least 5 characters long .",
				equalTo: "Please enter the same password as above ."
			},
			/**month: "Please select your month of birth .<br />",
			day: "Please select your day of birth .<br />",
			year: "Please select your year of birth .<br />",**/
			email: "Please enter a valid email address .",
			comfirmemail :{
				required: "Please provide a confirmemail .",
				equalTo:  "Please enter the same email as above ."
			},
			agree: "Please accept our policy ."
		},
		errorPlacement: function(error, element) {
			//alert(element.attr("id"));
			if(element.attr("id")=="month" || element.attr("id")== 'day' || element.attr("id")=="year") {
				//error.appendTo("#birthError");
				$("#birthErrorMeg").appendTo("#birthError");
			} else {
				error.appendTo("#"+element.attr("id")+"Error");
			}
		}
	});
	
//	$(".tlayer").validate({
//		rules: {
//			toycode: {
//				required:true,
//				maxlength:14
//			}
//		},
//		messages: {
//			toycode: "please enter your code ."
//		} 
//	});
	
	checkLinkedDays();
	changeCAPTCHA("captcha");
});



function checkLinkedDays() {
	var daysInMonth = 32 - new Date($("#year").val(),$("#month").val() - 1, 32).getDate();
	$("#day option").attr("disabled", "");
	$("#day option:gt(" + (daysInMonth) +")").attr("disabled", "disabled");
	if ($("#day").val() > daysInMonth) { 
		$("#day").val(daysInMonth);
	}
}

function formValid() {
	var result1 = checkTypeNum();
	var result2 = $("#regwithcodeFrm").valid();
	var result3 = checkNameExist();
	var result4 = checkDays();//error: false
	if(!result1 || !result2 || !result3 || !result4){
		return false;
	}
	if($("#regwithcodeFrm").valid()) {
		$('.tlayer').toggle();
		$('#birthday').toggle();
	}
}
function formsubmit2() {
	var type = 0;
	$('#usernameError').html('');
	$('#notoycodeError').html('');
	$('#typenumError').html('');
	if(!jQuery("#regwithcodeFrm").valid()) {
		return false;
	}
	if(!checkDays()) {
		return false;
	}
	var baseurl = jQuery("#baseurl").val();
	jQuery("#regwithcodeFrm").attr('action',baseurl+'sign-up/saveregpayment');
	jQuery("#regwithcodeFrm").ajaxSubmit({
		async: false,
		dataType:'json',
		success: function(responseText){
			var jsoncode = responseText;
			if(jsoncode.hasErr) {

				jQuery.each( jsoncode.err, function(i, n){
					switch(n) {
						case 1:
							jQuery('#usernameError').html(jQuery('#error_username_exist').val());
							break;
						case 2:
							jQuery('#notoycodeError').html(jQuery('#error_toynum').val());
							break;
						case 3:
							jQuery('#typenumError').html(jQuery('#error_typenum').val());
							break;
						case 6:
							jQuery('#usernameError').html(jQuery('#error_badword').val());
							break;
						default:
							break;
					}
				});
			} else {
					window.location = baseurl  + 'sign-up/regsuccess';
			}
		}
	});
}

function formsubmit() {
	var result1 = checkTypeNum();
	var result2 = $("#regwithcodeFrm").valid();
	var result3 = checkNameExist();
	var result4 = checkDays();
//alert(result1);	alert(result2);alert(result3);alert(result4);
	if(!result1 || !result2 || !result3 || !result4){
		return false;
	}
	$('#toycode').rules("add", {
 		required: true,
 		maxlength: 14
	});
	$('#notoycodeError').html("");
	if(!$("#regwithcodeFrm").validate().element('#toycode')) {
		$('#toycode').rules("remove");
		return false;
		
	}
	$("#regwithcodeFrm").ajaxSubmit({
		async: false,
		dataType:'json',
		success: function(responseText){
			var jsoncode = responseText;
			if(jsoncode.hasErr) {
				$.each( jsoncode.err, function(i, n){
					alert(n);
					switch(n) {
						case 1:
							$('#usernameError').html($('#error_username_exist').val());
							break;
						case 2:
							$('#notoycodeError').html($('#error_toynum').val());
							alert($('#notoycodeError').html);
							break;
						case 3:
							$('#typenumError').html($('#error_typenum').val());
							break;						
						case 6:
							$('#usernameError').html($('#error_badword').val());
							break;
						default:
							break;
					}
				});
			} else {
				location.href = $('#baseurl').val()+'sign-up/regsuccess';
			}
		}
	});
}

function formsubmitfree() {
	$('#toycode').rules("remove");
	var result1 = checkTypeNum();
	var result2 = $("#regwithcodeFrm").valid();
	var result3 = checkNameExist();
	var result4 = checkDays();
	if(!result1 || !result2 || !result3 || !result4){
		return false;
	}
	$("#regwithcodeFrm").removeAttr('action');
	$("#regwithcodeFrm").attr('action',$('#baseurl').val() + 'sign-up/saveregfree');
	$("#regwithcodeFrm").ajaxSubmit({
		async: false,
		dataType:'json',
		success: function(responseText){
			var jsoncode = responseText;

			if(!jsoncode.userID) {
				$.each( jsoncode.errCode, function(i, n){
					switch(n) {
						case 1:
							$('#usernameError').html($('#error_username_exist').val());
							$('.tlayer').hide();
							//$('#birthday').show();
							break;
						case 3:
							$('#typenumError').html($('#error_typenum').val());
							$('.tlayer').hide();
							//$('#birthday').show();
							break;
							
						default:
							break;
					}
				});
			} else {
				location.href = $('#baseurl').val()+'sign-up/regcharge';
			}
		}
	});
}

function checkNameExist(){
	var name = $("#username").val();
	if(name == ""){
		return false;
	}
	var result = false;
	var url = $('#baseurl').val()+'sign-up/checkuserexist';
	$.ajax({
		url:url,
		async: false,
		data:"username="+name,
		dataType: "json",
		type:"post",
		success: function(msg) {
			if(msg.haserr == true ) {
				jQuery('#usernameError').html(jQuery('#error_username_exist').val());
				result = false;
			}else{
				jQuery('#usernameError').html("");
				result = true;
			}
		}
	});
	return result;
}

function checkTypeNum(){
	var num = $("#typenum").val();
	if(num == ""){
		$('#typenumError').html("please enter the letters <br/> seen in the image to the left");
		return false;
	}
	var url = $('#baseurl').val()+'sign-up/checktypenum';
	var result = false;
	$.ajax({
		url:url,
		async: false,
		data:"typenum="+num,
		dataType: "json",
		type:"post",
		success: function(msg) {
		
			if(msg.error == false ) {
				$('#typenumError').html($('#error_typenum').val());
				result = false;
			}else{
			
				$('#typenumError').html("");
				result = true;
			}
		}
	});
	return result;
}

function checkDays(){
	$('#birthError').html("");
	checkLinkedDays();
	var month = checkBirthMonth();
	var day = checkBirthDay();
	var year = checkBirthYear();
	var result = true;
	if(!month){
		$('#birthError').append("Please select your month of birth.<br />");
		result = false;
	}
	if(!day){
		$("#birthError").append("Please select your day of birth.<br />");
		result = false;
	}
	if(!year){
		$('#birthError').append("Please select your year of birth.<br />");
		result = false;
	}
	if(month == false && day == false && year == false){
		$('#birthError').html("Please select your date of birth.");
		result = false;
	}
	if(month == true && day == true && year == true){
		var dob = new Date($("#year").val(),$("#month").val(),$("#day").val());
		var now = new Date();
		if(dob.getTime()>now.getTime()){
			$('#birthError').html("Please select correct date of birth.");
			result = false;
		}
	}
	return result;
}

function checkBirthMonth(){
	if($("#month").val() > 0){
		return true;
	}else{
		return false;
	}
}
function checkBirthDay(){
	if($("#day").val() > 0){
		return true;
	}else{
		return false;
	}
}
function checkBirthYear(){
	if($("#year").val() > 0){
		return true;
	}else{
		return false;
	}
}