var Tips=Class.create({
	initialize: function(){
		this.message=typeof(arguments[0])!='undefined'?arguments[0].message:'';
		this.id=arguments[0].id;
		this.panel=this.attachPanel();
		this.sameContent=true;
	},
	attachPanel:function()
	{
		if(!$(this.id))
		{
			var tips=new Element("div");
			tips.writeAttribute("id",this.id);
			tips.writeAttribute("style","padding:3px; border: 1px solid #a3a3a3;	-moz-border-radius: 3px;	-khtml-border-radius: 3px;	-webkit-border-radius: 3px;	border-radius: 3px;background:#fff;");
			tips.update(this.message);
			tips.hide();
			$('_tips_').appendChild(tips);

			return tips;
		}
		//$(this.id).update(this.message);
		return $(this.id);
	},
	append:function(item)
	{
		this.panel.appendChild(item);
		this.sameContent=false;
	},
	style:function()
	{
		if(typeof(arguments[0])!='undefined')
		this.panel.setStyle(arguments[0]);
	},
	show:function(){
		var event,message;
		if(typeof(arguments[0])=='undefined')
		{
			alert('Event Object is null!');
			return;
		}
		else
			event=arguments[0];
			
		if(typeof(arguments[1])!='undefined')
		{
			message=arguments[1];
			if(this.message!=message)
			{
				this.sameContent=false;
				this.message=message;
			}
		}
		
		if(!this.sameContent)
		{
			this.panel.update(this.message);
		}
		var x,y;
		var eventX=Event.pointerX(event)+5;
		var eventY=Event.pointerY(event)+5;
		
		if(typeof window.pageXOffset == "undefined")
		{
			var ie=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
			x=ie.scrollLeft+screen.availWidth-this.panel.offsetWidth-20;
			y=ie.scrollTop+screen.availHeight-this.panel.offsetHeight-120;
		}
		else
		{
			x=window.pageXOffset+window.innerWidth-this.panel.offsetWidth-20;
			y=window.pageYOffset+window.innerHeight-this.panel.offsetHeight-2;
		}
		
		if(eventX>=x)eventX=x;
		if(eventY>=y)eventY=y;
		
		this.panel.style.position="absolute";
		this.panel.style.left=eventX+"px";
		this.panel.style.top=eventY+"px";
		this.panel.style.zIndex="10";
		
		this.panel.show();
	},
	hide:function(){
		this.panel.hide();
	}
});