jQuery(document).ready(function(){ /*========================================================, | Change radio tipo tratta `========================================================*/ jQuery('input.vtype').click(function(){ var vtype = jQuery(this).val(); switch(vtype){ case 'AR': jQuery('#tratta1,#tratta2').show(); jQuery('#going_ticket').hide(); jQuery('#t1_openspan').hide(); jQuery('#t1_open').attr('disabled',true); jQuery('#t2_openspan').show(); break; case 'R': jQuery('#tratta1').show(); jQuery('#tratta2').hide(); jQuery('#going_ticket').show(); jQuery('#t1_openspan').show(); jQuery('#t1_open').attr('disabled',false); break; default: jQuery('#going_ticket').hide(); jQuery('.tratta').hide(); jQuery('#tratta1').show(); jQuery('#t1_openspan').hide(); jQuery('#t1_open').attr('disabled',true); break; } if(jQuery('#t1_open').is(':visible') && jQuery('#t1_open').is(':checked')){ jQuery('#t1_date').attr('disabled',true).addClass('disabled'); }else{ jQuery('#t1_date').attr('disabled',false).removeClass('disabled'); } if(jQuery('#t2_open').is(':visible') && jQuery('#t2_open').is(':checked')){ jQuery('#t2_date').attr('disabled',true).addClass('disabled'); }else{ jQuery('#t2_date').attr('disabled',false).removeClass('disabled'); } jQuery('#box_timetable').hide(); }); jQuery('input.open').click(function(){ var name = jQuery(this).attr('name'); var tratta = name.split('_')[0]; if(jQuery(this).is(':checked')){ jQuery('input#'+tratta+'_date').val('').attr('disabled',true).addClass('disabled'); }else{ jQuery('input#'+tratta+'_date').attr('disabled',false).removeClass('disabled'); } jQuery('#box_timetable').hide(); }); //nascondo la tmetable in caso di modifiche /*jQuery('select.tratte').change(function(){ jQuery('#box_timetable').hide(); }); jQuery('input.calendar').bind('change',function(){ jQuery('#box_timetable').hide(); });*/ /*========================================================, | Alla selezione delle date, ripropongo la tratta contraria nella tratta successiva `========================================================*/ jQuery('select.tratte').change(function(){ var name = jQuery(this).attr('name'); var temp =''; temp = name.split('_'); temp= temp[0]; var num = parseInt(temp.substring(1, 2)); var route_val = jQuery(this).val(); var temp = route_val.split('-'); val_tratta_next = temp[1]+'-'+temp[0]; var num_tratta_next = num + 1 ; var id_tratta_next = 't'+ num_tratta_next + '_sel'; if(jQuery('#'+id_tratta_next).length > 0){ jQuery("#"+id_tratta_next +" option[value="+val_tratta_next+"]").attr("selected",true); } jQuery("#t"+num+"_date").focus(); //jQuery("#t"+num+"_date_dp_container_wrapper .dp_anchor").trigger('click'); }); /*========================================================, | Form Validation tratte corse `========================================================*/ var validator = jQuery("form#form_routesel").validate({ oneByOne:true, liveValidation:false, rules : { vtype : "required", t1_sel : "required", t1_date : { required : true, check_date: true }, t2_sel : "check_tratta_required", t2_date : { check_date: true, date_compare: true }, t1_vehicnum : { check_vehic: true }, t2_vehicnum : { check_vehic: true }, outg_year : { check_outgoing_year: true }, outg_num : { check_outgoing_number: true } }, messages: { vtype : "Specifica il tipo di viaggio", t1_sel : "Specifica la tratta numero 1", t2_sel : "Specifica la tratta numero 2", t1_date : "Specifica la data di partenza per la tratta 1", t2_date : { "check_date" : "Specifica la data di partenza per la tratta 2", "date_compare" : "La data di partenza della tratta 2 non può essere anteriore a quella della tratta 1" }, t1_vehicnum : { "check_vehic": "Il numero dei veicoli per la tratta 1 deve essere minore o uguale al numero di passeggeri" }, t2_vehicnum : { "check_vehic": "Il numero dei veicoli per la tratta 2 deve essere minore o uguale al numero dei passeggeri" }, outg_year : "Specifica l'anno per il biglietto di andata", outg_num : "Specifica un numero di biglietto di andata valido" }, errorContainer: '.status_box_validation', errorLabelContainer: '.status_box_validation ol', wrapper: 'li', focusInvalid: false, submitHandler: function(form) { jQuery('#box_timetable').hide(); jQuery('#loading_timetable').show(); setTimeout(function(){ form.submit(); },200); return true; } }); jQuery.validator.addMethod("check_date", function(value,elem) { var temp =''; var name = jQuery(elem).attr('name'); temp = name.split('_'); var tratta = temp[0]; var num = parseInt(tratta.substring(1, 2)); //var vtype = jQuery(":radio[name='vtype']:checked").val(); var visible = jQuery('#'+tratta+'_sel').is(':visible'); current_val = value.split('/'); var year = current_val[2]; var month = current_val[1]; var day = current_val[0]; if(visible && !validateDateString(value,'dd/mm/yyyy')){ return false; } return true; }, '' ); jQuery.validator.addMethod("date_compare", function(value,elem) { var temp =''; var name = jQuery(elem).attr('name'); temp = name.split('_'); var tratta = temp[0]; //id della tratta var num = parseInt(tratta.substring(1, 2)); var num_prec = parseInt(num)-1; //select visibile var visible = jQuery('#'+tratta+'_sel').is(':visible'); var current_val = value; current_val = current_val.split('/') var cur_year = current_val[2]; var cur_month = current_val[1]; var cur_day = current_val[0]; var prev_val = jQuery('#t'+ num_prec+'_date').val(); prev_val = prev_val.split('/') var prev_year = prev_val[2]; var prev_month = prev_val[1]; var prev_day = prev_val[0]; var cur_date = new Date(cur_year,cur_month,cur_day); var prev_date = new Date(prev_year,prev_month,prev_day); if(visible && cur_date < prev_date){ return false; } return true; }, '' ); jQuery.validator.addMethod("check_tratta_required", function(value,elem) { var temp =''; var name = jQuery(elem).attr('name'); temp = name.split('_'); var tratta = temp[0]; var num = parseInt(tratta.substring(1, 2)); //var vtype = jQuery(":radio[name='vtype']:checked").val(); var visible = jQuery('#'+tratta+'_sel').is(':visible'); if(visible && jQuery.trim(value.length) <=0){ return false; }else{ return true; } }, '' ); jQuery.validator.addMethod("check_vehic", function(value,elem) { var temp =''; var name = jQuery(elem).attr('name'); temp = name.split('_'); var tratta = temp[0]; var vehicnum = value; var passnum = jQuery('#t'+tratta+'_passnum').val(); if(vehicnum > passnum){ return false; }else{ return true; } }, '' ); jQuery.validator.addMethod("check_outgoing_year", function(value,elem) { var anno =jQuery.trim(jQuery('#outg_year').val()); var num = jQuery.trim(jQuery('#outg_num').val()); var vtype = jQuery(":radio[name='vtype']:checked").val(); if(vtype== 'R' && (anno.length <= 0 || isNaN(anno) || anno < 2000)){ return false; }else{ return true; } }, '' ); jQuery.validator.addMethod("check_outgoing_number", function(value,elem) { var anno =jQuery.trim(jQuery('#outg_year').val()); var num = jQuery.trim(jQuery('#outg_num').val()); var vtype = jQuery(":radio[name='vtype']:checked").val(); if(vtype== 'R' && (num.length <=0 || isNaN(num))){ return false; }else{ return true; } }, '' ); /*========================================================, | END Form Validation tratte corse `========================================================*/ if(jQuery('form#form_timetable').length > 0){ var validator = jQuery("form#form_timetable").validate({ oneByOne:true, scrollToInvalid:true, liveValidation:true, rules : { }, messages: { }, errorContainer: '#status_box_validation2', errorLabelContainer: '#status_box_validation2 ol', wrapper: 'li', focusInvalid: false, submitHandler: function(form) { jQuery('#loading_savetimetable').show(); setTimeout(function(){ form.submit(); },1000); return true; } }); //validazione per verificare che le date selezionate siano in ordine temporale jQuery.validator.addMethod("check_depdate", function(value,elem) { var name = elem.name; var tratta = name.split('_')[0]; if(tratta == 't1'){ return true; } var num = parseInt(tratta.substring(1, 2)); var num_prev = parseInt(num)-1; var value = jQuery('input[name=t'+num+'_routeradio]:checked').val(); //data partenza corrente var cur_data_partenza = value.split('|')[3]; var temp = cur_data_partenza.split(' '); var cur_year = temp[0].split('-')[0]; var cur_month = temp[0].split('-')[1] -1; var cur_day = temp[0].split('-')[2]; var cur_hh = temp[1].split(':')[0]; var cur_mm = temp[1].split(':')[1]; if(jQuery('input[name=t'+num_prev+'_routeradio]:checked').length <= 0){ return true; } var prev_value = jQuery('input[name=t'+num_prev+'_routeradio]:checked').val(); var prev_data_arrivo = prev_value.split('|')[4]; var temp = prev_data_arrivo.split(' '); var prev_year = temp[0].split('-')[0]; var prev_month = temp[0].split('-')[1] -1; var prev_day = temp[0].split('-')[2]; var prev_hh = temp[1].split(':')[0]; var prev_mm = temp[1].split(':')[1]; //alert(cur_year + '-'+ cur_month + '-'+ cur_day + '-'+ cur_hh + '-'+ cur_mm ); //alert(prev_year + '-'+ prev_month + '-'+ prev_day + '-'+ prev_hh + '-'+ prev_mm ); var cur_data_partenza = new Date(cur_year,cur_month,cur_day,cur_hh,cur_mm,0); var prev_data_arrivo = new Date(prev_year,prev_month,prev_day,prev_hh,prev_mm,0); if(prev_value.length > 0 && (cur_data_partenza<= prev_data_arrivo) ){ return false; } return true; }, '' ); } });