﻿var RH = function () {
    Inicializacao();

    function Inicializacao() {
        setInterval(function () {
            $.ajax({
                type: "GET",
                url: "/Sistema/Sessao",
                success: function (dados) {
                    //alert("ok");
                }
            });
        }, 60000);

        jQuery(document).ready(function () {
            $("input:submit, input:button, input:reset, .RRMvcPaginaModulo a, .RRMvcPaginaModulo2 a, .RRMvcVoltar a, .RRMvcBotao").button();
            //            $(".FormularioAcao legend").addClass("ui-corner-all");
            $(".FormularioAcao legend").css("-moz-border-radius", "6px").css("-webkit-border-radius", "6px").css("border-radius", "6px");

            $(".RRMvcProximo").button({
                text: true,
                icons: {
                    primary: "ui-icon-carat-1-e"
                }
            });

            $(".RRMvcAnterior").button({
                text: true,
                icons: {
                    primary: "ui-icon-carat-1-w"
                }
            });

            $(".RRMvcAutoComplete").blur(function () {
                var nome = $(this).attr("id");
                var cod = String(nome).replace("Descricao", "Codigo");
                var objcod = $("#" + cod);

                var codigo = $(objcod).attr("value");
                if (codigo == "" || codigo == "0" || codigo == undefined) {
                    //                    $(this).attr("value", "");
                    //                    RH.MessageBox.Aviso("Dado inválido.");
                    //                    $(this).focus();
                }
            });

            //            $(".RRMvcAutoComplete").focusout(function () {
            //                //var nome = $(this).attr("id");
            //                //alert(nome);
            //                alert("...");
            //            });

            TableTools.DEFAULTS.aButtons = ["pdf", "xls"];
            $(".RRMvcGridCompleto").dataTable({
                "oLanguage": {
                    "sProcessing": "Processando...",
                    "sLengthMenu": "Mostrar _MENU_ registros",
                    "sZeroRecords": "Não foram encontrados resultados",
                    "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros",
                    "sInfoEmpty": "Mostrando de 0 até 0 de 0 registros",
                    "sInfoFiltered": "(filtrado de _MAX_ registros no total)",
                    "sInfoPostFix": "",
                    "sSearch": "Buscar:",
                    "sUrl": "",
                    "oPaginate": {
                        "sFirst": "Primeiro",
                        "sPrevious": "Anterior",
                        "sNext": "Seguinte",
                        "sLast": "Último"
                    }
                },
                "sDom": 'T<"clear">lfrtip',
                "oTableTools": {
                    "sSwfPath": "/Arquivos/JavaScript/swf/copy_cvs_xls_pdf.swf"
                }
            });

            $(".RRMvcEnvioSMS").live("click", function () {
                var telefones = "";
                $(this).parent().find("input[type=checkbox]:checked").each(function () {
                    if (telefones != "") { telefones += ";"; }
                    telefones += $(this).val();
                });

                if (telefones == "") {
                    RH.MessageBox.Aviso("Não há dados telefones selecionados para envio de SMS.");
                    return;
                }

                $.ajax({
                    type: "GET",
                    data: { Telefones: telefones },
                    url: "/Sistema/EnviarSMS?partial=true",
                    success: function (html) {

                        var DivSMS = $('<div id="DivEnvioSMS"></div>').html([
                                                                 "<div class=\"AvisoModal\">",
                                                                 html,
                                                                 "</div>"
                                                                 ].join('')
                                                                 );

                        DivSMS.dialog({
                            autoOpen: true,
                            title: "Envio de SMS",
                            modal: true,
                            position: 'center',
                            resizable: false,
                            disabled: true,
                            draggable: false,
                            closeOnEscape: false,
                            width: 500,
                            open: function (event, ui) {
                                $(".RRMvcBotao").button();
                            },
                            buttons: {
                                Cancelar: function () {
                                    $(this).dialog('close');
                                }
                            }
                        });
                    }
                });

            });

            $(".RRMvcNumero").ForceNumericOnly();
            //$(".RRMvcDecimal").setMask({ generatePagination: false });

            $(".RR-Tabs").tabs();

            $("input:password, input:text").live("focus", function () {
                if (!$(this).attr("readonly")) {
                    $(this).addClass("Highlight");
                }
            });
            $(".RRMvcTRExcluir").live("click", function () {
                $(this).parents("tr:first").remove();
            });

            $("input:password, input:text").live("blur", function () {
                if (!$(this).attr("readonly")) {
                    $(this).removeClass("Highlight");
                }
            });

            //            $(".RRMvcData").datepicker({
            //                showButtonPanel: true,
            //                dateFormat: "dd/mm/yy",
            //                buttonImage: "/Arquivos/Figuras/Componentes/calendar3.png",
            //                showOn: "button",
            //                buttonImageOnly: true
            //            });

            $("#PesquisaVagaPartial").click(function () {
                var dados = $(this).parents("form:first").serialize();
                var action = $(this).parents("form:first").attr("action")

                //RH.Util.Redirecionar(action);
            });

            $("#LoginCandidato").click(function (event) {
                event.preventDefault();

                RH.Aguarde.Exibir("Validando login");

                var form = $(this).parents("form:first");

                $(form).validate();
                if ($(form).valid()) {
                    $.ajax({
                        type: "POST",
                        data: $(this).parents("form:first").serialize(),
                        url: $(this).parents("form:first").attr("action"),
                        success: function (resposta) {

                            if (resposta != undefined) {
                                if (!resposta.Sucesso) {

                                    if (resposta.Erros != undefined) {
                                        if (resposta.Erros.length > 0) {
                                            RH.Util.ExibeErros($(form), resposta.Erros);
                                            RH.Aguarde.Fechar();
                                        }
                                    }
                                }
                            }
                        }

                    });
                }
                else {
                    RH.Aguarde.Fechar();
                }
            });

            $(".RRMvcGrid tr:odd").addClass("RRMvcGrid-Odd");
            /*$(".RRMvcGrid th").disableSelection();*/


            /* Compara se uma data é maior que outra */
            jQuery.validator.addMethod("greaterDateTime", function (value, element, param) {
                return Date.parse(value) > Date.parse($(param).val());
            });

            jQuery.validator.unobtrusive.adapters.add("greaterDateTime", ["other"], function (options) {
                options.rules["greaterDateTime"] = "#" + options.params.other;
                options.messages["greaterDateTime"] = options.message;
            });

            /* Compara se propriedaes possuem o mesmo valor */
            jQuery.validator.addMethod("equal", function (value, element, param) {
                return String(value) == String($(param).val());
            });

            jQuery.validator.unobtrusive.adapters.add("equal", ["other"], function (options) {
                options.rules["equal"] = "#" + options.params.other;
                options.messages["equal"] = options.message;
            });

            /* Compara se propriedaes possuem o mesmo valor */
            jQuery.validator.addMethod('datevalid', function (value, element) {
                var valor = jQuery.trim(value.replace(/\/ /g, "")).length;

                if (valor == 0) { return true };

                var data = Date.parseExact(value, "dd/MM/yyyy");
                if (data == null) { return false; }

                return true;
            });

            jQuery.validator.unobtrusive.adapters.addBool("datevalid");

            /* Valida mês referência */
            jQuery.validator.addMethod('refvalid', function (value, element) {
                var valor = jQuery.trim(value.replace(/\/ /g, "")).length;

                if (valor == 0) { return true };

                var data = Date.parseExact("01/" + value, "dd/MM/yyyy");
                if (data == null) { return false; }

                return true;
            });

            jQuery.validator.unobtrusive.adapters.addBool("refvalid");

            /* Limita de anos */
            jQuery.validator.addMethod('yearrange', function (value, element) {
                if (value == "" || value == null) { return true };

                var ano = value.substring(value.length - 4);
                var year = Number(ano);
                if (year >= 1900 && year <= 2100)
                { return true; }
                else { return false; }
            });

            jQuery.validator.unobtrusive.adapters.addBool("yearrange");

            /* Compara se mês referencia é maior que outro */
            jQuery.validator.addMethod("lessermesref", function (value, element, params) {
                //debugger;
                if (value == "") { return true; }
                if ($("#" + params).val() == "") { return true; }

                return Date.parse("01/" + value) <= Date.parse("01/" + $("#" + params).val());
            });

            jQuery.validator.unobtrusive.adapters.addSingleVal("lessermesref", ["otherproperty"]);
            //            (, function (options) {
            //                options.rules["lessermesref"] = "#" + options.params.other;
            //                options.messages["lessermesref"] = options.message;
            //            });

            /* Regras com Regex */
            jQuery.validator.addMethod("regularexpression", function (value, element, param) {
                return String(value) != String($(param).val());
            });

            jQuery.validator.unobtrusive.adapters.add("regularexpression", function (options) {
                //options.rules["regularexpression"] = "#" + options.params.other;
                options.messages["regularexpression"] = options.message;
            });

            $(".RRMvcTelefone").mask("(99)9999-9999");
            $(".RRMvcCpf").mask("999.999.999-99");
            $(".RRMvcCnpj").mask("99.999.999/9999-99");
            $(".RRMvcCep").mask("99999-999");
            $(".RRMvcData").mask("99/99/9999");
            $(".RRMvcAno").mask("9999");
            $(".RRMvcHora").mask("99:99");
            $(".RRMvcMesRef").mask("99/9999");


            /* NOVO */
            $(":input[type=button][value=Novo]").live("click", function (event) {
                RH.Aguarde.Exibir("Carregando ...");

                var action = $(this).parents("form:first").attr("action")
                var posicaoBarra = String(action).lastIndexOf("/");
                action = String(action).substring(0, posicaoBarra) + "/Edicao";

                RH.Util.Redirecionar(action);
            });

            /* CANCELAR */
            $(":input[type=button][value=Cancelar]").live("click", function (event) {
                RH.Aguarde.Exibir("Carregando ...");

                var action = $(this).parents("form:first").attr("action")
                var posicaoBarra = String(action).lastIndexOf("/");
                action = String(action).substring(0, posicaoBarra) + "/Pesquisar";

                RH.Util.Redirecionar(action);
            });

            /* LIMPAR */
            $(":input[type=reset][value=Limpar]").live("click", function (event) {
                if ($(this).hasClass("RRMvcNoAjax")) {
                    return;
                }

                RH.Aguarde.Exibir("Carregando ...");

                $("select:enabled").attr('selectedIndex', 0);

                if ($(this).parents("form:first").find(".validation-summary-errors").find("li")) {
                    $(this).parents("form:first").find(".validation-summary-errors").find("li").remove();
                }

                RH.Aguarde.Fechar();
            });

            /* PESQUISA */
            $(":input[type=button][value=Pesquisar]").live("click", function (event) {
                if ($(this).hasClass("RRMvcNoAjax")) {
                    return;
                }
                RH.Aguarde.Exibir("Carregando ...");

                var form = $(this).parents("form:first");
                var action = $(this).parents("form:first").attr("action")
                var posicaoBarra = String(action).lastIndexOf("/");
                action = String(action).substring(0, posicaoBarra) + "/Pesquisar";

                alert(action);

                RH.Ajax.Post(action, $(form), function (json) {

                    $("#RRMvcGrid tbody").empty();
                    $("#RRMvcModelo").tmpl(json).appendTo("#RRMvcGrid tbody");

                    if ($("#RRMvcGrid tbody").find("td").length == 0) {
                        RH.MessageBox.Aviso("Não há dados para exibição.");
                    }
                });

                RH.Aguarde.Fechar();
            });

            /* EXCLUSAO */
            $(".RRMvcGridExcluir").live("click", function (event) {
                var codigo = $(this).parent().parent().find(".RRMvcCodigo").text();

                var action = $(":input[type=button][value=Pesquisar]").parents("form:first").attr("action");
                var posicaoBarra = String(action).lastIndexOf("/");
                action = String(action).substring(0, posicaoBarra) + "/Excluir";

                var tr = $(this).parent().parent().find(".RRMvcCodigo").parents("tr");

                var figura = "<img src=\"" + EnderecoSiteFiguras() + "/Arquivos/Figuras/Aguarde/pequeno.gif\" title=\"Aguarde carregamento ...\">";
                var DIVExclusaoJS = $('<div title="Confirmação de exclusão:" class="RRMvcModalExclusao RRMvcCentro">Deseja realmente excluir esta informação?<br />' + figura + '</div>');
                DIVExclusaoJS.dialog({
                    resizable: false,
                    height: 160,
                    modal: true,
                    buttons: {
                        "Sim": function () {
                            DIVExclusaoJS.find("img").show();

                            RH.Ajax.Post(action, undefined, function (json) {
                                $(tr).remove();
                            }, undefined, undefined, { codigo: codigo });

                            $(this).dialog("close");
                        },
                        "Não": function () {
                            $(this).dialog("close");
                        }
                    }
                });
            });

            $(":input[type=button][value=Salvar]").live("click", function (event) {
                if ($(this).hasClass("RRMvcNoAjax")) {
                    return;
                }

                event.preventDefault();

                RH.Aguarde.Exibir("Carregando ...");
                return;

                var action = $(this).parents("form:first").attr("action")
                var posicaoBarra = String(action).lastIndexOf("/");
                action = String(action).substring(0, posicaoBarra) + "/Edicao";

                var form = $(this).parents("form:first");

                $(form).validate();
                if ($(form).valid()) {
                    $.ajax({
                        type: "POST",
                        data: $(this).parents("form:first").serialize(),
                        url: action,
                        success: function (resposta) {

                            if (resposta != undefined) {
                                if (resposta.Sucesso) {
                                    if (resposta.Redirect != "" && resposta.Redirect != null) {
                                        //RRMvc.Util.Redirecionar(resposta.Redirect);
                                    }
                                }
                                else {
                                    if (resposta.Redirect != "" && resposta.Redirect != null) {
                                        //RRMvc.Util.Redirecionar(resposta.Redirect);
                                    }
                                    if (resposta.Erros != undefined) {
                                        if (resposta.Erros.length > 0) {
                                            RH.Util.ExibeErros($(form), resposta.Erros);
                                            RH.Aguarde.Fechar();
                                        }
                                    }
                                }
                            }
                        },
                        error: function (resposta) {
                            RH.MessageBox.Aviso(resposta.responseText);
                        }
                    });
                }
                else {
                    RH.Aguarde.Fechar();
                }
            });
        });

        $("input:text:visible:first").focus();
    }

    function EnderecoSite() {
        var pathName = String(document.location.pathname);
        var url = String(pathName).split("/")[1]
        url = url.indexOf("/") == 0 ? url : "/" + url;

        //        if (String(pathName).indexOf("/rh") >= 0) {
        //            return url;
        //        }

        alert(document.location.hostname);

        return url;
    }

    function EnderecoSiteFiguras() {
        return location.protocol + '//' + location.host;
    }

    return {
        EnderecoSite: function () {
            return EnderecoSite();
        },
        Util: function () {
            function ListarErros(erros) {
                var listagem = "<ul>";
                for (var x = 0; x < erros.length; x++) {
                    listagem += "<li><p>";
                    listagem += erros[x];
                    listagem += "</p></li>";
                }
                listagem += "</ul>";

                return listagem;
            }

            return {
                Redirecionar: function (url) {
                    document.location = url;
                },
                EditorHtml: function () {
                    tinyMCE.init({
                        // General options
                        mode: "textareas",
                        theme: "advanced",
                        language: "pt",
                        width: 110,
                        skin: "o2k7",
                        plugins: "pagebreak,style,layer,table,save,advhr,advimage,advlink,iespell,inlinepopups,preview,searchreplace,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

                        // Theme options
                        theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontsizeselect,forecolor,|cut,copy,paste,pastetext,pasteword,|,search,replace",
                        theme_advanced_buttons2: "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,tablecontrols,|,sub,sup,|,charmap,iespell,|,preview",
                        theme_advanced_buttons3: "",
                        theme_advanced_buttons4: "",
                        theme_advanced_toolbar_location: "top",
                        theme_advanced_toolbar_align: "left",
                        theme_advanced_statusbar_location: "bottom",
                        theme_advanced_resizing: false,

                        template_external_list_url: "js/template_list.js",
                        external_link_list_url: "js/link_list.js",
                        external_image_list_url: "js/image_list.js"//,
                        //media_external_list_url: "js/media_list.js"
                    });
                },
                ExibeErros: function (form, erros) {
                    var divErro = $(form).find('div[class^="validation-summary"]');

                    $(divErro).empty();
                    $(divErro).removeClass("validation-summary-valid").addClass("validation-summary-errors");
                    $(divErro).css("display", "block");
                    $(divErro).append(ListarErros(erros));
                    $(divErro).show();
                }
            }
        } (),
        MessageBox: function () {
            return {
                Aviso: function (mensagem, titulo, funcFechar) {
                    var DIVMensagemAviso = $("<div></div>").html([
                                                                 "<div class=\"AvisoModal\">",
                                                                 mensagem,
                                                                 "</div>"
                                                                 ].join('')
                                                                 );
                    if (titulo == "" || titulo == undefined) {
                        titulo = 'Atenção:';
                    }
                    if (funcFechar != undefined) {
                        DIVMensagemAviso.dialog({
                            autoOpen: true,
                            title: titulo,
                            modal: true,
                            position: 'center',
                            resizable: false,
                            disabled: true,
                            draggable: false,
                            closeOnEscape: false,
                            buttons: {
                                Ok: function () {
                                    $(this).dialog('close');
                                    funcFechar();
                                }
                            }
                        });
                    }
                    else {
                        DIVMensagemAviso.dialog({
                            autoOpen: true,
                            title: titulo,
                            modal: true,
                            buttons: {
                                Ok: function () {
                                    $(this).dialog('close');
                                }
                            }
                        });
                    }
                }
            }
        } (),
        Ajax: function () {
            function Executar(tipo, url, formulario, sucesso, completo, erro, dados) {
                var dadosForm = formulario != undefined ? formulario.serialize() : dados != undefined ? dados : null;

                //url = String(url).substr(1, 2) != "rh" ? EnderecoSite() + url : url;

                $.ajax({
                    type: tipo,
                    url: url,
                    data: dadosForm,
                    cache: false,
                    success: function (resposta) {
                        if (jQuery.isFunction(sucesso)) {
                            sucesso(resposta);
                            RH.Aguarde.Fechar();
                        }

                        if (resposta != undefined) {
                            if (resposta.Sucesso) {
                                if (resposta.Redirect != "" && resposta.Redirect != null) {
                                    RH.Util.Redirecionar(resposta.Redirect);
                                }
                            }
                            else {
                                if (resposta.Redirect != "" && resposta.Redirect != null) {
                                    RH.Util.Redirecionar(resposta.Redirect);
                                }
                                if (resposta.Erros != undefined) {
                                    if (resposta.Erros.length > 0) {
                                        RH.MsgBox.Erro(ListarErros(resposta.Erros));
                                    }
                                }
                            }
                        }

                        if (resposta != undefined) {
                            if (resposta.Redirect == "" || resposta.Redirect == null) {
                                RH.Aguarde.Fechar();
                            }
                        }
                    },
                    error: function (resposta) {
                        if (resposta != undefined) {
                            if (!resposta.Sucesso) {
                                if (resposta.Redirect != "") {
                                    RH.Util.Redirecionar(resposta.Redirect);
                                }
                                if (resposta.Erros != undefined) {
                                    if (resposta.Erros.length > 0) {
                                        RH.MsgBox.Erro(ListarErros(resposta.Erros));
                                    }
                                }
                            }
                        }

                        if (jQuery.isFunction(erro)) {
                            erro(resposta);
                        }

                        RH.Aguarde.Fechar();
                    },
                    complete: function (resposta) {
                        if (jQuery.isFunction(completo)) {
                            completo(resposta);
                        }
                    }
                });
            }

            return {
                Post: function (url, formulario, sucesso, completo, erro, dados) {
                    Executar("POST", url, formulario, sucesso, completo, erro, dados);
                },
                Get: function (url, formulario, sucesso, completo, erro, dados) {
                    return Executar("GET", url, formulario, sucesso, completo, erro, dados);
                }
            }
        } (),
        Modal: function () {
            return {
                Abrir: function (html, titulo, funcFechar, funcAbrir, altura, largura) {
                    var DIVMensagemModal = $("<div></div>").html([
                                                                 "<div class=\"AvisoModal\">",
                                                                 html,
                                                                 "</div>"
                                                                 ].join('')
                                                                 );
                    if (titulo == "" || titulo == undefined) {
                        titulo = '';
                    }

                    if (altura == undefined) {
                        altura = 400;
                    }

                    if (largura == undefined) {
                        largura = 700;
                    }

                    DIVMensagemModal.dialog({
                        autoOpen: true,
                        title: titulo,
                        modal: true,
                        position: 'center',
                        resizable: false,
                        disabled: true,
                        draggable: false,
                        closeOnEscape: false,
                        height: altura,
                        width: largura,
                        open: function () {
                            if (jQuery.isFunction(funcAbrir)) {
                                funcAbrir();
                            }
                        },
                        close: function () {
                            $(DIVMensagemModal).empty();
                            $(DIVMensagemModal).remove();
                        },
                        buttons: {
                            Fechar: function () {
                                $(this).dialog('close');

                                if (jQuery.isFunction(funcFechar)) {
                                    funcFechar();
                                }
                            }
                        }
                    });
                }
            }
        } (),

        Aguarde: function () {
            var DIVAguardeJS = $("<div></div>");
            var divIniciada = false;

            function AjustaMensagem(mensagem) {
                if (mensagem == "" || mensagem == undefined) {
                    return "Carregando ...";
                }

                return mensagem;
            }

            return {
                Exibir: function (mensagem) {


                    var figura = "<img src=\"" + EnderecoSiteFiguras() + "/Arquivos/Figuras/Aguarde/medio.gif\" title=\"Aguarde carregamento ...\">";
                    DIVAguardeJS.html([
                                      "<div class=\"RRMvcMsgBox-Aguarde\">",
                                      "<p>",
                                      AjustaMensagem(mensagem),
                                      "</p>",
                                      figura,
                                      "</div>"
                                      ].join('')
                                     );

                    DIVAguardeJS.dialog({
                        autoOpen: true,
                        title: 'Aguarde',
                        position: 'center',
                        resizable: false,
                        disabled: true,
                        draggable: false,
                        closeOnEscape: false,
                        modal: true,
                        open: function (event, ui) {
                            $(this).parent().children().children('.ui-dialog-titlebar-close').hide();
                        },
                        close: function () {
                            $(DIVAguardeJS).remove();
                        }
                    });
                },
                Fechar: function () {
                    DIVAguardeJS.dialog('close');
                }
            }
        } ()
    }
} ();


