var DisableSubmit = {
	init: function() {
		this.addEvent(window, 'load', this.set());
	},

	set: function() {
		var self = this;
		return function() {
			for (var i = 0; i < document.forms.length; ++i) {
				var func_org = document.forms[i].onsubmit;
				document.forms[i].onsubmit = function() {
					if(func_org != undefined){
						if(!func_org()){ return false; }
					}
					self.setDisable(this.getElementsByTagName('button'));
					self.setDisable(this.getElementsByTagName('input'));
				};
			}
		}
	},

	setDisable: function(elms) {
		for (var i = 0, elm; elm = elms[i]; i++) {
			if ((elm.type == 'submit' || elm.type == 'image') && !elm.disabled) {
				Set(elm);
				// Button disabling is not so clear.
				//unSet(elm);
			}
		}

		function Set(button) {
			window.setTimeout(function() { button.disabled = true; }, 1);
		}
		function unSet(button) {
			window.setTimeout(function() { button.disabled = false; }, 1000);
		}
	},

	addEvent: function(elm, type, event) {
		if(elm.addEventListener) {
			elm.addEventListener(type, event, false);
		} else if(elm.attachEvent) {
			elm.attachEvent('on'+type, event);
		} else {
			elm['on'+type] = event;
		}
	}
}

//DisableSubmit.init();

