var protocol = window.location.protocol;
//////////////////////////////////////////////////////////////
var hostUrl = protocol + "//" + window.location.host + "/";
///////////////////////////////////////////////////////////

var pms_isMobile = false;
var pms_isDesktop = false;

function screenSize() {
    //mobile detection
    if (Modernizr.mq('only all and(max-width: 991px)'))
        pms_isMobile = true;
    else
        pms_isMobile = false;

    //tablette and mobile detection
    if (Modernizr.mq('only all and(max-width: 1024px)'))
        pms_isDesktop = false;
    else
        pms_isDesktop = true;
}
function pms_getNumericInput(input) {
    var val = parseFloat(input.val().replace(/[^\d.-]/g, ''));
    return (val > 0) ? val : 0;
}
function pms_setNumericInput(input, val) {
    if (val > 0) input.val(Math.round(val * 100) / 100); else input.val(0);
}
/* =====================================================================
 * DOCUMENT READY
 * =====================================================================
 */
$(document).ready(function () {
    'use strict';
    //RESIZE EVENTS
    $(window).resize(function () {
        screenSize();
        Modernizr.addTest('ipad', function () {
            return !!navigator.userAgent.match(/iPad/i);
        });
    });
    screenSize();

    /* =================================================================
     * form placeholder for IE
     * =================================================================
     */
    if (!Modernizr.input.placeholder) {
        $('[placeholder]').on('change', function () {
            var input = $(this);
            if (input.val() == input.attr('placeholder')) {
                input.val('');
                input.removeClass('placeholder');
            }
        }).on('blur', function () {
            var input = $(this);
            if (input.val() == '' || input.val() == input.attr('placeholder')) {
                input.addClass('placeholder');
                input.val(input.attr('placeholder'));
            }
        }).trigger('blur');
        $('[placeholder]').parents('form').on('submit', function () {
            $(this).find('[placeholder]').each(function () {
                var input = $(this);
                if (input.val() == input.attr('placeholder')) {
                    input.val('');
                }
            })
        });
    }
    /* =================================================================
     * MAGNIFIC POPUP
     * =================================================================
     */
    if ($('a.image-link').length) {
        $('a.image-link').magnificPopup({
            type: 'image',
            mainClass: 'mfp-with-zoom',
            gallery: {
                enabled: true
            },
            zoom: {
                enabled: true
            }
        });
    }
    if ($('.ajax-popup-link').length) {
        $('.ajax-popup-link').each(function () {
            $(this).magnificPopup({
                type: 'ajax',
                ajax: {
                    settings: {
                        method: 'POST',
                        data: $(this).data('params')
                    }
                }
            });
        });
    }
    /* =================================================================
     * TOOLTIP
     * =================================================================
     */
    $('.tips').tooltip({ placement: 'auto' });

    /* =================================================================
     * ALERT
     * =================================================================
     */
    $('.alert').delegate('button', 'click', function () {
        $(this).parent().fadeOut('fast');
    });

    /* =================================================================
     * AJAX / FORM
     * =================================================================
     */
    if ($('form.ajax-form').length) {
        $.fn.clear = function () {
            $(this)
                .find('input').not('.noreset')
                .filter(':text, :password, :file, :hidden').val('').end()
                .filter(':checkbox, :radio').prop('checked', false).removeAttr('checked').end()
                .end()
                .find('textarea').not('.noreset').val('').end()
                .find('select').not('.noreset').prop('selectedIndex', -1).prop('selected', false)
                .find('option:selected').removeAttr('selected');

            return this;
        };
        function pms_sendAjaxForm(form, action, targetCont, refresh, clear, extraTarget, onload) {
            var posQuery = action.indexOf('?');
            var extraData = '';
            if (posQuery != -1) {
                extraData = action.substr(posQuery + 1);
                if (extraData != '') extraData = '&' + extraData;
                action = action.substr(0, posQuery);
            }
            $.ajax({
                url: action,
                type: form.attr('method'),
                data: form.serialize() + extraData,
                success: function (response) {
                    if (onload != 1) {
                        $('.field-notice', form).html('').hide().parent().removeClass('alert alert-danger');
                        $('.alert.alert-danger').html('').hide();
                        $('.alert.alert-success').html('').hide();
                    }

                    var response = $.parseJSON(response);

                    if (targetCont != '') $(targetCont).removeClass('loading-ajax');

                    if (response.error != '') $('.alert.alert-danger', form).html(response.error).slideDown();
                    else if (response.redirect != '' && response.redirect != undefined) window.location.href = response.redirect;
                    else if (refresh === true) {
                        var href = window.location.href;
                        window.location = href.substr(0, href.lastIndexOf('#'));
                    }
                    if (response.success != '') {
                        $('.alert.alert-success', form).html(response.success).slideDown();
                        if (clear && response.error == '' && response.notices.length == 0)
                            form.clear();
                    }

                    if (!$.isEmptyObject(response.notices)) {
                        if (targetCont != "") $(targetCont).hide();
                        $.each(response.notices, function (field, notice) {
                            var elm = $('.field-notice[rel="' + field + '"]', form);
                            if (elm.get(0) !== undefined) elm.html(notice).fadeIn('slow').parent().addClass('alert alert-danger');
                        });
                        $('.captcha_refresh', form).trigger('click');
                    } else {
                        if (targetCont != '') {
                            $(targetCont).html(response.html);
                            $('.open-popup-link').magnificPopup({
                                type: 'inline',
                                midClick: true
                            });
                            if ($('.selectpicker').length) $('.selectpicker').selectpicker('refresh');
                        }
                        if (extraTarget != '')
                            $(extraTarget).html(response.extraHtml);
                    }

                    if ($('.alert:visible', form).length) {

                        var scroll_1 = $('html, body').scrollTop();
                        var scroll_2 = $('body').scrollTop();
                        var scrolltop = scroll_1;
                        if (scroll_1 == 0) scrolltop = scroll_2;

                        var scrolltop2 = $('.alert:visible:first', form).offset().top - 80;
                        if (scrolltop2 < scrolltop) $('html, body').animate({ scrollTop: scrolltop2 + 'px' });
                    }
                }
            });
        }
        $('form.ajax-form').on('click change', '.sendAjaxForm', function (e) {
            e.defaultPrevented;
            var elm = $(this);
            var onload = elm.attr('data-sendOnload');
            var tagName = elm.prop('tagName');
            if ((e.type == 'click' && ((tagName == 'INPUT' && (elm.attr('type') == 'submit' || elm.attr('type') == 'image')) || tagName == 'A' || tagName == 'BUTTON')) || e.type == 'change') {
                var targetCont = elm.data('target');
                var refresh = elm.data('refresh');
                var clear = elm.data('clear');
                if (targetCont != "") $(targetCont).html('').addClass('loading-ajax').show();
                if (elm.data('action') !== undefined)
                    pms_sendAjaxForm(elm.parents('form.ajax-form'), elm.data('action'), targetCont, refresh, clear, elm.data('extratarget'), onload);
            }
        });
        $('.submitOnClick').on('click', function (e) {
            e.defaultPrevented;
            $(this).parents('form').trigger('submit');
            return false;
        });
        $('.sendAjaxForm[data-sendOnload="1"]').trigger('change');
    }
    if ($('a.ajax-link').length) {
        $('a.ajax-link').on('click', function (e) {
            e.defaultPrevented;
            var elm = $(this);
            var href = elm.attr('href');
            $.ajax({
                url: elm.data('action'),
                type: 'get',
                success: function (response) {
                    if (href != '' && href != '#') $(location).attr('href', href);
                }
            });
            return false;
        });
    }
});
////////////////////////////////////////////////////////////////////////
// BINARIQUE EDIT
////////////////////////////////////////////////////////////////////////
$(document).ready(function () {
    // Preview images before upload
    $("#logoImage").change(function () {
        previewImage(this, '#logoPreview');
        Upload(this, 'logo');
    });

    $("#faviconImage").change(function () {
        previewImage(this, '#faviconPreview');
        Upload(this, 'favicon');
    });
    // Handle form submission
    function Upload(input, UploadType) {
        var pms_auth_key = $("#pms-auth-key").val();
        var pms_server_folder = $("#pms-server-folder").val();
        // Validate that both files are selected
        if (!$("#logoImage").val() && !$("#faviconImage").val()) {
            showMessage("Please select logo or favicon image.", "danger");
            return;
        }
        // Create FormData object
        var formData = new FormData();
        formData.append("UploadType", UploadType);
        formData.append("Image", input.files[0]);
        // Show progress bar
        $(".progress").show();
        $(".btn-upload").prop('disabled', true);
        // AJAX request
        $.ajax({
            xhr: function () {
                var xhr = new window.XMLHttpRequest();
                xhr.upload.addEventListener("progress", function (evt) {
                    if (evt.lengthComputable) {
                        var percentComplete = (evt.loaded / evt.total) * 100;
                        $(".progress-bar").width(percentComplete + '%');
                        $(".progress-bar").text(percentComplete.toFixed(2) + '%');
                    }
                }, false);
                return xhr;
            },
            type: 'POST',
            url: hostUrl + pms_server_folder + '/api/upload.php',
            contentType: false,
            mimeType: "multipart/form-data",
            processData: false,
            data: formData,
            headers: {
                "Authorization": "Token " + pms_auth_key,
            },
            success: function (response) {
                try {
                    var data = JSON.parse(response);
                    if (data.success) {
                        if (UploadType == "logo") {
                            showMessage("Logo uploaded successfully", "success");
                        } else {
                            showMessage("Favicon uploaded successfully", "success");
                        }

                    } else {
                        showMessage("Error: " + data.message, "danger");
                    }
                } catch (e) {
                    showMessage("Error parsing server response", "danger");
                }
            },
            error: function () {
                showMessage("Error uploading files", "danger");
            },
            complete: function () {
                $(".btn-upload").prop('disabled', false);
            }
        });
    }

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

            reader.onload = function (e) {
                $(previewContainer).html('<img src="' + e.target.result + '" class="preview-img" style="max-height: 200px;">');
            }

            reader.readAsDataURL(input.files[0]);
        }
    }

    function showMessage(text, type) {
        var messageDiv = $("#message");
        messageDiv.removeClass("alert-info alert-success alert-danger");
        messageDiv.addClass("alert-" + type);
        messageDiv.html(text);
        messageDiv.show();
    }
});
///////////////////////////////////////////////////