var errorMsg = ""; function isNum(value){ var allowedChars = "0123456789"; for( var i = 0; i < value.length; i++ ) { if( allowedChars.indexOf( value.charAt(i) ) == -1 ) return false; } return true; } function validateDOB(value){ var daysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; if( value.length < 10 ) { errorMsg += "Syntymäajan tulee olla muotoa päivä.kuukausi.vuosi etunollan kanssa esim. 01.11.1980\n"; return false; } var paiva = value.charAt(0) + value.charAt(1); var kuukausi = value.charAt(3) + value.charAt(4); var vuosi = value.charAt(6) + value.charAt(7) + value.charAt(8) + value.charAt(9); if( !isNum( paiva ) || !isNum( kuukausi ) || !isNum( vuosi ) ) { errorMsg += "Syntymäajan tulee olla muotoa päivä.kuukausi.vuosi etunollan kanssa esim. 01.11.1980\n"; return false; } if( vuosi < 1900 || vuosi > 2008 || kuukausi > 12 || kuukausi < 1 ) { errorMsg += "Syntymäaika on virheellinen\n"; return false; } // Karkausvuosi if( vuosi % 4 == 0 ) daysInMonth[1]++; if( paiva > daysInMonth[ kuukausi - 1 ] || paiva < 1 ) { errorMsg += "Syntymäaika on virheellinen\n"; return false; } // Onko käyttäjä täysi-ikäinen? var ika = 2012 - vuosi; if( kuukausi == 2 ) { if( paiva > 5 ) { ika--; } } else if( kuukausi > 2 ){ ika--; } if( ika < 18 ) { errorMsg += "Valitettavasti sivustomme on tarkoitettu vain täysi-ikäisille\n"; return false; } return true; } function isEmpty(value) { if( value == null || value == '' ) return true; return false; } function validateForm(Form, register) { // käydään läpi onko yksikään null if( isEmpty( Form.fname.value ) || Form.fname.value.length < 3 ) { errorMsg += "Etunimi puuttuu tai ei ole kelvollinen\n"; } if( isEmpty( Form.sname.value ) || Form.sname.value.length < 3 ) { errorMsg += "Sukunimi puuttuu tai ei ole kelvollinen\n"; } if( isEmpty( Form.address.value ) || Form.address.value.length < 5 ) { errorMsg += "Osoite puuttuu tai ei ole kelvollinen\n"; } // Kelvollinen postinumero? if( isEmpty( Form.zip.value ) || !isNum( Form.zip.value ) ) { errorMsg += "Postinumero puuttuu tai ei ole kelvollinen\n"; } if( isEmpty( Form.city.value ) ) { errorMsg += "Paikkakunta puuttuu\n"; } if( isEmpty( Form.dob.value ) ) { errorMsg += "Syntymäaika puuttuu\n"; } else if( validateDOB( Form.dob.value ) ) { } if( isEmpty( Form.phone.value ) || !isNum( Form.phone.value ) || Form.phone.value.length < 5 ) { errorMsg += "Puhelinnumero puuttuu tai ei ole kelvollinen\n"; } if( isEmpty( Form.email.value ) ) { errorMsg += "Sähköpostiosoite puuttuu\n"; } // Onko kyseessä rekisteröinti form vai tilin hallinnan form? if( register ) { if( isEmpty( Form.passwd.value ) ) { errorMsg += "Salasana puuttuu\n"; } if( !Form.conditions.checked ) { errorMsg += "Sinun tulee hyväksyä käyttäjäehdot\n"; } } // Sähköposti ja salasana varmistettu? if( Form.email.value != Form.email2.value ) { errorMsg += "Sähköpostiosoitteet evät täsmää. Tarkista sähköpostiosoitteet\n"; } if( Form.passwd.value != Form.passwd2.value ) { errorMsg += "Salasanat eivät täsmää. Tarkista salasanat\n"; } if( ( Form.passwd.value.length < 5 && Form.passwd.value.length > 0 ) || ( Form.passwd2.value.length < 5 && Form.passwd2.value.length > 0 ) ) { errorMsg += "Salasana on liian lyhyt"; } if( errorMsg != "" ) { alert( "Korjaa seuraavat virheet:\n" + errorMsg ); errorMsg = ""; return false; } return true; }