jQuery.fn.ForceNumericOnly =
function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};


$.wait = function (callback, seconds) {
    return window.setTimeout(callback, seconds * 1000);
}


$("#DivCarregando").ajaxStart(function () {
    $(this).show();
});
$("#DivCarregando").ajaxStop(function () {
    $(this).hide();
});


$().ajaxSend(function (r, s) {
    $("#DivCarregando").show();
});
$().ajaxStop(function (r, s) {
    $("#DivCarregando").fadeOut();
});



























//jQuery.validator.addMethod("dateBR", function(value, element) {
//	 //contando chars
//	if(value.length!=10) return false;
//	// verificando data
//	var data 		= value;
//	var dia 		= data.substr(0,2);
//	var barra1		= data.substr(2,1);
//	var mes 		= data.substr(3,2);
//	var barra2		= data.substr(5,1);
//	var ano 		= data.substr(6,4);
//	if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false;
//	if((mes==4||mes==6||mes==9||mes==11) && dia==31)return false;
//	if(mes==2  &&  (dia>29||(dia==29 && ano%4!=0)))return false;
//	if(ano < 1900)return false;
//	return true;
//}, "Informe uma data válida");  // Mensagem padrão 

//jQuery.validator.addMethod("dateTimeBR", function(value, element) {
//	 //contando chars
//	if(value.length!=16) return false;
//	 // dividindo data e hora
//	if(value.substr(10,1)!=' ') return false; // verificando se há espaço
//	var arrOpcoes = value.split(' ');
//	if(arrOpcoes.length!=2) return false; // verificando a divisão de data e hora
//	// verificando data
//	var data 		= arrOpcoes[0];
//	var dia 		= data.substr(0,2);
//	var barra1		= data.substr(2,1);
//	var mes 		= data.substr(3,2);
//	var barra2		= data.substr(5,1);
//	var ano 		= data.substr(6,4);
//	if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false;
//	if ((mes==4||mes==6||mes==9||mes==11) && dia==31)return false;
//	if (mes==2  &&  (dia>29||(dia==29 && ano%4!=0)))return false;
//	// verificando hora
//	var horario 	= arrOpcoes[1];
//	var	hora 		= horario.substr(0,2);
//	var doispontos 	= horario.substr(2,1);
//	var minuto 		= horario.substr(3,2);
//	if(horario.length!=5||isNaN(hora)||isNaN(minuto)||hora>23||minuto>59||doispontos!=":")return false;
//	return true;
//}, "Informe uma data e uma hora válida");

