/*****************************
*VAROS-VEZETO-ELIT alkalmazas*
*javascript/view/box.js      *
*L. M.: 2008-03-15           *
*****************************/
/*******************************************************************************
*oView osztaly az egyes elemek megjelenitese a feladata                        *
*Az osztaly feltetelezi egy doboz CSS letezeset, ahol definialva van:          *
*maga a doboz,                                                                 *
*a doboz fejlece, cime,                                                        *
*es a doboz tartalma.                                                          *
*Ha ikonsorra is szukseg van, akkor annak felsorolasnak (ul) kell lenni.       *
*                                                                              *
*VALTOZOK                                                                      *
*parentElement: az az elem, amihez hozza akarjuk adni az uj elemet             *
*                                                                              *
*FUGGVENYEK                                                                    *
*initialize:     az osztaly konstruktora                                       *
*getId:          id alapjan keresi meg a szuloelemet                           *
*getClass:       class alapjan keresi meg a szuloelemet                        *
*shoSimpleBox:   egy egyszeru doboz kirajzolasa fejlec, cim, ikonok nelkul     *
*showBox:        egy doboz kirajzolasanak vezerlometodusa                      *
*boxHeadContent: a doboz fejlecenek kirajzolasa                                *
*boxText:        szoveg kiiratasa                                              *
*boxIcons:       a fejlec vezerlo ikonsoranak kirajzolasa                      *
*setIconList:    az ikonsor elemeinek elkeszitese                              *
*******************************************************************************/
oView={};

oView.initialize=function(styleDisplay)
{
  this.setStyleDisplay(styleDisplay);
}

oView.setStyleDisplay=function(styleDisplay)
{
  this.styleDisplay=styleDisplay;
}

oView.getStyleDisplay=function()
{
  return this.styleDisplay;
}

oView.getId=function(sParentElement)
{
  return this.parentElement=document.getElementById(sParentElement);
}

oView.getClass=function(sTag,sParentElement)
{
  var tags=document.getElementsByTagName(sTag);
  for(var i=0;i<tags.length;i++)
  {
    if(tags[i].getAttribute('class')==sParentElement)
    {
      return this.parentElement=tags[i];
    }
  }
}

oView.showSimpleBox=function(sParentElement,sId,sClassName)
{
  var parent=document.getElementById(sParentElement);
  var newParag=document.createElement('div');
  
  if(sId)
  {
    newParag.setAttribute('id',sId);
  }
  if(sClassName){
    newParag.className=sClassName;
  }
  
  parent.appendChild(newParag);
  
  return newParag;
}

/*
*oView.showBox
*param:
*  sParentElement: szulocimke,
*  sId:            a cimke id-je (ha 0, akkor nincs),
*  sClassName:     a cimke osztalya,
*  sHeadClass:     a doboz fejenek osztalya,
*  sTitle:         a doboz cime, (ha 0, akkor nincs),
*  sContentClass:  a doboz tartalmanak osztalya,
*/
oView.showBox=function(sParentElement,sId,sClassName,sHeadClass,sTitle,
                       sContentClass)
{
  var parent=document.getElementById(sParentElement);
  var newParag=document.createElement('div');
  var newHead=oView.boxHeadContent(sHeadClass);
  var newContent=oView.boxHeadContent(sContentClass);
  if(sTitle)
  {
    var newHeadP=document.createElement('p');
    var newHeadText=oView.boxText(sTitle);
    newHeadP.appendChild(newHeadText);
    newHead.appendChild(newHeadP);
  }
  
  if(sId)
  {
    newParag.setAttribute('id',sId);
  }
  
  if(sClassName)
  {
    newParag.setAttribute('class',sClassName);
  }
  
  newParag.appendChild(newHead);
  newParag.appendChild(newContent);
  parent.appendChild(newParag);

  newContent.style.display=this.getStyleDisplay();
  
  return newParag;
}

oView.boxHeadContent=function(sClass)
{
  var newHead=document.createElement('div');
  
  newHead.setAttribute('class',sClass);
  
  return newHead;
}

oView.boxText=function(sText)
{
  var newText=document.createTextNode(sText);
  
  return newText;
}

/*
*oView.boxIcons
*param:
*  oBox:          doboz objektum,
*  sParentClass:  szulocimke osztalya,
*  sClassName:    az ikonsor osztalya,
*  classMin:      a minimalizalo ikon osztalya
*  classClose:    a bezaro ikon osztalya
*  classPrint:    a nyomtato ikon osztalya
*/
oView.boxIcons=function(oBox,sParentClass,sClassName,aMin,aClose,
                        aPrint,iPieces)
{
  var headClass=oBox.firstChild;
  var newIconsUl=oView.setIconList(oBox,aMin,aClose,aPrint,iPieces);
  
  if(headClass.getAttribute('class')==sParentClass)
  {
    var newIcons=document.createElement('div');
    newIcons.setAttribute('class',sClassName);
    newIcons.appendChild(newIconsUl);
    headClass.appendChild(newIcons);
  }
}

/*oView.SetIconList
 *param:
 *  oBox:   a szulo doboz
 *  aMin:   a minimalizalasert felelos adatok
 *  aClose: a bezarasert felelos adatok
 *  aPrint: a nyomtatatert felelos adatok
 *  4 elemu tombnek kell lennie:
 *  [0]: css osztaly
 *  [1]: title felirat
 *  [2]: alapallapotu ikon
 *  [3]: megvaltozott alapotu ikon
 */
