
function _dialog(name) {
	this.onClose = undefined
	this._name = (name?name:'dialog');
	this._objName = this._name;

	this._init = function(){	
		if($('overlay')){
			this.overlay =  $('overlay')
		}else{
			var overlay= document.createElement('div');
			this.overlay =  document.body.appendChild(overlay);
			this.overlay.style.visibility='hidden'
			this.overlay.className="overlay";	
			this.overlay.id='overlay';
			linkEvent(document.body, 'mousemove', new Function ('event', this._objName+'._mouseMove(event)'))	
		}
		
		if($(this._name)){	
			this.box = $(this._name)
		}else{ 
			var box= document.createElement('div');
			this.box =  document.body.appendChild(box);
	
			this.box.style.visibility='hidden'
			this.box.style.top=0
			this.box.style.left=0
			this.box.className="xinput";
			this.box.id=this._name;
		}
		
		this.box.innerHTML=
		'<div id="'+this._name+'_title" class="xinput_title" \
			onclick="'+this._objName+'._titleClick(event)" \
			onmousedown="'+this._objName+'._mouseDown(event)" \
			onmouseup="'+this._objName+'._mouseUp(event)" >\
		'+this._title+'</div> \
		<iframe frameborder="no" id="'+this._name+'_content"  ></iframe>';
		
		this.content = $(this._name+'_content');
	}	
	
	this.open= function(title, url, width, height){		
		if(!this.box)this._init();
		this._title = title
		this._url = url 
		this._width = (width?width:(getWindowSize('w')*0.7))
		this._height= (height?height:(getWindowSize('h')*0.7))
		
				
		$(this._name+'_title').innerHTML=title;
		this.content.style.width = this._width - (browser.msie?2:0)
		this.content.style.height = this._height		
		this.content.contentWindow.dialog=this
		this.box.style.width = this._width 
		this.box.style.height = this._height 	 + $(this._name+'_title').offsetHeight
		this.box.style.left = (getWindowSize('w')- this.box.offsetWidth)/2 
		this.box.style.top = (getWindowSize('h')- this.box.offsetHeight)/2.5
		this.overlay.style.visibility='visible'
		this.box.style.visibility='visible'
		this.content.src=this._url 
		this.box.focus()

//		if(this.content.attachEvent) this.content.attachEvent('onload',this.resize);
//		else this.content.addEventListener('load',this.resize,false);
	}

	this.close= function(){	
		this.overlay.style.visibility='hidden'
		this.box.style.visibility='hidden'
		this.content.src=''
		if(this.onClose)this.onClose()
	}

	this._titleClick = function(e){
		e=mouseEvent(this.box,e)
		this.mX=e.targetX
		this.mY=e.targetY
		if(this.mX > $(this._name+'_title').offsetWidth-16) this.close()		
	}
	this._mouseDown = function(e){
		e=mouseEvent(this.box,e)
		this.mX=e.targetX
		this.mY=e.targetY
		if(this.mX > $(this._name+'_title').offsetWidth-16) return
		this.mDown=true
//		this.content.style.display="none"
	}
	this._mouseUp = function(e){
		this.mDown=false
//		this.content.style.visibility="block"
		
	}
	this._mouseMove = function(e){		
		if(!this.mDown) return
//		if(!e.clientX%3 && !e.clientY%3 ) return
		this.box.style.left = e.clientX - this.mX
		this.box.style.top = e.clientY - this.mY
	}
}
if(!window.dialog) window.dialog = new _dialog();
