function createPanel(objId, panelData, panelClass)
 {this.id = objId;          //panel object id

  /* define classes */
  if (panelClass==null || panelClass=="") {alert("panelClass not exist in input parameters");return}
  this.classes = new Array(panelClass.length-1);
  for (i=0;i<panelClass.length;i++)
    {strArray = panelClass[i].split("|");
     this.classes[strArray[0]] = new Object();
     this.classes[strArray[0]].overclass = strArray[0];
     this.classes[strArray[0]].baseclass = strArray[1];
    }

  /* define panels */
  if (panelData==null || panelData=="") {alert("panelData not exist in input parameters");return}
  this.panels = new Array(panelData.length-1);
  for (i=0;i<panelData.length;i++)
    {strArray = panelData[i].split("|");
     if (strArray[0]==null || strArray[0]=="") {alert("first element ID in panelData not exists");return;}
     if (i==0) this.prevId = strArray[0];

     this.panels[strArray[0]] = new Array(parseInt(strArray.length/2)-1);
     for (j=0;j<strArray.length;j+=2)
       {this.panels[strArray[0]][j/2] = new Object();
        this.panels[strArray[0]][j/2].tag = document.getElementById(strArray[j]);
        this.panels[strArray[0]][j/2].tagClass = strArray[j+1];
        if (this.panels[strArray[0]][j/2].tag==null && j==2) this.prevId = strArray[0];
        if (this.panels[strArray[0]][j/2].tag==null && j!=2) {alert(strArray[j]+" panel tag not exist");return;}
        if (this.panels[strArray[0]][j/2].tagClass==null || this.panels[strArray[0]][j/2].tagClass=="") 
           {if (j!=2) {alert(strArray[j]+" - "+strArray[j+1]+" panel-tag class not exist in "+strArray[0]);return;}}
         else if (this.classes[this.panels[strArray[0]][j/2].tagClass].baseclass==null) {alert(strArray[j]+" - "+strArray[j+1]+" panel-class base-class not exist");return;}
       }
    }

  /* define methods */
  this.show = function(tagId)
    {for (i=0;i<this.panels[this.prevId].length;i++)
       {if (this.panels[this.prevId][i].tag==null && i==1) this.showAll(0);
         else this.panels[this.prevId][i].tag.className=this.classes[this.panels[this.prevId][i].tagClass].baseclass;
       }

     for (i=0;i<this.panels[tagId].length;i++)
       {if (this.panels[tagId][i].tag==null && i==1) this.showAll(1);
         else this.panels[tagId][i].tag.className=this.panels[tagId][i].tagClass;
       }

     this.prevId=tagId
    }

  this.showAll = function(showOn)
    {for (var j in this.panels)
       {if (this.panels[j].length>1)
         if (this.panels[j][1].tag!=null)
          {this.panels[j][1].tag.className=(showOn)?this.panels[j][1].tag.className=this.panels[j][1].tagClass:this.classes[this.panels[j][1].tagClass].baseclass;}
       }
    }


  /* init panels */
  if (this.panels[this.prevId].length<2) this.showAll(0);
    else if (this.panels[this.prevId][1].tag!=null) this.showAll(0);

  openId = location.search.split("get=")[1];
  if (openId!=null && openId>'') this.show("'"+openId+"'");

  for (i=0;i<this.panels[this.prevId].length;i++)
    {if (this.panels[this.prevId][i].tag!=null) this.panels[this.prevId][i].tag.className=this.panels[this.prevId][i].tagClass;}
 }
