﻿(function ($) {
    $.fn.qtipvalidator = function (options) {
        var opt = $.extend({}, options);

        $(this).each(function (i, item) {

            var self = this;
            var $me = $(this);
            var elements = $me.find('input, textarea, select').not('input[type=submit]');


            elements.each(function (i) {
                var inputElement = $(this);
                var type = inputElement.attr('type');

                // standardposition är till höger
                var position = {
                    my: 'left center',
                    at: 'right center'
                };

                // MEN checkboxes har nästan alltid en label/text till höger,
                // så här vi lägger tooltip nedanför
                if (type === 'checkbox') {
                    position = {
                        my: 'top center',
                        at: 'bottom center'
                    };
                }

                inputElement.qtip({
                    content: {
                        text: inputElement.data('val-required')
                    },
                    position: position,
                    style: {
                        classes: 'ui-tooltip-red ui-tooltip-rounded AnvandareTip'
                    },
                    show: {
                        // visa tooltip när man fokuserar input-fält
                        event: 'focus',
                        delay: 0,
                        effect: false
                    },
                    hide: {
                        // göm när input-fält inte är i fokus...
                        event: 'blur',
                        effect: false
                    },
                    events: {
                        show: function (event, api) {
                            // visa bara tooltip om input-fältet har ett fel flaggat
                            if (inputElement.hasClass('input-validation-error') == false)
                                event.preventDefault();
                        }
                    }
                });
            });

            //$.removeData($me, 'validator');
            var validator = $me.validate({
                onsubmit: false,
                errorPlacement: function (error, element) {
                    alert(error);
                    error.insertAfter(element);
                    element.qtip('option', { 'content.text': error });

                    // fokusera elementet igen så att qTip visas/triggas
                    if (element.is(':focus')) {
                        element.focus();
                    }
                }
            });

//            validator.settings.errorPlacement = function (error, element) {
//                console.log(error);
//                //error.insertAfter(element);
//                //                    element.qtip('option', { 'content.text': error });

//                //                    // fokusera elementet igen så att qTip visas/triggas
//                //                    if (element.is(':focus')) {
//                //                        element.focus();
//                //                    }
//            };



        });


        return $(this);
    }

    $(document).ready(function () {
        $('form.qtipvalidator').qtipvalidator();
    });
})(jQuery);

