Lisi.EventUtils = function(options) {
	var instance = this;
	instance.companyId = options.companyId;
	instance.initialization = false;
	
	this.init = function() {				
	},
	this.inArray = function(val, array) {
		for (var i = 0; i < array.length; i++) {
			if (val.toLowerCase() == array[i].toLowerCase()) {
				return true;
			}
		}
		return false;
	},
	this.eventForm = function(options) {
		if (typeof instance.AUI == "undefined") {
			AUI().use(
				'node',
				'aui-io',
				'event-custom',
				function(A) {
					instance.AUI = A;
					instance.eventFormIntern(options);
				}
			)
		} else {
			instance.eventFormIntern(options);
		}
	},
	this.eventFormIntern = function(options) {
		instance.eventFormFunction = this;
		instance.namespace = options.namespace;
		instance.submitButton = instance.AUI.one("#" + options.submitButton);
		instance.eventForm = instance.AUI.one("#" + options.form);
		instance.messageContainer = instance.AUI.one("#" + options.messageContainer);
		instance.submitButton.on("click", function() {
			if (instance.eventFormFunction.checkInput()) {
				instance.eventForm.submit();
				
			}
		});
		instance.eventFormFunction.checkInput = function() {
			instance.fieldsValid = true;
			if (instance.AUI.one("select[name='" + instance.namespace + "categorieId']").get('value') == "null") {
				instance.checkEmptyInput(new Array("name", "location", "categorieName"));
			} else {
				instance.checkEmptyInput(new Array("name", "location"));
			}
			if (!instance.fieldsValid) {
				instance.messageContainer.set("innerHTML", "<div class='lisi style statusmessage error'>F&uuml;llen Sie bitte die gekennzeichneten Felder korrekt aus!</div>");
				return false;
			} else {
				instance.messageContainer.set("innerHTML", "");
			}
			return true;		
		}
	},	
	this.eventOrganizerForm = function(options) {		
		if (typeof instance.AUI == "undefined") {
			AUI().use(
				'node',
				'aui-io',
				'event-custom',
				function(A) {
					instance.AUI = A;
					instance.eventOrganizerFormIntern(options);
				}
			)
		} else {
			instance.eventOrganizerFormIntern(options);
		}
	},
	this.eventOrganizerFormIntern = function(options) {		
		instance.eventOrganizerFormFunction = this;
		instance.namespace = options.namespace;
		instance.submitButton = instance.AUI.one("#" + options.submitButton);
		instance.eventOrganizerForm = instance.AUI.one("#" + options.form);
		instance.messageContainer = instance.AUI.one("#" + options.messageContainer);
		instance.submitButton.on("click", function() {
			if (instance.eventOrganizerFormFunction.checkInput()) {
				instance.eventOrganizerForm.submit();
				
			}
		});
		instance.eventOrganizerFormFunction.checkInput = function() {
			instance.fieldsValid = true;
			instance.checkEmptyInput(new Array("name"));
			if (!instance.fieldsValid) {
				instance.messageContainer.set("innerHTML", "<div class='lisi style statusmessage error'>F&uuml;llen Sie bitte die gekennzeichneten Felder korrekt aus!</div>");
				return false;
			} else {
				instance.messageContainer.set("innerHTML", "");
			}
			return true;		
		}
	},
	this.checkEmptyInput = function(fields) {
		for (var a = 0; a < fields.length; a++) {
			obj = instance.AUI.one("input[name=" + instance.namespace + fields[a] + "]");
			if (obj.get('value').match(/^\s*$/)) {
				instance.fieldsValid = false;
				obj.addClass("mandatory");
			} else {
				obj.removeClass("mandatory");
			}
		}
	}	
	this.checkEmptyTextarea = function(fields) {
		for (var a = 0; a < fields.length; a++) {
			obj = instance.AUI.one("textarea[name=" + instance.namespace + fields[a] + "]");
			if (obj.get('value').match(/^\s*$/)) {
				instance.fieldsValid = false;
				obj.addClass("mandatory");
			} else {
				obj.removeClass("mandatory");
			}
		}
	}
	this.delay = function(delay) {
		var startTime = new Date();
		var endTime = null;
		do {
			endTime = new Date();
		} while ((endTime - startTime) < delay);
	}
	
	/* 
	* Initialization itself
	*/	
	instance.init();
}
