  OEX=new Object() ;//命名空间 
  OEX.SUM = 0; 		//累计数,避免ID重复
  OEX.browser="MSIE";
  OEX.rootURL="/AppPortal";
  OEX.Initialize=function()
  {
  	  if(navigator.userAgent.indexOf("MSIE")>0)
	 {
	 	OEX.browser="MSIE";
	 }
	 else if(navigator.userAgent.indexOf("Firefox")>0)
	 {
	 	OEX.browser="Firefox";
	 }
  }
  OEX.Initialize();//初始化
 
  
  Number.prototype.NaN0=function(){return isNaN(this)?0:this;}
  OEX.BKGroudInvalidate=function(options)
  {	  
  		var selectArrary=null;
  		var bgID="bgDiv"+OEX.SUM++;
  		var objBg=null;
		return{
			Show:function(){
				  var sWidth,sHeight;
				  sWidth=document.body.scrollWidth;//浏览器工作区域内页面宽度
				  
				  //var bh=document.body.offsetHeight;
				  var bh=document.documentElement.clientHeight; 
				  var sh=document.body.scrollHeight;
				  
				 // alert("offsetHeight:"+bh+";"+"clientHeight:"+sh+";scrollHeight="+mh);
				  sHeight=(bh > sh) ? (bh) : (sh) ;//屏幕高度（垂直分辨率）
				  var bgObj=document.createElement("div");//创建一个div对象（背景层）
				  //定义div属性，即相当于
				  //<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
				  bgObj.setAttribute('id',bgID);
				  bgObj.className="backgroud";
				  bgObj.style.top="0";
				  bgObj.style.left="0";
				  bgObj.style.width=sWidth + "px";
				  bgObj.style.height=sHeight + "px";
				  document.body.appendChild(bgObj);//在body内添加该div对象
				  
				  //隐藏所有的Select控件,仅IE
				  	
				  if(OEX.browser=="MSIE")
				  {
				  	selectArrary=document.getElementsByTagName("select");
				  	for(var i=0;i<selectArrary.length;++i)
				  	{
				  		selectArrary[i].style.display='none';
				  	}
				  }
				  
			},
			Hide:function(){
				  if(navigator.userAgent.indexOf("MSIE")>0 && selectArrary!=null)
				  {
				  	for(var i=0;i<selectArrary.length;++i)
				  	{
				  		selectArrary[i].style.display='inline';
				  	}
				  }
				  document.body.removeChild(document.getElementById(bgID));
			},
			ShowObj:function(elid){
				  obj=document.getElementById(elid);
				  if(bgObj!=null && bgObj.style.display=='none' && obj!=null)
				  {
				  	 bgObj.style.display=obj.style.display;
				  	 obj.style.display="none";
				  }
				  else if(obj!=null && bgObj==null )
				  {
				  	    var tmp=OEX.getLTWH(obj);
						var bgObj=document.createElement("div");//创建一个div对象（背景层）
						bgObj.style.display=obj.style.display;
						obj.style.display="none";
						obj.parentNode.insertBefore(bgObj,obj);
						bgObj.setAttribute('id',bgID);
						bgObj.innerHTML=
							"<table id=maskList width='"+tmp.width+"' height='"+tmp.height+"' border='0' cellspacing='0'>"+
							  "<tr>"+
							   " <td bgcolor='#CCCCCC'>&nbsp;</td>"+
							   " <td width='40px' align='center' valign='middle' bgcolor='#CCCCCC'></td>"+
								"<td width='80px' align='center' valign='middle' bgcolor='#CCCCCC'></td>"+
							   " <td bgcolor='#CCCCCC'>&nbsp;</td>"+
							  "</tr>"+
							  "<tr>"+
							  "  <td height='50px' bgcolor='#CCCCCC'>&nbsp;</td>"+
								"<td  align='center' valign='middle' bgcolor='white'><img src='../image/blue-loading.gif'/></td>"+
							   " <td  align='center' valign='middle' bgcolor='white'><div id=loading >Loading...</div></td>"+
							   " <td bgcolor='#CCCCCC'>&nbsp;</td>"+
							  "</tr>"+
							  "<tr>"+
							  "  <td bgcolor='#CCCCCC'>&nbsp;</td>"+
							  "  <td bgcolor='#CCCCCC'>&nbsp;</td>"+
							  "  <td bgcolor='#CCCCCC'>&nbsp;</td>"+
								"<td bgcolor='#CCCCCC'>&nbsp;</td>"+
							  "</tr>"+
							"</table>";
						objBg=bgObj;
				  }
				  else return false;
				  
			},
			HideObj:function(elid){
				  obj=document.getElementById(elid);
				  
				  if(obj!=null && objBg!=null && objBg.style.display!="none")
				  {
				  	   obj.style.display=objBg.style.display;
				  	   objBg.style.display="none";
				  }
				  else return false;
			},
			SimpleShow:function(text)
			{
				
				document.body.innerHTML="  <div class='oex-loading' id="+bgID+">"
				   + "<div class='oex-loading-indicator'><img src="+OEX.rootURL+"/js/images/extanim32.gif width='32' height='32' style='margin-right:8px;' align='absmiddle'/>Loading...</div>"
				 +" </div>";
				 objBg=document.getElementById(bgID);
			}
		}
  }
  
  OEX.MessageBox=function(options)
  {	  
	return{
		Confirm:function(str,title,ani){
			var conW=200;
			var conH=100;
			var conX=(document.documentElement.clientWidth/2) - (conW/2);
			var conY=(document.documentElement.clientHeight/3) - (conH/2);
			OEX.Windows().CreateSimpleWnd(str,title,{x:conX,y:conY},{width:200,height:100},2000);
		}
		
		
	}
  }
  
  OEX.DragControl=function(options)
  {
  	var iMouseDown  = false;
	var dragObject  = null;
	var curTarget   = null;
	var oldmouseMove = null;
	var oldmouseDown = null;
	var oldmouseUp = null;
	var downHotObj = true;
	var downHotOver = false;
	
	function makeDraggable(item){
		if(!item) return;
		item.onmousedown = function(ev){
			dragObject  = this;
			mouseOffset = getMouseOffset(this, ev);
			oldmouseMove = document.onmousemove ;
			oldmouseDown = document.onmousedown ;
			oldmouseUp = document.onmouseup  ;
			document.onmousemove = mouseMove;
			document.onmousedown = mouseDown;
			document.onmouseup   = mouseUp;
			return false;
		}
	}

	function unmakeDraggable(){
			document.onmousemove = oldmouseMove;
			document.onmousedown = oldmouseDown;
			document.onmouseup   = oldmouseUp;
			dragObject  = null;
	}
	
	
	function getMouseOffset(target, ev){
		ev = ev || window.event;
	
		var docPos    = getPosition(target);
		var mousePos  = mouseCoords(ev);
		return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
	}
	
	function getPosition(e){
		var left = 0;
		var top  = 0;
		while (e.offsetParent){
			left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
			top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
			e     = e.offsetParent;
		}
	
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	
		return {x:left, y:top};
	
	}
	
	function mouseCoords(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.documentElement.scrollTop  - document.body.clientTop
		};
	}
	
	function mouseDown(ev){
		ev         = ev || window.event;
		var target = ev.target || ev.srcElement;
	
		if(target.onmousedown || target.getAttribute('DragObj')){
			return false;
		}
	}
	
	function mouseUp(ev){
	
		dragObject = null;
	
		iMouseDown = false;
	}
	
	
	function mouseMove(ev){
		ev         = ev || window.event;
	
		/*
		We are setting target to whatever item the mouse is currently on
	
		Firefox uses event.target here, MSIE uses event.srcElement
		*/
		var target   = ev.target || ev.srcElement;
		var mousePos = mouseCoords(ev);
	    if( mousePos.x <= 0 || mousePos.y <= 0)
	    {
	    	unmakeDraggable();
	    	mouseUp(ev);
	    	return;
	    }
		if(dragObject && downHotObj){
			dragObject.style.position = 'absolute';
			dragObject.style.top      = mousePos.y - mouseOffset.y+'px';
			dragObject.style.left     = mousePos.x - mouseOffset.x+'px'; 
		}
	
		// track the current mouse state so we can compare against it next time
		lMouseState = iMouseDown;
	
		// this prevents items on the page from being highlighted while dragging
		if(curTarget || dragObject) return false;
	}
	
	function hotObjMouseDown()
	{
		downHotObj=true;	
	}
	
	function hotObjMouseUp()
	{
		unmakeDraggable();
		downHotObj=false;	
	}
	
	return{
		BindDragObj:function(objid,hotid)
		{
			var obj=document.getElementById(objid);
			if(obj!=null)
			{
				makeDraggable(obj);
				var hotobj=document.getElementById(hotid);
				if(hotobj!=null)
				{
					downHotObj = false;
					hotobj.onmousedown = hotObjMouseDown;
					hotobj.onmouseup = hotObjMouseUp;
				}
			}				
		}		
	};
  }
  
  OEX.AutoMoveControl = function(options)
  {
  	  var timename = null;
  	  var onmoveend = null
  	  if(options!=null)
  	  {
  	   onmoveend =options["onMoveEnd"];
  	  }
	  return{
  	  	StartMove : function(id,eachtime,frame,startPos,lastPos,startSharp,lastSharp)
  	  	//startPos,lastPos 格式为{x:123,y:31}
  		//startSharp,lastSharp 格式为{width:123,height:31}
  		{
  			var sum = 0;
  	  		var obj=document.getElementById(id);
  	 		var eachInsX = (lastPos.x - startPos .x)/frame;
  	  		var eachInsY = (lastPos.y - startPos .y)/frame;
  	  		var eachInsW = 0;
  	  		var eachInsH = 0;
  			if(startSharp != null && lastSharp != null)
			{
				obj.style.width = startSharp.width + 'px';
			  	obj.style.height =  startSharp.height + 'px'; 	
			  	eachInsW = (lastSharp.width-startSharp.width)/frame;
			  	eachInsH = (lastSharp.height-startSharp.height)/frame;	
			}
			  	  
			if(obj==null)	return false;
			obj.style.left = startPos.x + 'px';
			obj.style.top =  startPos.y + 'px'; 	  
			var move=function()
			{
			  	if( frame>sum )
			  	{
			  		obj.style.left = parseInt(obj.style.left) + eachInsX  + 'px';
			        obj.style.top = parseInt(obj.style.top) + eachInsY + 'px';
			        obj.style.width = parseInt(obj.style.width) + eachInsW  + 'px';
			        obj.style.height = parseInt(obj.style.height) + eachInsH + 'px';
			  		sum+=1;	
			  	}	  	
			  	else
			  	{
			  		clearInterval(timename);
			  		if(onmoveend!=null)
			  		{
			  			onmoveend();
			  		}
			  	}
			}
				  
			timename=setInterval(move,eachtime); 
		}
  	  };

  }
  
  
  
  OEX.QuickTips=function(options)
  {
	  var tipID = "tipDiv"+OEX.SUM++;
	  var timename=null;
	  var TipW	= 200;
	  var TipH = 50;
	  var showPosL=document.body.scrollWidth/2-TipW/2;
	  var tips=null
	  oldscroll=null; 
	  oldresize=null; 
	  var createTips = function(str,options)
	  {  	
			tips=OEX.Windows({className:"quicktips",id:tipID});
			tips.CreateSimpleWnd(str,"",{x:showPosL,y:0},{width:TipW,height:TipH},1000);
	  }
	  
	  var move=function()
	  {
	  	var onmoveend=function(){
	  		document.body.removeChild($(tipID));
	  		window.onscroll=oldscroll; 
			window.onresize=oldresize; 
	  		
	  	};
	  	
	  	var moveCtr = new OEX.AutoMoveControl({
	  			onMoveEnd:function(){
	  				window.onscroll=oldscroll; 
	  				window.onresize=oldresize;
	  				tips.removeSimpleWnd();
	  			 }
	  		});
	  	moveCtr.StartMove(tipID,20,10,{x:showPosL,y:(document.documentElement.scrollTop)},{x:showPosL,y:document.documentElement.scrollTop-TipH});	
	  	//
	  }	  
	  var scall=function()
	  {
		 $(tipID).style.top=document.documentElement.scrollTop+"px";
		 //alert(document.documentElement.scrollTop+"px");
	  }	 
	  
	  return {
	  	TopQuickTips:function(str,showTime)
	  	{
	  			
				createTips(str);
				var onmoveend = function()
				{
					    //alert('onmoveend');
						OEX.MessageQueue.AddScroll(scall);
						OEX.MessageQueue.AddResize(scall);
				};
				
				var moveCtr = new OEX.AutoMoveControl({onMoveEnd:onmoveend});
				moveCtr.StartMove(tipID,20,10,{x:showPosL,y:(document.documentElement.scrollTop-TipH)},{x:showPosL,y:document.documentElement.scrollTop},{width:TipW,height:TipH},{width:TipW,height:TipH});
				//alert(showPosL);
				//moveCtr.StartMove(tipID,20,10,{x:showPosL,y:(document.documentElement.scrollTop-TipH)},{x:100,y:100},{width:100,height:50},{width:100,height:50});
				timename=setTimeout(move,showTime);		
	  	}
	  };


  }
  
  
  OEX.Windows=function(options)
  {
  	var wndID=null;
  	var className="";
  	var shdID="shdObj"+OEX.SUM++;
    var shdclassName="x-shadow";
  	if(options!=null)
  	{
  	   className=options["className"];
  	   wndID=options["id"];

  	}
  	function CreateShadow(pos,sharp,zIndex)
  	{
  		var shdObj=document.createElement("div");
  		shdObj.className=shdclassName;
		shdObj.style.position = "absolute";
		shdObj.style.zIndex=zIndex;
		shdObj.style.top= pos.y+"px";
		shdObj.style.left= pos.x+"px";
		shdObj.style.width= sharp.width+"px";
		shdObj.style.height= sharp.height+"px";
		shdObj.style.display= "block";
		shdObj.setAttribute("id",shdID);
  		document.body.appendChild(shdObj);
  		//	<div class="" style="z-index: 9002; left: 386px; top: 109px; width: 300px; height: 131px; display: block;">
		shdObj.innerHTML="<div class='xst'>"
			+"	<div class='xstl' style='width: 3%;'></div>"
			+"	<div class='xstc' style='width: 94%;'></div>"
			+"	<div class='xstr' style='width: 3%;'></div>"
			+"</div>"
			+"<div class='xsc' style='height: "+(sharp.height-10)+"px;'>"
			
			+"<div class='xsml'style='width: 3%;'></div>"
			+"<div class='xsmc' style='width: 94%;'></div>"  //"+(sharp.width-15)+"px
			+"<div class='xsmr'style='width: 3%;'></div>"
		+"</div>"
		+"<div class='xsb'>"
			+"<div class='xsbl' style='width: 3%;'></div>"
			+"<div class='xsbc' style='width: 94%;'></div>"
			+"<div class='xsbr' style='width: 3%;'></div>"
		+"</div>";
	}
  	if(wndID==null)		  	   wndID="wndObj"+OEX.SUM++;
  	return{
  		CreateSimpleWnd:function(str,title,pos,sharp,zIndex)
  		{
  			    var msgX=0;
  			    var msgY=0;
  			    var msgW=0;
  			    var msgH=0;
  			    var msgZ=0;
  				if(sharp!=null)
  				{
	  				msgW=sharp.width;
					msgH=sharp.height;
  				}
  				if(pos!=null)
  				{
					msgX=pos.x;
					msgY=pos.y;
  				}
  				if(zIndex!=null){
  					msgZ=zIndex;
  				}

				//var title="提示";
				//var str="您确定吗";
				
				var msgObj=document.createElement("div");
				msgObj.className=className;
				msgObj.style.position = "absolute";
				msgObj.style.zIndex=msgZ;
				msgObj.style.top= msgY+"px";
				msgObj.style.left= msgX+"px";
				msgObj.style.width= msgW+"px";
				msgObj.style.height= msgH+"px";
				msgObj.style.display= "block";
				msgObj.setAttribute("id",wndID);
				
				var msgObjHeaderL=document.createElement("div");
				msgObjHeaderL.className="oex-x-window-tl";
				msgObj.appendChild(msgObjHeaderL);
				
				var msgObjHeaderR=document.createElement("div");
				msgObjHeaderR.className="oex-x-window-tr";
				msgObjHeaderL.appendChild(msgObjHeaderR);
				
				var msgObjHeaderC=document.createElement("div");
				msgObjHeaderC.className="oex-x-window-tc";
				msgObjHeaderC.innerHTML=title;	
				//msgObjHeaderC.style.height=msgH*0.2+"px";		
				msgObjHeaderR.appendChild(msgObjHeaderC);
				
			    var msgObjCB=document.createElement("div");
				msgObjCB.className="oex-x-window-bwrap";
				msgObj.appendChild(msgObjCB);
				
				var msgObjCL=document.createElement("div");
				msgObjCL.className="oex-x-window-ml";
				msgObjCB.appendChild(msgObjCL);
				
				var msgObjCR=document.createElement("div");
				msgObjCR.className="oex-x-window-mr";
				msgObjCL.appendChild(msgObjCR);
				
				var msgObjCC=document.createElement("div");
				
				msgObjCC.className="oex-x-window-mc";
				//msgObjCC.style.height=msgH*0.8+"px";
				msgObjCC.innerHTML="<div align=center style='vertical-align:middle;line-height:"+(msgH*0.6)+"px'>"+str+"</div>";
				//msgObjCC.align="center";
				msgObjCC.style.text
				msgObjCR.appendChild(msgObjCC);	
				
				
				
				var msgObjBL=document.createElement("div");
				msgObjBL.className="oex-x-window-bl";
				msgObjCB.appendChild(msgObjBL);
				
				var msgObjBR=document.createElement("div");
				msgObjBR.className="oex-x-window-br";
				msgObjBL.appendChild(msgObjBR);
				
				var msgObjBC=document.createElement("div");
				msgObjBC.className="oex-x-window-bc";
			
				msgObjBR.appendChild(msgObjBC);
				
				var msgObjBf=document.createElement("div");
				msgObjBf.className="oex-x-window-footer"
				msgObjBf.style.height=msgH*0.01+"px";;
				msgObjBC.appendChild(msgObjBf);
				/*if(navigator.userAgent.indexOf("Firefox")>0)
				{
				  CreateShadow({x:msgX-3,y:msgY+2},{width:msgW+6,height:msgH-10},msgZ-1);
				}*/
				
				document.body.appendChild(msgObj);
				
			},
			removeSimpleWnd:function(){
				document.body.removeChild(document.getElementById(wndID));
			}  		
  	}
  }
  
  OEX.getMsgQueue = function()
  {
  		//全局唯一实例
  		if(OEX.MessageQueue!=null)
  			return OEX.MessageQueue;
  		
  		var scrollArray = new Array();
  		var resizeArray = new Array();
  		
  		scrollArray[0]=window.onscroll;
  		resizeArray[0]=window.onresize;

  		
  		var oexScroll = function()
  		{
  			for(var i=0;i<scrollArray.length;++i)
  				if(scrollArray[i]!=null)
  					scrollArray[i]();
  		} 
  		
  		var oexResize = function()
  		{
  			for(var i=0;i<resizeArray.length;++i)
  			  	if(resizeArray[i]!=null)
  					resizeArray[i]();
  		} 
  		
  		  		
  		window.onscroll=oexScroll;
  		window.onresize=oexResize;
  		
  		return{
  			AddScroll:function(parm)
  			{
  				scrollArray[scrollArray.length]=parm;
  				return scrollArray.length-1;   //返回实际位置
  			},
  			AddResize:function(parm)
  			{
  				resizeArray[resizeArray.length]=parm;
  				return resizeArray.length-1;   //返回实际位置
  			},
  			RemoveScroll:function(pos)
  			{
  				scrollArray[scrollArray.pos]=null;
  			},
  			RemoveResize:function(pos)
  			{
  				resizeArray[pos]=null;
  			}
  		}
  		
  }
   OEX.MessageQueue = null //消息队列
   OEX.MessageQueue = new OEX.getMsgQueue();

 	OEX.getLTWH=function (o)
	{
        function getCurrentStyle(style)
        {
                var number=parseInt(o.currentStyle[style]);
                return isNaN(number)?0:number;
        }
        function getComputedStyle(style)
        {
                return parseInt(document.defaultView.getComputedStyle(o,null).getPropertyValue(style));
        }
        var oLTWH=
        {
                "left":o.offsetLeft,
                "top":o.offsetTop,
                "width":o.offsetWidth,
                "height":o.offsetHeight
        };
        while(true)
        {
                o=o.offsetParent;
                if(o==(document.body&&null))break;
                oLTWH.left+=o.offsetLeft;
                oLTWH.top+=o.offsetTop;
                
                if(navigator.userAgent.indexOf("MSIE")>0)
                {
                        oLTWH.left+=getCurrentStyle("borderLeftWidth");
                        oLTWH.top+=getCurrentStyle("borderTopWidth");
                }
                else if(navigator.userAgent.indexOf("Firefox")>0)
                {
                        oLTWH.left+=getComputedStyle("border-left-width");
                        oLTWH.top+=getComputedStyle("border-top-width");
                }
        }
        return oLTWH;
	}
