function bodyOffsets() {

	var x,y;
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	// Explorer 6 Strict
	{
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}

	return {top: y, left: x};
}

var TopWindow={
	w:[],
	pre:'topwin_',
	opts:{width:'400px',right:'20px',padding:'5px','font-size':'inherit',pos:'absolute'},
	show:function(content,win , opts ){
		var optsMerg = $.extend({},this.opts,opts || {});
		var boff  = bodyOffsets();
		if( ! this.w[win] ){
			this.setup(win , optsMerg );
			this.content(win,content);
			//this.w[win].css({top:boff.top ,left:boff.left + this.opts.left});
			
		}else{
			if(content){
				this.content(win,content);
			}
		}

		if( this.w[win].opts.right ){
			this.w[win].css({top:boff.top ,right:this.w[win].opts.right});
		}else{
			this.w[win].css({top:boff.top ,left:boff.left + this.w[win].opts.left});
		}


		this.w[win].show();
	},
	setup:function(window , opts){
		var w = $('<div/>').attr({id: this.pre + window} ).css({
			position:opts.pos,
			width: opts.width,
			padding: opts.padding,
			'z-index':200,
			border: '1px solid green',
			background:'#fff',
			'font-size':this.opts['font-size']

		});

		if( this.opts.right ){
			w.css({right:opts.right});
		}else{
			w.css({left: opts.left});
		}

		$d = $('<div/>').attr({id: this.pre +'head'+window} ).append('<h3><b onclick="TopWindow.close(\''+window+'\')">close x</b></h3>')
		w.append($d);
		w.append('<div id="'+this.pre +'cont'+ window+'"></div>')
		this.w[window] = w;
		this.w[window].opts = {};
		this.w[window].opts = opts;
		this.w[window].appendTo('body');

	},
	close:function(win){
		$('#'+TopWindow.pre + win).hide();
	},
	content:function(w,con){
		this.w[w].find('#'+this.pre +'cont'+ w).html(con);
	},
	getContentWin:function(w){
		return this.w[w].find('#'+this.pre +'cont'+ w);
	},
	disp:function(id){
		this.repos(id);
		this.w[id].show();
	},
	hide:function(id){
		this.w[id].hide();
	},
	repos:function(win){
		var boff  = bodyOffsets();
		if( this.w[win].opts.right ){
			this.w[win].css({top:boff.top ,right:this.w[win].opts.right});
		}else{
			this.w[win].css({top:boff.top ,left:boff.left + this.w[win].opts.left});
		}
	}

}

