jQuery(document).ready(function(){
    jQuery('<div class="overlay"></div>').insertBefore(".content-wrapper");
});

function setImg(input,id) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#'+id).attr('src', e.target.result);
        };
        reader.readAsDataURL(input.files[0]);
    }
}
function initPickUp() {
 var options = {componentRestrictions: {country: country_flag}};
 var input = document.getElementById('pickup_location');
 var autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initPickUp);
function initDestination() {
	var options = {componentRestrictions: {country: country_flag}};
	var input = document.getElementById('drop_location');
	var autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initDestination);

jQuery('[name="offer_type"]').click(function(){
    var offer = jQuery(this).val();
    if(offer == 2){
        jQuery('[id="input_discount"]').html(jQuery('[id="discount_input_html"]').html());
    } else {
        jQuery('[id="input_discount"]').html('');
    }
});

function checkChild(thisObj){
    var table = thisObj.attr('table');
    if(thisObj.prop("checked") == true){
        jQuery('[id^="table_'+table+'_"]').prop("checked", true);
    } else {
        jQuery('[id^="table_'+table+'_"]').prop("checked", false);
    }
    jQuery('[name^="TDLS.transport_id"],[name^="TDLS.medical_no"],[name^="TDLS.patient_name"],[name^="TDLS.age"],[name^="TDLS.phone"],[name^="APRES.reason"],[name^="TDLS.appointment_time"]').prop("checked", true).parent().closest('div').addClass('disable-block');
}

jQuery('[name="fieldType"]').click(function(){
    var action = jQuery(this).attr('action');
    if(action == 'show'){
        jQuery('[id="customFields"]').removeClass('hide');
    } else {
        jQuery('[id="customFields"]').addClass('hide');
    }
});

jQuery('[id="rGenerate"]').click(function(){
    event.preventDefault();
    var fields = '',
    action = jQuery(this).attr('action'),
    thisObj = jQuery(this);
    fieldType = jQuery('input[name="fieldType"]:checked').val(),
    where_cond = jQuery('[id="where_cond"]').serialize();

    if(thisObj.attr('dmclick') == 1){
        return false;
    }

    thisObj.attr('dmclick','1');
    if(fieldType == 'custom'){
        jQuery.each(jQuery('[id="field_list"]').serialize().split('&'), function (key,field) {
            var field_arr = field.split('=');
            fields += field_arr[1]+',';
        });
    }else{
        fields = jQuery('[id="all_fields"]').attr('all_fields');
    }
    jQuery.ajax({
        url  : base_url+"Report/rGenerate", 
        type : 'POST',
        data : {'action':action,'fields':fields,'where_cond':where_cond},
        success: function(resp){
            if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
                thisObj.attr('dmclick','0');
                return false;
            }
            var resp_data = jQuery.parseJSON(resp);
            if(resp_data['status'] == '2'){
                thisObj.attr('dmclick','0');
                setErrModal('Report status','No Data Found..!');
                return false;
            }
            if(resp_data['status'] == 0 || (action == 'view' && (resp_data['report_data'] == '' || resp_data['report_data'] == undefined || resp_data['report_data'] == 'undefined' || resp_data['report_data'] == null || resp_data['report_data'] == 'null'))){
                thisObj.attr('dmclick','0');
                setErrModal('Report status','Something Went Wrong, Please Try Again..!');
                return false;
            }
            if(action == 'view'){
                var table = jQuery('[id="report_table"]').DataTable();
                table.clear().draw();

                jQuery.each(resp_data['report_data'], function(key, data) {
                    report_data[key] = data;
                    var vBtn = '<a class="btn btn-sm btn-primary" id="report_view_pop_'+key+'" key="'+key+'"><i class="fa fa-fw fa-edit"></i>View</a>';
                    table.row.add([data['Order_ID'],data['Medical_Number'],data['Patient_Name'],
                     data['Patient_Age'],data['Patient_Phone'],data['Appointment_Reason'],
                     data['Appointment_Time'],vBtn]).draw();
                });
                jQuery('[id="report_table_html"]').removeClass('hide');
                slideTo('report_table_html');
                thisObj.attr('dmclick','0');
            }
            if(action == 'export'){
                thisObj.attr('dmclick','0');
                window.location.replace(base_url+'Report/downloadCSV');
            }
        }
    });
});

function setErrModal(header_msg,body_msg){
    jQuery('[id="modal_body_msg"]').html(body_msg);
    jQuery('[id="modal_header_msg"]').html(header_msg);
    jQuery('[id="errModal"]').modal('show');
}

