/*******************************************************************************
 * JavaScript Documentum arkalkulator.js
 * Ezek a fv.-ek leginkább az árkalulátor működéséhez kellenek, de használom
 * őket más tartalmaknál is.
 * Tartalomtól függően töltődnek be.
 * tmp_tomb szerkezete: 
 * [0] = 'osszeg'
 * [1] = 'modul_id'
 * [2] = 'feltetel_modul_id'
 * [3] = 'aktiv'
 * [4] = 'kivalasztva'
 * [5] = 'modul_$index'
 * [6] = 'pipa_$index'
 ******************************************************************************/

// A tmp_tomb alapján megjeleníti az árlistát, és a díjakat.
// Figyelem! Nem végez ellenörzést, és nem állítgatja a tmp_tomb-öt, csak
// megjeleníti a tartalmát. Ha az aktív, és kiválasztott értékek rosszúl vannak
// a tömbben beállítva, akkor rosszúl fognak megjelenni.
function KepFrissit()
{
  szumma = 0;
  berlet = 0;
  szumma_engedmeny = 0;
  szumma_fizet = 0;
  for (i=0;i<tmp_tomb.length;i++)
  {
    if (tmp_tomb[i][3] == 1) //ha aktív
    {
      if (tmp_tomb[i][2] == fo_feltetel_modul_id) //ha főmodul
      {
        if (tmp_tomb[i][1] == fo_feltetel_modul_id) //ha főfőmodul
        {
          document.getElementById(tmp_tomb[i][5]).className = "fo_fo_modul";
        }
        else
        {
          document.getElementById(tmp_tomb[i][5]).className = "aktiv_modul";
        }
      }
      else //ha almodul
      {
        document.getElementById(tmp_tomb[i][5]).className = "aktiv_almodul";
        document.getElementById(tmp_tomb[i][6]).disabled = false;
      }
    }
    else //ha nem aktív, akkor deaktiválom
    {
      document.getElementById(tmp_tomb[i][6]).disabled = true;
      //ha almodul, akkor a pipát is kiveszem, és a stilusát is megváltoztatom
      if (tmp_tomb[i][2] != fo_feltetel_modul_id)
      {
        document.getElementById(tmp_tomb[i][5]).className = "inaktiv_almodul";
        document.getElementById(tmp_tomb[i][6]).checked = false;
      }
    }
    if (tmp_tomb[i][4] == 1) //ha ki van választva, bekerül a szummába
    {
     szumma += parseInt(tmp_tomb[i][0]);
     document.getElementById(tmp_tomb[i][6]).checked = true;
    }
    else
    {
      document.getElementById(tmp_tomb[i][6]).checked = false;
    }
  }
  //Ha sERPa/NM tulajdonos, akkor a másikra engedményt kap
  if (document.getElementById('nm_serpa_vagyok').checked)
   {
    szumma_fizet = Math.round(szumma*0.7);
    szumma_engedmeny = Math.round(szumma*0.3);
    szumma_engedmeny += '';
    var str = szumma_engedmeny.replace(/(\d\d\d)$/, " $1");
    str = str.replace(/(\d\d\d \d\d\d)$/, " $1");
    str = str.replace(/(\d\d\d \d\d\d \d\d\d)$/, " $1");
    document.getElementById('engedmeny').value = str;
    document.getElementById('engedmeny_szoveg').style.display = 'block';
    document.getElementById('engedmeny_blokk').style.display = 'block';
   }
  else
   {
    szumma_fizet = szumma;
    document.getElementById('engedmeny').value = "0";
    document.getElementById('engedmeny_szoveg').style.display = 'none';
    document.getElementById('engedmeny_blokk').style.display = 'none';
   }

  szumma_fizet += '';
  var str = szumma_fizet.replace(/(\d\d\d)$/, " $1");
  str = str.replace(/(\d\d\d \d\d\d)$/, " $1");
  str = str.replace(/(\d\d\d \d\d\d \d\d\d)$/, " $1");
  document.getElementById('ar').value = str;

  //A bérlet kiszámítása és megjelenítése
  berlet = szumma * berlet_szorzo;
  berlet += '';
  str = berlet.replace(/(\d\d\d)$/, " $1");
  str = str.replace(/(\d\d\d \d\d\d)$/, " $1");
  str = str.replace(/(\d\d\d \d\d\d \d\d\d)$/, " $1");
  document.getElementById('berlet').value = str;
}