/*
(function ($) {
$.widget("ui.combobox", {
_create: function () {
var self = this,
select = this.element.hide(),
selected = select.children(":selected"),
value = selected.val() ? selected.text() : "";
var input = this.input = $("<input>")
.insertAfter(select)
.val(value)
.attr("size", "50" )
.autocomplete({
delay: 0,
minLength: 0,
source: function (request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response(select.children("option").map(function () {
var text = $(this).text();
if (this.value && (!request.term || matcher.test(text)))
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "<strong>$1</strong>"),
value: text,
option: this
};
}));
},
select: function (event, ui) {
ui.item.option.selected = true;
self._trigger("selected", event, {
item: ui.item.option
});
},
change: function (event, ui) {
if (!ui.item) {
var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "i"),
valid = false;
select.children("option").each(function () {
if ($(this).text().match(matcher)) {
this.selected = valid = true;
return false;
}
});
if (!valid) {
// remove invalid value, as it didn't match anything
$(this).val("");
select.val("");
input.data("autocomplete").term = "";
return false;
}
}
}
})
.addClass("ui-widget ui-widget-content ui-corner-left");

input.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};

this.button = $("<button type='button'>&nbsp;</button>")
.attr("tabIndex", -1)
.attr("title", "Show All Items")
.insertAfter(input)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass("ui-corner-all")
.addClass("ui-corner-right ui-button-icon")
.click(function () {
// close if already visible
if (input.autocomplete("widget").is(":visible")) {
input.autocomplete("close");
return;
}

// work around a bug (likely same cause as #5265)
$(this).blur();

// pass empty string as value to search for, displaying all results
input.autocomplete("search", "");
input.focus();
});
},

destroy: function () {
this.input.remove();
this.button.remove();
this.element.show();
$.Widget.prototype.destroy.call(this);
}
});
})(jQuery);

$(function () {
$(".combobox").combobox();
//    $("#toggle").click(function () {
//        $(".combobox").toggle();
//    });
});



$.fn.insertAtCaret = function (myValue) {
return this.each(function () {
//IE support
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
//MOZILLA / NETSCAPE support
else if (this.selectionStart || this.selectionStart == '0') {
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
});
};


jQuery.fn.selText = function () {
var obj = this[0];
if ($.browser.msie) {
var range = obj.offsetParent.createTextRange();
range.moveToElementText(obj);
range.select();
} else if ($.browser.mozilla || $.browser.opera) {
var selection = obj.ownerDocument.defaultView.getSelection();
var range = obj.ownerDocument.createRange();
range.selectNodeContents(obj);
selection.removeAllRanges();
selection.addRange(range);
} else if ($.browser.safari) {
var selection = obj.ownerDocument.defaultView.getSelection();
selection.setBaseAndExtent(obj, 0, obj, 1);
}
return this;
}
*/

