/**
 *
 * @access public
 * @return void
 **/
var ContextPopup = {
	offsetX : 15,
	offsetY : 10,

	init : function(){
	},

	show : function(str,element){
		var contPop;
		var id=parseInt(Math.random()*10000);
		if(this.isIE()){
			contPop=document.createElement('<div id="ContextPopup'+id+'">');
		} else {
			contPop=document.createElement('div');
			contPop.setAttribute('id','ContextPopup'+id);
		}

		contPop.style.padding='5px 10px 5px 10px';
		contPop.style.fontSize='12px';
		contPop.style.background='#EFF0EF';
		contPop.style.border='double 3px gray';
		contPop.style.position='absolute';
		contPop.style.left=(this.getLeft(element)+this.offsetX)+'px';
		contPop.style.top=(this.getTop(element)+this.offsetY)+'px';

		var txt=document.createTextNode(str);
		contPop.appendChild(txt);
		document.body.appendChild(contPop);

		setTimeout('ContextPopup.hide('+id+')',2000);
	},

	hide : function(id){
		var contPop=document.getElementById('ContextPopup'+id);
		contPop.parentNode.removeChild(contPop);
	},

	getLeft : function(obj){
		var curleft = 0;
		if (obj.offsetParent){
			while (obj.offsetParent){
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		} else if (obj.x) curleft += obj.x;
		return curleft;
	},

	getTop : function(obj){
		var curtop = 0;
		if (obj.offsetParent){
			while (obj.offsetParent){
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		} else if (obj.y) curtop += obj.y;
		return curtop;
	},

	mouseCoords : function(ev){
		if(ev.pageX || ev.pageY) return {x:ev.pageX, y:ev.pageY};
		return {
			x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
			y:ev.clientY + document.body.scrollTop  - document.body.clientTop
		};
	},

	getXmlHttpObject : function(){
		var xmlHttp=null;
		try { xmlHttp=new XMLHttpRequest(); }
		catch (e) {
			try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
			catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
		}
		return xmlHttp;
	},

	isIE : function(){
		return (this.strpos(navigator.userAgent.toLowerCase(),"msie",0)>0);
	},

	strpos : function( haystack, needle, offset){
	    var i = haystack.indexOf( needle, offset ); // returns -1
	    return i >= 0 ? i : false;
	},

	addInit : function(name) {
	    var oldQueue = window.onload? window.onload: function() {};
	    window.onload = function() {
	    	eval(name+".init()");
	        oldQueue();
	    }
	}
}