// Elrakjuk cookie-ban a kiválasztott konfigurációt
function konf_allapot_elrak()
{
var str = '';
 for (i=0;i<tmp_tomb.length;i++)
  {
    str += tmp_tomb[i][1] + ':' + tmp_tomb[i][3] + ':' + tmp_tomb[i][4] + '/';
  };
  str = str.substring(0,str.length-1);
  SetCookie('tmp_tomb',str,1);
  SetCookie('fo_feltetel_modul_id',fo_feltetel_modul_id,1);
}

// A termék megváltozott, teljes adatlehívás kell!
function termek_valaszt(valasztott_termek)
{
  konf_allapot_elrak();
  self.location = 'index.php?tartalom=ajanlatker&temakor=' + valasztott_termek;
}

// A gépszám megváltozott, AJAX-al lekérem az új gépszámhoz tartozó modulárakat!
function gepszam_valaszt(gepszam)
{
  konf_allapot_elrak();

  xmlHttp = GetXmlHttpObject();
  if (xmlHttp == null)
   {
    alert ('Böngészője nem támogat AJAX-ot!');
    return;
   }
  var url='index.php?tartalom=ajax&kerelem=gepszam&gepszam_id='+gepszam;
  xmlHttp.onreadystatechange = gepszam_beallit;
  xmlHttp.open('GET',url,true);
  xmlHttp.send(null);
}

// AJAX-al érkezett modulárakat dolgozza be a tmp_tomb-be.
// Feltételezem, hogy minden modul képviseltetve van minden gépszám verziónál,
// ezért csak a modul_id és az összeg van lehívva.
function gepszam_beallit()
{
  if (xmlHttp.readyState == 4)
   {
    //alert('megjött');
    var xmlDoc=xmlHttp.responseXML.documentElement;
    var modul = xmlDoc.getElementsByTagName('modul');
    for (i=0;i<modul.length;i++)
     {
      modul_id = modul[i].getElementsByTagName('modul_id')[0].childNodes[0].nodeValue;
      for (j=0;j<tmp_tomb.length;j++)
       {
        if (tmp_tomb[j][1] == modul_id)
         {
          tmp_tomb[j][0] = modul[i].getElementsByTagName('osszeg')[0].childNodes[0].nodeValue;
          //Ha megtaláltam nem keresek tovább!
          break;
         }
       }
     }
    KepFrissit();
   }
}

// A tmp_tomb-böt visszaállítja a kezdeti állapotra
function tmp_tomb_alapra_allit()
{
      for (i=1;i<tmp_tomb.length;i++)
       {
        //ha főmodul feltéve, hogy nem virtuális modul
        if (tmp_tomb[i][2] == fo_feltetel_modul_id && tmp_tomb[i][0] != 0)
         {
          tmp_tomb[i][3] = 1; //aktiválom
         }
        // ha nem főmodul
        else
         {
          tmp_tomb[i][3] = 0; // deaktiválom
         }
        //A virtuális modulokat bepipálom az összes többit pipátlanítom.
        if (tmp_tomb[i][0] == 0)
         {
          tmp_tomb[i][4] = 1;
         }
        else
         {
          tmp_tomb[i][4] = 0;
         }
       }
}

