web.form = { Timer: null, IsValidating: false, Validate: function(input, type, skipTimer) { this.ResetTimer(); //if (!this.IsValidating) { var str = $(input).val(); function doValidation() { web.form.IsValidating = true; $.post("/Handlers/Validation.ashx", { s: str, t: type }, function(data) { var isValid = $("response valid", data).text() == "True" ? true : false; var message = $("response message", data).text(); if (!isValid) web.form.ShowMessage(input, "Invalid", message); else { if (str) { web.form.ShowMessage(input, "Valid", "Ok"); } else web.form.RemoveMessages(input); } web.form.IsValidating = false; }, "xml"); } if (!skipTimer) this.Timer = setTimeout(doValidation, 500); else this.Timer = setTimeout(doValidation, 100); //} }, ShowMessage: function(inputEl, cssClass, message) { this.RemoveMessages(inputEl); $(inputEl).removeClass("Valid").removeClass("Invalid").removeClass("InvalidTextBox").addClass(cssClass).after("
" + cssClass + "
"); if (cssClass == "Invalid") $(inputEl).addClass("InvalidTextBox"); this.AddTooltip(inputEl); this.PositionMessage(inputEl); $(window).resize(function() { web.form.PositionMessage(inputEl); }); }, ShowMessageFromId: function(inputId, cssClass, message) { var inputEl = document.getElementById(inputId); web.form.ShowMessage(inputEl, cssClass, message); }, RemoveMessages: function(inputEl) { $(inputEl).next(".ValidationMessageInvalid, .ValidationMessageValid").remove(); $("#tooltip").hide(); }, PositionMessage: function(inputEl) { var msg = $(inputEl).next(".ValidationMessageInvalid, .ValidationMessageValid"); if (msg) { var iLeft = $(inputEl).offset().left; var iTop = $(inputEl).offset().top; var iWidth = $(inputEl).width(); msg.css({ top: iTop + 2, left: iLeft + iWidth + 10 }); } }, ResetTimer: function() { clearTimeout(web.form.Timer); web.form.Timer = null; }, AddTooltip: function(inputEl) { $(inputEl).next(".ValidationMessageInvalid,.ValidationMessageValid").Tooltip({ showURL: false, track: true, extraClass: "ValidationTooltip", delay: 0 }); }, CheckValidation: function() { /*if($(".ValidationMessageInvalid").length == 0 && $(".ValidationMessageValid").length > 0) return true; else { $(".ValidationMessageInvalid:first").prev("input").focus(); return false; }*/ }, PasswordCompare: function(input1Id, input2Id) { var p1 = $("#" + input1Id); var p2 = $("#" + input2Id); if (p1.val() && p2.val()) { if (p1.val() != p2.val()) { this.ShowMessage(p2, "Invalid", "Passwords must match"); } else { this.ShowMessage(p2, "Valid", "Passwords match"); } } } }