	
	function Browser(){	
		this.isIE = false;
		this.isNS = false;

		if((navigator.userAgent.indexOf("MSIE")) >= 0){
			this.isIE = true;
		}
		
		else if((navigator.userAgent.indexOf("Netscape6/")) >= 0){
			this.isNS = true;
			return;
		}
		
		else{
			this.isNS = true;
			this.version = 6.1;
			return;
		}
	}
	
	function fixBrowserQuirks(){
		var browser = new Browser();
		if(browser.isIE){
			findDOM("chatDrag",1).width = "80px";	
			findDOM("chatDrag",1).height = "60px";
			findDOM("chatDrag",1).position = "relative";
			findDOM("chatDrag",1).marginTop = "-40px";
			findDOM("chatDrag",1).marginLeft = "300px";
		}
	}
	
	
	function findPosX(obj){
		var curleft = 0;
		if(obj.offsetParent){
			while(1){
			  curleft += obj.offsetLeft;
			  if(!obj.offsetParent){break;}
			  obj = obj.offsetParent;
			}
		}
		else if(obj.x){curleft += obj.x;}
		return curleft;
	}
	
	
	function findPosY(obj){
		var curtop = 0;
		if(obj.offsetParent){
			while(1){
			  curtop += obj.offsetTop;
			  if(!obj.offsetParent){break;}
			  obj = obj.offsetParent;
			}
		}
		else if(obj.y){curtop += obj.y;}
		return curtop;
	}
	
	
	// Global object to hold drag information.
	var dragObj = new Object();
	var browser = new Browser();
	
	function startDrag(id, event){
		
		dragObj.element = findDOM(id);
	
		var x = 0;
		var y = 0;
	
		if(browser.isIE){
			var x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
			var y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
		}
		else if(browser.isNS){
			var x = event.clientX + window.scrollX;
			var y = event.clientY + window.scrollY;
		}
		
		dragObj.cursorStartX = x;
		dragObj.cursorStartY = y;
		
		dragObj.startX	= (isNaN(findPosX(dragObj.element))) ? 0 : findPosX(dragObj.element);
		dragObj.startY	= (isNaN(findPosY(dragObj.element))) ? 0 : findPosY(dragObj.element);
																	   
		if(browser.isIE){
			document.attachEvent("onmousemove", doDrag);
			document.attachEvent("onmouseup", stopDrag);
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		
		else if(browser.isNS){
			document.addEventListener("mousemove", doDrag, true);
			document.addEventListener("mouseup", stopDrag, true);
			event.preventDefault();
		}
		
		function doDrag(event){
			
			var x = 0;
			var y = 0;
			
			if (browser.isIE){
				x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
				y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
			}
	
			else if(browser.isNS){
				x = event.clientX + window.scrollX;
				y = event.clientY + window.scrollY;
			}
	
			dragObj.element.style.left = (dragObj.startX + x - dragObj.cursorStartX) + "px";
			dragObj.element.style.top  = (dragObj.startY  + y - dragObj.cursorStartY) + "px";
			
			if(browser.isIE){
				window.event.cancelBubble = true;
				window.event.returnValue = false;
			}
	
			else if(browser.isNS){event.preventDefault();}
		}
		
		function stopDrag(event){
	
			if(browser.isIE){
				document.detachEvent("onmousemove", doDrag);
				document.detachEvent("onmouseup", stopDrag);
			}
			else if (browser.isNS) {
				document.removeEventListener("mousemove", doDrag, true);
				document.removeEventListener("mouseup", stopDrag, true);
			}
		}
	}

