﻿// ------------------------------------------- MUOKKAAELEMENTINSISALTO-FUNKTIO
function muokkaaElementinSisalto(elementinID, arvo) {

  var elementti = haeOlio(elementinID);
  
  if (elementti == null)
    return false;
    
  elementti.innerHTML = arvo;

}

// -------------------------------------------------- PIILOTAELEMENTTI-FUNKTIO
function piilotaElementti(elementinID) {

  var linkki = haeOlio(elementinID);

  if (linkki == null)
    return false;

  linkki.style.display = 'none';

}

// ------------------------------------------------ PAIVITAUPDATEPANEL-FUNKTIO
function paivitaUpdatePanel(taytettavanInputinNimi, arvo, paneelinNimi) {

  sijoitaArvo(taytettavanInputinNimi, arvo);
    
  __doPostBack(paneelinNimi,'');
    
  return false;

}

// ------------------------------------------------ PAIVITAUPDATEPANEL-FUNKTIO
function paivitaUpdatePanelAnkkurilla(taytettavanInputinNimi, arvo,
  paneelinNimi, ankkurinNimi) {

  sijoitaArvo(taytettavanInputinNimi, arvo);
  
  var hashi = '';

  if (location.hash.length <= 0)
      hashi = '#' + ankkurinNimi;
  else if (location.hash.length == 1)
      hashi = ankkurinNimi; 

  window.location.href = window.location + hashi;

  __doPostBack(paneelinNimi, '');  

  return false;

}

// ------------------------------------------------------- SIJOITAARVO-FUNKTIO
function sijoitaArvo(taytettavanInputinNimi, arvo) {

  var taytettavaInput = haeOlio(taytettavanInputinNimi);
  
  if (taytettavaInput == null)
    return false;
    
  taytettavaInput.value = arvo;
    
  palautaFormAction();
  
}

// -------------------------------------------------------- TYHJAAARVO-FUNKTIO
function tyhjaaArvo(tyhjattavanInputinNimi) {

  var tyhjattavaInput = haeOlio(tyhjattavanInputinNimi);
  
  if (tyhjattavaInput == null)
    return false;
    
  tyhjattavaInput.value = '';
  
}

// ------------------------------------------------- PALAUTAFORMACTION-FUNKTIO
function palautaFormAction() {
  // Palattaa postback targetin joka saattaa korruptoitua kun partial
  // postbackeja on käynnistetty javascriptillä
  if (__oldAction != null)
    theForm.action = __oldAction;
}

//------------------------------------------- HAEOLIONIDIDNLOPPUOSALLA-FUNKTIO
function haeOlionIdIdnLoppuosalla(idParam) {
  return haeOlionIdIdnLoppuosallaJaElementtiTyypilla(idParam, 'div');
}

//------------------------ HAEOLIONIDIDNLOPPUOSALLAJAELEMENTTITYYPILLA-FUNKTIO
function haeOlionIdIdnLoppuosallaJaElementtiTyypilla(idParam, elementName){

  var paramPituus = idParam.length;

  var elements = document.getElementsByTagName(elementName);
  for (idx in elements)
    if (elements[idx].id != undefined)
      if (elements[idx].id.indexOf(idParam) >= 0)
        if (elements[idx].id.indexOf(idParam) == elements[idx].id.length - paramPituus)
          return elements[idx].id;

  return null;
}

// ----------------------------------------------------------------- HAEOLIOIDENIDTIDSISALTAAJAELEMENTTITYYPILLA-FUNCTIO
function haeOlioidenIdtIdSisaltaaJaElementtiTyypilla(idParam, elementName){

  var paramPituus = idParam.length;

  var elements = document.getElementsByTagName(elementName);

  var loytyneet = new Array();
  var laskuri = 0;
  
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].id != undefined)
      if (elements[i].id.indexOf(idParam) >= 0) {
        loytyneet[laskuri] = elements[i].id;
        laskuri++;
      }
  }
  
  return loytyneet;
}

// ------------------------------------------------------------------------------------- ASETAFOCUSINPUTKENTALLE-FUNKTIO
function asetaFocusInputkentalle(idParam) {
  var olio = haeOlio(haeOlionIdIdnLoppuosallaJaElementtiTyypilla(idParam, "input"));
  if (olio != null) {
    olio.focus();
  }
  
  setTimeout(
    function() {
      var olio = haeOlio(haeOlionIdIdnLoppuosallaJaElementtiTyypilla(idParam, "input"));
      if (olio != null) {
        olio.focus();
        olio.value = olio.value;
      }
    }, 10);
}

// ----------------------------------------------------------- HAEOLIO-FUNKTIO
function haeOlio(id) {
  if (document.getElementById)
    return document.getElementById(id);
  else if (document.all)
    return document.all[id];
  return null;
}
function HS_haeOlio(id) {
  return haeOlio(id);
}
function kateg_haeOlio(id) {
  return haeOlio(id);
}

// ------------------------------------ ELEMENTINSUHTEELLINENSIJAINTIX-FUNKTIO
function elementinSuhteellinenSijaintiX(elementti) {

	x = eval(elementti).offsetLeft;
	elementinVanhempi = eval(elementti).offsetParent;

	while (elementinVanhempi != null) {
		x += elementinVanhempi.offsetLeft;
		elementinVanhempi = elementinVanhempi.offsetParent;
	}
	
	return x;
}

