﻿
// ----------------------------------------------------------------- T-FUNKTIO
function t(tahti, e, tahtiayhteensa, ryhma, indeksi, lukittu, kauppa) {

  var tyyppi = "tahti";
  if (kauppa != undefined && kauppa == true)
    tyyppi = "hymio";

  var kirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_kirkas_iso.gif";
  var puolikirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_puolikirkas_iso.gif";
  var harmaa = "/static/kuvat/tuotearvostelut/" + tyyppi + "_harmaa_iso.gif";
  var arvo = indeksi + 1;
  var x =
    (e.pageX ? e.pageX : e.clientX - 2) - elementinSuhteellinenSijaintiX(tahti);
  
  var lukittuOlio = haeOlio("ta_" + ryhma);
  var lukittuArvo = 0;
  if (lukittuOlio != null) lukittuArvo = lukittuOlio.value;
    
  
  if (x <= 9) {
    arvo = arvo - .5;
    if (lukittuArvo <= arvo || lukittu)
    tahti.src = puolikirkas;
  }
  
  if (x > 9)
    tahti.src = kirkas;
  
  if (indeksi == 0 && x < 2) {
    arvo = 0;
    if (lukittuArvo <= arvo || lukittu)
      tahti.src = harmaa;
  }

  muutaLoputTahdet(ryhma, indeksi, kirkas, tahtiayhteensa, harmaa);

  if (lukittu) {
    var ta = haeOlio("ta_" + ryhma);
    ta.value = arvo;
  } else {
    var ta = haeOlio("taTmp_" + ryhma);
    
    ta.value = arvo;
  }
}

// ------------------------------------------------------ LUKITSETAHTI-FUNKTIO
function lukitseTahti(ryhma, kauppa) {
  var ta = haeOlio("ta_" + ryhma);
  var taTmp = haeOlio("taTmp_" + ryhma);
  ta.value = taTmp.value;
  muutaLukittuun(ryhma, kauppa);
}

// ---------------------------------------------------- MUUTALUKITTUUN-FUNKTIO
function muutaLukittuun(ryhma, kauppa) {
  var lukittu = haeOlio("ta_" + ryhma);
  var taTmp  = haeOlio("taTmp_" + ryhma);
  taTmp.value = lukittu.value;
  muutaTiettyjaTahtia(ryhma, 5, lukittu.value, true, kauppa);
  muutaYleisarvosanaa(kauppa);
}

// ---------------------------------------------------- MUUTALUKITTUUN-FUNKTIO
function poisTahdista(ryhma, tamaOlio, e, tahtienMaara, kauppa) {

  var ulosmenoPisteY =
    (e.pageY ? e.pageY : e.clientY) -
    elementinSuhteellinenSijaintiY(tamaOlio)
    + 1;
    
  var eka = elementinSuhteellinenSijaintiX(haeOlio("t0r" + ryhma));
  var vika = elementinSuhteellinenSijaintiX(haeOlio("t" + (tahtienMaara - 1) + "r" + ryhma));
  var ulosmenoPisteX = (e.pageX ? e.pageX : e.clientX);
  
  if (ulosmenoPisteY <= 0 || ulosmenoPisteY > 19 ||
      (ulosmenoPisteX < eka) || (ulosmenoPisteX > vika)) {
    var lukittu = haeOlio("ta_" + ryhma);
    var taTmp  = haeOlio("taTmp_" + ryhma);
    taTmp.value = lukittu.value;
    muutaTiettyjaTahtia(ryhma, 5, lukittu.value, true, kauppa);
    muutaYleisarvosanaa(kauppa);
  }
}

// -------------------------------------------------- MUUTALOPUTTAHDET-FUNKTIO
function muutaLoputTahdet(ryhma, indeksi, kirkasUrl, tahtiayhteensa, harmaaUrl) {

  var lukittuOlio = haeOlio("ta_" + ryhma);
  var lukittuArvo = 0;
  if (lukittuOlio != null) lukittuArvo = lukittuOlio.value;

  // muutetaan tähdet ennen tätä kirkkaaksi
  for (var i = 0; i < indeksi; i++) {
    var kuva = haeOlio("t" + i + "r" + ryhma);
    
    if (kuva.src != kirkasUrl) kuva.src = kirkasUrl;
  }
  
  // muutetaan tähdet tämän jälkeen harmaaksi
  if (lukittuArvo <= indeksi + 1)
  for (var i = indeksi + 1; i < tahtiayhteensa; i++) {
    var kuva = haeOlio("t" + i + "r" + ryhma);
    
    if (kuva.src != harmaaUrl) kuva.src = harmaaUrl;
  }
}

// ----------------------------------------------- MUUTATIETTYJATAHTIA-FUNKTIO
function muutaTiettyjaTahtia(tahtienId, tahtiayhteensa, arvosana, isot, kauppa) {

  var tyyppi = "tahti";
  if (kauppa != undefined && kauppa == true)
    tyyppi = "hymio";

  var kirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_kirkas.gif";
  var puolikirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_puolikirkas.gif";
  var harmaa = "/static/kuvat/tuotearvostelut/" + tyyppi + "_harmaa.gif";
  var isokirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_kirkas_iso.gif";
  var isopuolikirkas = "/static/kuvat/tuotearvostelut/" + tyyppi + "_puolikirkas_iso.gif";
  var isoharmaa = "/static/kuvat/tuotearvostelut/" + tyyppi + "_harmaa_iso.gif";
  
  arvosana = arvosana - 1;
  
  for (var i = 0; i < tahtiayhteensa; i++) {
    
    var tahti = haeOlio("t" + i + "r" + tahtienId);
    
    if (arvosana >= i)
      if (isot) tahti.src = isokirkas;
      else tahti.src = kirkas;
      
    if (arvosana < i)
      if (isot) tahti.src = isoharmaa;
      else tahti.src = harmaa;
    
    if (arvosana < i && arvosana >= (i - 0.5))
      if (isot) tahti.src = isopuolikirkas;
      else tahti.src = puolikirkas;
    
  }
}

// ----------------------------------------------- MUUTAYLEISARVOSANAA-FUNKTIO
function muutaYleisarvosanaa(kauppa) {

  if (kauppa != undefined && kauppa == true) {

    var ostaminenTmp = parseFloat(haeOlio("taTmp_ostaminen_tahdet").value);
    var asiakaspalveluTmp = parseFloat(haeOlio("taTmp_asiakaspalvelu_tahdet").value);
    var toimitusTmp = parseFloat(haeOlio("taTmp_toimitus_tahdet").value);
    var fiilisTmp = parseFloat(haeOlio("taTmp_fiilis_tahdet").value);

    var ostaminen = parseFloat(haeOlio("ta_ostaminen_tahdet").value);
    var asiakaspalvelu = parseFloat(haeOlio("ta_asiakaspalvelu_tahdet").value);
    var toimitus = parseFloat(haeOlio("ta_toimitus_tahdet").value);
    var fiilis = parseFloat(haeOlio("ta_fiilis_tahdet").value);

    if (isNaN(ostaminenTmp)) ostaminenTmp = 0;
    if (isNaN(asiakaspalveluTmp)) asiakaspalveluTmp = 0;
    if (isNaN(toimitusTmp)) toimitusTmp = 0;
    if (isNaN(fiilisTmp)) fiilisTmp = 0;
    if (isNaN(ostaminen)) ostaminen = 0;
    if (isNaN(asiakaspalvelu)) asiakaspalvelu = 0;
    if (isNaN(toimitus)) toimitus = 0;
    if (isNaN(fiilis)) fiilis = 0;

    var lopulOstaminen = ostaminen > ostaminenTmp ? ostaminen : ostaminenTmp;
    var lopulAsiakaspalvelu = asiakaspalvelu > asiakaspalveluTmp ? asiakaspalvelu : asiakaspalveluTmp;
    var lopulToimitus = toimitus > toimitusTmp ? toimitus : toimitusTmp;
    var lopulFiilis = fiilis > fiilisTmp ? fiilis : fiilisTmp;

    var yleisarvosana = (lopulOstaminen + lopulAsiakaspalvelu + lopulToimitus + lopulFiilis) / 4;

    muutaTiettyjaTahtia("yleisarvosana_tahdet", 5, yleisarvosana, true, true);
    
  }

}
