﻿function toPrintNumber(str,numberOfDecimals,addZeroDecimals) {

  if (addZeroDecimals==undefined)addZeroDecimals=true

  if (numberOfDecimals==undefined)numberOfDecimals=2

  if (str==undefined)str=0

  if (str==null)str=0

  var tmp=str.toString()

  tmp=tmp.replace(".",",")

  if (addZeroDecimals)if (tmp.indexOf(',')==-1) tmp=tmp + ",00"

  if (tmp.indexOf(',')!=-1 && tmp.indexOf(',')==tmp.length-2) tmp=tmp + "0"

  if (tmp.indexOf(',')!=-1 && tmp.indexOf(',')<(tmp.length-4)) {
    tmp=tmp.substring(0,tmp.indexOf(',')+3)
  }

  return tmp

}

$(document).ready(function() {
// Cookie scriptat

// cookielle muuttujat ja niihin haetaan arvot
var SummaCookie = 'totalSum';
var EtunimiCookie = 'etunimi';
var SukunimiCookie = 'sukunimi';  
var CountCookie = 'totalCount';      
var KantisCookie = 'tasopisteet';           
var summa = $.cookie(SummaCookie);
var etunimi = $.cookie(EtunimiCookie);
var sukunimi = $.cookie(SukunimiCookie);

var productCount = $.cookie(CountCookie);
var kantispisteet = $.cookie(KantisCookie );

  // Jos nimi cookie tyhjä niin anna arvoksi ""
if(etunimi == 'null' || etunimi == undefined ) {
etunimi = "";

}
  // Jos nimi cookie tyhjä niin anna arvoksi ""
if(sukunimi == 'null' || sukunimi == undefined ) {
sukunimi = "";
}

var sukunimi =  sukunimi.replace("+", " ");
var sukunimi =  sukunimi.replace("+", " ");
var etunimi =  etunimi.replace("+", " ");
  
  // Jos summa cookie tyhjä niin anna arvoksi nolla 
if(kantispisteet == 'null' || kantispisteet == 'NaN' || kantispisteet == 0 || kantispisteet == undefined || kantispisteet < 0 ) {
kantispisteet = 0;
}
               
// Jos summa cookie tyhjä niin anna arvoksi nolla 
if(summa == 'null' || summa == 'NaN' || summa == 0 || summa == undefined || summa < 0 ) {
summa = 0;
}
               
// Jos tuotemäärä cookie tyhjä niin anna arvoksi nolla 
if(productCount == null || productCount == 'NaN' || productCount == 0 || productCount == undefined || productCount < 0 ) {
productCount = 0;
}
               
// Printataanko tuote / tuotetta
var montako;
if(productCount == 1){
montako = ' tuote ';
} else {
montako = ' tuotetta ';
}

// Printataanko tuote / tuotetta
var montakopist;
if(kantispisteet == 1){
montakopist = 'piste ';
} else {
montakopist = 'pistettä ';
}

$('p#cookieName').html('Tervetuloa <a href="/default.asp?docId=12528" title="Katso omat tiedot">' + etunimi + ' ' + sukunimi + '</a>');
$('p#cookieInfo').html('<a href="/default.asp?docId=12433&a=aktiivisen_tilauksen_tiedot" title="Ostoskoriin">' + productCount + ' ' + montako + toPrintNumber(summa, 2, true) + ' €</a>');
$('p#cookieKantis').html(kantispisteet + ' kanta-asiakas' +  montakopist );
$('p#ostoskoriTotal').html(toPrintNumber(summa, 2, true));
// Disabloi maksutapa 4 jos alle 100 euroa
if(parseInt(summa) <= 100) {
$('input#maksutapa_4').attr("disabled", "disabled"); 
}
// Jos summa on nolla niin lasku
if(parseInt(summa) == 0) {
$("input#maksutapa_1").attr("disabled", "disabled");
$("input#maksutapa_2").attr("disabled", "disabled");
$("input#maksutapa_4").attr("disabled", "disabled");
}
});

