var preX=-1,preY,preW,preH;
var preX2=-1,preY2,preW2,preH2;
var frame_minFlag=0;
var frame_padding = 0;
var titlebar_h = 20;
var toolbar_h = 4;
var statusbar_h = 22;
var clientarea_margin = 8;
var iconButton=16;
var button_down_outset = new Image();
var button_up_outset = new Image();
var button_max = new Image();
var button_close = new Image();

button_down_outset.src = 'images/button_down_outset.gif';
button_up_outset.src = 'images/button_up_outset.gif';
button_max.src = 'images/maxbutton.gif';
button_close.src = 'images/closebutton.gif';
var last_window_h;
function initWindow(fx,fy,fw,fh)
{
		dd.elements.frame.resizeTo(fw,fh);
    dd.elements.frame.moveTo(fx,fy);
    dd.elements.titlebar.moveTo(dd.elements.frame.x+1+frame_padding, dd.elements.frame.y+1+frame_padding);
    dd.elements.titlebar.addChild("frame");
    dd.elements.titlebar.setZ(dd.elements.frame.z+1); 
    dd.elements.titlebar.resizeTo(dd.elements.frame.w-2, titlebar_h);
    dd.elements.clientarea.moveTo(dd.elements.frame.x+frame_padding+clientarea_margin, dd.elements.frame.y+titlebar_h+toolbar_h+clientarea_margin);
    dd.elements.titlebar.addChild("clientarea");
    dd.elements.clientarea.resizeTo(dd.elements.frame.w-2*(frame_padding+clientarea_margin), dd.elements.frame.h-titlebar_h-toolbar_h-statusbar_h-clientarea_margin-3);
    dd.elements.resizehandle.moveTo(dd.elements.frame.x+dd.elements.frame.w-dd.elements.resizehandle.w-2, dd.elements.frame.y+dd.elements.frame.h-statusbar_h-2);
    dd.elements.statusMessage.moveTo(dd.elements.frame.x+frame_padding+clientarea_margin, dd.elements.frame.y+dd.elements.frame.h-dd.elements.resizehandle.h-clientarea_margin);
    dd.elements.statusMessage.resizeTo(dd.elements.frame.w-4*(frame_padding+clientarea_margin), statusbar_h);


		var x=dd.elements.titlebar.x+dd.elements.titlebar.w;
   	var y=dd.elements.titlebar.y+Math.round(titlebar_h/2)-Math.round(dd.elements.resizebutton.h/2);		    
		dd.elements.resizebutton.moveTo(x-3*iconButton, y);    
    dd.elements.maxbutton.moveTo(x-2*iconButton, y);
    dd.elements.closebutton.moveTo(x-iconButton, y);
    dd.elements.titlebar.addChild("resizebutton");
    dd.elements.titlebar.addChild("maxbutton");
    dd.elements.titlebar.addChild("closebutton");
    dd.elements.titlebar.addChild("resizehandle");
    dd.elements.titlebar.addChild("statusMessage");
    dd.elements.frame.hide();
    dd.elements.clientarea.hide();
    dd.elements.resizehandle.hide();
    dd.elements.titlebar.hide();   
}


function resizeWindow(fx,fy,fw,fh)
{
		resizeInit(fx,fy,fw,fh);	  
	  dd.elements.frame.resizeTo(fw,fh);
    dd.elements.frame.moveTo(fx,fy);
    dd.elements.titlebar.moveTo(dd.elements.frame.x+1+frame_padding, dd.elements.frame.y+1+frame_padding);
    dd.elements.titlebar.resizeTo(dd.elements.frame.w-2, titlebar_h);
    dd.elements.titlebar.setZ(dd.elements.frame.z+1); 
    dd.elements.clientarea.moveTo(dd.elements.frame.x+frame_padding+clientarea_margin, dd.elements.frame.y+titlebar_h+toolbar_h+clientarea_margin);
    dd.elements.clientarea.resizeTo(dd.elements.frame.w-2*(frame_padding+clientarea_margin), dd.elements.frame.h-titlebar_h-toolbar_h-statusbar_h-clientarea_margin-3);
    dd.elements.resizehandle.moveTo(dd.elements.frame.x+dd.elements.frame.w-dd.elements.resizehandle.w-2, dd.elements.frame.y+dd.elements.frame.h-statusbar_h-2);
    dd.elements.statusMessage.moveTo(dd.elements.frame.x+frame_padding+clientarea_margin, dd.elements.frame.y+dd.elements.frame.h-dd.elements.resizehandle.h-clientarea_margin);
    dd.elements.statusMessage.resizeTo(dd.elements.frame.w-4*(frame_padding+clientarea_margin), statusbar_h);


		var x=dd.elements.titlebar.x+dd.elements.titlebar.w;
   	var y=dd.elements.titlebar.y+Math.round(titlebar_h/2)-Math.round(dd.elements.resizebutton.h/2);		    
		dd.elements.resizebutton.moveTo(x-3*iconButton, y);    
    dd.elements.maxbutton.moveTo(x-2*iconButton, y);
    dd.elements.closebutton.moveTo(x-iconButton, y);
    dd.elements.titlebar.show();
}
function resizeWindow2(fx,fy,fw,fh)
{
		resizeInit(fx,fy,fw,fh);
	  resizeInit(fx,fy,fw,fh);
	  dd.elements.frame.resizeTo(fw,fh);
    dd.elements.frame.moveTo(fx,fy);
    dd.elements.titlebar.moveTo(dd.elements.frame.x+1+frame_padding, dd.elements.frame.y+1+frame_padding);
    dd.elements.titlebar.setZ(dd.elements.frame.z+1); 
        
    var x=dd.elements.titlebar.x+dd.elements.titlebar.w;
   	var y=dd.elements.titlebar.y+Math.round(titlebar_h/2)-Math.round(dd.elements.resizebutton.h/2);		    
		dd.elements.resizebutton.moveTo(x-3*iconButton, y);    
    dd.elements.maxbutton.moveTo(x-2*iconButton, y);
    dd.elements.closebutton.moveTo(x-iconButton, y);
}
function resizeInit(fx,fy,fw,fh){
	  dd.elements.frame.resizeTo(fw,fh);
    dd.elements.frame.moveTo(fx,fy);
    dd.elements.titlebar.moveTo(dd.elements.frame.x+1+frame_padding, dd.elements.frame.y+1+frame_padding);
    dd.elements.titlebar.resizeTo(dd.elements.frame.w-2, titlebar_h); 

		  
}