// ------------------------------------ ELEMENTINSUHTEELLINENSIJAINTIY-FUNKTIO
function elementinSuhteellinenSijaintiY(elementti) {

	y = eval(elementti).offsetTop;
	elementinVanhempi = eval(elementti).offsetParent;

	while (elementinVanhempi != null) {
		y += elementinVanhempi.offsetTop;
		elementinVanhempi = elementinVanhempi.offsetParent;
	}
	
	return y;
}

// ------------------------------------------ HAEASPNETFORMINELEMENTTI-FUNKTIO
function haeAspnetForminElementti(haettavaId) {
  var formi = null;
  
  if (theForm != null) formi = theForm;
  else {
    formi = document.forms['aspnetForm'];
    if (!formi) { formi = document.aspnetForm; }
  }
  
  for (var i = 0; i < formi.length; i++) {
    var id = formi.elements[i].id;
    haettavaId = haettavaId.toLowerCase();

    if (id.length >= haettavaId.length &&
        id.substring(id.length - haettavaId.length).toLowerCase() == haettavaId)
      return formi.elements[i];
  }
  
  return null;
}

// -------------------------------------------------- ENTTERIAPAINETTU-FUNKTIO
function entteriaPainettu(e) {
  var merkkiKoodi;

  if (e && e.which) merkkiKoodi = e.which; // NN4
  else merkkiKoodi = e.keyCode;
  
  if (merkkiKoodi == 13) return true;
  
  return false;
}

// ------------------------------ NAYTATUNNUKSENLUONTIKONTROLLINPAIKKA-FUNKTIO
function naytaTunnuksenluontiKontrollinPaikka(nayta) {
  var login = haeOlio("kirjautumisKontrollinPaikka");
  var luonti = haeOlio("tunnuksenluontiKontrollinPaikka");
  
  if (luonti != null && login != null) {
    if (nayta) {
      luonti.style.display = "block";
      login.style.display = "none";
    } else {
      luonti.style.display = "none";
      login.style.display = "block";
    }
  }
  
  return false;
}

// ---------------------------------------- TUNNUKSENLUONTISUBMITAPURI-FUNKTIO
function tunnuksenLuontiSubmitApuri(e) {
  if (entteriaPainettu(e)) {
  
    // Jos Firefox 1-2 ei tehdä submittia entterillä kummien koska
    // autentikoitumiseventti ei laukea
    if(navigator.userAgent.indexOf('Firefox/2')!=-1 || navigator.userAgent.indexOf('Firefox/1')!=-1) {
      return false;  
    }
    else {
  
      var luonti = haeOlio("tunnuksenluontiKontrollinPaikka");
      if (luonti != null &&
          luonti.style.display != null &&
          luonti.style.display.toLowerCase() == "block") {
        var luontiNappi = haeAspnetForminElementti("StepNextButton");
        
        if (luontiNappi == null)
          luontiNappi = haeAspnetForminElementti("Done");
        
        if (luontiNappi != null) {
          luontiNappi.click();
          return false;
        }
      }
      
    }
  }
  return true;
}

// ------------------------------------------------------- SUBMITAPURI-FUNKTIO
function submitApuri(e, napinId) {
  if (entteriaPainettu(e) && napinId != null) {
  
    // Jos Firefox 1-2 ei tehdä submittia entterillä kummien koska
    // autentikoitumiseventti ei laukea
    if(navigator.userAgent.indexOf('Firefox/2')!=-1 || navigator.userAgent.indexOf('Firefox/1')!=-1) {
      return false;  
    }
    else {
      var haeNappi = haeAspnetForminElementti(napinId);
        
      if (haeNappi != null) {
        haeNappi.click();
        return false;
      }
    }
  }
  return true;
}

// -------------------------------------------------------- AVAAIKKUNA-FUNKTIO
function avaaIkkuna(tid, kuvanid) {
  window.open(
    '/tuotekuvat.aspx?tuote=' + tid + '&kuva=' + kuvanid,
    '',
    'width=600, height=600, resizable=yes, scrollbars=yes');
}

// --------------------------------------------------------- NAYTAKUVA-FUNKTIO
function naytaKuva(kuvanId) {
  var isoKuva = HS_haeOlio("HSisoTuotekuva");
  
  isoKuva.src =
    "/tuotekuva.ashx/jpg?kuvaid=" +
    kuvanId;
}

// --------------------------------------------------------- HAEEVASTE-FUNKTIO
function haeEvaste(nimi) {

    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(nimi + "=");
        if (c_start != -1) {
            c_start = c_start + nimi.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

// ------------------------------------------------------- ASETAEVASTE-FUNKTIO
function asetaEvaste(nimi, arvo, pvmlkm) {

    var exdate = new Date();
    exdate.setDate(exdate.getDate() + pvmlkm);
    document.cookie = nimi + "=" + escape(arvo) +
    ((pvmlkm == null) ? "" : ";expires=" + exdate.toGMTString() + ";path=/");
}

// -------------------------------------------------------------------------------------------------------- TRIM-FUNKTIO
function trim (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

function onLuku(s) {
  return (s.toString().search(/^[0-9]+$/) == 0);
}
