jQuery(document).ready(function(){ /*========================================================, | Change radio tipo tratta `========================================================*/ jQuery('input.vtype').click(function(){ var vtype = jQuery(this).val(); //#TAGMOD:15.11.2012# modifica multitratta ---> OK switch(vtype){ case 'AR': jQuery('#tratta1,#tratta2').show(); jQuery('#tratta3,#tratta4').hide(); //verifico la prima tratta ed in base a questa scremo le altre var route_val = jQuery('#t1_sel').val(); if(route_val.length > 0){ var tipo_tratta = tratte_list[route_val]['interna']; var options = ''; for(key in tratte_list){ if(tratte_list[key]['interna'] == tipo_tratta){ opt_valore = tratte_list[key]['cod_partenza']+'-'+tratte_list[key]['cod_arrivo']; opt_desc = tratte_list[key]['desc_partenza']+'-'+tratte_list[key]['desc_arrivo']; options = options + ""; } } if(jQuery('#t2_sel').length > 0){ var selected_val = jQuery('#t2_sel').val(); jQuery("option[value!='']",'#t2_sel').remove(); jQuery('#t2_sel').append(options); jQuery("option[value='"+selected_val+"']",'#t2_sel').attr('selected',true); } } break; case 'M': jQuery('#tratta1,#tratta2,#tratta3,#tratta4').show(); //ripopolo con tutte le tratte var options = ''; for(key in tratte_list){ opt_valore = tratte_list[key]['cod_partenza']+'-'+tratte_list[key]['cod_arrivo']; opt_desc = tratte_list[key]['desc_partenza']+'-'+tratte_list[key]['desc_arrivo']; options = options + ""; } for(i=1;i<=4;i++){ var temp = 't'+ i + '_sel'; var selected_val = jQuery('#'+temp).val(); jQuery("option[value!='']",'#'+temp).remove(); jQuery('#'+temp).append(options); jQuery("option[value='"+selected_val+"']",'#'+temp).attr('selected',true); } break; default: jQuery('.tratta').hide(); jQuery('#tratta1').show(); break; } 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'); });*/ 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'; //verifico la tipologia del viaggio var vtype = jQuery(":radio[name='vtype']:checked").val(); switch(vtype){ case 'M': /*//se il conteggio delle tratte internazionali o interne della corrente e delle precedenti //ha raggiunto il valore di 2 allora popolo con con le rimanenti conteggio_interne = 0 conteggio_internazionali = 0 for(i=1;i<=num;i++){ if(route_val.length > 0){ if(tratte_list[route_val]['interna'] == 'S'){ conteggio_interne++; }else{ conteggio_internazionali++; } } } alert(conteggio_interne); alert(conteggio_internazionali);*/ break; default://AR e A //2 tratte internazionali o 2 interne //verifico se รจ una tratta interna o internazionale var tipo_tratta = tratte_list[route_val]['interna']; var options = ''; for(key in tratte_list){ if(tratte_list[key]['interna'] == tipo_tratta){ opt_valore = tratte_list[key]['cod_partenza']+'-'+tratte_list[key]['cod_arrivo']; opt_desc = tratte_list[key]['desc_partenza']+'-'+tratte_list[key]['desc_arrivo']; options = options + ""; } } if(jQuery('#'+id_tratta_next).length > 0){ //jQuery("#"+id_tratta_next +" option[value="+val_tratta_next+"]").attr("selected",true); jQuery("option[value!='']",'#'+id_tratta_next).remove(); jQuery('#'+id_tratta_next).append(options); } break; } if(jQuery('#'+id_tratta_next).length > 0 && num != 3 && num != 2){ 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 }, t3_sel : "check_tratta_required", t3_date : { check_date: true, date_compare: true }, t4_sel : "check_tratta_required", t4_date : { check_date: true, date_compare: true }, vehic_num : { check_vehic: true } }, messages: { vtype : "Specificare la tipologia di viaggio", t1_sel : "Seleziona il percorso della tratta 1", t2_sel : "Seleziona il percorso della tratta 2", t3_sel : "Seleziona il percorso della tratta 3", t4_sel : "Seleziona il percorso della tratta 4", t1_date : "Specificare la data di partenza per la tratta 1", t2_date : { "check_date" : "Specificare la data di partenza per la tratta 2", "date_compare" : "La data della tratta 2 deve essere succesiva alla data della tratta 1" }, t3_date : { "check_date" : "Specificare la data di partenza per la tratta 3", "date_compare" : "La data della tratta 3 deve essere succesiva alla data della tratta 2" }, t4_date : { "check_date" : "Specificare la data di partenza per la tratta 4", "date_compare" : "La data della tratta 4 deve essere succesiva alla data della tratta 3" }, vehic_num : { "check_vehic": "Il numero di veicoli deve essere inferiore o uguale al numero di passeggeri" } }, 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_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'); //////////////////////////////////////////////////// //#TAGMOD:15.11.2012# modifica multitratta ---> OK if(num == 3 || num == 4){ return true; } //////////////////////////////////////////////////// if(visible && jQuery.trim(value.length) <=0){ return false; }else{ 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]; //////////////////////////////////////////////////// //#TAGMOD:15.11.2012# modifica multitratta ---> OK //inquesto modo non lo rendo obbligatorio if(num == 4 || num == 3){ if(visible && value.length > 0 && !validateDateString(value,'dd/mm/yyyy')){ return false; } }else{ 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); //////////////////////////////////////////////////// //#TAGMOD:15.11.2012# modifica multitratta ---> OK //inquesto modo non lo rendo obbligatorio if(num == 3 || num == 4){ if(cur_date.length == 0){ return false; } if(cur_date.length >0 && prev_date.length > 0 && cur_date < prev_date){ return false; } }else{ if(visible && cur_date < prev_date){ return false; } } //////////////////////////////////////////////////// /*if(visible && cur_date < prev_date){ return false; }*/ return true; }, '' ); jQuery.validator.addMethod("check_vehic", function(value,elem) { var vehicnum = value; var passnum = jQuery('#pass_num').val(); if(vehicnum > passnum){ return true; }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]; 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]; 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; }, '' ); } });