function my_DragFunc(){
    if (dd.obj.name == "resizehandle"){
        var w=dd.obj.x-dd.elements.frame.x+dd.obj.w+2;
        var h=dd.obj.y-dd.elements.frame.y+dd.obj.h+2;
        resizeWindow(dd.elements.frame.x,dd.elements.frame.y,w,h);       	
    }
}
function my_DropFunc(){
		 
    if(g_var.g_module==63){
     newPosition();
     //cur(curLyr);
    }
		var x,y,w,h;
    if (dd.obj.name == "resizebutton"){
    		 if (dd.elements.clientarea.visible){	
        		frame_minFlag=1;
            dd.obj.swapImage(button_down_outset.src);
            if(preX!=-1){
								preX2=preX;
					    	preY2=preY;
					    	preW2=preW;
					    	preH2=preH;    		
			    		}
    				else{
	            preX2=dd.elements.frame.x;
				    	preY2=dd.elements.frame.y;
				    	preW2=dd.elements.frame.w;
				    	preH2=dd.elements.frame.h;    		
			    	}
            x=dd.getScrollX();
            y=dd.getScrollY();
            w=150;
            h=titlebar_h+2;
           	dd.elements.clientarea.hide();
	          dd.elements.resizehandle.hide();            
            resizeWindow2(x,y,w,h);              
        }
        else{
        		frame_minFlag=0;
            dd.obj.swapImage(button_up_outset.src);
            dd.elements.clientarea.show();
            dd.elements.resizehandle.show();
            dd.elements.frame.show();
			    	dd.elements.titlebar.show();
            resizeWindow(preX2,preY2,preW2,preH2);            
        }
    }
    else if(dd.obj.name == "closebutton"){
    	hideFrame();
    }
    else if(dd.obj.name == "maxbutton"){
    	maxFrame();
    }
  
}
function maxFrame(){
		dd.elements.resizebutton.swapImage(button_up_outset.src);
		if(preX==-1||frame_minFlag==1){
				if(frame_minFlag==1){
					preX=preX2;
		    	preY=preY2;
		    	preW=preW2;
		    	preH=preH2;		    	
				}else{
	    		preX=dd.elements.frame.x;
	    		preY=dd.elements.frame.y;
	    		preW=dd.elements.frame.w;
	    		preH=dd.elements.frame.h;    		
    		}
    		var h=dd.getWndH();
				var w=dd.getWndW();
				resizeWindow(0,0,w,h);
    	}else{
    		resizeWindow(preX,preY,preW,preH);
    		preX=-1;
    	}
  frame_minFlag=0;
}

