jQuery.noConflict();

(function ($) {
    $(function () {

        var name = $("#name"),
            email = $("#email"),
            title = $("#title"),
            artist = $("#artist"),
            allFields = $([]).add(name).add(email).add(title).add(artist),
            tips = $(".validateTips");

        function updateTips(t) {
            tips.text(t).addClass("ui-state-highlight");
            setTimeout(function () {
                tips.removeClass("ui-state-highlight", 1500);
            }, 500);
        }

        function checkLength(o, n, min, max) {
            if (o.val().length > max || o.val().length < min) {
                o.addClass("ui-state-error");
                updateTips("U dient bij " + n + " minimaal " + min + " en maximaal " + max + " tekens in te vullen.");
                return false;
            } else {
                return true;
            }
        }

        function post_verzoek() {
            $.post("handler/verzoek.php", {
                name: $("#name").val(),
                mail: $("#email").val(),
                sartist: $("#artist").val(),
                stite: $("#title").val(),
                descrp: $("#description").val()
            }, function (data) {
                //alert(data);
                $('#verzoekfrm').each(function () {
                    this.reset();
                });

                $("#dialog:ui-dialog").dialog("destroy");
                $("#dialog-message").dialog({
                    modal: true,
                    buttons: {
                        Ok: function () {
                            $(this).dialog("close");
                        }
                    }
                });
            }
            );
        }

        function clear_form_elements() {
            document.verzoekfrm.reset();
            return false;
        }

        function checkRegexp(o, regexp, n) {
            if (!(regexp.test(o.val()))) {
                o.addClass("ui-state-error");
                updateTips(n);
                return false;
            } else {
                return true;
            }
        }


        $("#dialog:ui-dialog").dialog("destroy");
        $("#verzoek-dialog").dialog({
            autoOpen: false,
            modal: true,
            width: 500,
            show: "blind",
            hide: "explode",
            buttons: {
                "Verzend": function () {
                    var bValid = true;
                    allFields.removeClass("ui-state-error");

                    bValid = bValid && checkLength(name, "naam", 3, 50);
                    bValid = bValid && checkLength(email, "e-mail", 7, 150);
                    bValid = bValid && checkLength(artist, "artiest", 3, 100);
                    bValid = bValid && checkLength(title, "titel", 3, 100);

                    //bValid = bValid && checkRegexp( name, /^[a-z]([0-9a-z_])+$/i, "Ongeldige naam." );				
                    bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "E-mail onjuist u dient het zo te doen: uwnaam@uwprovider.nl");

                    if (bValid) {
                        //alert('');
                        post_verzoek();
                        $(this).dialog("close");
                    }
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });

        $("#verzoekbox").click(function () {

            $.post("handler/verzoekstate.php", {
                check: '1'
            }, function (data) {

                if (data == 1) {

                    $("#verzoek-dialog").dialog("open");

                    $("#title").autocomplete({
                        source: function (request, response) {
                            $.post("/handler/verzoek-titel.php", {
                                data: request.term ,data2: document.getElementById('artist').value
                            }, function (data) {
                                response($.map(data, function (item) {
                                    return {
                                        label: item.title,
                                        value: item.title
                                    }
                                }))
                            }, "json");
                        },
                        minLength: 2,
                        dataType: "json",
                        cache: false
                    });

                    $("#artist").autocomplete({
                        source: function (request, response) {
                            $.post("/handler/verzoek-artiest.php", {
                                data: request.term
                            }, function (data) {
                                response($.map(data, function (item) {
                                    return {
                                        label: item.artist,
                                        value: item.artist
                                    }
                                }))
                            }, "json");
                        },
                        minLength: 2,
                        dataType: "json",
                        cache: false
                    });
                    return false;

                } else {
                    $("#dialog:ui-dialog").dialog("destroy");
                    $("#closed-message").dialog({
                        modal: true,
                        buttons: {
                            Ok: function () {
                                $(this).dialog("close");
                            }
                        }
                    });
                }
            });
        });
    });
})(jQuery);
