Very philosophical Kazey

Okay, I thought I would get more answers but I guess not. That tells me, we are more of designers in here than developers but I could be wrong. That notwithstanding, I will provide the answer and the explanation as well.
The answer is "3" printed out 3 times (hint: count the number of calls to alert

)
First and foremost, I noticed I got more YIMs than posts here. To collate all the questions/issues/concerns, I would like to say that the aim of this post wasn't to make anyone feel bad or to intimidate anyone or to say, "that answer sucks!". We are all here to learn. I have always strongly believed that. I was actually hoping for more of a discussion, which does exist but just not from as many people as I expected.
Even I was thrown for a loop here. Well, technically I was correct. I said "3", "2", "1". See, Javascript is very funny with variables and scope. In Javascript, every variable has global scope. Memory is allocated once to a variable and if a call to that variable is made again, it's original value gets overridden by the new value. Counter that with the way it is in other programming languages. This is where namespacing, use of anonymous functions and self-contained, self-executing scripts come in. Also, in javascript, a boolean by default is true. That is why "if(1)" always executes regardless.
The lesson: You have to be very careful with how and where you use your variables. Why? because that "i" var for instance that you call somewhere on your page might be interfering with another "i" variable declared in an imported js file. This might even be worse in cases where you are using libraries like scriptaculous, dojo, etc.
So to conclude: The answer is "3", "3" and "3". Thanks for participating in this. I will definitely come up with more of this. Hopefully, I have motivated enough people to come up with a similar exercise.
Thanks once again.