$(document).ready(function(){  
    
//$(".tips").tipTip();

//ezMark
$('#recommendTimeCheckbox, #flightFromRadio, #flightToRadio, #payCashRadio, #payCardRadio, #additionalTable,#additionalBagage').ezMark();
    
$('input[title]').bind({
	focus: function() {
            if ($(this).attr('title') == $(this).attr('value')) {
                $(this).attr('value', '');
            }
	},
	blur: function() {
            if ($(this).attr('value') == '') {
                $(this).attr('value', $(this).attr('title'));
            }
	}
});
    
    $("#mainForm .tips").tooltip({
	// place tooltip on the right edge
	position: "center right",
	// a little tweaking of the position
	offset: [-2, 10],
	// use the built-in fadeIn/fadeOut effect
	effect: "fade",
	// custom opacity setting
	opacity: 0.7
        });
  
  function confirmNewOrder() {
    if (confirm("Вы уверены, что хотите изменить маршрут и создать новый заказ? Все введенные данные будут обнулены.")) {
        $(':input','#formOrder').not(':submit, :reset, textarea').val('').removeAttr('checked').removeAttr('selected');
        $('div','#avto').removeClass('activeBut');
        $('#timeInformer').html('');
        $('#place,#time,#price,#who,#orderDiv,#indivAvtoText,#additionalServices').hide();
        $('#houseText,#entranceText').attr('disabled',true);
        //return true;
    } else {
       // return false;
    }
}
  firstTime=true;
     
  //STEP1  
  $('#toB').click(function(){
        if(firstTime == false){
            confirmNewOrder();           
        }
        $(this).addClass('activeBut');
        $('#fromB').removeClass('activeBut');
        $('#personal').removeClass('activeBut');
        $('#avto,#recommendTimeDiv').show();
        $('#personalOrderDiv').hide();
        $('#step3').find('div.topStep').html('3.<span class="required">*</span> Куда подать машину?');
        $('#orderDirection').val('').val('В Борисполь');
  })
  $('#fromB').click(function(){
        if(firstTime == false){
           confirmNewOrder();           
        }
        $(this).addClass('activeBut');
        $('#toB').removeClass('activeBut');
        $('#personal').removeClass('activeBut');
        $('#avto,#additionalTableDiv').show();
        $('#step3').find('div.topStep').html('3.<span class="required">*</span> Куда поедем?');
        $('#selfTimeDiv label').html('Выберите время');
        $('#recommendTimeDiv,#flightParams,#personalOrderDiv').hide();
        //$('#selfTimeDiv label').html('Время:');  
        $('#selfTimeText').attr('disabled',false);
        //$('#selfTimeText').removeAttr('readonly');
        $('#orderDirection').val('').val('Из Борисполя');
  })
  $('#personal').click(function(){
        if(firstTime == false){
            confirmNewOrder();           
        }
        $(this).addClass('activeBut');
        $('#fromB').removeClass('activeBut');
        $('#toB').removeClass('activeBut');
        $('#personalOrderDiv').show();
        $('#step3').find('div.topStep').html('3.<span class="required">*</span> Куда подать машину?');
        $('#avto').hide();
        $('#orderDirection').val('').val('Индивидуальный заказ');
  })
  $('#personalOrder').keyup(function(){
        if($(this).val().length > 0 ){
            $('#avto').show();
        }else{
            $('#avto').hide();
        } 
    }) 
  
  
   //end of step1
    
    //STEP2   
    $('#standartAvtoBut').click(function(){
        $(this).addClass('activeBut');
        $('#microAvtoBut').removeClass('activeBut');
        $('#indivAvtoBut').removeClass('activeBut');
        $(this).val('стандарт');
        $('#orderAvtoType').val('').val('Стандарт');
        firstTime = false;
    })    
    $('#microAvtoBut').click(function(){
        $(this).addClass('activeBut');
        $('#indivAvtoBut').removeClass('activeBut');
        $('#standartAvtoBut').removeClass('activeBut');
        $(this).val('микро');
        $('#orderAvtoType').val('').val('Микроавтобус');
        firstTime = false;
    })
    $('#indivAvtoBut').click(function(){
        $(this).addClass('activeBut');
        if($('#personal').hasClass('activeBut')){
            $('#indivAvtoText').show();
            $('#place').hide();
        }else{
            $('#place').show();
        }
        $('#microAvtoBut').removeClass('activeBut');
        $('#standartAvtoBut').removeClass('activeBut');
        
        $(this).val('индивидуальный');
        $('#orderAvtoType').val('').val('Индвидуальный - ');
        firstTime = false;
    })
    
    $('#standartAvtoBut, #microAvtoBut').click(function(){
       $('#indivAvtoText').hide();
       $('#place').show();
    })
    
    $('#indivAvtoBut').click(function(){
        
//        if( $('#indivAvtoText').val().length > 0 ){
//            $('#place').show();
//        }else{
//            
//        }
    })  
    
    $('#indivAvtoText').focus(function(){
        $(this).html('');
    }) 
    
    $('#indivAvtoText').keyup(function(){
        if($(this).val().length > 0 ){
            $('#place').show();
            $('#orderAvtoType').val('').val($(this).val());
        }else{
            $('#place').hide();
        } 
    }) 
    //end of step2
    
    //STEP3
        
     $('#Order_street').keyup(function(){
         
         if($(this).val().length > 0 ){
            $('#houseText,#entranceText,#additionalPlace').removeAttr('disabled');          
        }else{
            $('#houseText,#entranceText,#additionalPlace').attr('disabled',true);
       }
       $.ajax({
            url: '/address/autocomplete',
            type: "GET",
            datatype: 'json',
            data: {fullTerm : $(this).val()},
            success: function(data){
                obj = $.parseJSON(data);
                if(typeof obj[0] != 'undefined'){
                    var price = obj[0].tariff +' грн';
                    $('.tarifDiv').css({'font-size':'16px'});
                    $('.tarifDiv').html(price);                   
                    $('.status').html('');
                }else{
                    $('.status').html('Выберите, пожалуйста, улицу из выпадающего списка');
                    $('.tarifDiv').css({'font-size':'11px'});
                    $('#tarifDivInput').val('Требует уточнения');
                    $('.tarifDiv').html('Требует уточнения');
                    $('.tarifDiv').attr({title:'В течении 10 мин с Вами свяжется диспетчер для уточнения тарифа'});
             }
             }
            }) 

     })
         
    $('#additionalServices').focus(function(){
        $(this).html('');
    }) 
    $('#additionalPlace').focus(function(){
        $(this).html('');
    }) 
    
    
    $('#houseText').keyup(function(){
        if($(this).val().length > 0 &&  $('#Order_street').val().length > 0){
            $('#time').show();
            $.ajax({
                url: '/address/longstreetcheck',
                type: "GET",
                data: {
                    streetname : function(){return $('#Order_street').val()},
                    housename : $(this).val()
                },
                success: function(data){
                    if(data != ''){
                        $('.tarifDiv').html(data);  
                    } 
                                      
                }
           }) 
        }else{
            $('#time').hide(); 
        }
    })
    //end of step3
    
    //STEP4
    //order date
    //today data
    var td = new Date();
    var todayDay = td.getDate();
    var todayMonth = td.getMonth();
    var todayYear = td.getFullYear(); 
    var todayHour = td.getHours();
    var todayMinute = td.getMinutes();
    var currentTime = td.getTime();
    
    $('#recommendTimeCheckbox').click(function(){
        if( $(this).is(':checked')){
            $('#flightParams').show();
            $('#selfTimeText').val('');
            $('#flightFromDiv').show();
            $('#flightToDiv').show();
            $('#selfTimeDiv label').html('Рекомендуемое время');  
            $('#selfTimeText').attr('disabled',true);  
            if($('#flightDateText').val().length > 0 && $('#selfTimeText').val().length > 0){
                $('#price').show();
                $('#additionalServices').show();
            }else{
                $('#price').hide();
                $('#additionalServices').hide();
            }
        }else{
          $('#selfTimeDiv label').html('Выберите время'); 
            $('#flightParams').hide();
           // $('#timeInformer').hide();
            
            $('#selfTimeText').attr('disabled',false);
            if($('#selfTimeText').val().length > 0){
                $('#price').show();
                $('#additionalServices').show();
            }else{
                $('#price').hide();
                $('#additionalServices').hide();
            }
        }
        
    })
    
    $('#flightFromRadio, #flightToRadio').click(function(){
        //$('#flightDateDiv').css({'height':'45px'});
        //$('#flightNumberDiv').css({'height':'50px'});
        $('#flightDateDiv').show();  
        $('#flightNumberDiv').show();
    })
    
    $('#flightDateText' ).change(function(){
        if(($('#flightFromRadio').is(':checked') || $('#flightToRadio').is(':checked')) && ($(this).val().length > 0) && ($('#selfTimeText').val().length > 0)){
           $('#price').show();
           $('#additionalServices').show();
        }else{
           $('#price').hide();  
           $('#additionalServices').hide();
        }
        $(this).attr('id');
        var selectedString = $(this).val();
        explodedDate = selectedString.split(' '); //get date and time in array item
        var selectedDate = explodedDate[0].split('-');
        var selectedTime = explodedDate[1].split(':');
        var selectedHour = selectedTime[0];
        var selectedMinute = selectedTime[1];
        var selectedSecond = selectedTime[2];
        var selectedYear = selectedDate[0];
        var selectedMonth = selectedDate[1] - 1;
        var selectedDay = selectedDate[2]; 
        
        var date1 = new Date(todayYear, todayMonth, todayDay, todayHour, todayMinute);
        var date2 = new Date(selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute);
        if(selectedYear == todayYear && selectedMonth == todayMonth && selectedDay == todayDay){
            differentMin = timeDifference(date1, date2);
            if(differentMin < 0){
                $('#timeInformer').html('Мы ведь не можем отправить такси в прошлое, верно?');
                $('#selfTimeText').val('');
                $('#price').hide();
                $('#additionalServices').hide();
            }else if(differentMin < 180){
                $('#timeInformer').html('Ваш заказ сделан без учета запаса в 3 часа и требует подтверждения диспетчером в течении 15 мин.');
                $('#selfTimeText').val('');
                $('#price').hide();
                $('#additionalServices').hide();
            }else{
                $('#timeInformer').html('Все нормально - машина успеет.');
                $('#selfTimeText').val(''+rus);
                $('#price').show();
                $('#additionalServices').show();
            }           
        }else{
            differentMin = timeDifference(date1, date2);
            $('#timeInformer').html('Все нормально - машина успеет.');
            $('#selfTimeText').val(''+rus);
            $('#price').show();
            $('#additionalServices').show();
        }              
        
        $(this).val();
    })
    
    
    $('#selfTimeText').change(function(){
        
        if($(this).val().length > 0){
            $('#price').show();  
            $('#additionalServices').show();
        }else{
            $('#price').hide(); 
            $('#additionalServices').hide();
        }
        
        $(this).attr('id');
        var selectedString = $(this).val();
        explodedDate = selectedString.split(' '); //get date and time in array item
        var selectedDate = explodedDate[0].split('-');
        var selectedTime = explodedDate[1].split(':');
        var selectedHour = selectedTime[0];
        var selectedMinute = selectedTime[1];
        var selectedSecond = selectedTime[2];
        var selectedYear = selectedDate[0];
        var selectedMonth = selectedDate[1] - 1;
        var selectedDay = selectedDate[2]; 
        
        var date1 = new Date(todayYear, todayMonth, todayDay, todayHour, todayMinute);
        var date2 = new Date(selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute);
        if(selectedYear == todayYear && selectedMonth == todayMonth && selectedDay == todayDay){
            differentMin = timeDifference(date1, date2);
            if(differentMin < 0){
                $('#timeInformer').html('Мы ведь не можем отправить такси в прошлое, верно?');
                $('#selfTimeText').val('');
                $('#price').hide();
                $('#additionalServices').hide();
            }else if(differentMin < 180){
                $('#timeInformer').html('Ваш заказ сделан без учета запаса в 3 часа и требует подтверждения диспетчером в течении 15 мин.');
                $('#selfTimeText').val('');
                $('#price').hide();
                $('#additionalServices').hide();
            }else{
                $('#timeInformer').html('Все нормально - машина успеет.');
                $('#selfTimeText').val(''+rus);
                $('#price').show();
                $('#additionalServices').show();
            }           
        }else{
            differentMin = timeDifference(date1, date2);
            $('#timeInformer').html('Все нормально - машина успеет.');
            $('#selfTimeText').val(''+rus);
            $('#price').show();
            $('#additionalServices').show();
        }              
        $(this).val();
    })
    //end of step4
    
    //STEP 5
    $('#additionalBagage').click(function(){
        if( $(this).is(':checked')){
            $('#additionalBagageText').show();
        }else{
            $('#additionalBagageText').hide();
        }     
    })
    //end of step5
    $('#additionalTable').click(function(){
         if( $(this).is(':checked')){
            $('#additionalTableText').show();
        }else{
            $('#additionalTableText').hide();
        }     
    })
    
    
    
    //STEP6 
    $('#payCashRadio, #payCardRadio').click(function(){
        $('#who').show();
    })
    //end of step5
    
    //STEP6
      $('#nameClientText').keyup(function(){
        if($(this).val().length > 0 && $('#telClientText').val().length > 0){
             $('#orderButton').show();
        }else{
            $('#orderButton').hide();
        }
    })
    
    $('#telClientText').keyup(function(){
        if($(this).val().length > 0 && $('#nameClientText').val().length > 0){
             $('#orderButton').show();
        }else{
             $('#orderButton').hide();
        }
    })
    

    
    
    //end of step6
    
    function timeOrder(nd2){
       var t = new Date(nd2);
       //rus = t.toLocaleString();
       var year = t.getFullYear();
       var month = t.getMonth() +1;
       var day = t.getDate();
      
       var timeBig = t.toTimeString();
       var time = timeBig.substr(0,8);
      
      //значение для бд
      $('#timeOrderText').val(year + '-' + month + '-' + day + ' ' + time);
      
      rus = day + '.' + month + '.' + year + ' '+ time;
    }
    
    
    function timeDifference(date1,date2,inputID) {
        var d1=date1.getTime();
        var d2=date2.getTime()
        if($('#recommendTimeCheckbox').is(':checked')){
           var t = new Date(d2);
           //rus = t.toLocaleString();
           var year = t.getFullYear();
           var month = t.getMonth() +1;
           var day = t.getDate();
           var timeBig = t.toTimeString();
           var time = timeBig.substr(0,8);
          //значение для бд
           $('#flightOrderText').val(year + '-' + month + '-' + day + ' ' + time);
            
            if($('#flightFromRadio').is(':checked')){
               nd2 = d2 - 7200000;
            }
            if($('#flightToRadio').is(':checked')){
              nd2 = d2 - 1800000;
            }
        }else{
            
            nd2 = d2;
        }
        timeOrder(nd2);  
        var difference = (d1/1000.0) - (nd2/1000.0);
        difference < 0 ? difference = Math.abs(difference) : difference = difference - 2*difference;
        return difference/60;
    }      

    
    
    
  
    
    
})
    function validate(){
        var generalError = 'Возникли ошибки при оформлении заказа:<br/>';
        var tel = $('#telClientText').val();
        if(tel.length != 12 || !tel > 0){          
           generalError += "Введите пожалуйста <span class='required'>телефон</span> в формате 380XXXXXXXXX<br/>";
          $('#errorInfo').html(generalError);    
        }
        
        else{
            document.getElementById("order-form").submit();       
        }
        /*if (!$('#Order_street').val().length > 1){
           generalError += "Выберите пожалуйста <span class='required'>улицу</span><br/>";
           $('#errorInfo').html(generalError);     
        }
        if (!$('#houseText').val().length > 1){
           generalError += "Введите пожалуйста <span class='required'>номер дома</span><br/>";
           $('#errorInfo').html(generalError);     
        }
        if (!$('#timeOrderText').val().length > 1){
           generalError += "Выберите верную <span class='required'>дату</span><br/>";
           $('#errorInfo').html(generalError);     
        }
        if (tel.length == 12 & tel > 0 & $('#Order_street').val().length > 1 & $('#houseText').val().length > 1 & $('#timeOrderText').val().length > 1 & $('#nameClientText').val().length > 1 &  $('#telClientText').val().length > 1 ){
          document.getElementById("order-form").submit();            
        }*/
        
    }
