var availability = function () {
    jQuery.ajax({
        url: ajaxUrlAvail,
        async: true,
        cache: false,
        success: function (data) {
            jQuery('#results').html(data);
            jQuery(".js-showLoading").hide();
            jQuery('.js-packageForm').on('submit', function () {
                var packageCode = jQuery(this).attr("name"),
                    html = '<input type="hidden" name="ProviderId" value="' + ProviderId + '"/>'
                    + '<input type="hidden" name="package" value="' + _package + '"/>'
                    + '<input type="hidden" name="description" value="' + description + '"/>';
                jQuery(this).append(html).attr('action', detailUrl + '/paquetes/detalle/' + packageCode);
                _loadSpinner();
                jQuery(".js-globalOverlay").show();
                jQuery.publish('/flux/submit', [this]);
            });
            jQuery('.js-tabItem')
                .on('click', function () {
                    var caution = jQuery(this).attr('data-tab'),
                        curTab = '[data-tab="' + caution + '"]',
                        $container = jQuery(this).closest('.js-packageForm'),
                        $content = $container.find('.js-cautionsRS'),
                        $tablist = $container.find('.js-tabItem'),
                        $tabs = $container.find('.js-tabTarget');
//                    if(jQuery(this).hasClass('active')) {
//                        jQuery(this).removeClass('active');
//                        $tabs.filter(curTab).hide();
//                        $content.hide();
//                    } else {
//                        $tablist.removeClass('active').filter(curTab).addClass('active');
//                        $tabs.hide().filter(curTab).show();
//                        $content.show();
//                    }
                    $tablist.removeClass('active').filter(curTab).addClass('active');
                    $tabs.hide().filter(curTab).show();
                    if ($content.attr('data-state') === 'initial') {
                        var packageCode = $container.attr('name');
                        var correlationId = $container.find('[name="correlationID"]').val();
                        $content.show().attr('data-state', 'loading');
                        jQuery.ajax({
                            url: '/paquetes/cauciones-info/' + packageCode,
                            type: 'GET',
                            async: true,
                            data: {
                                correlationId: correlationId
                            },
                            success: function (data) {
                                if (data.error) {
                                    $content.html('<p class="error">' + data.error + '</p>');
                                } else {
                                    $content.attr('data-state', 'loaded');
                                    _parseCautions($content, data);
                                }
                            },
                            error: function () {
                                $content.html('<p>Ocurrió un error inesperado. Por favor, vuelva a intentarlo próximamente.</p>');
                            },
                            complete: function () {
                                $content.find('#js-loadingState').hide();
                            }
                        });
                    }
                })
                .on('keyup', function (e) {
                    switch (e.which) {
                        case(13): // ENT
                        case(32): // SPC
                            if (e.type === 'keyup')
                                jQuery(this).trigger('click');
                            break;
                    }
                });
            jQuery(document).trigger('renderComplete');
        },
        error: function () {
            jQuery(".js-ajaxErrorMsg").html("La solicitud realizada no obtuvo resultados. Por favor reintenta nuevamente").css("color", "red").css("font-size", "16px");
        }
    });
};

