function space(flag){
	if(flag=="begin"){
		var ele=document.getElementById("ft");
		if(typeof(ele)!="undefined"&&ele!=null)ele.id="ft_popup";
		ele=document.getElementById("usrbar");
		if(typeof(ele)!="undefined"&&ele!=null)
		ele.id="usrbar_popup";
	}else if(flag=="end"){
		var ele=document.getElementById("ft_popup");
		if(typeof(ele)!="undefined"&&ele!=null)
			ele.id="ft";
		ele=document.getElementById("usrbar_popup");
		if(typeof(ele)!="undefined"&&ele!=null)
			ele.id="usrbar";
	};
};

var Popup=new Class();
Popup.prototype={
	iframeIdName:'ifr_popup',
	
	initialize:function (config){
		this.config = Object.extend({
			contentType:1,
			isHaveTitle:true,
			scrollType:'no',
			isBackgroundCanClick:true,
			isSupportDraging:true,
			isShowShadow:true,
			isReloadOnClose:true,
			width:400,
			height:300
		},
		config||{});
		
		this.info={
			shadowWidth:4,
			title:"",
			contentUrl:"",
			contentHtml:"",
			callBack:null,
			parameter:null,
			confirmCon:"",
			alertCon:"",
			someHiddenTag:"select,object,embed",
			someHiddenEle:"",
			overlay:0,
			coverOpacity:40
		};
		
		this.color={
			cColor:"#EEEEEE",
			bColor:"#FFFFFF",
			tColor:"#709CD2",
			wColor:"#FFFFFF"
		};
		
		this.dropClass=null;
		
		this.someToHidden=[];
		
		if(!this.config.isHaveTitle)
			this.config.isSupportDraging=false;
		
		this.iniBuild();
	},
	
	setContent:function (arrt,val){
		if(val!=''){
			switch(arrt){
				case 'width':
					this.config.width=val;
					break;
				case 'height':
					this.config.height=val;
					break;
				case 'title':
					this.info.title=val;
					break;
				case 'contentUrl':
					this.info.contentUrl=val;
					break;
				case 'contentHtml':
					this.info.contentHtml=val;
					break;
				case 'callBack':
					this.info.callBack=val;
					break;
				case 'parameter':
					this.info.parameter=val;
					break;
				case 'confirmCon':
					this.info.confirmCon=val;
					break;
				case 'alertCon':
					this.info.alertCon=val;
					break;
				case 'someHiddenTag':
					this.info.someHiddenTag=val;
					break;
				case 'someHiddenEle':
					this.info.someHiddenEle=val;
					break;
				case 'overlay':
					this.info.overlay=val;
			};
		};
	},
	
	iniBuild:function (){
		$('dialogCase') ? $('dialogCase').parentNode.removeChild($('dialogCase')) : function (){};
		var oDiv=document.createElement('span');
		oDiv.id='dialogCase';
		document.body.appendChild(oDiv);
	},
	
	build:function (){
		var baseZIndex=10001+this.info.overlay*10;
		var showZIndex=baseZIndex+2;
		this.iframeIdName = 'ifr_popup' + this.info.overlay;
		var path = IMG_URL;
		var close='<input type="image" id="dialogBoxClose" src="'+path+'dialogclose.gif" border="0" width="16" height="16" align="absmiddle" title="关闭"/>';
		var cB='filter: alpha(opacity='+this.info.coverOpacity+');opacity:'+this.info.coverOpacity/100+';';
		var cover='<div id="dialogBoxBG" style="position:absolute;top:0px;left:0px;width:100%;height:100%;z-index:'+baseZIndex+';'+cB+'background-color:'+this.color.cColor+';display:none;"></div>';
		var mainBox='<div id="dialogBox" style="border:1px solid '+this.color.tColor+';display:none;z-index:'+showZIndex+';position:relative;width:'+this.config.width+'px;"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="'+this.color.bColor+'">';
		
		if(this.config.isHaveTitle){
			mainBox+='<tr height="24" bgcolor="'+this.color.tColor+'"><td><table style="-moz-user-select:none;height:24px;" width="100%" border="0" cellpadding="0" cellspacing="0" ><tr>'+
				'<td width="6" height="24"></td><td id="dialogBoxTitle" style="color:'+this.color.wColor+';font-size:14px;font-weight:bold;text-align:left;">'+this.info.title+'&nbsp;</td>'+
				'<td id="dialogClose" width="20" align="right" valign="middle">'+close+'</td><td width="6"></td></tr></table></td></tr>';
		}else {
			mainBox+='<tr height="10"><td align="right">'+close+'</td></tr>';
		};
		
		mainBox+='<tr style="height:'+this.config.height+'px" valign="top"><td id="dialogBody" style="position:relative;"></td></tr></table></div>'+'<div id="dialogBoxShadow" style="display:none;z-index:'+baseZIndex+';"></div>';
			
		if(!this.config.isBackgroundCanClick){
			$('dialogCase').innerHTML=cover+mainBox;
			$('dialogBoxBG').style.height=body.scrollHeight;
		}else 
			$('dialogCase').innerHTML=mainBox;
		
		Event.observe($('dialogBoxClose'),"click",this.reset.bindAsEventListener(this),false);
		
		if(this.config.isSupportDraging){
			dropClass=new Dragdrop(this.config.width, this.config.height, this.info.shadowWidth,this.config.isSupportDraging,this.config.contentType);
			$("dialogBoxTitle").style.cursor="move";
		};
		this.lastBuild();
	},
	
	lastBuild:function (){
		var confirmHtml = '<div style="width:100%;height:100%;text-align:center;"><div style="margin:20px 20px 0 20px;font-size:14px;line-height:16px;color:#000000;">'+this.info.confirmCon+'</div><div style="margin:20px;"><input id="dialogOk" type="button" value="  确定  "/>&nbsp;<input id="dialogCancel" type="button" value="  取消  "/></div></div>';
		var alertHtml = '<div style="width:100%;height:100%;text-align:center;"><div style="margin:20px 20px 0 20px;font-size:14px;line-height:16px;color:#000000;">'+this.info.alertCon+'</div><div style="margin:20px;"><input id="dialogYES" type="button" value="  确定  "/></div></div>';
		var baseZIndex=10001+this.info.overlay*10;
		var coverIfZIndex=baseZIndex+4;
		if(this.config.contentType==1){
			var openIframe = "<iframe width='100%' style='height:"+this.config.height+"px' name='"+this.iframeIdName+"' id='"+this.iframeIdName+"' frameborder='0' scrolling='"+this.config.scrollType+"'></iframe>";
			var coverIframe = "<div id='iframeBG' style='position:absolute;top:0px;left:0px;width:1px;height:1px;z-index:"+coverIfZIndex+";filter: alpha(opacity=00);opacity:0.00;background-color:#ffffff;'><div>";
			$("dialogBody").innerHTML = openIframe + coverIframe;
			$(this.iframeIdName).src = this.info.contentUrl;
		}else if(this.config.contentType==2){
			$("dialogBody").innerHTML = this.info.contentHtml;
		}else if(this.config.contentType==3){
			$("dialogBody").innerHTML = confirmHtml;
			Event.observe($('dialogOk'), "click", this.forCallback.bindAsEventListener(this), false);
			Event.observe($('dialogCancel'), "click", this.close.bindAsEventListener(this), false);
		}else if(this.config.contentType==4){
			$("dialogBody").innerHTML = alertHtml;
			Event.observe($('dialogYES'),"click",this.close.bindAsEventListener(this),false);
		};
	},
		
	reBuild:function (){
		$('dialogBody').height = $('dialogBody').clientHeight;
		this.lastBuild();
	},
	
	show:function (){
		this.hiddenSome();
		this.middle();
		if(this.config.isShowShadow)
			this.shadow();
	},
	
	forCallback:function (){
		return this.info.callBack(this.info.parameter);
	},
	
	shadow:function (){
		var oShadow=$('dialogBoxShadow');
		var oDialog=$('dialogBox');
		oShadow['style']['position']="absolute";
		oShadow['style']['background']="#000";
		oShadow['style']['display']="";
		oShadow['style']['opacity']="0.2";
		oShadow['style']['filter']="alpha(opacity=20)";
		oShadow['style']['top']=oDialog.offsetTop+this.info.shadowWidth+'px';
		oShadow['style']['left']=oDialog.offsetLeft+this.info.shadowWidth+'px';
		oShadow['style']['width']=oDialog.offsetWidth+'px';
		oShadow['style']['height']=oDialog.offsetHeight+'px';
	},
	
	middle:function (){
		if(!this.config.isBackgroundCanClick)
			$('dialogBoxBG').style.display='';
		var oDialog=$('dialogBox');
		oDialog['style']['position']="absolute";
		oDialog['style']['display']='';
		var sClientWidth=body.clientWidth;
		var sClientHeight=body.clientHeight;
		var sScrollTop = body.scrollTop;
		var sleft = (body.clientWidth - oDialog.offsetWidth) / 2;
		var sTop = (sClientHeight - oDialog.offsetHeight) / 2 + sScrollTop;
		if(sTop < 1) sTop="20";
		if(sleft < 1) sleft="20";
		oDialog['style']['left'] = sleft+'px';
		oDialog['style']['top'] = sTop+'px';
	},
	
	reset:function (){
		if(this.config.isReloadOnClose){
			top.location.reload();
		};
		this.close();
	},
	
	close:function (){
		$('dialogBox').style.display='none';
		if(!this.config.isBackgroundCanClick)
			$('dialogBoxBG').style.display='none';
		
		if(this.config.isShowShadow)
			$('dialogBoxShadow').style.display='none';
		
		$('dialogBody').innerHTML='';
		this.showSome();
	},
	
	hiddenSome:function (){
		var tag=this.info.someHiddenTag.split(",");
		if(tag.length==1&&tag[0]=="")
			tag.length=0;
		for(var i=0;i<tag.length;i++){
			this.hiddenTag(tag[i]);
		};
		var ids=this.info.someHiddenEle.split(",");
		if(ids.length==1&&ids[0]=="")
			ids.length=0;
		for(var i=0;i<ids.length;i++){
			this.hiddenEle(ids[i]);
		};
		space("begin");
	},
	
	hiddenTag:function (tagName){
		var ele=document.getElementsByTagName(tagName);
		if(ele!=null){
			for(var i=0;i<ele.length;i++){
				if(ele[i].style.display!="none"&&ele[i].style.visibility!='hidden'){
					ele[i].style.visibility='hidden';
					this.someToHidden.push(ele[i]);
				};
			};
		};
	},
	
	hiddenEle:function (id){
		var ele=document.getElementById(id);
		if(typeof(ele)!="undefined"&&ele!=null){
			ele.style.visibility='hidden';
			this.someToHidden.push(ele);
		}
	},
	
	showSome:function (){
		for(var i=0;i<this.someToHidden.length;i++){
			this.someToHidden[i].style.visibility='visible';
		};
		space("end");
	}
};