oView.setIconList=function(oBox,aMin,aClose,aPrint,iPieces)
{
  var newUl=document.createElement('ul');
  
  if(aMin)
  {
    var minLiItem=oView.createIconLi(aMin);
    newUl.appendChild(minLiItem);
    oView.aDisplay(oBox,minLiItem,aMin[2],aMin[3],iPieces);
  }
  if(aClose)
  {
    var closeLiItem=oView.createIconLi(aClose[0]);
    newUl.appendChild(closeLiItem);
  }
  if(aPrint)
  {
    var printLiItem=oView.createIconLi(aPrint[0]);
    newUl.appendChild(printLiItem);
  }

  return newUl;
}

oView.createIconLi=function(aClassTitlePix)
{
  var newLiItem=document.createElement('li');
  var newAnchor=oView.setTextLinx(aClassTitlePix[1],aClassTitlePix[2]);
  
  newLiItem.setAttribute('class',aClassTitlePix[0]);
  newLiItem.appendChild(newAnchor);
  
  return newLiItem;
}

oView.setTextLinx=function(sText,sPic)
{
  var newAnchor=document.createElement('a');
  var newText=document.createTextNode(sText);
  
  if(sPic)
  {
    newAnchor.style.backgroundImage=sPic;
  }
  
  newAnchor.setAttribute('title',sText);
  newAnchor.setAttribute('href','javascript: void(0)');
  
  newAnchor.appendChild(newText);
  
  return newAnchor;
}

oView.aDisplay=function(oBox,element,aPix1,aPix2,iPieces)
{
  var liAnchor=element.firstChild;
  var id=oBox.getAttribute('id');
  liAnchor.style.backgroundImage=aPix1;
  if(iPieces==1)
  {
    liAnchor.setAttribute("onclick","javascript: oView.changeDisplay('"+id+"','"+aPix1+"','"+aPix2+"')");
  }
  else
  {
    liAnchor.setAttribute("onclick","javascript: oView.changeDisplay('"+id+"','"+aPix1+"','"+aPix2+"'); sizeExpand('found','menu')");
  }
}

oView.changeDisplay=function(id,aPix1,aPix2)
{
  var parag=document.getElementById(id);
  var content=parag.childNodes[1];
  var liElement=parag.childNodes[0].childNodes[1].childNodes[0].childNodes[0].childNodes[0];
  
  if(content.style.display=='block')
  {
    content.style.display='none';
    liElement.style.backgroundImage=aPix2;
  }
  else
  {
    content.style.display='block';
    liElement.style.backgroundImage=aPix1;
  }
}

oView.setLiList=function(sParent,aLiElements,sClass)
{
  var newUl=document.createElement('ul');
  for(var i=0;i<aLiElements.length;i++)
  {
    var newLi=document.createElement('li');
    var newAnchor=oView.setTextLinx(oView.specialCharEkezet(aLiElements[i],0));
	
	newLi.setAttribute('class',sClass);
    
    newLi.appendChild(newAnchor);
    newUl.appendChild(newLi);
  }
  
  return sParent.appendChild(newUl);
}

oView.setAnchorOnClick=function(sAnchorElement,sFunction)
{
  sAnchorElement.setAttribute("onclick","javascript:"+sFunction);
}


oView.specialCharSafe=function(text)
{
  var e=[
    ["\u00E1", "&#225;"], //á
    ["\u00C1", "&#193;"], //Á
    ["\u00E9", "&#233;"], //é
    ["\u00C9", "&#201;"], //É
    ["\u00ED", "&#237;"], //í
    ["\u00CD", "&#205;"], //Í
    ["\u00F3", "&#243;"], //ó
    ["\u00D3", "&#211;"], //Ó
    ["\u00F6", "&#246;"], //ö
    ["\u00D6", "&#214;"], //Ö
    ["\u0151", "&#337;"], //õ
    ["\u0150", "&#336;"], //Õ
    ["\u00FA", "&#250;"], //ú
    ["\u00DA", "&#218;"], //Ú
    ["\u00FC", "&#252;"], //ü
    ["\u00DC", "&#220;"], //Ü
    ["\u0171", "&#369;"], //û
    ["\u0170", "&#368;"], //Û
    ["\u201E", "&#8222;"], //magyar also idezojel
    ["\u201D", "&#8221;"], //magyar felso idezojel
    ["\u00E4", "&#228;"], //ä
    ["\u00C4", "&#196;"], //Ä
    ["\u00EB", "&#235;"], //ë
    ["\u00CB", "&#203;"], //Ë
    ["\u00DF", "&#223;"], //ß
    ["\u2663", "&#9827;"], //clubs
    ["\u2666", "&#9830;"], //diams
    ["\u2660", "&#9824;"], //spades
    ["\uFFFD", ""], //&shy; fixalasa
    ["&", "%26"] //a POST-ban elkuldott szovegben nem lehet "&" jel
  ];

 for (var i=0; i<e.length; i++)
 {
   text = text.replace(e[i][0],e[i][1],"g");
 }

 return text;
} 

oView.specialCharEkezet=function(text)
{
  var e=[
    ["á", "&#225;"], //á
    ["Á", "&#193;"], //Á
    ["é", "&#233;"], //é
    ["É", "&#201;"], //É
    ["í", "&#237;"], //í
    ["Í", "&#205;"], //Í
    ["ó", "&#243;"], //ó
    ["Ó", "&#211;"], //Ó
    ["ö", "&#246;"], //ö
    ["Ö", "&#214;"], //Ö
    ["õ", "&#337;"], //õ
    ["Õ", "&#336;"], //Õ
    ["ú", "&#250;"], //ú
    ["Ú", "&#218;"], //Ú
    ["ü", "&#252;"], //ü
    ["Ü", "&#220;"], //Ü
    ["û", "&#369;"], //û
    ["Û", "&#368;"], //Û
  ];

 for (var i=0; i<e.length; i++)
 {
   text = text.replace(e[i][1],e[i][0],"g");
 }

 return text;
}

oView.initialize('block');

