When you bind an event to an element, it creates a new instance of the handler, so it makes sense that the it becomes the "owner" and "this" refers to the element. If it didn't work that way, you'd have to include code in the handlers to examine the event and discern who triggered it, which would make most event-driven scripting cumbersome.
(IE's situation is a whole 'nuther level of stupidity, however. If you bind events using old-school notation -- element.onmousedown=f or element['onmousedown']=f -- scope context is the same as other browsers, "this" refers to the element. If you use the MS-approved attachEvent method though, "this" refers to the window.event object, not the element. That's probably what's causing the wonky results in your Event.observe() method.)
If you want to force all elements to make a call to the original resize_start(), it's not hard to do. Just bind the event to an anonymous function that makes the call. For example, if initialize() and resize_start() are nested within a function called doSomething()
Event.observe($(this.div_id + '_resize'),'mousedown',function(e){doSomething.resize_start(e)});
should do it. Then when resize_start pops the this.div_id alert, it'll display doSomething's div_id variable.
I'm not sure what you're looking for from the popped alert, but if you limit the scope to the original resize_start() you won't get anything other than the last element initialized. In other words, if you run el1, el2, el3 through initialize(), this.div_id will always return "el3" no matter which element you click on.
One thing Javascript's good at is preserving state during instantiation. So if you want, you can still keep the scope to the original and yet retain unique data within each call, by passing variables to the handler during binding
initialize: function(element) {
var i=this.div_id=element.id;
Event.observe($(this.div_id + '_resize'),'mousedown',function(e,i){doSomething.resize_start(e,i)});
}
and then in resize_start()
resize_start: function(e,i) {
alert(i);
}
This'll ensure that clicking on "el1_resize" will return "el1" and not the last element initialized.
(The "e" argument is for the W3C event object. If you don't need to examine the object, omit it. Avoid using "event" as an argument, it's a global keyword in MS JScript).