﻿/*
 * jqifDisableOnClick: Disables (hides) the specified control when it is clicked.
 *		Useful for submit buttons.
 *
 * jqifEnableOnKeyup: Enables (shows) all jqif-disabled controls when the keyup
 *		event happens on the specified control.
 */
$.fn.jqifDisableOnClick = function(o) {
	var _o = { disabledText: "Submitting...", validationGroup: null };
	$.extend(_o, o);
	$(this).addClass("jqifDisableOnClick");
	$(this).wrap("<span class='jqifDisableOnClickContainer'></span>");
	$(this).after("<span class='jqifDisableOnClickSubmitting' style='display:none;'>" + _o.disabledText + "</span>");
	$(this).wrap("<span></span>");
	$(this).mouseup(function() {
		var isValid = true;
		if (_o.validationGroup) {
			if (typeof (Page_ClientValidate) == 'function') {
				isValid = Page_ClientValidate(o.validationGroup);
			}
		}
		if (isValid) $.jqif.disable($(this));
	});
};
$.fn.jqifEnableOnKeyup = function(button) {
	$(this).keyup(function(){
		$(button).each(function(){$.jqif.enable($(this))});
	});
};
$.jqif = {
	flyOffScreen: function(e) { $(e).css("position", "absolute"); $(e).css("z-index", "-1000"); },
	bringBack: function(e) { $(e).css("position", ""); $(e).css("z-index", ""); },
	disable: function(e) { $($(e).parent()).siblings(".jqifDisableOnClickSubmitting").show(); $.jqif.flyOffScreen($(e).parent()); },
	enable: function(e) { $($(e).parent()).siblings(".jqifDisableOnClickSubmitting").hide(); $.jqif.bringBack($(e).parent()); }
};