isEmpty = function(value) {

if ((value === undefined) ||
                (value === false) ||
                (value === null)) {
        return true;
} else if ((typeof value === typeof '') ||
                (typeof value === typeof [])) {
        if (value.length === 0) {
                return true;
        }
}
return false;

};

var __exports, __base; __exports = this; __exports.hatemile || (__exports.hatemile = {}); (__base = __exports.hatemile).util || (__base.util = {}); __exports.hatemile.util.CommonFunctions = {

count: 0,
generateId: function(element, prefix) {
        if (!element.hasAttribute('id')) {
                element.setAttribute('id', prefix + this.count.toString());
                this.count++;
        }
},
setListAttributes: function(element1, element2, attributes) {
        var attribute, _i, _len;
        for (_i = 0, _len = attributes.length; _i < _len; _i++) {
                attribute = attributes[_i];
                if (element1.hasAttribute(attribute)) {
                        element2.setAttribute(attribute, element1.getAttribute(attribute));
                }
        }
},
increaseInList: function(list, stringToIncrease) {
        if (!(isEmpty(list) || isEmpty(stringToIncrease))) {
                if (this.inList(list, stringToIncrease)) {
                        return list;
                } else {
                        return list + ' ' + stringToIncrease;
                }
        } else if (isEmpty(list)) {
                return stringToIncrease;
        } else {
                return list;
        }
},
inList: function(list, stringToSearch) {
        var array, item, _i, _len;
        if (!(isEmpty(list) || isEmpty(stringToSearch))) {
                array = list.split(new RegExp('[ \n\t\r]+'));
                for (_i = 0, _len = array.length; _i < _len; _i++) {
                        item = array[_i];
                        if (item === stringToSearch) {
                                return true;
                        }
                }
        }
        return false;
}

};

var addEventHandler = function(element, typeEvent, typeDataEvent, typeFix, eventHandler) {

var attribute, found;
if (!hasEvent(element, typeEvent, typeDataEvent, typeFix)) {
        found = false;
        attribute = element.getAttribute(typeDataEvent);
        if (!hasEvent(element, typeEvent)) {
                element['liston' + typeEvent] = [];
                element['on' + typeEvent] = function(event) {
                        var addedEvent, _i, _len, _ref;
                        _ref = element['liston' + typeEvent];
                        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
                                addedEvent = _ref[_i];
                                addedEvent(event);
                        }
                };
        } else {
                found = __exports.hatemile.util.CommonFunctions.inList(attribute, typeFix);
        }
        if (!found) {
                element['liston' + typeEvent].push(eventHandler);
                attribute = __exports.hatemile.util.CommonFunctions.increaseInList(attribute, typeFix);
                element.setAttribute(typeDataEvent, attribute);
        }
}

};

var hasEvent = function(element, typeEvent, typeDataEvent, typeFix) {

var attribute;
if (isEmpty(typeDataEvent) || isEmpty(typeFix)) {
        return (!isEmpty(element['on' + typeEvent])) || ((!isEmpty(element.eventListenerList)) && (!isEmpty(element.eventListenerList[typeEvent])));
} else {
        attribute = element.getAttribute(typeDataEvent);
        return (hasEvent(element, typeEvent) && (!element.hasAttribute(typeDataEvent))) || __exports.hatemile.util.CommonFunctions.inList(attribute, typeFix);
}

};