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");
}
}
}
}