document.observe("dom:loaded", function() {
	var frm=$('frm').initialize({
		action:"modules/solicitud.asp",
		bullet:'*.name',
		invalids:{
			defaults:'Dato obligatorio.', 
			nacimiento:'La fecha de nacimiento no es válida. Nota: La edad permitida para incribirse en el programa es entre 16 y 35 años.',
			provincia: "Dato obligatorio. Nota: Usted, o alguno de sus padres, debe tener residencia declarada en la provincia de Río Negro.",
			padre_provincia:"Dato obligatorio. Nota: Usted, o alguno de sus padres, debe tener residencia declarada en la provincia de Río Negro.",
			madre_provincia:"Dato obligatorio. Nota: Usted, o alguno de sus padres, debe tener residencia declarada en la provincia de Río Negro.",
			email:"Dirección de email inválida.",
			acuerdo:"Acepta los términos para finalizar."
		}											
	});
	var fields=frm.getFields();
	fields.apellido.initialize({required:true});
	fields.nombre.initialize({required:true});
	fields.dni.initialize({required:true});
	fields.nacionalidad.initialize({required:true});
	fields.nacimiento.initialize({
			required:true, 
			mask:"##/##/####", 
			hint:'DD/MM/AAAA', 
			validation:function(val){
				if(FRM.Validate.date(val)){
					var age=new Date().diffYear(val);
					if(age<16) return false;
					if(age>35) return false;
					return true
				}
				return false
			}
	});
	Object.extend(fields.sexo,FRM.Options).initialize({required:true});
	fields.domicilio.initialize({required:true});
	fields.localidad.initialize({required:true});
		
		fields.provincia.initialize({
			required:true
		});
	
	
	
	fields.cp.initialize({required:true});
	//fields.telefonos.initialize({required:true});
	fields.email.initialize({required:true,inline:true,validation:FRM.Validate.email});
	//fields.estudios_secundario
	//fields.estudios_egreso
	fields.estudios_universidad.initialize({required:true});
	fields.estudios_carrera.initialize({required:true});
	fields.estudios_sede.initialize({required:true});
	fields.estudios_institucion.initialize({required:true});
	//fields.trabajo_lugar.initialize({required:true});
	//fields.trabajo_telefono
	//fields.trabajo_impositivo
	fields.padre_apellido.initialize({required:true});
	fields.padre_nombre.initialize({required:true});
	fields.padre_vive.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('padre_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
	});
	fields.padre_nacionalidad.initialize({required:true});
	fields.padre_nacimiento.initialize({required:false, mask:"##/##/####", hint:'DD/MM/AAAA', validation:FRM.Validate.date});
	fields.padre_domicilio.initialize({required:true}).observe('blur',function(event){if(!fields.madre_domicilio.value)fields.madre_domicilio.value=fields.padre_domicilio.value;});
	fields.padre_localidad.initialize({required:true}).observe('blur',function(event){if(!fields.madre_localidad.value)fields.madre_localidad.value=fields.padre_localidad.value;});
		
		fields.padre_provincia.initialize({required:true}).observe('blur',function(event){if(!fields.madre_provincia.value)fields.madre_provincia.value=fields.padre_provincia.value;});
	
	
	
	fields.padre_cp.initialize({required:false}).observe('blur',function(event){if(!fields.madre_cp.value)fields.madre_cp.value=fields.padre_cp.value;});
	fields.padre_telefonos.initialize({required:true}).observe('blur',function(event){if(!fields.madre_telefonos.value)fields.madre_telefonos.value=fields.padre_telefonos.value;});
	fields.madre_apellido.initialize({required:true});
	fields.madre_nombre.initialize({required:true});
	fields.madre_vive.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('madre_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
	});
	fields.madre_nacionalidad.initialize({required:true});
	fields.madre_nacimiento.initialize({required:false, mask:"##/##/####", hint:'DD/MM/AAAA', validation:FRM.Validate.date});
	fields.madre_domicilio.initialize({required:true});
	fields.madre_localidad.initialize({required:true});
		
		fields.madre_provincia.initialize({
			required:true,
			validation:function(val){
				if(val){
					if(val=='Río Negro') return true;
					else if(fields.padre_provincia.getValue()=='Río Negro') return true;
					else if(fields.provincia.getValue()=='Río Negro') return true;
				}
				return false;
			}
		});
	
	//fields.madre_cp.initialize({required:true});
	fields.madre_telefonos.initialize({required:true});
	fields.prepaga_social.initialize({required:true});
	//fields.prepaga_afiliado
	//fields.medico_nombre
	//fields.medico_telefono
	//fields.medico_atencion
	fields.acuerdo.initialize({required:true});
	fields.estudios_beca.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('estudios_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		if(option.value=='No') option.checked=true;
	});
	fields.trabajo.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('trabajo_tag');
			if(this.value=='No') tag.hide(); 
			else if(this.value=='Si') tag.show();
		}.bindAsEventListener(option));
		if(option.value=='No') option.checked=true;
	});
	Object.extend(fields.prepaga,FRM.Options).initialize({required:true});
	fields.prepaga.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('prepaga_tag');
			if(this.value=='No') tag.hide(); 
			else if(this.value=='Si') tag.show();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.criticas.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('criticas_tag');
			if(this.value=='No') tag.hide(); 
			else if(this.value=='Si') tag.show();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.alergia.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('alergia_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.infecto.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('infecto_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.analisis.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('analisis_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});	
	fields.secuelas.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('secuelas_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.cardio.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('cardio_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	fields.otras.each(function(option,i){ 
		option.observe('click',function(event){
			var tag=$('otras_tag');
			if(this.value=='Si') tag.show(); 
			else if(this.value=='No') tag.hide();
		}.bindAsEventListener(option));
		//if(option.value=='No') option.checked=true;
	});
	var ctrl={};
	ctrl.sections=[$('S1'),$('S2'),$('S3'),$('S4'),$('S5')];
	ctrl.index=1;
	ctrl.toStep=function(i){
		if(this.index!=0){
			this.sections.each(function(z,x){ if((x+1)==i) z.show(); else z.hide();});
			this.index=i;
			return true;
		}
		return false
	}
	ctrl.setStep=function(i){	
		switch(i){
			case 1:
				if(this.toStep(1)){
					fields.next.show();
					fields.back.hide();
					fields.enter.hide();
					return true;
				}
			break;
			case 2:
				if(this.index==3 || frm.validate()) {//
					if(this.toStep(2)){
						fields.back.show();
						fields.next.show();
						fields.enter.hide();
						return true;
					}
				}
			break;
			case 3:
				if(this.index==4 || frm.validate()) {//
					if(this.toStep(3)){
						fields.back.show();
						fields.next.show();
						fields.enter.hide();
						return true;
					}
				}
			break;
			case 4:
				if(this.index<4 && frm.validate() && this.toStep(4)){//
					fields.back.show();
					fields.next.hide();
					fields.enter.show();
					fields.enter.enable();	
					return true;
				}
			break;
			case 5:
				if(this.index<5 && this.toStep(5)){
					fields.back.hide();
					fields.next.hide();
					fields.enter.hide();
					return true;
				}
			break;
		}
		return false;
	}
	ctrl.nextStep=function(){ var i=this.index+1; this.setStep(i);};
	ctrl.backStep=function(){ var i=this.index-1; if(i) this.setStep(i);};
	fields.back.observe('click',function(event){ctrl.backStep();});
	fields.next.observe('click',function(event){ctrl.nextStep();});
	fields.enter.observe('click',function(event){frm.execute();});	
	frm.onWaiting=function(){
		fields.back.hide();
		fields.enter.disable();	
	};
	frm.onFailure=function(){
		ctrl.nextStep();
		$('failure').show()
		$('success').hide()		
	};
	frm.onSuccess=function(){
		ctrl.nextStep();
	};
	frm.startup();
});