var _parseCautions = function (content, data) {
    
    var tableBody = '';
    var tableHeader = '';
    var createHeader = false;
    for (var cautionItem in data) {
        var $cautionTab = content.find('[data-tab="' + cautionItem + '"]').empty();
        for (var i = 0; i < data[cautionItem].length; i++) {                      
            if(cautionItem == 'Rutas'){
                var table = "<table border='1' class='table-condensed' style='display: block;overflow-x: auto;'><tr style='text-align: center;'>";                
                for (var j = 0; j < data[cautionItem][i].length; j++) {
                    var count = 0;                    
                    if(data[cautionItem][i][j]['Origin'] != undefined){                                        
                        jQuery.each( data[cautionItem][i][j], function( key ) {                                    
                            tableHeader += (!createHeader) ? "<th style='text-align: center;'>" + data['TitulosRutas'][key] + "</th>" : "";                            
                            tableBody += (count === 0) ? "<tr style='text-align: center;'>": "";                                                                                                                
                            tableBody += "<td style='text-align: center;'>" + data[cautionItem][i][j][key] + "</td>";                            
                            tableBody += ((parseInt(Object.keys(data[cautionItem][i][j]).length) - 1)  === count) ? "</tr>" : "";                                                                                    
                            ++count;
                        });                        
                        createHeader = true;
                    }else{
                        table = "<table>";
                        tableBody = "<tr style='text-align: center;'><td>"+ data[cautionItem][i][j] +"</td></tr>";
                    }
                }
                $cautionTab.append(table + tableHeader+ '</tr>' +  tableBody + '</table>');
            }else if(cautionItem == 'Itinerary'){
                var table = "<table border='1' class='table-condensed' style='display: block;overflow-x: auto;'><tr style='text-align: center;'><th>Dia</th><th>Nombre</th><th>Hora Inicial</th><th>Hora Final</th><th>Observaci�n</th></tr><tr>";
                if(data[cautionItem][i]['Itinerarios'] == undefined){
                    $cautionTab.append(data[cautionItem][i]);
                }else{                    
                    for (var j = 0; j < data[cautionItem][i]['Itinerarios'][0].length; j++) {
                        if(data[cautionItem][i]['Itinerarios'][0][j]['Dia'] != undefined){
                            tableBody += "<tr style='text-align: center;'><td>"+ data[cautionItem][i]['Itinerarios'][0][j]['Dia'] +"</td>";
                            tableBody += "<td>"+ data[cautionItem][i]['Itinerarios'][0][j]['NombreDia'] +"</td>";
                            tableBody += "<td>"+ data[cautionItem][i]['Itinerarios'][0][j]['HoraInicial'] +"</td>";
                            tableBody += "<td>"+ data[cautionItem][i]['Itinerarios'][0][j]['HoraFinal'] +"</td>";
                            tableBody += "<td>"+ data[cautionItem][i]['Itinerarios'][0][j]['Observacion'] +"</td>";                        
                        }else{
                            table = "<table>";
                            tableBody = "<tr style='text-align: center;'><td>"+ data[cautionItem][i]['Itinerarios'][i][j] +"</td></tr>";
                        }
                    }
                    $cautionTab.append(table + tableBody + '</table>');
                }                                
            }else{
                $cautionTab.append(data[cautionItem][i]);
            }
        }
    }
}

jQuery(document).ready(function () {
    availability();
    var count = 6,
        myinterval = setInterval(function () {
            availability();
            count--;
            if (count == 0)
                clearInterval(myinterval);
        }, 540000); // <---- needed ??
});
var options = "#package-results form",
        form = '.recommendation';
var starsFilter = function (obj) {
    var selected = [];
    var label = jQuery('label[for="' + jQuery(obj).attr('id') + '"]');
    jQuery(".js-emptyFilter").empty().removeClass("filter-emptyResult");
    jQuery('.js-starCheckbox').each(function () {
        if (jQuery(this).is(':checked')) {
            selected.push(jQuery(this).val());
        }
    });
    if (jQuery(obj).is(':checked')) {
        label.css("color", "white");
    } else {
        label.css("color", "#009bf8");
    }
    if (selected.length == 0) {
        jQuery('.js-filter-dispo-form').show();
    } else {
        var i = 0;
        jQuery('.js-filter-dispo-form').each(function () {
            if (selected.indexOf(jQuery(this).attr('data-stars')) < 0) {
                jQuery(this).hide();
            } else {
                jQuery(this).show();
                i++;

            }
        });
        if (i === 0) {
            jQuery(".js-emptyFilter").removeClass("hidden").append("No hay resultados con sólo ").addClass("filter-emptyResult");
            var total = jQuery(selected).length;
            jQuery(selected).each(function (index) {
                var coma = " ";
                if (index !== total - 1) {
                    coma = " o ";
                }
                jQuery(".js-emptyFilter").append(this + coma);
            });
            jQuery(".js-emptyFilter").append("Estrella(s)");
        } else {
            jQuery(".js-emptyFilter").addClass("hidden");
        }
    }
};

