$().ready(function() {
	/*$.validator.setDefaults({
	submitHandler: function() { $(form).submit(); }
	
 
});*/
	$("#AssociateTipusDocument").change(function(){
		$("#AssociateDni").valid();
	});
	
	jQuery.validator.addMethod("dnivalid", function(value, element, params) { 
	 		if ($("#AssociateTipusDocument").val()=="Pasaporte") {
				return true;
				
			}
			else{
				if($("#AssociateDni").val().length==9){
					num=Array();
					cif = $("#AssociateDni").val().toUpperCase();
			   
				   for (i = 0; i < 9; i ++)
				      num[i] = cif.substring(i, i+1);
				      
					//si no tiene un formato valido devuelve error
				   if (!cif.match('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)')){
				    
				   	return false;
				   }
					//comprobacion de NIFs estandar
				   if (cif.match('(^[0-9]{8}[A-Z]{1}$)')){
				      if (num[8] == 'TRWAGMYFPDXBNJZSQVHLCKE'.substring(parseInt(cif.substring( 0, 8)) % 23,(parseInt(cif.substring( 0, 8)) % 23)+ 1))
				         return true;
				      else
				         return false;
				   }
				
					//comprobacion de NIFs especiales (se calculan como CIFs)
				   if (cif.match('^[KLM]{1}'))
				      if (num[8] == chr(64 + $n))
				         return true;
				      else
				         return false;
				
					//comprobacion de NIEs
				   //T
				   if (cif.match('^[T]{1}'))
				      if (num[8] == cif.match('^[T]{1}[A-Z0-9]{8}$'))
				         return true;
				      else
				         return false;
				   //XYZ
				    if (cif.match('^[XYZ]{1}'))
				   		cif=cif.replace('X','0');
				   		cif=cif.replace('Y','1');
							cif=cif.replace('Z','2');
				   		/*cif.replace('Y','1');
				   		cif.replace('Z','2');*/
				   		posicio=cif.substring( 0, 8)%23;
				      if (num[8] == 'TRWAGMYFPDXBNJZSQVHLCKE'.substring(posicio,posicio+ 1))
				         return true;
				      else
				         return false;
					//si todavia no se ha verificado devuelve error
				   return false;
				}
				else{
					return false;
				}
				
			}
			return false;
	}, '');

	// validate signup form on keyup and submit
	var v=$("#AssociateAltaForm").validate({
		success: "valid",
		rules: {
			'data[Associate][name]': "required",
			'data[Associate][surname1]': "required",
			'data[User][username]': {
				required: true,
				rangelength: [4, 10]
			},
			'data[User][password1]': {
				required: true,
				rangelength: [4, 10]
			},
			'data[User][password2]': {
				required: true,
				rangelength: [4, 10],
				equalTo: "#UserPassword1"
			},
			'data[User][email]': {
				required: true,
				email: true
			},
			'data[Associate][dni]':{
				required: true,
				dnivalid: true
			},
			'data[Associate][direccio]':{
				required: true
			},
			'data[Associate][numero]':{
				required: true
			}
			,
			'data[Associate][codi_postal]':{
				required: true
			},
			'data[Associate][poblacio]':{
				required: true
			},
			'data[Associate][country_id]':{
				required: true
			},
			'data[Associate][telefon]':{
				required: true
			}
		}
		,
		messages: {
			'data[Associate][name]': " ",
			'data[Associate][surname1]': " ",
			'data[User][username]': {
				required: " ",
				rangelength: " "
			},
			'data[User][password1]': {
				required: " ",
				rangelength: " "
			},
			'data[User][password2]': {
				required: " ",
				rangelength: " ",
				equalTo: " "
			},
			'data[User][email]': " ",
			'data[Associate][dni]':" ",
			'data[Associate][direccio]':" ",
			'data[Associate][numero]':" ",
			'data[Associate][codi_postal]':" ",
			'data[Associate][poblacio]':" ",
			'data[Associate][country_id]':" ",
			'data[Associate][telefon]':" "
		},
		submitHandler: function(form) {
			
		   form.submit();
		 }
	});
	$('#btnenviar').click(function(){

		$('#AssociateAltaForm').submit();
	});
	
	// check if confirm password is still valid after password changed
	$("#password").blur(function() {
		$("#password2").valid();
	});
	v.form();
	$('#AssociateAltaForm *').tooltip();
	var $tabs = $('#tabs').tabs();
$(function() {

			
	
			$(".ui-tabs-panel").each(function(i){
	
			  var totalSize = $(".ui-tabs-panel").size() - 1;
	
			  if (i != totalSize) {
			      next = i + 2;
		   		  $(this).append("<a href='#' class='next-tab mover' rel='" + next + "'>Siguiente &#187;</a>");
			  }
	  
			  if (i != 0) {
			      prev = i;
		   		  $(this).append("<a href='#' class='prev-tab mover' rel='" + prev + "'>&#171; Anterior</a>");
			  }
   		
			});
	
			$('.next-tab, .prev-tab').click(function() { 
		           $tabs.tabs('select', $(this).attr("rel"));
		           return false;
		       });
       

		});
	
});
