dojo.require("dojo.parser");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.TextBox");
dojo.require("dijit.form.NumberTextBox");
dojo.require("dijit.Tooltip");
dojo.require("dojo.currency");
dojo.require("dojo.number");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.Form");
dojo.require("dojox.validate.web");
dojo.require("dojox.validate.regexp");
dojo.require("dijit.form.ValidationTextBox");
dojo.addOnLoad(function() {
    var myForm = dijit.byId("formulario");
    var proyecto = dijit.byId("proyecto");
    var frecuencia = dijit.byId("frecuencia");
    var recibo = dijit.byId("recibo");
    var labelDni = dojo.byId("labelDni");
    var labelCuenta = dojo.byId("labelCuenta");
    var domiciliado = dijit.byId("domiciliado");
    var tarjeta = dijit.byId("tarjeta");
    var ingreso = dijit.byId("ingreso");
    var email = dijit.byId("email");
    var dni;
    var entidad,oficina,control,cuenta;
    dojo.style(labelDni,"display","none");
    dojo.style(labelCuenta,"display","none");
    dojo.connect(recibo,"onChange",function(e){
    	if (this.getValue()=="1") {
    		dni = new dijit.form.ValidationTextBox({regExp:'[0-9]{6,8}[A-Z]{1}',required:true,name:'dni',invalidMessage:'DNI incorrecto.'},document.createElement("div"));
    		var dniDiv = dojo.byId("dniDiv");
    		dniDiv.appendChild(dni.domNode);
    		dojo.style(labelDni,"display","block");
    	} else {
    		dojo.style(labelDni,"display","none");
    		if (dni) {
    			dni.destroy();
    		}
    	}
    });
    dojo.connect(domiciliado,"onClick",function(e) {
    	//if (this.checked) {
    		domiciliado.setChecked(true);
    		ingreso.setChecked(false);
    		tarjeta.setChecked(false);
    		showCuenta(true);
    		dojo.style(labelCuenta,"display","block");
    	/*} else {
    		ingreso.setChecked(true);
    		showCuenta(false);
    		dojo.style(labelCuenta,"display","none");
    	}*/
    });
    dojo.connect(ingreso,"onClick",function(e) {
    	//if (this.checked) {
    		ingreso.setChecked(true);
    		domiciliado.setChecked(false);
    		tarjeta.setChecked(false);
    		showCuenta(false);
    		dojo.style(labelCuenta,"display","none");
    	/*} else {
    		domiciliado.setChecked(true);
    		showCuenta(true);
    		dojo.style(labelCuenta,"display","block");
    	}*/
    });
    dojo.connect(tarjeta,"onClick",function(e) {
    	//if (this.checked) {
    		domiciliado.setChecked(false);
    		tarjeta.setChecked(true);
    		ingreso.setChecked(false);
    		showCuenta(false);
    		dojo.style(labelCuenta,"display","none");
    	/*} else {
    		domiciliado.setChecked(true);
    		showCuenta(true);
    		dojo.style(labelCuenta,"display","block");
    	}*/
    });
    dojo.connect(myForm, 'onSubmit', function(e) {
    	dojo.stopEvent(e);
    	var regex = new RegExp(dojox.validate.regexp.emailAddress());    	
    	if (!regex.test(email.value)) {
    		email.focus();
    		email.displayMessage("Debes escribir una dirección de correo válida");
    		email.getErrorMessage(true);
    		email.getPromptMessage(true);
			return false;
		}
    	if (proyecto.getValue()=="0") {
    		proyecto.focus();
    		proyecto.displayMessage("Debes seleccionar el proyecto");
    		proyecto.getErrorMessage(true);
    		proyecto.getPromptMessage(true);
    		return false;
    		
    	}
    	if (frecuencia.getValue()=="0") {
    		frecuencia.focus();
    		frecuencia.displayMessage("Debes seleccionar la periodicidad");
    		frecuencia.getErrorMessage(true);
    		frecuencia.getPromptMessage(true);
    		return false;
    		
    	}
    	if (recibo.getValue()=="0") {
    		recibo.focus();
    		recibo.displayMessage("Debes seleccionar si deseas recibo");
    		recibo.getErrorMessage(true);
    		recibo.getPromptMessage(true);
    		return false;
    		
    	}
    	if (!ingreso.checked && !domiciliado.checked && !tarjeta.checked) {
    		alert("Debes indicar la forma de pago");
    		return false;
    	}
    	if (myForm.validate()) {
    		dojo.byId("formulario").submit();
        } else {
        	return false;
        }    	        
    });
    function showCuenta(mostrar) {
    	if (mostrar) {
	    	entidad = new dijit.form.ValidationTextBox({regExp:'\\d{4}',style:'width:60px',required:true,name:'entidad',invalidMessage:'Valor incorrecto.'},document.createElement("div"));
			var entidadDiv = dojo.byId("entidadDiv");
			entidadDiv.appendChild(entidad.domNode);
			oficina = new dijit.form.ValidationTextBox({regExp:'\\d{4}',style:'width:60px',required:true,name:'oficina',invalidMessage:'Valor incorrecto.'},document.createElement("div"));
			var oficinaDiv = dojo.byId("oficinaDiv");
			oficinaDiv.appendChild(oficina.domNode);		
			control = new dijit.form.ValidationTextBox({regExp:'\\d{2}',style:'width:40px',required:true,name:'control',invalidMessage:'Valor incorrecto.'},document.createElement("div"));
			var controlDiv = dojo.byId("controlDiv");
			controlDiv.appendChild(control.domNode);		
			cuenta = new dijit.form.ValidationTextBox({regExp:'\\d{8,14}',style:'width:140px',required:true,name:'cuenta',invalidMessage:'Valor incorrecto.'},document.createElement("div"));
			var cuentaDiv = dojo.byId("cuentaDiv");
			cuentaDiv.appendChild(cuenta.domNode);
    	} else {
    		if (entidad) {
    			entidad.destroy();
    		}
    		if (oficina) {
    			oficina.destroy();
    		}
    		if (control) {
    			control.destroy();
    		}
    		if (cuenta) {
    			cuenta.destroy();
    		}
    	}
		
		
    }
});