/** @constructor */
function Zop() {
}

/**
 @class
*/
Foo = function(id) {
	// this is a bit twisted, but if you call Foo() you will then
	// modify Foo(). This is kinda, sorta non-insane, because you
	// would have to call Foo() 100% of the time to use Foo's methods
	Foo.prototype.methodOne = function(bar) {
	  alert(bar);
	};
	
	// same again
	Foo.prototype.methodTwo = function(bar2) {
	  alert(bar2);
	};
	
	// and these are only executed if the enclosing function is actually called
	// and who knows if that will ever happen?
	Bar = function(pez) {
	  alert(pez);
	};
	Zop.prototype.zap = function(p){
		alert(p);
	};
	
	// but this is only visible inside Foo
	function inner() {
	}
};