var timmer2=-1;
function adjustFrame(obj){
	try{
	var x=eval('dd.elements.'+obj).x;
	var y=eval('dd.elements.'+obj).y;
	var w=eval('dd.elements.'+obj).w;
	var h=eval('dd.elements.'+obj).h;	
	if(eval('dd.elements.'+obj).x<dd.getScrollX())
		x=dd.getScrollX();
	if(eval('dd.elements.'+obj).y<dd.getScrollY())
		y=dd.getScrollY();
	else if(eval('dd.elements.'+obj).y>=dd.getScrollY()+(dd.getWndH()-22))		
		y=dd.getScrollY();	
	resizeWindow2(x,y,w,h);
	}
	catch(ex){}
	if(eval('dd.elements.'+obj).visible){
		clearTimeout(timmer2);
		var fu='adjustFrame("'+obj+'")';
		timmer2=setTimeout(fu,1000);
		}
}		
function showFrame(title,x,y,w,h,r){
	if(isnull(x)) x=dd.elements.frame.x;
	if(isnull(y)) y=dd.elements.frame.y;
	w+=2*clientarea_margin;
	h+=titlebar_h+toolbar_h+statusbar_h+2*clientarea_margin;
	$('titleBarSpan').innerHTML=title;
	resizeWindow(x,y,w,h);
	setWindowStatus(r);
	adjustFrame('frame')	
}
function clearFrame(){
  $('titleBarSpan').innerHTML='';
	$('clientarea').innerHTML='';
	clearACmQ();
	
}
function hideFrame(){
	clearFrame();
	dd.elements.frame.hide();
  dd.elements.clientarea.hide();
  dd.elements.resizehandle.hide();
  dd.elements.titlebar.hide();
  clearACmQ();

}
function setWindowStatus(resize){
	if(resize==1){
		dd.elements.resizehandle.show();
		dd.elements.resizebutton.show();
		dd.elements.maxbutton.show();		
	}
	else{
		dd.elements.resizehandle.hide();
		dd.elements.resizebutton.hide();
		dd.elements.maxbutton.hide();		
	}
	
}
function showLayer(obj,w,h){	
	showFrame("²âÊÔWindows´°Ìå",200,200,w+2*clientarea_margin,h+titlebar_h+toolbar_h+statusbar_h+2*clientarea_margin,0)
	if(eval('dd.elements.'+obj).visible) return;
	eval('dd.elements.'+obj).resizeTo(w,h);
	eval('dd.elements.'+obj).moveTo(dd.elements.clientarea.x, dd.elements.clientarea.y);
	eval('dd.elements.'+obj).show();	
	dd.elements.clientarea.addChild(obj);
}
/*
initWindow(200,200,300,240);
showFrame("²âÊÔWindows´°Ìå",200,200,500,340,0);

*/

  function getLeft(e){   
  var ret=e.offsetLeft;
  while(e=e.offsetParent)ret+=e.offsetLeft;
  return ret;   
  }   
  function getTop(e){   
  var ret=e.offsetTop;
  while(e=e.offsetParent)ret+=e.offsetTop;
  return ret;   
  }   
  function getHeight(e){   
    return e.offsetHeight;   
  }   
  function getWidth(e){   
    return e.offsetWidth;
  }   

  function copyDlyr(e){
    $('dlyr').innerHTML=e.innerHTML;    
  }
  
  function adjustDlyr(e){
    copyDlyr(e);
    dd.elements.dlyr.resizeTo(getWidth(e),getHeight(e));
    if(document.all)
      dd.elements.dlyr.moveTo(getLeft(e)+1,getTop(e)+1);
    else 
      dd.elements.dlyr.moveTo(getLeft(e),getTop(e));
  }
  
  function backUp(i){
    return '<div id="alyr'+paperMap[i].tm_id+'" onclick="javascript:cur('+i+')" class="lyrCls">'+$('alyr'+paperMap[i].tm_id).innerHTML+'</div>';
  }
  
   function  createDlyr(e){
    $('lyr').innerHTML='';
    new Insertion.Bottom('lyr', dlyr);
    ADD_DHTML('dlyr');
    adjustDlyr(e);
  }
  
  function clearDlyr(){
    try{
    $('dlyr').innerHTML='';
    new Element.remove('dlyr');
     }catch(ex){}
  }
  var lyr=new Array();
  var dlyr='<div id="dlyr" class="dlyrCls"></div>';
  var curLyr=-1;
  var beforeFlag=1;
  
  function cur(i){    
    try{
        clearDlyr();
     }catch(ex){}
    
    {
      curLyr=i;
      createDlyr($('alyr'+paperMap[i].tm_id));
      }
     
  }
  function newPosition(){
    var newLyr='';
    for(var i=0;i<paperMap.length;i++){
      newLyr=checkPosition('alyr'+paperMap[i].tm_id);
      if(newLyr!='') break;
    }
    if(newLyr=='') {
      clearDlyr();
      createDlyr($('alyr'+paperMap[curLyr].tm_id));
      return;
    }
    if(curLyr==-1) return ;
    if('alyr'+paperMap[curLyr].tm_id==newLyr)return;
    var tmpLyr=backUp(curLyr);
    new Element.remove('alyr'+paperMap[curLyr].tm_id);
    if(beforeFlag==1)
      new Insertion.Before(newLyr, tmpLyr);
    else
      new Insertion.After(newLyr, tmpLyr);
    p_sortPNo();
    clearDlyr();
    createDlyr($('alyr'+paperMap[curLyr].tm_id));
   
}
 function checkPosition(objName){
  try{
    var fw=parseInt(getWidth($(objName)));;
    var x,y,h;
    var dx,dy;
    x=parseInt(getLeft($(objName)));
    y=parseInt(getTop($(objName)));
    h=parseInt(getHeight($(objName)));
    dx=parseInt(dd.elements.dlyr.x);
    dy=parseInt(dd.elements.dlyr.y);
    var newLyr='';
    if(dx+fw>x+fw/2 && dx<=x+fw/2 && dy>=y && dy<y+h ){
      newLyr=objName;
      beforeFlag=(dy>=y && dy<y+h/2)?1:2;
  
    }
    return newLyr; 
  }catch(ex){return '';}  
  }