// OSTOSKORI VAIHE 3 CHECK
function checkMaksutapa() {
var SummaCookie = 'totalSum';    
var summa = $.cookie(SummaCookie);

if(document.getElementById('maksutapa_1').checked == false && document.getElementById('maksutapa_2').checked == false && document.getElementById('maksutapa_3').checked == false && document.getElementById('maksutapa_4').checked == false) {
alert('Sinun täytää valita maksutapa!');
return false;
} else if(document.getElementById('maksutapa_4').checked == true && parseInt(summa) < 100 ) {
alert('Osamaksu on mahdollista vain summalla 100 € ja yli!');
return false;
} else {
document.maksutapa.submit();
}
}

// LOGOUT VARMENNUS
function checkLogout() {
if (confirm('Haluatko kirjautua ulos?')) { 
 window.location.replace('/asp/kauppa/logoutAction.asp');
} else {
return false;
}
}

// HAKU VALIDAATIO
function tarkistaHakuehto() {
var ehto=document.haku.hakuSana.value;
if (ehto.length < 3) {
 alert('Hakusanan minimipituus on 3!');
 return;
} 
else if (ehto.indexOf ("&") != -1)
{
 alert('Hakusanan ei saa sisältää & - merkkiä!');
 return;
}
else {
document.haku.submit();
}
}


function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes all leading and trailing spaces.
PARAMETERS: Source string from which spaces will be removed;
RETURNS: Source string with spaces removed.
*************************************************/ 
	var objRegExp = /^(\s*)$/;
	if(objRegExp.test(strValue)) {
		strValue = strValue.replace(objRegExp, '');
		if(strValue.length == 0) return strValue;
	}
	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(strValue)) strValue = strValue.replace(objRegExp, '$2');
	return strValue;
}


                function resetForm() 
                {
                
				 document.forms[0].nimi.value='';
				 document.forms[0].osoite.value='';                                
				 document.forms[0].postinumero.value='';
				 document.forms[0].postitoimipaikka.value='';
				 document.forms[0].sotu.value='';
				 document.forms[0].puhelin.value='';
				 document.forms[0].maksutapa[0].checked
				 
                }