function slideTo(id){
    jQuery('html, body').animate({
        scrollTop: jQuery('[id="'+id+'"]').offset().top
    }, 800);
}

jQuery('#report_table tbody').on('click','a',function() {
    var thisObj = jQuery(this),
    key = thisObj.attr('key');
    viewOrderDetails(key);
});

jQuery('[id="viewRideDetails"]').click(function(){
    console.log('sdrfg');
    var thisObj = jQuery(this),
    key = thisObj.attr('key');
    viewOrderDetails(key);
});

function viewOrderDetails(key){
    var body_html = rowHtml = '';

    var colCount = 1;
    body_html = '<div class="col-xs-12">';
    jQuery.each(report_data[key], function(field,value) {
        value = (value == null || value == 'null' || value == undefined || value == 'undefined')?'--':value;
        rowHtml += '<div class="col-xs-6"><div class="col-xs-12">'+
        '<div class="col-xs-6">'+field.replace(/_/g,' ')+'</div>'+
        '<div class="col-xs-1">:</div>'+
        '<div class="col-xs-5">'+value+'</div>'+
        '</div></div>';
        if(colCount == 2){
            body_html += rowHtml;
            rowHtml = '';
            colCount = 1;
        }else{
            colCount++;
        }
    });
    body_html += (rowHtml != '')?rowHtml+'</div>':'</div>';
    modalTrigger('Ride Details',body_html);
}

function getBrokerRides(){
    jQuery('[id="getBrokerRides"]').submit();
}

function getCmpyPayDetls(){
    jQuery('[id="cmpyPayDetlsForm"]').submit();
}

function modalTrigger(header,body_html){
    jQuery('[id="modal_content"]').html(body_html);
    jQuery('[id="modal_header"]').html(header);

    jQuery('[id="popup_modal"]').modal('show');
}

function modalHide(){
    jQuery('[id="popup_modal"]').modal('hide');
}

function addModalLoader(){
    jQuery("[id='modal_content']").addClass('relative height_200');
    jQuery("[id='modal_content']").prepend("<div id='modal_loader_body' class='loader'></div>");
}

function remModalLoader(){
    jQuery("[id='modal_loader_body']").remove();
    jQuery("[id='modal_content']").removeClass('relative height_200');
}

jQuery('[id="scheduleAll"]').click(function(){
    if(ride_ids==undefined || ride_ids=='undefined' || ride_ids==null || ride_ids=='null' || ride_ids==''){
        return false;
    }
    markAsScheduled(ride_ids,'0');
});

jQuery('[id^="markSchedule_"]').click(function(){
    var thisObj = jQuery(this),
    is_scheduled = thisObj.attr('is_scheduled'),
    transport_id = thisObj.attr('transport_id');

    if(transport_id == undefined || transport_id == 'undefined' || transport_id == null || transport_id == 'null' || transport_id == '' || 
     is_scheduled == undefined || is_scheduled == 'undefined' || is_scheduled == null || is_scheduled == 'null' || is_scheduled == ''){
        return false;
}

if(is_scheduled == 1){
    flag = confirm("Are you sure to continue with this action...?");
    if(flag != true) return false;
}
markAsScheduled(transport_id,is_scheduled);
});

function markAsScheduled(transport_id,is_scheduled){
    if(transport_id == undefined || transport_id == 'undefined' || transport_id == null || transport_id == 'null' || transport_id == '' || 
     is_scheduled == undefined || is_scheduled == 'undefined' || is_scheduled == null || is_scheduled == 'null' || is_scheduled == ''){
        return false;
    }
    showFullScreenLoader();
    jQuery.ajax({
        url  : base_url+"Ride/changeSchuduleStatus", 
        type : 'POST',
        data : {'transport_id':transport_id,'is_scheduled':is_scheduled},
        success: function(resp){
            if(resp == '' || resp == undefined || resp == null || resp == 'null' || resp == 'undefined'){
                remFullScreenLoader();
                return false;
            }
            resp = jQuery.parseJSON(resp);
            if(resp['status'] == 1){
                var color = '';
                if(is_scheduled == 1){
                    color = 'red'
                    is_scheduled = 0;
                } else {
                    color = 'green'
                    is_scheduled = 1;
                }
                jQuery.each(resp['succArr'], function(index,value) {
                    jQuery('[id="markSchedule_'+value+'"]').attr('is_scheduled',is_scheduled);
                    jQuery(jQuery('[id="markSchedule_'+value+'"]')).children().css( "color", color );
                });
                remFullScreenLoader();
            } else {
                remFullScreenLoader();
                setErrModal('Error Scheduling Rides','Something went wrong, please try again..!');
            }
        },
        error: function (jqXHR, exception) {
            remFullScreenLoader();
        }
    });
}