var priceFilter = function () {
    var minValue = 999999999,
            maxValue = 0,
            attribute = 'price',
            attributeClass = ' .js-packagePrice';
    jQuery(options).each(function () {
        var tempValue = parseInt(jQuery(this).find(attributeClass).attr(attribute).replace(/\./g, ""));
        // if(jQuery(this).find(attributeClass).find('.prise-result').html()=="COP"){
            if (minValue > tempValue) {
                minValue = tempValue;
            }
            if (maxValue < tempValue) {
                maxValue = tempValue;
            }
        // }
    });
    jQuery(function () {
        jQuery("#js-slider-price").slider({
            range: true,
            min: parseInt(minValue),
            max: parseInt(maxValue),
            values: [parseInt(minValue), parseInt(maxValue)],
            slide: function (event, ui) {
                jQuery("#js-price").val("$" + ui.values[ 0 ].toFixed(0).replace(/./g, function (c, i, a) {
                    return i && c !== "," && !((a.length - i) % 3) ? '.' + c : c;
                }) + " - $" + ui.values[ 1 ].toFixed(0).replace(/./g, function (c, i, a) {
                    return i && c !== "," && !((a.length - i) % 3) ? '.' + c : c;
                }));
                var filterValues = [ui.values[0], ui.values[1]];
                if (filterValues.length !== 0) {

                    jQuery(options + attributeClass).each(function () {
                        if (isNaN(filterValues[0])) {
                            if ((jQuery.inArray(jQuery(this).attr(attribute), filterValues)) > -1) {
                                jQuery(this).closest(form).show().attr('eval', 'checked');
                            } else {
                                var attr = jQuery(this).closest(form).attr('eval');
                                if (typeof attr === typeof undefined || attr === false) {
                                    jQuery(this).closest(form).hide();
                                }
                            }
                        } else {
                            if ((parseInt(jQuery(this).attr(attribute).replace(/\./g, "")) >= filterValues[0]) && (parseInt(jQuery(this).attr(attribute).replace(/\./g, "")) <= filterValues[1])) {
                                jQuery(this).closest(form).show().attr('eval', 'checked');
                            } else {
                                var attr = jQuery(this).closest(form).attr('eval');
                                if (typeof attr === typeof undefined || attr === false) {
                                    jQuery(this).closest(form).hide();
                                }
                            }
                        }
                    });
                    jQuery(options).removeAttr('eval');
                } else {
                    jQuery(options).show();
                }
            }
        });
        jQuery("#js-price").val("$" + jQuery("#js-slider-price").slider("values", 0).toFixed(0).replace(/./g, function (c, i, a) {
            return i && c !== "," && !((a.length - i) % 3) ? '.' + c : c;
        }) + " - $" + jQuery("#js-slider-price").slider("values", 1).toFixed(0).replace(/./g, function (c, i, a) {
            return i && c !== "," && !((a.length - i) % 3) ? '.' + c : c;
        }));
    });
};
var nameFilter = function (filterText) {
    jQuery('.js-name-title-filter').each(function () {
        if (filterText == '') {
            jQuery(this).closest('.recommendation').show();
        } else {
            var str = jQuery(this).text().toLowerCase();
            var n = str.indexOf(filterText);
            if (n >= 0) {
                jQuery(this).closest('.recommendation').show()
            } else {
                jQuery(this).closest('.recommendation').hide()
            }
        }
    });
};

var _showFilters = function() {
    jQuery('.js-ajaxLoader').hide();
    jQuery('.js-filterUnit').show();
};

jQuery(document).ajaxComplete(function (e, xhr, settings) {
    if (xhr.responseText.indexOf('id="package-results"') >= 0) {
        availPagination = new Paginator('.js-paginatorElement:not(.hide)', {
            itemsPerPage: 10
        });
        _showFilters();
        jQuery('.js-package-name-filter').on('keyup', function () {
            nameFilter(jQuery('.js-hotel-name-filter').val().toLowerCase());
        });
        priceFilter();
    }
});

jQuery(document).ready(function () {
    jQuery('.js-facebook-share').on('click', function (e) {
        e.preventDefault();
        var path = jQuery(this).attr('data-href');
        var newPath = path.replace('https://', '');       
        var loc =  newPath;
        var title = escape(document.title);
        window.open('//facebook.com/sharer/sharer.php?u=' + loc + '&title=' + title, 'facebookwindow', 'height=450, width=550, top=' + (jQuery(window).height() / 2 - 225) + ', left=' + jQuery(window).width() / 2 + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0');
    });
    jQuery('.js-twitter-share').on('click', function (e) {
        e.preventDefault();
        var loc = jQuery(this).attr('data-url');
        var title = document.title;
        window.open('//twitter.com/share?url=' + loc + '&text=' + title + '&via=Aviatur', 'twitterwindow', 'height=450, width=550, top=' + (jQuery(window).height() / 2 - 225) + ', left=' + jQuery(window).width() / 2 + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0');
    });
    jQuery('.js-google-share').on('click', function (e) {
        e.preventDefault();
        var loc = jQuery(this).attr('data-url');
        var title = document.title + ' ' + loc;
        window.open('//plus.google.com/share?url=' + loc + '&text=' + title + '&via=Aviatur', 'googlewindow', 'height=450, width=550, top=' + (jQuery(window).height() / 2 - 225) + ', left=' + jQuery(window).width() / 2 + ', toolbar=0, location=0, menubar=0, directories=0, scrollbars=0');
    });
});
jQuery(document).ready(function() {
    var header = document.getElementsByClassName("page-head__bg-container");
    if (header.length) {                
        document.cookie = "imgHeader=" + encodeURIComponent(header[0].innerHTML)+"; secure; SameSite=None";
    }
});

