$(document).ready(function() {
	jQuery.validator.addMethod("username", function(value, element, param) {
		return /^[\da-zA-Z][\da-zA-Z]+$/.test(value);
	}, 'Please enter a username with Alphanumeric');
	var validator = $("#regForm").validate({
		errorElement: 'span',
		errorClass: 'fail_info',
		errorPlacement: function(error, element){
			if(element.attr('id') == 'userIAgree'){
				element.parent().parent().after('<tr><td>&nbsp;</td><td id="userIAgree_fail" colspan="2"></td></tr>');
				error.appendTo($('#userIAgree_fail'));
			} else if(element.attr('id') == 'recaptcha_response_field') {
				error.appendTo($('#recaptcha_widget'));
			}
			else{
				error.appendTo(element.parent());
			}
		},
		success: function(label){
			label.remove();
			if(label.attr('htmlfor') == 'userIAgree'){
				$('#userIAgree_fail').parent().remove();
			}
		},
		rules: {
			userName: {
				required: true,
				rangelength: [4,20],
				username: true/*,
				remote: "/check-user-exist.php"*/
			},
			userEmail: {
				required: true,
				email: true/*,
				remote: "/check-email-exist.php"*/
			},
			userPassword: {
				required: true,
				rangelength: [6,20]
			},
			userConfirmPassword: {
				required: true,
				rangelength: [6,20],
				equalTo: "#userPassword"
			},
			partner_email:{
                required: true,
                /*email: {
        			depends: function(element) {
						if ( ($('#partner_payment_type').val() == 1) ) {
    						return true;
    					} else {
        					return false;
        				}
        			}
        		},
        		patternCheck: function(element) {
        			if ($('#partner_payment_type').val() == 2) {
        				return "^[\\w]{5,}$";
        			} else if ($('#partner_payment_type').val() == 4) {
        				return "^(\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)$|^([zZ]?\\d{12,16})$";
        			}
        		}*/
                patternCheck: true
            },
			userIAgree: "required",
			recaptcha_response_field: "required"
		},
		messages: {
			userName: {
				required: "Entra el usuario",
				remote: jQuery.format("'{0}' está en uso")
			},
			userPassword: {
				required: "Entra la contraseña"
			},
			userConfirmPassword: {
				required: "Repite la contraseña",
				minlength: jQuery.format("Entra una contraseña de {0} caracteres"),
				equalTo: "Entra tu contraseña de nuevo"
			},
			userEmail: {
				required: "Entra tu dirección de correo",
				email: "Dirección de correo inválida",
				remote: jQuery.format("La dirección {0} ya está en uso")
			},
			partner_email:{
                required: "Provide your payment account",
	            email: "Invalid payment account"
            },
			userIAgree: {
				required: "Lea los términos y condiciones"
			},
			recaptcha_response_field: {
                required: "Invalid Captcha"
            }
//		},
		// set this class to error-labels to indicate valid fields
//		success: function(label) {
			// set &nbsp; as text for IE
//			label.html("&nbsp;").addClass("checked");
		}
		/*submitHandler: function(form){
			$(".msgbox").remove();
			$(".error").remove();
			$(".btn_register").attr("disabled", "true");
			form.submit();
		}*/
	});
	
	/*jQuery.validator.addMethod("patternCheck", function(value, element, regexp) {
    	if ($('#partner_payment_type').val() == 1 || $('#partner_payment_type').val() == 3) {
    		return true;
    	} else if ($('#partner_payment_type').val() == 2 || $('#partner_payment_type').val() == 4) {
    		var re = new RegExp(regexp);
    		return re.test(value);
    	}
    }, jQuery.format("Invalid payment account"));*/
	
	/*$("a.reload").click(function(){
		var timestamp = new Date().getTime();
		$("img.char_box").attr("src", "/captcha.do?" + timestamp);
		$("#captcha").val("");
		$("label[for='captcha']").remove();
		return false;
	});*/

	// validate loginForm form on keyup and submit
	var loginValidator = $("#loginForm").validate({
		errorElement: 'span',
		errorClass: 'fail_info',
		errorPlacement: function(error, element){
			error.appendTo(element.parent());
		},
		success: function(label){
			label.remove();
		},
		rules: {
			loginUserName: {
				required: true,
				username: true,
				rangelength: [6,20]
				//remote: '/check-user-exist.php'
			},
			loginUserPassword: {
				required: true,
				rangelength: [6,20]
			}
		},
		messages: {
			userName: {
				required: "Entar el usuario"
				//minlength: jQuery.format("Enter at least {0} characters"),
				//remote: jQuery.format("{0} doesn't exist")
			},
			userPassword: {
				required: "Entra la contraseña"
				//minlength: jQuery.format("Enter at least {0} characters")
			}
//		},
		// set this class to error-labels to indicate valid fields
//		success: function(label) {
			// set &nbsp; as text for IE
//			label.html("&nbsp;").addClass("checked");
			//$('label#error').html("&nbsp;").addClass("checked");
		}
	});
	
	// validate upgrade form on keyup and submit
	var powerValidator = $("#upgradePowerForm").validate({
		errorElement: 'span',
		errorClass: 'fail_info',
		errorPlacement: function(error, element){
			error.appendTo(element.parent());
		},
		success: function(label){
			label.remove();
		},
		rules: {
			userName: {
				required: true,
				username: true,
				rangelength: [6,20]
				//remote: '/check-user-exist.php'
			},
			userPassword: {
				required: true,
				rangelength: [6,20]
			}
		},
		messages: {
			userName: {
				required: "Entra el usuario"
				//minlength: jQuery.format("Enter at least {0} characters"),
				//remote: jQuery.format("{0} doesn't exist")
			},
			userPassword: {
				required: "Entra la contraseña"
				//minlength: jQuery.format("Enter at least {0} characters")
			}
//		},
		// set this class to error-labels to indicate valid fields
//		success: function(label) {
			// set &nbsp; as text for IE
//			label.html("&nbsp;").addClass("checked");
			//$('label#error').html("&nbsp;").addClass("checked");
		}
	});

        var emailValidator = $("#emailForm").validate({
		errorElement: 'span',
		errorClass: 'fail_info',
		errorPlacement: function(error, element){
			error.appendTo(element.parent());
		},
		success: function(label){
			label.remove();
		},
		rules: {
			userEmail: {
				required: true,
				email: true/*,
				remote: "/check-email-exist.php"*/
			}
		},
		messages: {
			userEmail: {
				required: "Entra una dirección de correo",
				email: "Dirección de correo inválida",
				remote: jQuery.format("La dirección {0} ya está en uso")
			}
		}
        });
});