function validateOsamaksuForm(el) {
  
  var sotu=trimAll(el.sotu.value)
  if (document.forms[0].osamaksu_formiVaihto.value=='true') {
    return true
  }
  else {
    if (isBlank(el.nimi.value)) {
		 alert('Nimi on pakollinen!');
		 el.nimi.select();
		 el.nimi.focus();
		 return false;
    }
    else if (el.nimi.value.length>40) {
        alert('Nimen maksimipituus on 40 merkkiä!');
        el.nimi.select();
        el.nimi.focus();
        return false;
    }
    
    else if (isBlank(el.osoite.value)) {
		 alert('Osoite on pakollinen!');
		 el.osoite.select();
		 el.osoite.focus();
		 return false;
    }
    else if (el.osoite.value.length>28) {
        alert('Osoitteen maksimipituus on 28 merkkiä!');
        el.osoite.select();
        el.osoite.focus();
        return false;
    }
    
    else if (isBlank(el.postinumero.value)) {
		 alert('Postinumero on pakollinen!');
		 el.postinumero.select();
		 el.postinumero.focus();
		 return false;
    }
    else if (el.postinumero.value.length<5) {
        alert('Postinumeron pituus on 5 merkkiä!');
        el.postinumero.select();
        el.postinumero.focus();
        return false;
    }
    
    else if (isBlank(el.postitoimipaikka.value)) {
		 alert('Postitoimipaikka on pakollinen!');
		 el.postitoimipaikka.select();
		 el.postitoimipaikka.focus();
		 return false;
    }
    else if (el.postitoimipaikka.value.length>20) {
        alert('Postitoimipaikan maksimipituus on 20 merkkiä!');
        el.postitoimipaikka.select();
        el.postitoimipaikka.focus();
        return false;
    }
    else if (el.puhelin.value.length>15) {
        alert('Puhelimen maksimipituus on 15 merkkiä!');
        el.puhelin.select();
        el.puhelin.focus();
        return false;
    }
    
    
    else if (isBlank(sotu)) {
		 alert('Maksajan sosiaaliturvatunnus on pakollinen!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
    else if (sotu.length!=11) {
		 alert('Anna oikeellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
    else if (!validateNumeric(sotu.substring(0,6))) {
		 alert('Anna oikeellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
    else if (!validateNumeric(sotu.substring(7,10))) {
		 alert('Anna oikeellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }

    else if (sotu.substring(6,7)!='-') {
		 alert(el.sotu.value.substring(6,7));
		 alert('Anna oikeellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
    else if (!validateDate(sotu.substring(0,6))) {
		 alert('Anna oikeellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
    else if (!validateSotu(sotu)) {
		 alert('Virheellinen sosiaaliturvatunnus!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }

    else if (!checkAge(sotu.substring(0,6))) {
		 alert('Maksajan pitää olla vähintään 18 vuotta!');
		 el.sotu.select();
		 el.sotu.focus();
		 return false;
    }
   else if (!el.ehdot.checked) {
        alert('Osamaksulla maksamisen ehdot pitää hyväksyä!');
        el.ehdot.focus();
        return false;
   }

}

}

function validateSotu(cStr) {

var alku=cStr.substring(0,6);
var loppu=cStr.substring(7,10);
var tarkiste=cStr.substring(10,11).toUpperCase();
var tmp=alku + loppu
if (tmp.substring(0,1)=='0') {
	 tmp=tmp.substring(1,11) 
}
var tulos=parseInt(tmp) % 31;	
var arr=new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y');
if (arr[tulos]==tarkiste)
  return true
else
  return false
}



function isBlank(cStr) {
/************************************************
DESCRIPTION: inspects string for actual characters.
PARAMETERS: Source string to be inspected;
RETURNS: true if no characters are found (string is empty), else false.
*************************************************/ 
	for (var j = 0; j < cStr.length; j++) {	// walk through string
        var strC = cStr.charAt(j);
        if ((strC != ' ') && (strC != '\n')  && (strC != '\t')) return false; // return false if character found
    }
    return true;	// return true if no character found
}

function checkAge(strString) {
    var now = new Date();
    var today = new Date(now.getYear()-18,now.getMonth(),now.getDate());

	var intDay = parseInt(strString.substring(0,2)); 
    var intMonth = parseInt(strString.substring(2,4));
	var intYear = parseInt('19' + strString.substring(4,6));
    
    
    
    var origDate = new Date(intYear,intMonth-1,intDay);
    if (today.getTime()>=origDate.getTime()) {
       return true;
       }
    else {
      return false;
     } 
      

}

function validateDate(strString) {
	

	var tmp=strString.substring(0,2);
	if (tmp.substring(0,1)=='0') {
	 tmp=tmp.substring(1,2)
	}
	var intDay = parseInt(tmp);

	var tmp=strString.substring(2,4)
	if (tmp.substring(0,1)=='0') {
	 tmp=tmp.substring(1,2)
	}
	var intMonth = parseInt(tmp)
	
	var tmp=strString.substring(4,6)
	if (tmp.substring(0,1)=='0') {
	 tmp=tmp.substring(1,2)
	}
	var intYear = 1900 + parseInt(tmp);
	
	//check for valid month
	if(intMonth > 12 || intMonth < 1) {
		return false;
	}
	
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
  
    var tmp=intMonth+'';
    if (tmp.length ==1) tmp='0' + tmp;
    //check if month value and day value agree
    if(arrayLookup[tmp] != null) {
      if(intDay <= arrayLookup[tmp] && intDay != 0)
        return true; //found in lookup table, good date
    }
	
		
    //check for February
	var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
    if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
      return true; //Feb. had valid number of days
  
  return false; //any other values, bad date


}
function validateNumeric(strString)
/************************************************
DESCRIPTION: Validates that a string is numeric expression
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/

   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }








