function panelClass(controler,path,linknode,defaulttitle)
{
 this.bIE=(navigator.appName.indexOf("Microsoft")!=-1);
 this.bFF=(navigator.appName.indexOf("Netscape")!=-1);
 this.controler=controler;
 this.thispath=path; 
 this.index=linknode.getAttribute("index"); 
 this.message=linknode.getAttribute("acpaneltext");
 if(defaulttitle==null)
 {
  this.acpaneltitle=linknode.getAttribute("acpaneltitle");
 }
 else
 {
  this.acpaneltitle=defaulttitle;
 }
 this.link="";
 this.linkmore="";
 this.layersnode=document.getElementById("acLayers");
 this.node=null;
 this.boxnode=null;
 this.topcurenode=null;
 this.bottomnode=null;
 this.closenode=null;
 this.handlenode=null;
 this.posLink=new positionInfo(0,0,0,0);
 this.posPanel=new positionInfo(0,0,0,0);
 this.bdragged=false;
 this.linkPosition=[true,true]; 
  
 this.createPanel=function()
 {  
  var aclayer=document.createElement("div");  
  aclayer.className="acLayer";
  aclayer.id="acLayer"+this.index;
  this.node=aclayer;
  
  var content="<div class='acPlate' id='acPlate"+this.index+"' onmouseover='"+this.controler.classname+".descriptionMouseOver(this,"+this.index+");' "+
    "onmouseout='"+this.controler.classname+".descriptionMouseOut(this,"+this.index+")'>"+
    "<div class='top_curve' id='acTopCurve"+this.index+"'></div>"+
    "<div class='acBox' id='acBox"+this.index+"'>"+
    "<table class='frameBar' cellspacing='0' cellpadding='0' border='1'><tbody><tr><td class='frameBarCell'>"+
    "<a style='position: relative'>"+
    "<img onmouseover=\"this.src = '"+this.thispath+"logo_o.gif'\" onmouseout=\"this.src = '"+this.thispath+"logo.gif'\" "+
    " height='16' alt='logo' src='"+this.thispath+"logo.gif' width='78'></a></td>"+
    "<td class='frameBarCell'><a style='position: relative' href='simplepanel.html'>"+
    "<img onmouseover=\"this.src = '"+this.thispath+"question_o.gif'\" onmouseout=\"this.src = '"+this.thispath+"question.gif'\" height='16' alt='?' src='"+this.thispath+"question.gif' width='15'></a></td>"+
    "<td class='handleTd' style='position: relative;vertical-align:top;'> <div id='acHandle"+this.index+"' style='position:absolute;top:-5px;'>"+
    "<img height='1' alt='' src='"+this.thispath+"blank.gif' width='1'><center><span class='acLayerTitle'>"+this.acpaneltitle+"</span></center></div></td>"+
    "<td class='frameBarCell_right' style='width: 71px; height: 12px' align='right'></td></tr></tbody></table>"+
    "<div class='acDescDiv' style='position: relative'><table class='table02' cellspacing='0' cellpadding='0' border='0'>"+
    "<tbody><tr>"+
   "<td colspan='2'></td>"+
    "</tr><tr><td rowspan='3'></td><td class='acLayerDesc'>"+ this.message+"</td></tr></tbody></table></div>"+
    "<table class='table03' style='position: relative' cellspacing='0' cellpadding='0' border='0'>"+
    "<tbody><tr class='acLayerLinks'><td class='site' style='position: relative' colspan='2'>"+
    "<a onclick=\"this.removeAttribute('href')\" href='"+this.link+"'>"+this.link+"</a></td>"+
    "</tr></tbody></table></div><div class='acBottomBox' id='acBottom"+this.index+"'></div></div>"+
    "<div class='acCloseButton' id='acCloseButton"+this.index+"' onclick='"+this.controler.classname+".closePanel("+this.index+");'><a style='cursor: pointer'>"+
    "<img onmouseover=\"this.src = '"+this.thispath+"close_o.gif'\" onmouseout=\"this.src = '"+this.thispath+"close.gif'\" height='13' alt='Close' src='"+this.thispath+"close.gif' width='13'></a></div>";

  aclayer.innerHTML=content;
  this.layersnode.appendChild(aclayer);

  this.node=document.getElementById("acLayer"+this.index);  
  this.boxnode=document.getElementById("acBox"+this.index);
  this.topcurvenode=document.getElementById("acTopCurve"+this.index);
  this.bottomnode=document.getElementById("acBottom"+this.index);
  this.closenode=document.getElementById("acCloseButton"+this.index);
  this.handlenode=document.getElementById("acHandle"+this.index);  
 }
 
 this.setPanelImage=function(bMouseOver)
 {
  var topcurveimg,topcurveimg_o,bottomimg,bottomimg_o,topcurveimg_drag,bottomimg_drag,bottomimg_drag_o;
  if(this.linkPosition[0])
  {
   this.closenode.className="acCloseButton";
   this.topcurvenode.className="top_curve";
   this.handlenode.style.top="-5px";
   if(this.linkPosition[1]) //bottom ,right
   {
    topcurveimg=this.thispath+"top_curve.png";
    topcurveimg_o=this.thispath+"top_curve.png";
    bottomimg=this.thispath+"box_bottom_right.png";
    bottomimg_o=this.thispath+"box_bottom_right_o.png";
    topcurveimg_drag=this.thispath+"top_curve.png";
    bottomimg_drag=this.thispath+"box_bottom_drag.png";
    bottomimg_drag_o=this.thispath+"box_bottom_drag_o.png";
   }
   else //bottom,left
   {
    topcurveimg=this.thispath+"top_curve.png";
    topcurveimg_o=this.thispath+"top_curve.png";
    bottomimg=this.thispath+"box_bottom.png";
    bottomimg_o=this.thispath+"box_bottom_o.png";
    topcurveimg_drag=this.thispath+"top_curve.png";
    bottomimg_drag=this.thispath+"box_bottom_drag.png";
    bottomimg_drag_o=this.thispath+"box_bottom_drag_o.png";
   }
  }
  else
  {
   this.closenode.className="acCloseButton2";
   this.topcurvenode.className="drop_top_curve";
   this.handlenode.style.top=this.bFF?"18px":"-3px";
   if(this.linkPosition[1])  //top,right
   {
    topcurveimg=this.thispath+"drop_top_curve_right.png";
    topcurveimg_o=this.thispath+"drop_top_curve_right.png";
    bottomimg=this.thispath+"box_bottom_drag.png";
    bottomimg_o=this.thispath+"box_bottom_drag_o.png";
    topcurveimg_drag=this.thispath+"drop_box_top_drag.png";
    bottomimg_drag=this.thispath+"box_bottom_drag.png";
    bottomimg_drag_o=this.thispath+"box_bottom_drag_o.png";
   }
   else //top,left
   {
    topcurveimg=this.thispath+"drop_top_curve.png";
    topcurveimg_o=this.thispath+"drop_top_curve.png";
    bottomimg=this.thispath+"box_bottom_drag.png";
    bottomimg_o=this.thispath+"box_bottom_drag_o.png";
    topcurveimg_drag=this.thispath+"drop_box_top_drag.png";
    bottomimg_drag=this.thispath+"box_bottom_drag.png";
    bottomimg_drag_o=this.thispath+"box_bottom_drag_o.png";    
   }
  }
  
  if(!this.bFF)
  {
   this.topcurvenode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+topcurveimg+"',sizingMethod='image')";
   if(bMouseOver)
   {
    this.boxnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.thispath+"top_box_o.gif',sizingMethod='crop')";
    if(!this.bdragged)
    {
     this.topcurvenode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+topcurveimg_o+"',sizingMethod='image')";
     this.bottomnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bottomimg_o+"',sizingMethod='crop')";
    }
    else
    {
     this.topcurvenode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+topcurveimg_drag+"',sizingMethod='image')";
     this.bottomnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bottomimg_drag_o+"',sizingMethod='crop')";
    }
   }
   else
   {
    this.boxnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.thispath+"top_box.gif',sizingMethod='crop')";
    if(!this.bdragged)
    {
     this.topcurvenode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+topcurveimg+"',sizingMethod='image')";
     this.bottomnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bottomimg+"',sizingMethod='crop')";
    }
    else
    {
     this.topcurvenode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+topcurveimg_drag+"',sizingMethod='image')";
     this.bottomnode.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bottomimg_drag+"',sizingMethod='crop')";
    }
   }
  }
  else
  {
   this.bottomnode.style.backgroundRepeat="no-repeat";
   this.topcurvenode.style.backgroundImage="url("+topcurveimg+")";
   if(bMouseOver)
   {
    this.boxnode.style.backgroundImage="url("+this.thispath+"top_box_o.gif)";
    if(!this.bdragged)
    {
     this.topcurvenode.style.backgroundImage="url("+topcurveimg_o+")";
     this.bottomnode.style.backgroundImage="url("+bottomimg_o+")";
    }
    else
    {
     this.topcurvenode.style.backgroundImage="url("+topcurveimg_drag+")";
     this.bottomnode.style.backgroundImage="url("+bottomimg_drag_o+")";
    }
   }
   else
   {
    this.boxnode.style.backgroundImage="url("+this.thispath+"top_box.gif)";
    if(!this.bdragged)
    {
     this.topcurvenode.style.backgroundImage="url("+topcurveimg+")";
     this.bottomnode.style.backgroundImage="url("+bottomimg+")";
    }
    else
    {
     this.topcurvenode.style.backgroundImage="url("+topimg_drag+")";
     this.bottomnode.style.backgroundImage="url("+bottomimg_drag+")";
    }
   }
  }
 }
  
 this.getLinkPos=function(objLink)
 {
  var x=y=0;
  x+=objLink.offsetLeft;
  y+=objLink.offsetTop;
  
  this.posLink.left=x;
  this.posLink.top=y;
  this.posLink.right=x+objLink.offsetWidth;
  this.posLink.bottom=y+objLink.offsetHeight;
  
  return this.posLink;
 }
 
 this.getLinkPosition=function(posLink)
 {
  var body=document.documentElement;
  var hTbep=body.clientHeight;  //body.clientHeight
  var WamDC=body.clientWidth;   //body.clientWidth
  var Ar2O4=body.scrollTop;  //body.scrollTop
  var eDRIC=body.scrollLeft;  //body.scrollLeft
  var Xc1aX=(posLink.top-this.node.offsetHeight-Ar2O4);  
  var omHDN=hTbep-(posLink.bottom+this.node.offsetHeight-Ar2O4);   
  var areas=[true,true];//top(false),left(false)
  var oQlF4=true;
  var aq5Rn=false;
  
  //alert(["cH:"+hTbep,"cW:"+WamDC,"sT:"+Ar2O4,"sL:"+eDRIC,Xc1aX,omHDN,this.node.offsetHeight]);
  if(omHDN<0&&omHDN<Xc1aX)
  {
   oQlF4=true;
  }
  else if(Xc1aX<0)
  {
   oQlF4=false;
  }
  var Bsce3=posLink.right-eDRIC+this.node.offsetWidth;
  var wJPza=WamDC-(posLink.left-eDRIC+this.node.offsetWidth);
  if(Bsce3<0&&Bsce3<wJPza)
  {
   aq5Rn=false;
  }
  else if(wJPza<0)
  {
   aq5Rn=true;
  }
    
  areas[0]=oQlF4;
  areas[1]=aq5Rn;
  //alert(areas);

  return areas;
 }

 this.setPanelPos=function(objLink)
 {
  var posLink=new positionInfo(0,0,0,0);
  posLink=this.getLinkPos(objLink);
  var areas=[true,true];
  areas=this.getLinkPosition(posLink);
  this.linkPosition=areas;
  var nodeSrc=this.node;
  
  var nodeH=nodeSrc.offsetHeight;
  var nodeW=nodeSrc.offsetWidth;  
  
  //if top
  if(areas[0])
  {
   this.posPanel.top=posLink.top-nodeH;
  }
  else
  {
   this.posPanel.top=posLink.bottom;
  }
  //if left
  if(areas[1])
  {
   this.posPanel.left=posLink.left-280;
  }
  else
  {
   this.posPanel.left=posLink.left+Math.round((posLink.right-posLink.left)/2)-10;
  }

  this.posPanel.right=this.posPanel.left+nodeW;
  this.posPanel.bottom=this.posPanel.top+nodeH;
  nodeSrc.style.left=this.posPanel.left+'px';
  nodeSrc.style.top=this.posPanel.top+'px';
  nodeSrc.style.position='absolute';
 }
 
 this.showPanel=function(linknode)
 {
  this.createPanel();
  this.bdragged=false; 
  this.node.style.visibility="visible";
  this.closenode.style.visibility="visible";  
  this.setPanelPos(linknode);
  this.setPanelImage(false);
 }
 
 this.linkMouseOver=function(linknode)
 {
  this.showPanel(linknode);  
 }
 
 this.linkMouseOut=function(linknode,index)
 {
  ;
 }
 
 this.descriptionMouseOver=function(linknode,index)
 {  
  this.closenode.style.visibility="visible";
  this.setPanelImage(true);
 }
 
 this.descriptionMouseOut=function(linknode,index)
 {
  this.setPanelImage(false);
 }
 
 this.onDocClick=function()
 {
  ;
 }
 
 this.closePanel=function()
 {
  var panelnode=document.getElementById("acLayer"+this.index);
  var closenode=document.getElementById("acCloseButton"+this.index);
  panelnode.style.visibility="hidden";
  closenode.style.visibility="hidden";
 }
 
 this.onDragStart=function()
 {
  this.bdragged=true;
  this.setPanelImage(true);
 }
 
 this.onDragEnd=function()
 {
  this.setPanelImage(true);  
 }
}

function positionInfo(x,y,w,h)
{
 this.left=x;
 this.right=x+w;
 this.top=y;
 this.bottom=y+h;
};

function acPanelControler(classname,tagname,path,panelcontrol,defaulttitle)
{
 this.aPanels=new Array();
 this.thispath=path;
 this.tagname=tagname;
 this.classname=classname;
 if(panelcontrol==null)
 {
  this.acpanelcontrol=1;
 }
 else
 {
  this.acpanelcontrol=panelcontrol;
 }
 var me=this;

 this.showPanels=function(logo,logo_o)
 {
  var objlinks=document.getElementsByTagName(this.tagname);
  var index=0;
 
  for(var i=0;i<objlinks.length;i++)
  {
   var objlink=objlinks[i];
   if(objlink.getAttribute("acpaneltype")){
    objlink.setAttribute("index",index);
    objlink.onmouseover=function(){me.linkMouseOver(this);};
    if(objlink.getAttribute("acpaneltype")=="load"){
     if(this.aPanels[index]==null){
      this.aPanels[index]=new panelClass(this,this.thispath,objlink,defaulttitle);
     }
     var panel=this.aPanels[index];
     panel.linkMouseOver(objlink);
    }
     index++;
  }
  }
 }

 this.showPanelById=function(id)
 {
  var linknode=document.getElementById(id);
  if(this.acpanelcontrol==1)
  {
   for(var id=0;id<this.aPanels.length;id++)
   {
    var objPanel=this.aPanels[id];
    if(objPanel!=null)
    {
     objPanel.closePanel(id);
    }
   }
  }
  
  var index=linknode.getAttribute("index");
  if(this.aPanels[index]==null)
  {
   this.aPanels[index]=new panelClass(this,this.thispath,linknode,defaulttitle);
  }
  var panel=this.aPanels[index];
  panel.linkMouseOver(linknode); 
 }

 this.closePanel=function(index)
 {
  var panel=this.aPanels[index];
  panel.closePanel();
 }

 this.linkMouseOver=function(linknode)
 {
  if(this.acpanelcontrol==1)
  {
   for(var id=0;id<this.aPanels.length;id++)
   {
    var objPanel=this.aPanels[id];
    if(objPanel!=null)
    {
     objPanel.closePanel(id);
    }
   }
  }
  
  var index=linknode.getAttribute("index");
  if(this.aPanels[index]==null)
  {
   this.aPanels[index]=new panelClass(this,this.thispath,linknode,defaulttitle);
  }
  var panel=this.aPanels[index];
  panel.linkMouseOver(linknode); 
 }

 this.linkMouseOut=function(node,index)
 {
  var panel=this.aPanels[index];
  panel.linkMouseOut(node,index);
 }

 this.descriptionMouseOver=function(node,index)
 {
  var panel=this.aPanels[index];
  //alert(this.aWHNZ);
  aWHNZ.init(panel.handlenode,panel.node);
  
  panel.node.onDragStart=function(){panel.onDragStart();};
  panel.node.onDragEnd=function(){panel.onDragEnd();};
  
  panel.descriptionMouseOver(node,index);
 }

 this.descriptionMouseOut=function(node,index)
 {
  var panel=this.aPanels[index];
  panel.descriptionMouseOut(node,index);
 }


 //drag and drop panel functions
 var aWHNZ={obj:null,
  init:function(JH1yJ,idNJr,lyOrm,lEtPY,p84wV,v3TIF,TxeUk,hpfPl,VpQPk,pLm0H)
  {
   JH1yJ.onmousedown=aWHNZ.start;   
   JH1yJ.XDkiO=TxeUk?false:true;
   JH1yJ.NfqoG=hpfPl?false:true;
   JH1yJ.drPdX=idNJr&&idNJr!=null?idNJr:JH1yJ;
   if(JH1yJ.XDkiO&&isNaN(parseInt(JH1yJ.drPdX.style.left)))
    JH1yJ.drPdX.style.left="0px";
   if(JH1yJ.NfqoG&&isNaN(parseInt(JH1yJ.drPdX.style.top)))
    JH1yJ.drPdX.style.top="0px";
   if(!JH1yJ.XDkiO&&isNaN(parseInt(JH1yJ.drPdX.style.right)))
    JH1yJ.drPdX.style.right="0px";
   if(!JH1yJ.NfqoG&&isNaN(parseInt(JH1yJ.drPdX.style.bottom)))
    JH1yJ.drPdX.style.bottom="0px";
   JH1yJ.lyOrm=typeof lyOrm!='undefined'?lyOrm:null;
   JH1yJ.p84wV=typeof p84wV!='undefined'?p84wV:null;
   JH1yJ.lEtPY=typeof lEtPY!='undefined'?lEtPY:null;
   JH1yJ.v3TIF=typeof v3TIF!='undefined'?v3TIF:null;
   JH1yJ.r_Hb6=VpQPk?VpQPk:null;
   JH1yJ.x2gZl=pLm0H?pLm0H:null;
   JH1yJ.drPdX.onDragStart=new Function();
   JH1yJ.drPdX.onDragEnd=new Function();
   JH1yJ.drPdX.LY1G9=new Function();
  },
  start:function(e)
  {
   var JH1yJ=aWHNZ.obj=this;
   e=aWHNZ.fixE(e);
   var y=parseInt(JH1yJ.NfqoG?JH1yJ.drPdX.style.top:JH1yJ.drPdX.style.bottom);
   var x=parseInt(JH1yJ.XDkiO?JH1yJ.drPdX.style.left:JH1yJ.drPdX.style.right);
   JH1yJ.drPdX.onDragStart(x,y);
   JH1yJ.r8oJ6=e.clientX;JH1yJ.GDX4H=e.clientY;
   if(JH1yJ.XDkiO)
   {
    if(JH1yJ.lyOrm!=null)
     JH1yJ.Z9RcL=e.clientX-x+JH1yJ.lyOrm;
    if(JH1yJ.lEtPY!=null)
     JH1yJ.yCS23=JH1yJ.Z9RcL+JH1yJ.lEtPY-JH1yJ.lyOrm;
   }
   else
   {
    if(JH1yJ.lyOrm!=null)
     JH1yJ.yCS23=-JH1yJ.lyOrm+e.clientX+x;
    if(JH1yJ.lEtPY!=null)
     JH1yJ.Z9RcL=-JH1yJ.lEtPY+e.clientX+x;
   }
   if(JH1yJ.NfqoG)
   {
    if(JH1yJ.p84wV!=null)
     JH1yJ.ICvKT=e.clientY-y+JH1yJ.p84wV;
    if(JH1yJ.v3TIF!=null)
     JH1yJ.C88Eo=JH1yJ.ICvKT+JH1yJ.v3TIF-JH1yJ.p84wV;
    }
    else
    {
     if(JH1yJ.p84wV!=null)
      JH1yJ.C88Eo=-JH1yJ.p84wV+e.clientY+y;
     if(JH1yJ.v3TIF!=null)
      JH1yJ.ICvKT=-JH1yJ.v3TIF+e.clientY+y;
    }
    document.onmousemove=aWHNZ.drag;
    document.onmouseup=aWHNZ.end;
    return false;
   },
   drag:function(e)
   {
    e=aWHNZ.fixE(e);
    var JH1yJ=aWHNZ.obj;
    var B2a4D=e.clientY;
    var EQiny=e.clientX;
    var y=parseInt(JH1yJ.NfqoG?JH1yJ.drPdX.style.top:JH1yJ.drPdX.style.bottom);
    var x=parseInt(JH1yJ.XDkiO?JH1yJ.drPdX.style.left:JH1yJ.drPdX.style.right);
    var XQuQU,UW9uH;
    if(JH1yJ.lyOrm!=null)
     EQiny=JH1yJ.XDkiO?Math.max(EQiny,JH1yJ.Z9RcL):Math.min(EQiny,JH1yJ.yCS23);
    if(JH1yJ.lEtPY!=null)
     EQiny=JH1yJ.XDkiO?Math.min(EQiny,JH1yJ.yCS23):Math.max(EQiny,JH1yJ.Z9RcL);
    if(JH1yJ.p84wV!=null)
     B2a4D=JH1yJ.NfqoG?Math.max(B2a4D,JH1yJ.ICvKT):Math.min(B2a4D,JH1yJ.C88Eo);
    if(JH1yJ.v3TIF!=null)
     B2a4D=JH1yJ.NfqoG?Math.min(B2a4D,JH1yJ.C88Eo):Math.max(B2a4D,JH1yJ.ICvKT);
    XQuQU=x+((EQiny-JH1yJ.r8oJ6)*(JH1yJ.XDkiO?1:-1));
    UW9uH=y+((B2a4D-JH1yJ.GDX4H)*(JH1yJ.NfqoG?1:-1));
    if(JH1yJ.r_Hb6)
     XQuQU=JH1yJ.r_Hb6(y);
    else if(JH1yJ.x2gZl)
     UW9uH=JH1yJ.x2gZl(x);
    aWHNZ.obj.drPdX.style[JH1yJ.XDkiO?"left":"right"]=XQuQU+"px";
    aWHNZ.obj.drPdX.style[JH1yJ.NfqoG?"top":"bottom"]=UW9uH+"px";
    aWHNZ.obj.r8oJ6=EQiny;aWHNZ.obj.GDX4H=B2a4D;
    aWHNZ.obj.drPdX.LY1G9(XQuQU,UW9uH);
    return false;
   },
   end:function()
   {
    document.onmousemove=null;
    document.onmouseup=null;
    aWHNZ.obj.drPdX.onDragEnd(parseInt(aWHNZ.obj.drPdX.style[aWHNZ.obj.XDkiO?"left":"right"]),parseInt(aWHNZ.obj.drPdX.style[aWHNZ.obj.NfqoG?"top":"bottom"]));
    aWHNZ.obj=null;
   },
   fixE:function(e)
   {
    if(typeof e=='undefined')
     e=window.event;
    if(typeof e.layerX=='undefined')
     e.layerX=e.offsetX;
    if(typeof e.layerY=='undefined')
     e.layerY=e.offsetY;
    return e;
   }
  };
}