// ----------------------
// Funktiot ja scriptit laatumikron webiin
// PARAMETRIT KOHDALLEEN TÄSSÄ!
// ----------------------
// Sivu jolle siirrytään, jos yritetään ilman kehyksiä

var startpage = "http://www.laatumikro.fi/";

// ----------------------

// ----------------------
// checkPage(requiredfrom, gotopage)
// jos ei anneta parametria, käyttää startpage:a.
// ----------------------

// ----------------------
// checkShipping(cost, sum, waypay)
// Maks. toimituskulut
// Seuraava on ehdoton maksimi, eri toimitustavoille voi laittaa pienemmät 

var MaxShippingCost = 27.90;
// Peruskulut jotka lisätään toimituskuluihin, postiennakkomaksu, yms
var noutocashCost = 0;
var matkahuoltolaskuCost = 4;
var posti14laskuCost = 4.4;
var posti14postiennakkoCost = 6.10;
var posti16laskuCost = 0;
var posti16postiennakkoCost = 3.10;
var noutocashCost = 0;
var shiplow = 200;
var ship1 = 400;
var ship2 = 600;
var ship3 = 800;
var ship4 = 1000;
var ship5 = 1200;
var ship6 = 1400;
var ship7 = 1700;
var shiptop = 2000;
var maxcosttop = 27.90; 
var maxcost1 = 25.90;
var maxcost2 = 22.90;
var maxcost3 = 19.90;
var maxcost4 = 16.90;
var maxcost5 = 13.90;
var maxcost6 = 8.90;
var maxcost7 = 5.90;
var maxcostlow = 2.90;
var nocost = 0;
 
// ----------------------

// ----------------------
// ## checkDelivery()
// Viesti, jos valitaan matkahuolto
var MessageDelivery = "Koska valitsit \ntoimitustavaksi postipaketin,\nmaksutavaksi vaihdetaan \nennakkolasku.";
var MessageDeliverynouto = "Koska valitsit \nnoudon Laatumikrosta,\nmaksutavaksi vaihdetaan \nkäteinen.";
var MessageDeliverycash = "Koska valitsit \nmaksutavaksi käteisen,\ntoimitustavaksi vaihdetaan \nnouto Laatumikrosta.";
// ----------------------
// ## Tiedoston viimeisin päivitys muodossa: ##
// Tämä sivu on päivitetty keskiviikkona 15. lokakuuta 2003 kello 13:04. 
// ## update()
// ----------------------
// ## Tarkistetaan lomakkeen tiedot ##
// ## CheckForm( theform )
// ----------------------
// ----------------------
// ## Kirjoittaa ostoskorin tuotteiden lukumäärän  ##
// ## content()
// ----------------------



// Ja lähtee...
// ----------------------

// ##    Back to frames     ##
// ## Ajetaan joka sivulle! ##
// if (parent.location.href == self.location.href) {
//   if (location.replace) {
//       location.replace(startpage);
//   }
//   else {
//        location = startpage;
//   }   
// }



// ----------------------
// LOPUT OVAT FUNKTIOITA!
// ----------------------

// Replaces text with by in string
function replaceText(string,text,by) {

	var strLength = string.length, txtLength = text.length;
	
	if ((strLength == 0) || (txtLength == 0)) {
		return string;
	}
	
	var i = string.indexOf(text);

	if ((!i) && (text != string.substring(0,txtLength))) {
		return string;
	}
	
	if (i == -1) {
		return string;
	}

	var newstr = string.substring(0,i) + by;

	if (i+txtLength < strLength){
		newstr += replaceText(string.substring(i+txtLength,strLength),text,by);
	}
	
	return newstr;
}