// A kiválasztott tipikus konfiguráció szerint módosíja a tmp_tomb-öt.
function tipkonf_valaszt(konf)
{
if (konf == 'mindtorol')
  {
    tmp_tomb_alapra_allit();
    KepFrissit();
  }
else
  {
   xmlHttp = GetXmlHttpObject();
   if (xmlHttp == null)
    {
     alert ('Böngészője nem támogat AJAX-ot!');
     return;
    }
   var url='index.php?tartalom=ajax&kerelem=tipkonf&tipkonf_id='+konf;
   xmlHttp.onreadystatechange = tipkonf_beallit;
   xmlHttp.open('GET',url,true);
   xmlHttp.send(null);
  }
}

// AJAX-al érkezett tipkonf beállítást aktualizálja.
function tipkonf_beallit()
{
  if (xmlHttp.readyState == 4)
  {
   //alert('megjött');
   var xmlDoc=xmlHttp.responseXML.documentElement;
   var modul = xmlDoc.getElementsByTagName('modul');
   //Alapállapotra hozom a tmp_tomb-öt, hogy ne keveredjen régi pipálgatásokkal.
   tmp_tomb_alapra_allit();
   for (i=0;i<modul.length;i++)
    {
     var modul_id = modul[i].getElementsByTagName("modul_id")[0].childNodes[0].nodeValue;
     //Megkeresem a modult, és átállítom.
     for (j=0;j<tmp_tomb.length;j++)
      {
       if (tmp_tomb[j][1] == modul_id)
        {
         tmp_tomb[j][4] = 1;
         //Ha vannak almoduljai a kiválasztott modulnak, akkor azokat aktiválom.
         for (k=0;k<tmp_tomb.length;k++)
          {
           if (tmp_tomb[k][2] == modul_id)
            {
             tmp_tomb[k][3] = 1;
            }
          }
         //Ha megtaláltam nem keresek tovább.
         break;
        }
      }
    }
   //A gépszámot beállítom a konfiguráció szerintire.
   gepszam = xmlDoc.getElementsByTagName('gepszam')[0].childNodes[0].nodeValue;
   gepszam_valaszt(gepszam);
   //KepFrissit(); A képfrissítést a gepszam_valaszt fv. elvégzi.
   //Aktualizálom a legördülő menüt.
   var x=document.getElementById('gepszam');
   for (i=0;i<x.options.length;i++)
    {
     if (x.options[i].value == gepszam)
      {
       x.selectedIndex = i;
       break;
      }
    }

  }
}

// tmp_tomb szerkezete: 
// [0] = 'osszeg'
// [1] = 'modul_id'
// [2] = 'feltetel_modul_id'
// [3] = 'aktiv'
// [4] = 'kivalasztva'
// [5] = 'modul_$index'
// [6] = 'pipa_$index'
// Egy modul megváltozott, tmp_tomb-ben aktualizálok, és megjelenítek!
function ModulValaszt(index)
{
  //Itt azért használom a chacked-et fordítva, mert ha bekövetkezikaz onClick
  //esemény (minthogy azt figyelem), akkor már fordított a CheckBox állapota!
  if(document.getElementById('pipa_'+index).checked)
   {
    tmp_tomb[index][4] = 1;
    for(i=0;i<tmp_tomb.length;i++)
     {
      if(tmp_tomb[i][2] == tmp_tomb[index][1])
       {
        tmp_tomb[i][3] = 1;
       }
     }
   }
  else
   {
    tmp_tomb[index][4] = 0;
    for(j=0;j<tmp_tomb.length;j++)
     {
      if(tmp_tomb[j][2] == tmp_tomb[index][1])
       {
        tmp_tomb[j][3] = 0;
        tmp_tomb[j][4] = 0;
        for(k=0;k<tmp_tomb.length;k++)
         {
          if(tmp_tomb[k][2] == tmp_tomb[j][1])
           {
            tmp_tomb[k][3] = 0;
            tmp_tomb[k][4] = 0;
           }
         }
       }
     }
   }
  KepFrissit();
}

