﻿(function(b){b.fn.updnValidatorCallout=function(a){a=b.extend({},b.fn.updnValidatorCallout.defaults,a);var g=null;if(window.ValidatorOnChange&&!window._ValidatorOnChange){window._ValidatorOnChange=window.ValidatorOnChange;window.ValidatorOnChange=function(c){window._ValidatorOnChange(c);c=b.event.fix(c);c=b(c.target);var d=b("label[for='"+c.attr("id")+"']"),e=c.data("callout"),h=c.attr("Validators");if(window.AllValidatorsValid&&window.AllValidatorsValid(h)){if(c.hasClass(a.errorInputCssClass)){c.removeClass(a.errorInputCssClass); d.removeClass(a.errorLabelCssClass)}e&&e.trigger("close")}else{if(!c.hasClass(a.errorInputCssClass)){c.addClass(a.errorInputCssClass);d.addClass(a.errorLabelCssClass)}e&&e.trigger("open")}}}return this.each(function(){var c=this;if(this.controltovalidate){var d=b(document.getElementById(this.controltovalidate)),e=d.data("callout");if(!e){e=b("<div/>").appendTo(document.body).addClass(a.calloutCssClass).hide().bind("open",function(){g&&g.trigger("close");var f=d.position();g=b(this).css({position:"absolute", left:Math.floor(f.left+d.outerWidth()+a.offsetX),top:Math.floor(f.top+a.offsetY)}).fadeIn("fast")}).bind("close",function(){b(this).hide();g=null});b("<span/>").appendTo(e).addClass(a.pointerCssClass)}e.append(this);d.focus(function(){c.isvalid||e.trigger("open")});d.data("callout",e);var h=function(f){b(c).toggle(!f);var i=b("label[for='"+d.attr("id")+"']");if(f){f=d.attr("Validators");if(window.AllValidatorsValid&&window.AllValidatorsValid(f)){if(d.hasClass(a.errorInputCssClass)){d.removeClass(a.errorInputCssClass); i.removeClass(a.errorLabelCssClass)}e.trigger("close")}}else{if(!d.hasClass(a.errorInputCssClass)){d.addClass(a.errorInputCssClass);i.addClass(a.errorLabelCssClass)}g||e.trigger("open")}};if(this.evaluationfunction){var j=this.evaluationfunction;this.evaluationfunction=function(f){f=j(f);h(f);return f}}h(c.isvalid)}})};b.fn.updnValidatorCallout.defaults={calloutCssClass:"updnValidatorCallout",pointerCssClass:"updnValidatorCalloutPointer",errorInputCssClass:"updnValidationErrorInput",errorLabelCssClass:"updnValidationErrorLabel", offsetX:0,offsetY:0};b.updnValidatorCallout={attachAll:function(a){window.Page_Validators&&b(window.Page_Validators).updnValidatorCallout(a)}}})(jQuery);