function showFullScreenLoader(){
    var thisObj = jQuery('.overlay');
    thisObj.css("display",'block');

    thisObj.addClass('relative');
    thisObj.prepend("<div id='fullScreenLoaderBody' class='loader'></div>");
}

function remFullScreenLoader(){
    var thisObj = jQuery('.overlay');
    thisObj.css("display",'none');

    jQuery('[id="fullScreenLoaderBody"]').remove();
    thisObj.removeClass('relative');
}

function allowDropElement(ev) {
    if(ev.target.getAttribute('type') != 'parent' && ev.target.firstChild != null){
        return false;
    }
    ev.preventDefault();
}

function dragElement(ev) {
    ev.dataTransfer.setData("tmporderid", ev.target.getAttribute('id'));
}

function dropElement(ev) {
    ev.preventDefault();
    jQuery(event.target).css('border-color','#A8A8A8');
    var tmporderid = ev.dataTransfer.getData("tmporderid");
    ev.target.appendChild(document.getElementById(tmporderid));
}

jQuery('[id="upload_excell"]').click(function(){
    var thisObj = jQuery(this), childThisObj = '', headerOrder = [], fileType = jQuery('[name="fileType"]').val(),
        broker_id = jQuery('[name="broker_id"]').val(), company_id = jQuery('[name="company_id"]').val(),
        import_file = jQuery('[name="import_file"]').val(), childHead = '', errMsg = '', error = '0';
    
    if(thisObj.attr('dmclick') != 0){
        return false;
    }

    if(fileType == '' || fileType == undefined || fileType == null || fileType == 'null' || fileType == 'undefined' ||
       broker_id == '' || broker_id == undefined || broker_id == null || broker_id == 'null' || broker_id == 'undefined' ||
       company_id == '' || company_id == undefined || company_id == null || company_id == 'null' || company_id == 'undefined' ||
       import_file == '' || import_file == undefined || import_file == null || import_file == 'null' || import_file == 'undefined'){
        setErrModal('Error Uploading Excell','Please Map All the Fields to the corrospinding header..!');
        return false;
    }

    showFullScreenLoader();
    thisObj.attr('dmclick',1);

    jQuery('[id="mappedHeaders"] [required="yes"]').each(function(){
        childThisObj = jQuery(this);
        if (childThisObj.children().length <= 0) {
            remFullScreenLoader();
            thisObj.attr('dmclick',0);
            childThisObj.css('border-color','red');
            setErrModal('Error Uploading Excell','Map all required fields..!');
            error = '1';
        }
        childHead = childThisObj.children();
        headerOrder[childThisObj.attr('headOrder')] = childHead.attr('tmporder');
    });
    if(error == '1'){
        return false;
    }
    jQuery.ajax({
        url  : base_url+"Ride/import", 
        type : 'POST',
        data : {'broker_id':broker_id,'company_id':company_id,'header_order':headerOrder,'file_type':fileType,'import_file':import_file},
        success: function(resp){
            if(resp == '' || resp == undefined || resp == null || resp == 'null' || resp == 'undefined'){
                remFullScreenLoader();
                thisObj.attr('dmclick',0);
                setErrModal('Error Uploading Excell','Something went wrong, please try again..!');
                return false;
            }
            resp = jQuery.parseJSON(resp);
            if(resp['status'] == 1){
                window.location.replace(base_url+'Ride/view_rides');
            } else {
                if (resp['status'] == 0) {
                    errMsg = 'Something went wrong, please try again..!';
                } else if (resp['status'] == 2) {
                    errMsg = 'Invalid File given, please try again later..!';
                } else if (resp['status'] == 3) {
                    errMsg = 'No data found, please try again later..!';
                } else if (resp['status'] == 4) {
                    errMsg = 'Invalid header given, please try again later..!';
                } 
                remFullScreenLoader();
                thisObj.attr('dmclick',0);
                setErrModal('Error Uploading Excell',errMsg);
            }
            return false;
        },
        error: function (jqXHR, exception) {
            remFullScreenLoader();
            thisObj.attr('dmclick',0);
            setErrModal('Error Uploading Excell','Something went wrong, please try again..!');
            return false;
        }
    });
});