Ciao a tutti....^^
scusate sto facendo un progetto e purtroppo mi hanno passato delle funzioni in un linguaggio che non è il mio... sto parlando di javascript 
qualcuno mi potrebbe dire in soldoni cosa fanno le singole funzioni?
grazie anticipatamente
codice:
buttons.Button = Class.create({
/**
* params:
*
* handler (optional) - the function to be invoked as handler of the click event on the button
* domElement (optional) - the element of the button
* enabled (optional) - If unset defaults to false
* domElementName (optional) - If the dom creation is deferred
due to different windows button usage, this is used to create the dom
* domId (optional) - when created, the dom element id will be set to domId
*/
initialize: function (params) {
this.handler = params.handler ? params.handler : null;
this.domElement = params.domElement ? params.domElement : null;
this.domElementName = params.domElementName ? params.domElementName : null;
this.domId = params.domId ? params.domId : null;
if (this.domElement) {
this.domElementName = this.domElement.name;
/**
if($(this.domElement.id).getAttribute("onclick")){
if(this.handler==null){
this.handler = $(this.domElement.id).getAttribute("onclick");
}
this.domElement.onclick = null;
}
*/
if (this.domElement.onclick) {
this.handler = this.domElement.onclick;
this.domElement.onclick = null;
}
if (this.domId) {
this.domElement.id = this.domId;
} else if (this.domElement.id) {
this.domId = this.domElement.id;
}
}
this.enabled = params.enabled === true ? true : false;
this.active = false;
if (this.domElement) {
this.applyState();
}
},
startHandler: function () {
//if(this.domElement){
this.stopHandler();
Event.observe(this.domElement, "click", this.handler);
this.active = true;
//}
},
stopHandler: function () {
if (this.active) {
if(this.domElement){
Event.stopObserving(this.domElement, 'click');
this.active = false;
}
}
},
checkStartStopCondition: function () {
//alert(this.handler + " - " + this.domElement + " - " + this.enabled);
if (this.handler && this.domElement && this.enabled) {
this.startHandler();
} else {
this.stopHandler();
}
},
applyState: function () {
this.checkStartStopCondition();
},
enable: function () {
this.enabled = true;
this.checkStartStopCondition();
},
disable: function () {
this.enabled = false;
this.checkStartStopCondition();
},
setHandler: function (newHandler) {
this.handler = newHandler;
this.checkStartStopCondition();
},
setDomElement: function (newDomElement) {
this.domElement = newDomElement;
this.applyState();
},
remove: function () {
this.domElement.remove();
},
isEnabled: function () {
return this.enabled;
},
getDomElement: function (document) {
if (!this.domElement) {
this.domElement = document.createElement(this.domElementName);
$(this.domElement);
if (this.domId) {
this.domElement.id = this.domId;
}
this.applyState();
}
return this.domElement;
}
});