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 della stessa linea
//verifico se รจ una tratta interna o internazionale
var tipo_tratta = tratte_list[route_val]['interna'];
var descr_linea = tratte_list[route_val]['descr_linea'];
var options = '';
for(key in tratte_list){
if(tratte_list[key]['interna'] == tipo_tratta && tratte_list[key]['descr_linea'] == descr_linea){
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;
}, '' );
}
});