/**
 * 弹出窗口类
 * @param {String} url
 * @param {Object} options 


(function(){
    var _dialogTemplete; 
    
 
window.addEvent('domready',function(){
_dialogTemplete=[
       "<div class='dialog_box'><div class='head'>",
			"<div class='title'></div>",
			"<div class='closeBtn'>关闭</div>",
		"</div>",
		"<div class='body dialogContent'  container='true'>",
			"正在加载... ",
		"</div>",
		"<div class='foot'>",
		"</div></div>"].join('\n');
MODALPANEL = $('MODALPANEL')||new Element('div',{'id':'MODALPANEL'}).set({
	styles:{
	  'position':'absolute',
	  'background':'#333333',
	  'width':window.getSize().size.x,
	  'height':Math.max(window.getSize().size.y,window.getScrollSize().y),
	  'top':0,
	  'left':0,
	  'display':'none',
	  'zIndex':65534,
	  'opacity':.4
	}
}).inject(document.body);
new Element('div',{'id':'loadMask'}).setStyles({
    'position':'absolute',
    'border':'2px solid #ff9900',
    'background':'#fff',
	'padding':10,
	'zIndex':65535,
	'display':'none'
}).setText('Loading...').inject(document.body);

});



Dialog=new Class({
    Implements:[Options,Events]
	,options:{
	   onShow:Class.empty,
	   onHide:Class.empty,
	   onClose:Class.empty,
	   onLoad:Class.empty,
	 	width:650,
		height:500,
        dialogBoxWidth:10,
		title:'',
		dragable:true,
		ajaksable:true,
		singlon:true,
		modal:false,
		ajaxoptions: {
			update:false,
			evalScripts: true,
            method: 'get',
		    autoCancel:true
		}
	 },
	 initialize:function(url,options){
	    
		 if(	$ES('.dialog').some(function(item,idx){
			 if(item.retrieve('serial')==url.toString().trim()){
			    item.inject(document.body)
			   return true;
			 }
		}) )return;
		
	     this.setOptions(options);
		 options=this.options;
		 this.UID = (Native.UID)++;
         
		 this.dialog = new Element('div',{id:'dialog_'+this.UID,'class':'dialog','styles':{'visibility':'hidden','zoom':1,'opacity':0,'zIndex':65534}})
		           .setHTML(_dialogTemplete).inject(document.body)
				   .store('serial',url.toString().trim());		
		
		
	this.dialog_head=$E('.head',this.dialog)
		           .addEvent('click',function(e){
				           if(this.getNext())
						   this.inject(document.body);
				     }.bind(this.dialog));
		this.dialog_body=$E('.body',this.dialog);
		//this.dialog_foot=$E('.foot',this.dialog);	
		
		$E('.title',this.dialog_head).setText(options.title||"Dialog");
		
		$E('.closeBtn',this.dialog_head).addEvent('click',function(e){
		    if(e)
			e=new Event(e).stop();
			this.close();
		}.bind(this));
		
		if(options.dragable){
		  this.dragDialog();
		}
		
		$extend(options.ajaxoptions,{
		 'update':this.dialog_body,
		  'onRequest':function(){
		    this.setDialog_bodySize();
		  }.bind(this),
		  'onFailure':function(){
		    this.close();
			alert("加载弹出内容失败!");
		  }.bind(this),
		  'onComplete':function(re){
		    if('onComplete' in options)options.onComplete(re);
		    this.onLoad.call(this,re);
		  }.bind(this)
		});
		
		 this.popup(url,options);
	 },
	  onLoad:function(re){
	      var closebtn=$E('*[isCloseDialogBtn=true]',this.dialog);
		  if(closebtn){
			    closebtn.addEvent('click',this.close.bind(this));
			}
	      this.show();
	 },
	 initContent:function(url,options){
	     options=options||this.options;
	     if($type(url)=='string'){
			new Ajax(url,options.ajaxoptions).request();
		 }else{
		    try{
		       this.dialog_body.empty().adopt(url);
			}catch(e){
			   this.dialog_body.setHTML('内容加载失败.!');
			}
			 this.onLoad.call(this);
		 }		
	 },
	 popup:function(url,options){
	  if(options.modal||options.singlon)MODALPANEL.show();
	  $('loadMask').amongTo(window).show();
	  this.fireEvent('onShow',this);
	  this.initContent(url,options);
      this.stopScroll=function(e){
         e.stop();
      };
      window.addEvent('mousewheel',this.stopScroll);
	 },
	 show:function(){
	   this.setDialog_bodySize();
	    $('loadMask').hide();
	    this.dialog.amongTo(window);
		$fixSelectOpacity(0,this.dialog);
        this.fireEvent('onLoad',this);
	 },
	 close:function(){
		 this.fireEvent('onClose',this.dialog);
		 this.dialog.empty().remove();
		 $('dialogdragghost_'+this.UID)?$('dialogdragghost_'+this.UID).remove():'';
		 if(!$E('.dialog')){
		   MODALPANEL.hide();
		   $fixSelectOpacity(1,this.dialog);
		 }
         window.removeEvent('mousewheel',this.stopScroll);
	 },
	 hide:function(){
	 	this.fireEvent('onHide');
		this.close.call(this);
	 },
	 setDialog_bodySize:function(){
	  this.dialog_body.setStyles({
			'height':this.options.height-this.dialog_head.getSize().size.y-this.options.dialogBoxWidth*2,
			'width':this.options.width-this.options.dialogBoxWidth*2
		});
	  this.setDialogWidth();
	 },
	 setDialogWidth:function(){
	   this.dialog.setStyle('width',this.dialog_body.getSize().size.x+this.options.dialogBoxWidth*2);
	 },
	 dragDialog:function(){
            var dialog=this.dialog;
			var dragGhost=new Element('div',{'id':'dialogdragghost_'+this.UID});
			    dragGhost.setStyles({
				'position':'absolute',
				'border':'2px #333333 dashed',
				'cursor':'move',
				'background':'#66CCFF',
				'display':'none',
				'opacity':0.3,
				'zIndex':65535
				}).inject(document.body);	
			this.addEvent('load',function(e){
				dragGhost.setStyles(dialog.getCis());
			});
			    new Drag(dragGhost,{
				    'handle':this.dialog_head,
					'limit':{'x':[0,window.getSize().x],'y':[0,window.getSize().y]},
					 'onStart':function(){
					     dragGhost.setStyles(dialog.getCis());
					     dragGhost.show();
					 },
					 'onComplete':function(){
					    var pos=dragGhost.getPosition();
						dialog.setStyles({
							'top': pos.y,
							'left':pos.x
						});
						dragGhost.hide();
					}
				});	
	 }
});

})(); */