// Funktio eMail(a, b, c, d, e)
//
// Piilottaa sähköpostiosoitteen spammiroboteilta.
// Esim eMail('Elvis', 'presley', 1, 'Graceland', 'com')
// paluttaa mailto- osoitteen muodossa
// <a href="mailto:elvis.presley@domain.suffix">Elvis Presley</a>
// Vaihtaa ääkköset ä -> a   ö -> o   å -> a
// Kirjoittaa ensimäiset kirjaimet näkyvään nimeen isolla.
// Jos sähköposti pelkällä etunimellä, kutsu eMail('Elvis', 1, 'Graceland', 'com')
// Vaihda oletusdomain ja jälkiliite kohdalleen.
//
// kutsu eMail(a, b, c, d, e)
// jossa a = etunimi
//       b = sukunimi 
//       c = 1 eli annetaan domain
//       d = domain
//       e = jälkiliite
//
// tai   a = nimi
//       b = 1 eli annetaan domain
//       c = domain
//       d = jälkiliite
//
// tai   a = etunimi
//       b = sukunimi
//
// tai   a = nimi
//
// Copyright © Esa Hietala
// Oulun Laatumikro




function eMail(a, b, c, d, e){
	if (!a){
		return;
	}
	var DefaultDomain='laatumikro';
	var DefaultSuffix='fi';

	if ((b!=1)&&(c!=1)){
		var Domain=DefaultDomain;
		var Suffix=DefaultSuffix;
	}
      else{
      	if (b==1){
      		if (!c){
      			var Domain=DefaultDomain;
      		}
      		if (!d){
      			var Suffix=DefaultSuffix;
      		}
      		if (c){
      			var Domain=c.toLowerCase();
      			Domain = replaceText(Domain,'ä','a');
      			Domain = replaceText(Domain,'ö','o');
      			Domain = replaceText(Domain,'å','a');
      		}
      		if (d){
      			var Suffix=d.toLowerCase();
      			Suffix = replaceText(Suffix,'ä','a');
      			Suffix = replaceText(Suffix,'ö','o');
      			Suffix = replaceText(Suffix,'å','a');
      		}
      	}
      	if (c==1){
      		if (!d){
      			var Domain=DefaultDomain;
      		}
      		if (!e){
      			var Suffix=DefaultSuffix;
      		}
      		if (d){
      			var Domain=d.toLowerCase();
      			Domain = replaceText(Domain,'ä','a');
      			Domain = replaceText(Domain,'ö','o');
      			Domain = replaceText(Domain,'å','a');
      		}
      		if (e){
      			var Suffix=e.toLowerCase();
      			Suffix = replaceText(Suffix,'ä','a');
      			Suffix = replaceText(Suffix,'ö','o');
      			Suffix = replaceText(Suffix,'å','a');
      		}
      	}
      }

	var etu = a.toLowerCase();
	if ((b)&&(b!=1)){
		var suku = b.toLowerCase();
	}
	var nimi='';
	var text='<a href="mailto:';
	var address='';
	if ((b)&&(b!=1)){
		var firstLetter = etu.substring(0, 1).toUpperCase();
		var restOfWord = etu.substring(1, etu.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		nimi += ' ';
		firstLetter = suku.substring(0, 1).toUpperCase();
		restOfWord = suku.substring(1, suku.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		etu = replaceText(etu,'ä','a');
		etu = replaceText(etu,'ö','o');
		etu = replaceText(etu,'å','a');
		suku = replaceText(suku,'ä','a');
		suku = replaceText(suku,'ö','o');
		suku = replaceText(suku,'å','a');
		address += etu;
		address += '.';
		address += suku;
		address += '@';
		address += Domain;
		address += '.';
		address += Suffix;
	}
	else{
		var firstLetter = etu.substring(0, 1).toUpperCase();
		var restOfWord = etu.substring(1, etu.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		etu = replaceText(etu,'ä','a');
		etu = replaceText(etu,'ö','o');
		etu = replaceText(etu,'å','a');
		address += etu;
		address += '@';
		address += Domain;
		address += '.';
		address += Suffix;
	}
	text += address;
	text += '">';
	text += nimi;
	text += '</a>';
	document.write(text);
}


function Avaa(tiedosto, ikkuna, muut)
{ 
	// Pop-up -ikkuna funktio, attribuutit:
	// tiedosto = tiedoston nimi ja mahd. polku
	// ikkuna = ikkunan nimi
	// muut :
	// toolbar = no tai yes (työkalupalkki)
	// location = no tai yes (Tiedoston nimi)
	// directories = no tai yes (hakemistot)
	// menubar = no tai yes (menuvalikko)
	// scrollbars = no, yes tai auto (vierityspalkit)
	// status = no tai yes (tilarivi)
	// resizable = 1 tai 0, (koko muutettavissa)
	// width = leveys pixeleinä tai prosentteina näytön koosta
	// height = korkeus pixeleinä tai prosentteina näytön koosta,
	// top = sijainti pixeleinä yläreunasta,	
	// left = sijainti pixeleinä vasemmasta reunasta
	//
	// eli kutsu esim (rivitetty lukemisen helpoittamiseksi). 
	// <a href="#" onClick="Avaa('test3.htm', 'ikkuna3', 'toolbar=yes,
	//			location=yes,directories=yes,menubar=yes,
	//			scrollbars=auto,status=yes,resizable=0,
	//			width=340,height=200,top=0,left=0')">test2</a> 
	//
	// Copyright Esa Hietala
	// Saa lainata jos siltä tuntuu.
	//
	popup = window.open(tiedosto, ikkuna, muut);  
	// popup.creator=top;
	// if ( popup.document.close() ) {
	// 	popup.document.close();
	// }
}


// ## Tarkistetaan, jotta tullaan oikeasta paikasta ##
function checkPage(requiredfrom, gotopage){
  // jos ei ole parametria requiredfrom
  if (!requiredfrom){
      var requiredfrom = "http://www.laatumikro.fi/";
  }

  // jos ei ole parametria gotopage
  if (!gotopage) {
     var gotopage = startpage;
  }

  // Jos ei tulla requiredfrom:ista
  if (!document.referrer.indexOf(requiredfrom) == 0) {
     if (location.replace) {
        location.replace(gotopage);
     }
     else {
        location = gotopage;
     }   
  }
  return;
}

// --------------------

// ## Maksimi toimituskulut ##
function checkShipping(cost, sum, waypay){
  // Tarkistetaan summa ja asetetaan maksimi sen mukaan
  if (sum < shiplow ) { 
   MaxShippingCost =  maxcosttop;
  }
  else if (sum < ship1 ) { 
    MaxShippingCost = maxcost1;
  }
  else if (sum < ship2 ) { 
    MaxShippingCost = maxcost2;
  }
  else if (sum < ship3 ) { 
    MaxShippingCost = maxcost3;
  }
  else if (sum < ship4 ) { 
    MaxShippingCost = maxcost4;
  }
  else if (sum < ship5 ) { 
    MaxShippingCost = maxcost5;
  }
  else if (sum < ship6 ) { 
    MaxShippingCost = maxcost6;
  }
  else if (sum < ship7 ) { 
    MaxShippingCost = maxcost7;
  }
  else if (sum < shiptop ) { 
    MaxShippingCost = maxcostlow;
  }
  else  { 
    MaxShippingCost = nocost;
  }
  // Tarkistetaan maksu- ja toimitustapa ja asetetaan kulut sen mukaan
  switch (waypay){
    case "matkahuoltolasku" :
       cost += matkahuoltolaskuCost;
       if (cost > MaxShippingCost){
          cost = MaxShippingCost;
       }
       break;
    case "posti14lasku" :
       cost += posti14laskuCost;
       if (cost > MaxShippingCost){
          cost = MaxShippingCost;
       }
       break;
    case "posti14postiennakko" :
       cost += posti14postiennakkoCost;
       if (cost > MaxShippingCost){
          cost = MaxShippingCost;
       }
       break;
    case "posti16lasku" :
       cost += posti16laskuCost;
       if (cost > MaxShippingCost){
          cost = MaxShippingCost;
       }
       break;
    case "posti16postiennakko" :
       cost += posti16postiennakkoCost;
       if (cost > MaxShippingCost){
          cost = MaxShippingCost;
       }
       break;
   case "noutocash" :
       cost = noutocashCost;
    break;
    default :
        //  cost = MaxShippingCost; 
        ;
  }
return cost;
}

// --------------------

// ## Tarkistetaan, että maksu- ja kuljetustapa täsmäävät. ## 
function checkDelivery() {
   var sm = document.forms.Laatumikro.SMethod.value;
   var pm = document.forms.Laatumikro.PMethod.value;
   if (( sm == "posti16" ) && ( pm == "cash" )){
       alert( MessageDelivery );
       document.forms.Laatumikro.PMethod.value = "lasku";
    }
    if (( sm == "posti14" ) && ( pm == "cash" )){
       alert( MessageDelivery );
       document.forms.Laatumikro.PMethod.value = "lasku";
    }
    if (( sm == "nouto" ) && ( pm != "cash" )){
       alert( MessageDeliverynouto );
       document.forms.Laatumikro.PMethod.value = "cash";
    }
    //if (( sm != "nouto" ) && ( pm == "cash" )){
       //alert( MessageDeliverynouto );
       //document.forms.Laatumikro.SMethod.value = "nouto";
    //}

  // return;
}

// --------------------
// ## Tiedoston viimeisin päivitys muodossa: ##
// Tämä sivu on päivitetty keskiviikkona 15. lokakuuta 2003 kello 13:04. 
function update(){
   var Days = new Array("sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai");
   var Months = new Array("tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu","syyskuu", "lokakuu", "marraskuu", "joulukuu");
   var Updated = new Date(document.lastModified); 
   var dayName   = Days[Updated.getDay()];
   var monthName   = Months[Updated.getMonth()];
   var day       = Updated.getDate();
   var year       = Updated.getFullYear();
   var hour       = Updated.getHours();
   var minute = Updated.getMinutes();
   if (minute < 10) {
      minute = "0" + minute;
   }
   var UpdateText = "Tämä sivu on päivitetty ";
   UpdateText += dayName + "na " + day  + ". " + monthName + "ta " + year + " kello " + hour + ":" + minute + ".";
   document.write(UpdateText);
 //  return;
}
// --------------------
//*******************************************************
// FUNCTION:    GetCookieLaatumikroValLaatumikro           
// PARAMETERS:  offset                 
// RETURNS:     URL unescaped Cookie Value
// PURPOSE:     Get a specific value from a cookie
//*******************************************************
function GetCookieLaatumikroValLaatumikro (offset) {
   var endstr = document.cookie.indexOf (";", offset);

   if ( endstr == -1 )
      endstr = document.cookie.length;
   return(unescape(document.cookie.substring(offset, endstr)));
}
//*******************************************************
// FUNCTION:    GetCookieLaatumikro              
// PARAMETERS:  Name                   
// RETURNS:     Value in Cookie        
// PURPOSE:     Retrieves cookie from users browser
//*******************************************************

function GetCookieLaatumikro (name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;

   while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring(i, j) == arg ) return(GetCookieLaatumikroValLaatumikro (j));
      i = document.cookie.indexOf(" ", i) + 1;
      if ( i == 0 ) break;
   }

   return(null);
}


//*******************************************************
// FUNCTION:    totalQuantityLaatumikro             
// PARAMETERS:  none            
// RETURNS:     Total Quantity of products as number
//*******************************************************
function totalQuantityLaatumikro(){
   var OrderedProducts = 0;
   var allProductCount = 0;
   OrderedProducts = GetCookieLaatumikro("NumberOrdered");

   if ( OrderedProducts == null ){
      OrderedProducts = 0;
   }
   for ( i = 1; i <= OrderedProducts; i++ ) {
      NewOrder = "Order." + i;
      database = "";
      database = GetCookieLaatumikro(NewOrder);

      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      fields[4] = database.substring( Token3+1, Token4 );
      fields[5] = database.substring( Token4+1, database.length );

      allProductCount += parseInt(fields[1]);


   }
   return allProductCount;
}
function productQuantityLaatumikro(){
   Products = parseInt(GetCookieLaatumikro("NumberOrdered")); 
   if ( Products == null ) {
      Products = 0; 
   }
   return Products;
}

// ## Kirjoittaa ostoskorin tuotteiden lukumäärän  ##

function content(){
   allProducts   = totalQuantityLaatumikro();
   productGroups = productQuantityLaatumikro();
   if ( allProducts == 0 ) {
     return;
   }
   if ( allProducts == 1 ) {
      document.write('<font class="minitext"><a href="http://www.laatumikro.fi/cgi/managecart.php" target="main">Ostoskorissasi</a> on <strong>' + allProducts + '</strong> tuote.</font>'); 
   }
   if ( allProducts >= 2 ) {
      if (allProducts > productGroups){
         if (productGroups == 1){
            document.write('<font class="minitext"><a href="http://www.laatumikro.fi/cgi/managecart.php" target="main">Ostoskorissasi</a> on <strong>' + productGroups + '</strong> tuote, yhteensä <strong>' + allProducts + '</strong> kappaletta.</font>'); 
          }     
          else{
              document.write('<font class="minitext"><a href="http://www.laatumikro.fi/cgi/managecart.php" target="main">Ostoskorissasi</a> on <strong>' + productGroups + '</strong> eri tuotetta, yhteensä <strong>' + allProducts + '</strong> kappaletta.</font>'); 
          }
      }
      else{
         document.write('<font class="minitext"><a href="http://www.laatumikro.fi/cgi/managecart.php" target="main">Ostoskorissasi</a> on <strong>' + allProducts + '</strong> tuotetta.</font>');
      }
   }
}
// --------------------
// ## Tarkistetaan lomakkeen tiedot ##
function CheckForm( theform ){
	var bMissingFields = false;
	var strFields = "";
	
	// if( theform.toimitus.value == 'ei' ){
	// 	bMissingFields = true;
	// 	strFields += "     Toimitustapa\n";
	// }
	if( theform.b_first.value.length < 2 ){
		bMissingFields = true;
		strFields += "     Etunimi\n";
	}
	if( theform.b_last.value.length < 2 ){
		bMissingFields = true;
		strFields += "     Sukunimi\n";
	}
	if( theform.b_addr.value .length < 6 ){
		bMissingFields = true;
		strFields += "     Osoite\n";
	}
	if( theform.b_city.value == '' ){
		bMissingFields = true;
		strFields += "     Postitoimipaikka\n";
	}
	if( theform.b_zip.value.length < 5 ){
		bMissingFields = true;
		strFields += "     Postinumero\n";
	}
	if( theform.b_phone.value.length < 7 ){
		bMissingFields = true;
		strFields += "     Puhelin\n";
	}
	if((theform.b_email.value.length == 0)||(theform.b_email.value == "")||(theform.b_email.value.length < 8)||(theform.b_email.value.indexOf("@") == -1) || (theform.b_email.value.indexOf(".") == -1)){
		bMissingFields = true;
		strFields += "     Sähköpostiosoite\n";
	}
	if (!theform.accept.checked){
         if ( bMissingFields ) {
            strFields += "     Et ole myöskään \n     hyväksynyt toimitusehtoja. \n";
         }
         if ( !bMissingFields ) {
            strFields += "     Et ole hyväksynyt \n     toimitusehtoja. \n";
         }
         bMissingFields = true;
         }
	if( bMissingFields ) {
		alert( "Olet unohtanut täyttää seuraavat kohdat:\n" + strFields );
		return false;
	}
	return true;
}
// --------------------
