/* * Lasiseinän laskuri v. 0.2 - laskee aukon mittojen mukaisesti * Laskuri toimii itsenäisesti sekä Magenton ja Magenton pinta-ala lisäosan kanssa * * Copyright 2019 Consult It Finland * https://www.consultit.fi * * Tässä tiedostossa on dynaamisesti käsiteltävä koodi */ jQuery.noConflict(); /* Pyöristysfunktio */ function round(value, precision) { var multiplier = Math.pow(10, precision || 0); return Math.round(value * multiplier) / multiplier; } /* Tuodaan asetustiedoston vakiot scriptiin ja asetetaan globaalit muuttujat */ var dataid = "custom-details"; var lock = "lock"; var hide = "hide"; var tyyppi = 0; var materiaali = ''; var korkraja = 215; var korklisa = 1000; var levraja = 215; var levlisa = 1000; var saranapuoli = 'oik'; var varoitus = false; var korjaus = false lasi = new Array(); lev = new Array(); kork = new Array(); jalka = new Array(); sarana = new Array(); vedin = new Array(); /* Tuo välysten tiedot taulukkoon */ rako = new Array(); rako["ovi"] = new Array(); rako["ovi"]["vas"] = 0.5; rako["ovi"]["oik"] = 0.5; rako["ovi"]["yla"] = 2.9; rako["ovi"]["ala"] = 10; rako["vas"] = new Array(); rako["vas"]["vas"] = 1; rako["vas"]["oik"] = 0; rako["vas"]["yla"] = 1; rako["vas"]["ala"] = 0.9; rako["oik"] = new Array(); rako["oik"]["vas"] = 0; rako["oik"]["oik"] = 1; rako["oik"]["yla"] = 1; rako["oik"]["ala"] = 0.9; rako["yla"] = new Array(); rako["yla"]["vas"] = 0.3; rako["yla"]["oik"] = 0.3; rako["yla"]["yla"] = 1; rako["yla"]["ala"] = 0.5; /* Tuo materiaalien hintatiedot taulukkoon */ hintakerroin = new Array(); hintakerroin["Kirkas"] = 1; hintakerroin["Pronssi"] = 1.22; hintakerroin["Harmaa"] = 1.22; hintakerroin["Savun"] = 1.22; hintakerroin["Optiwhite"] = 2; hintakerroin["N\/A"] = 1; /* Tuo jalkojen tiedot taulukkoon */ jalat = new Array(); jalat["Kromi"] = new Array(); jalat["Kromi"][0] = "Kromiset jalat"; jalat["Kromi"][1] = ""; jalat["Kromi"][2] = 222; jalat["Kromi"][3] = 222; jalat["Kromi"][4] = 222; jalat["Kromi"][5] = 5; jalat["Kromi"][6] = 12; jalat["Kromi"][7] = 9.5; jalat["Kromi"][8] = 12; jalat["Kromi"][9] = 10; jalat["Kromi"][10] = "kork[arvo] - jalat[jalkatxt][9] - rako[kiintea]['yla']"; jalat["Kromi"][11] = ""; jalat["Kromi"][12] = "100mm"; jalat["Mattakromi"] = new Array(); jalat["Mattakromi"][0] = "Jalat mattakromi"; jalat["Mattakromi"][1] = ""; jalat["Mattakromi"][2] = 200; jalat["Mattakromi"][3] = 200; jalat["Mattakromi"][4] = 200; jalat["Mattakromi"][5] = 5; jalat["Mattakromi"][6] = 12; jalat["Mattakromi"][7] = 9.5; jalat["Mattakromi"][8] = 12; jalat["Mattakromi"][9] = 10; jalat["Mattakromi"][10] = "kork[arvo] - jalat[jalkatxt][9] - rako[kiintea]['yla']"; jalat["Mattakromi"][11] = ""; jalat["Mattakromi"][12] = "100mm"; jalat["Matala"] = new Array(); jalat["Matala"][0] = "Matalat jalat"; jalat["Matala"][1] = ""; jalat["Matala"][2] = 222; jalat["Matala"][3] = 222; jalat["Matala"][4] = 222; jalat["Matala"][5] = 4.5; jalat["Matala"][6] = 4.5; jalat["Matala"][7] = 2.1; jalat["Matala"][8] = 2.5; jalat["Matala"][9] = 2.2; jalat["Matala"][10] = "kork[arvo] - jalat[jalkatxt][9] - rako[kiintea]['yla']"; jalat["Matala"][11] = ""; jalat["Matala"][12] = "20mm"; jalat["N\/A"] = new Array(); jalat["N\/A"][0] = ""; jalat["N\/A"][1] = ""; jalat["N\/A"][2] = 222; jalat["N\/A"][3] = 222; jalat["N\/A"][4] = 222; jalat["N\/A"][5] = 1; jalat["N\/A"][6] = 1; jalat["N\/A"][7] = 2; jalat["N\/A"][8] = 2; jalat["N\/A"][9] = 2; jalat["N\/A"][10] = ""; jalat["N\/A"][11] = ""; jalat["N\/A"][12] = "N\/A"; jalatlkm = new Array(); jalatlkm[1] = new Array(); jalatlkm[1][0] = 10; jalatlkm[1][1] = "item.leveys \/ 2"; jalatlkm[1][2] = 0; jalatlkm[1][3] = 999; jalatlkm[1][4] = 0; jalatlkm[1][5] = ""; jalatlkm[2] = new Array(); jalatlkm[2][0] = 12; jalatlkm[2][1] = "Math.min( Math.max( (item.leveys \/ (jalkalkm+1) - 10), jalatlkm[jalkalkm][2] ), jalatlkm[jalkalkm][3] )"; jalatlkm[2][2] = 10; jalatlkm[2][3] = 40; jalatlkm[2][4] = 0; jalatlkm[2][5] = ""; jalatlkm[3] = new Array(); jalatlkm[3][0] = 300; jalatlkm[3][1] = "Math.min( Math.max( (item.leveys \/ (jalkalkm+1) - 10), jalatlkm[jalkalkm][2] ), jalatlkm[jalkalkm][3] )"; jalatlkm[3][2] = 10; jalatlkm[3][3] = 40; jalatlkm[3][4] = 100; jalatlkm[3][5] = ""; /* Tuo saranoiden tiedot taulukkoon */ saranat = new Array(); saranat["Kromi"] = new Array(); saranat["Kromi"][0] = "Kromisaranat"; saranat["Kromi"][1] = ""; saranat["Kromi"][2] = 222; saranat["Kromi"][3] = 222; saranat["Kromi"][4] = 222; saranat["Kromi"][5] = 10; saranat["Kromi"][6] = 12; saranat["Kromi"][7] = 6; saranat["Kromi"][8] = "sarana1.php"; saranat["Kromi"][9] = "Bohle WGL 6803"; saranat["Kromisaranat"] = new Array(); saranat["Kromisaranat"][0] = "Kromisaranat"; saranat["Kromisaranat"][1] = ""; saranat["Kromisaranat"][2] = 222; saranat["Kromisaranat"][3] = 222; saranat["Kromisaranat"][4] = 222; saranat["Kromisaranat"][5] = 10; saranat["Kromisaranat"][6] = 12; saranat["Kromisaranat"][7] = 6; saranat["Kromisaranat"][8] = "sarana1.php"; saranat["Kromisaranat"][9] = "Bohle WGL 6803"; saranat["Mattakromi"] = new Array(); saranat["Mattakromi"][0] = "Mattakromiset saranat"; saranat["Mattakromi"][1] = ""; saranat["Mattakromi"][2] = 200; saranat["Mattakromi"][3] = 200; saranat["Mattakromi"][4] = 200; saranat["Mattakromi"][5] = 10; saranat["Mattakromi"][6] = 12; saranat["Mattakromi"][7] = 6; saranat["Mattakromi"][8] = "sarana1.php"; saranat["Mattakromi"][9] = "Bohle WGL 6803"; saranat["Harjattu"] = new Array(); saranat["Harjattu"][0] = "Harjatun ter\u00e4ksen v\u00e4riset saranat"; saranat["Harjattu"][1] = ""; saranat["Harjattu"][2] = 200; saranat["Harjattu"][3] = 200; saranat["Harjattu"][4] = 200; saranat["Harjattu"][5] = 10; saranat["Harjattu"][6] = 12; saranat["Harjattu"][7] = 6; saranat["Harjattu"][8] = "sarana1.php"; saranat["Harjattu"][9] = "Bohle WGL 6803"; saranat["N\/A"] = new Array(); saranat["N\/A"][0] = ""; saranat["N\/A"][1] = ""; saranat["N\/A"][2] = 222; saranat["N\/A"][3] = 222; saranat["N\/A"][4] = 222; saranat["N\/A"][5] = 4; saranat["N\/A"][6] = 4; saranat["N\/A"][7] = 2; saranat["N\/A"][8] = ""; saranat["N\/A"][9] = "N\/A"; saranatlkm = new Array(); saranatlkm[2] = new Array(); saranatlkm[2][0] = 0; saranatlkm[2][1] = 0; saranatlkm[2][2] = 25; saranatlkm[3] = new Array(); saranatlkm[3][0] = 6000; saranatlkm[3][1] = 85; saranatlkm[3][2] = 25; saranatlkm[3][3] = 50; /* Tuo kiinnikkeiden tiedot taulukkoon */ kiinnikkeet = new Array(); kiinnikkeet["2kpl"] = new Array(); kiinnikkeet["2kpl"][0] = "Kromikiinnikkeet"; kiinnikkeet["2kpl"][1] = ""; kiinnikkeet["2kpl"][2] = 222; kiinnikkeet["2kpl"][3] = 222; kiinnikkeet["2kpl"][4] = 222; kiinnikkeet["2kpl"][5] = 10; kiinnikkeet["2kpl"][6] = 5; kiinnikkeet["2kpl"][7] = "kiinnike1.php"; kiinnikkeet["2kpl"][8] = "Dorma"; kiinnikkeet["Kromi"] = new Array(); kiinnikkeet["Kromi"][0] = "Kromikiinnikkeet"; kiinnikkeet["Kromi"][1] = ""; kiinnikkeet["Kromi"][2] = 222; kiinnikkeet["Kromi"][3] = 222; kiinnikkeet["Kromi"][4] = 222; kiinnikkeet["Kromi"][5] = 10; kiinnikkeet["Kromi"][6] = 5; kiinnikkeet["Kromi"][7] = "kiinnike1.php"; kiinnikkeet["Kromi"][8] = "Dorma"; kiinnikkeet["Mattakromi"] = new Array(); kiinnikkeet["Mattakromi"][0] = "Mattakromiset kiinnikkeet"; kiinnikkeet["Mattakromi"][1] = ""; kiinnikkeet["Mattakromi"][2] = 200; kiinnikkeet["Mattakromi"][3] = 200; kiinnikkeet["Mattakromi"][4] = 200; kiinnikkeet["Mattakromi"][5] = 10; kiinnikkeet["Mattakromi"][6] = 5; kiinnikkeet["Mattakromi"][7] = "kiinnike1.php"; kiinnikkeet["Mattakromi"][8] = "Dorma"; kiinnikkeet["Harjattu"] = new Array(); kiinnikkeet["Harjattu"][0] = "Harjatun ter\u00e4ksen v\u00e4riset kiinnikkeet"; kiinnikkeet["Harjattu"][1] = ""; kiinnikkeet["Harjattu"][2] = 200; kiinnikkeet["Harjattu"][3] = 200; kiinnikkeet["Harjattu"][4] = 200; kiinnikkeet["Harjattu"][5] = 10; kiinnikkeet["Harjattu"][6] = 5; kiinnikkeet["Harjattu"][7] = "kiinnike1.php"; kiinnikkeet["Harjattu"][8] = "Dorma"; kiinnikkeet["N\/A"] = new Array(); kiinnikkeet["N\/A"][0] = ""; kiinnikkeet["N\/A"][1] = ""; kiinnikkeet["N\/A"][2] = 222; kiinnikkeet["N\/A"][3] = 222; kiinnikkeet["N\/A"][4] = 222; kiinnikkeet["N\/A"][5] = 4; kiinnikkeet["N\/A"][6] = 2; kiinnikkeet["N\/A"][7] = ""; kiinnikkeet["N\/A"][8] = ""; /* Tuo vetimien tiedot taulukkoon */ vetimet = new Array(); vetimet["Kromi"] = new Array(); vetimet["Kromi"][0] = "Kromivedin"; vetimet["Kromi"][1] = ""; vetimet["Kromi"][2] = 222; vetimet["Kromi"][3] = 222; vetimet["Kromi"][4] = 222; vetimet["Kromi"][5] = 6; vetimet["Kromi"][6] = 6; vetimet["Kromi"][7] = "P"; vetimet["Kromi"][8] = 100; vetimet["Kromi"][9] = 6; vetimet["Kromi"][10] = "vedin1.php"; vetimet["Kromi"][11] = "Abloy"; vetimet["Mattakromi"] = new Array(); vetimet["Mattakromi"][0] = "Vedin mattakromi"; vetimet["Mattakromi"][1] = ""; vetimet["Mattakromi"][2] = 200; vetimet["Mattakromi"][3] = 200; vetimet["Mattakromi"][4] = 200; vetimet["Mattakromi"][5] = 6; vetimet["Mattakromi"][6] = 6; vetimet["Mattakromi"][7] = "P"; vetimet["Mattakromi"][8] = 100; vetimet["Mattakromi"][9] = 6; vetimet["Mattakromi"][10] = "vedin1.php"; vetimet["Mattakromi"][11] = "Abloy"; vetimet["Harjattu"] = new Array(); vetimet["Harjattu"][0] = "Harjatun ter\u00e4ksen v\u00e4rinen vedin"; vetimet["Harjattu"][1] = ""; vetimet["Harjattu"][2] = 200; vetimet["Harjattu"][3] = 200; vetimet["Harjattu"][4] = 200; vetimet["Harjattu"][5] = 6; vetimet["Harjattu"][6] = 6; vetimet["Harjattu"][7] = "P"; vetimet["Harjattu"][8] = 100; vetimet["Harjattu"][9] = 6; vetimet["Harjattu"][10] = "vedin1.php"; vetimet["Harjattu"][11] = "Abloy"; vetimet["Puu"] = new Array(); vetimet["Puu"][0] = "Puuvedin"; vetimet["Puu"][1] = ""; vetimet["Puu"][2] = 182; vetimet["Puu"][3] = 155; vetimet["Puu"][4] = 76; vetimet["Puu"][5] = 5; vetimet["Puu"][6] = 50; vetimet["Puu"][7] = "N"; vetimet["Puu"][8] = 100; vetimet["Puu"][9] = 6; vetimet["Puu"][10] = "vedin2.php"; vetimet["Puu"][11] = "Abloy"; vetimet["N\/A"] = new Array(); vetimet["N\/A"][0] = ""; vetimet["N\/A"][1] = ""; vetimet["N\/A"][2] = 222; vetimet["N\/A"][3] = 222; vetimet["N\/A"][4] = 222; vetimet["N\/A"][5] = 5; vetimet["N\/A"][6] = 5; vetimet["N\/A"][7] = "P"; vetimet["N\/A"][8] = 100; vetimet["N\/A"][9] = 6; vetimet["N\/A"][10] = ""; vetimet["N\/A"][11] = "N\/A"; /* Tuo maksimi ja minimiarvot taulukkoon */ minimi = new Array(); maksimi = new Array(); minimi["ovi"] = {}; minimi["ovi"].leveys = 55; minimi["yla"] = {}; minimi["yla"].leveys = 50; minimi["vas"] = {}; minimi["vas"].leveys = 16; minimi["oik"] = {}; minimi["oik"].leveys = 16; maksimi["ovi"] = {}; maksimi["ovi"].leveys = 91; maksimi["yla"] = {}; maksimi["yla"].leveys = 95; maksimi["vas"] = {}; maksimi["vas"].leveys = 200; maksimi["oik"] = {}; maksimi["oik"].leveys = 200; minimi["ovi"].korkeus = 180; minimi["yla"].korkeus = 12; minimi["vas"].korkeus = 50; minimi["oik"].korkeus = 50; maksimi["ovi"].korkeus = 240; maksimi["yla"].korkeus = 60; maksimi["vas"].korkeus = 250; maksimi["oik"].korkeus = 250; /* Laita tiedot lasille */ function lasilevy(nimi, nimitys, leveys, korkeus, x0, y0) { this.nimi = nimi; this.nimitys = nimitys; this.levkaava = leveys; this.korkkaava = korkeus; this.x0kaava = x0; this.y0kaava = y0; } /* Laita tiedot muille osille */ function osanen(nimi, nimitys, leveys, korkeus, x0, y0) { this.nimi = nimi; this.nimitys = nimitys; } /* Muuta arvo floatiksi ja korjaa kirjoitusasu */ function muutafloatiksi(avainsana) { var s = '#'.concat(avainsana); if ( jQuery(s).length ) { return parseFloat( jQuery(s).val().replace("," , ".")) || -1; } else { return false; } } /* Luo tarvittavat lasit kaavoineen */ lasi[121] = new Array(); lasi[121][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[131] = new Array(); lasi[131][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[131][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[122] = new Array(); lasi[122][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[122][1] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[132] = new Array(); lasi[132][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[132][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[132][2] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[221] = new Array(); lasi[221][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[221][1] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['ala'] - rako['vas']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[231] = new Array(); lasi[231][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[231][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[231][2] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['ala'] - rako['vas']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[222] = new Array(); lasi[222][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[222][1] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['yla'] - rako['vas']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[222][2] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[232] = new Array(); lasi[232][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[232][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[232][2] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['yla'] - rako['vas']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[232][3] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[123] = new Array(); lasi[123][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[123][1] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[133] = new Array(); lasi[133][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[133][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[133][2] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[321] = new Array(); lasi[321][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[321][1] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['ala'] - rako['vas']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[331] = new Array(); lasi[331][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[331][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[331][2] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['ala'] - rako['vas']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[323] = new Array(); lasi[323][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['yla'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "rako['ovi']['yla']"); lasi[323][1] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['yla'] - rako['vas']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[323][2] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); lasi[333] = new Array(); lasi[333][0] = new lasilevy("ovi", "Ovilasi", "lev['ovi'] - rako['ovi']['vas'] - rako['ovi']['oik']", "kork['ovi'] - rako['ovi']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['ovi']['vas']", "kork['kesk'] - kork['ovi']"); lasi[333][1] = new lasilevy("yla", "Kiinte\u00e4 yl\u00e4lasi", "lev['ovi'] - rako['yla']['vas'] - rako['yla']['oik']", "kork['kesk'] - kork['ovi'] - rako['yla']['yla'] - rako['yla']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) + rako['yla']['vas']", "rako['yla']['yla']"); lasi[333][2] = new lasilevy("vas", "Kiinte\u00e4 lasi, vasen", "lev['vas'] - rako['vas']['vas'] - rako['vas']['oik']", "kork['vas'] - rako['vas']['yla'] - rako['vas']['ala']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) - (lev['ovi'] \/ 2) - this.leveys - rako['vas']['oik']", "rako['vas']['yla']"); lasi[333][3] = new lasilevy("oik", "Kiinte\u00e4 lasi, oikea", "lev['oik'] - rako['oik']['vas'] - rako['oik']['oik']", "kork['oik'] - rako['oik']['ala'] - rako['oik']['yla']", "maksimi['vas'].leveys + rako['vas']['vas'] + rako['vas']['oik'] + (Math.max( maksimi['ovi'].leveys+rako['ovi']['vas']+rako['ovi']['oik'], maksimi['yla'].leveys+rako['yla']['vas']+rako['yla']['oik'] ) \/ 2) + (lev['ovi'] \/ 2) + rako['oik']['vas']", "rako['oik']['yla']"); jQuery(document).ready(function() { /* Piilota, lukitse ja estä halutut tietueet */ jQuery('input['.concat(dataid,'*=',hide,']')).closest('dd').hide(); jQuery('input['.concat(dataid,'*=',hide,']')).closest('dd').prev('dt').hide(); jQuery('input['.concat(dataid,'*=',lock,']')).attr('readonly', true); huomioteksti = "Tässä tuotteessa pyydettävät mitat ovat asennusaukon mittoja.\n\nÄlä tee mitoista mitään vähennyksiä!"; if (huomioteksti != "") { alert(huomioteksti); } /* Selvitetään lasiseinän tms. tyyppi */ if ( jQuery('#esikatselu').prop('name') != "" ) { tyyppi = parseInt( jQuery('#esikatselu').prop('name') ); } else { tyyppi = parseInt( jQuery('select['.concat(dataid,'*="koodi"]')).val() ); } /* Aseta oletusarvot kenttiin, jos kentät olemassa ja tyhjiä */ if ( jQuery('input[custom-details*="levVL"]').length && jQuery('input[custom-details*="levVL"]' ).val() == '' ) { jQuery( 'input[custom-details*="levVL"]' ).val( 60 ); } if ( jQuery('#levVL').length ) { jQuery('#levVL').val( jQuery('input[custom-details*="levVL"]').val() ); } if ( jQuery('input[custom-details*="levOVI"]').length && jQuery('input[custom-details*="levOVI"]' ).val() == '' ) { jQuery( 'input[custom-details*="levOVI"]' ).val( 70 ); } if ( jQuery('#levOVI').length ) { jQuery('#levOVI').val( jQuery('input[custom-details*="levOVI"]').val() ); } if ( jQuery('input[custom-details*="levOL"]').length && jQuery('input[custom-details*="levOL"]' ).val() == '' ) { jQuery( 'input[custom-details*="levOL"]' ).val( 60 ); } if ( jQuery('#levOL').length ) { jQuery('#levOL').val( jQuery('input[custom-details*="levOL"]').val() ); } if ( jQuery('input[custom-details*="korkY1"]').length && jQuery('input[custom-details*="korkY1"]' ).val() == '' ) { if (tyyppi.toString().charAt(0) == "3" || tyyppi.toString().charAt(2) == "3") { jQuery( 'input[custom-details*="korkY1"]' ).val( 115 ); } else { jQuery( 'input[custom-details*="korkY1"]' ).val( 230 ); } } if ( jQuery('#korkY1').length ) { jQuery('#korkY1').val( jQuery('input[custom-details*="korkY1"]').val() ); } if ( jQuery('input[custom-details*="korkY3"]').length && jQuery('input[custom-details*="korkY3"]' ).val() == '' ) { if (tyyppi.toString().charAt(0) == "3" || tyyppi.toString().charAt(2) == "3") { jQuery( 'input[custom-details*="korkY3"]' ).val( 115 ); } else { jQuery( 'input[custom-details*="korkY3"]' ).val( 230 ); } } if ( jQuery('#korkY3').length ) { jQuery('#korkY3').val( jQuery('input[custom-details*="korkY3"]').val() ); } if ( jQuery('input[custom-details*="korkY2"]').length && jQuery('input[custom-details*="korkY2"]' ).val() == '' ) { jQuery( 'input[custom-details*="korkY2"]' ).val( 230 ); } if ( jQuery('#korkY2').length ) { jQuery('#korkY2').val( jQuery('input[custom-details*="korkY2"]').val() ); } if ( jQuery('input[custom-details*="korkO"]').length && jQuery('input[custom-details*="korkO"]' ).val() == '' ) { jQuery( 'input[custom-details*="korkO"]' ).val( 210 ); } if ( jQuery('#korkO').length ) { jQuery('#korkO').val( jQuery('input[custom-details*="korkO"]').val() ); } /* Jos kätisyys vaihdetaan, tee mitoista peilikuvat */ jQuery('select['.concat(dataid,'*="katisyys"]')).change(function() { saranapuolitxt = jQuery('select['.concat(dataid,'*="katisyys"]', ' :selected')).text(); saranapuolitxt = saranapuolitxt.split(/[\-+\s]/,1); /* Vaihdetaan saranoiden ja kahvan puoli */ if ((saranapuoli == "vas") && (saranapuolitxt == "Oikea")) { saranapuoli = "oik"; /* Vaihdetaan oven vasemman ja oikeanpuoleinen rakomitta keskenään */ var temp = rako["ovi"]["vas"]; rako["ovi"]["vas"] = rako["ovi"]["oik"]; rako["ovi"]["oik"] = temp; } else if ((saranapuoli == "oik") && (saranapuolitxt == "Vasen")) { saranapuoli = "vas"; /* Vaihdetaan oven vasemman ja oikeanpuoleinen rakomitta keskenään */ var temp = rako["ovi"]["vas"]; rako["ovi"]["vas"] = rako["ovi"]["oik"]; rako["ovi"]["oik"] = temp; } }); jQuery("select,input:radio,input:checkbox,input:text,textarea").change(function() { /* Selvitetään lasiseinän tms. tyyppi */ if ( jQuery('#esikatselu').prop('name') != "" ) { tyyppi = parseInt( jQuery('#esikatselu').prop('name') ); } else { tyyppi = parseInt( jQuery('select['.concat(dataid,'*="koodi"]')).val() ); } materiaali = jQuery('select['.concat(dataid,'*="materiaali"]', ' :selected')).text() || 'Kirkas'; if (materiaali == "-- Valitse --") { materiaali = 'Kirkas'; } materiaali = materiaali.split(/[\-+\s]/,1); materiaali = encodeURIComponent(jQuery.trim(materiaali)); if ( jQuery('select['.concat(dataid,'*="korjaus"]')).val() == 0) { korjaus = false; } else if ( jQuery('select['.concat(dataid,'*="korjaus"]')).val() == 1) { korjaus = true; } /* Esikatselukuvaan / pdf-tiedostoon tiedot siirtävä muuttuja */ optiot = "t=" + tyyppi; /* Luetaan syötetyt tiedot */ lev["ovi"] = muutafloatiksi("levOVI"); lev["vas"] = muutafloatiksi("levVL"); lev["oik"] = muutafloatiksi("levOL"); kork["vas"] = muutafloatiksi("korkY1") || muutafloatiksi("korkY3") || muutafloatiksi("korkY2") || muutafloatiksi("korkO"); kork["oik"] = muutafloatiksi("korkY3") || muutafloatiksi("korkY1") || muutafloatiksi("korkY2") || muutafloatiksi("korkO"); kork["kesk"] = muutafloatiksi("korkY2"); kork["ovi"] = muutafloatiksi("korkO") || muutafloatiksi("korkY2"); /* Tarkistetaan lasiseinän tyyppi ja korjataan tarvittavat mitat */ if (tyyppi.toString().charAt(1) == "2") { kork["kesk"] = kork["ovi"]; } if (tyyppi.toString().charAt(0) == "2" || tyyppi.toString().charAt(2) == "2") { minimi["vas"].korkeus = kork["kesk"] - 1.5; minimi["oik"].korkeus = kork["kesk"] - 1.5; maksimi["vas"].korkeus = kork["kesk"] + 1.5; maksimi["oik"].korkeus = kork["kesk"] + 1.5; } else if (tyyppi.toString().charAt(0) == "3" || tyyppi.toString().charAt(2) == "3") { minimi["vas"].korkeus = kork["kesk"] - kork["ovi"] + 60; minimi["oik"].korkeus = kork["kesk"] - kork["ovi"] + 60; maksimi["vas"].korkeus = kork["kesk"] - 42; maksimi["oik"].korkeus = kork["kesk"] - 42; } /* Lasketaan syötetyillä tiedoilla */ pa = 0; ala = 0; levhinta = 0; korkhinta = 0; var jalkatxt = jQuery('select['.concat(dataid,'*="jalat"]', ' :selected')).text() || 'Ei jalkoja'; if (jalkatxt == "-- Valitse --") { jalkatxt = 'Ei jalkoja'; } jalkatxt = jalkatxt.split(/[\-+\s]/,1); jalkatxt = encodeURIComponent(jQuery.trim(jalkatxt)); var jalkalaskuri = 0; var jalkalkm = 0; jalka = []; var saranatxt = jQuery('select['.concat(dataid,'*="saranat"]', ' :selected')).text() || 'Kromi'; if (saranatxt == "-- Valitse --") { saranatxt = 'Kromi'; } saranatxt = saranatxt.split(/[\-+\s]/,1); saranatxt = encodeURIComponent(jQuery.trim(saranatxt)); sarana = []; var vedintxt = jQuery('select['.concat(dataid,'*="vedin"]', ' :selected')).text() || 'Kromi'; if (vedintxt == "-- Valitse --") { vedintxt = 'Kromi'; } vedintxt = vedintxt.split(/[\-+\s]/,1); vedintxt = encodeURIComponent(jQuery.trim(vedintxt)); var kiinniketxt = jQuery('select['.concat(dataid,'*="kiinnike"]', ' :selected')).text() || '2kpl'; if (kiinniketxt == "-- Valitse --") { kiinniketxt = '2kpl'; } kiinniketxt = kiinniketxt.split(/[\-+\s]/,1); kiinniketxt = encodeURIComponent(jQuery.trim(kiinniketxt)); kiinnike = []; var virhe = false; var virheteksti = 'HUOM!\n\nLaseja ei ehkä voi valmistaa tai asentaa annetuilla mitoilla.\nJos mitat ovat mielestäsi oikein,\nota yhteyttä asiakaspalveluun.\n\n'; lev["aukko"] = 0; jQuery.each( lasi[tyyppi], function(index, item) { /* Lasketaan ko. lasin sekä aukon mitat */ item.leveys = round( eval(item.levkaava) ,2); item.korkeus = round( eval(item.korkkaava) ,2); item.aukkolev = round(item.leveys + rako[item.nimi]["vas"] + rako[item.nimi]["oik"], 2); if (item.nimi === "ovi" && tyyppi.toString().charAt(1) == "3") { item.aukkokork = round(item.korkeus + rako[item.nimi]["ala"], 2); } else { item.aukkokork = round(item.korkeus + rako[item.nimi]["yla"] + rako[item.nimi]["ala"], 2); } /* Lasketaan ko. lasin ja aukon vasemman ylänurkan sijainti */ item.x0 = round( eval(item.x0kaava) ,2); item.y0 = round( eval(item.y0kaava) ,2); item.aukkox = round( item.x0 - rako[item.nimi]["vas"], 2); item.aukkoy = round( item.y0 - rako[item.nimi]["yla"], 2); /* Lasketaan lisäys vielä aukon kokonaisleveyteen */ if (item.nimi === "vas" || item.nimi === "oik" || item.nimi === "ovi" ) { lev["aukko"] = lev["aukko"] + lev[item.nimi]; } /* Jos valittuna on jalat, laske lasin korkeus sekä rako lasin alla uudestaan vasemmalle ja oikealle lasille */ var kiintea = ((item.nimi === "vas") || (item.nimi === "oik")) ? item.nimi : false; if (kiintea) { /* Jos jalat on määritetty conf-tiedostossa */ if (jalat[jalkatxt]) { if (tyyppi.toString().charAt(0) == "2" || tyyppi.toString().charAt(2) == "2") { var arvo = 'kesk'; } else { var arvo = kiintea; } item.korkeus = round( eval( jalat[jalkatxt][10] ) ,2); /* Lasin korkeus */ rako[kiintea]["ala"] = round( kork[kiintea] - item.korkeus - rako[kiintea]["yla"], 2); /* Alaraon koko */ /* Selvitetään lasille tarvittavien jalkojen määrä */ jalkalkm = 0; jalatlkm.forEach(function(item2, index2) { if (item.leveys >= item2[0]) { jalkalkm = index2; } }); /* Lasketaan jalkojen sijainnit */ for (i = 0; i < jalkalkm; i++) { /* Luo jalkaa vastaava osanen */ jalka[jalkalaskuri] = new osanen(jalkatxt, jalat[jalkatxt][0]); jalka[jalkalaskuri].y0 = round( rako[kiintea]["yla"] + item.korkeus + ( jalat[jalkatxt][9] - jalat[jalkatxt][6] ), 2); var j = round( eval( jalatlkm[jalkalkm][1] ), 2); if (((i == 0) && (jalkalkm > 1)) || ((i == 0) && (jalkalkm = 1))) { jalka[jalkalaskuri].x0 = round( item.x0 + j, 2); } else if (i == jalkalkm-1 && jalkalkm > 1) { jalka[jalkalaskuri].x0 = round( item.x0 + item.leveys - j, 2); } else { jalka[jalkalaskuri].x0 = round( item.x0 + j + ( i / (jalkalkm-1) * (item.leveys - (2 * j) ) ), 2); } jalkalaskuri++; } } /* Jos valitaan ei määritellyt jalat (esim. "Ei jalkoja") */ else { /* Poistetaan mahdolliset jalat */ rako["ovi"]["ala"] = 10; rako["vas"]["ala"] = 0.9; rako["oik"]["ala"] = 0.9; rako["yla"]["ala"] = 0.5; item.korkeus = round( eval(item.korkkaava) ,2); } } /* Tarkistetaan, ovatko lasin mitat sallituissa rajoissa - muuten ilmoitetaan virheestä */ if (item.aukkolev < minimi[item.nimi].leveys) { /* Minimileveys */ virhe = true; virheteksti = virheteksti + item.nimitys + ': leveys oltava vähintään ' + minimi[item.nimi].leveys + 'cm\n'; /* Jos automaattikorjaus on päällä, korjataan mitta */ if (korjaus) { item.aukkolev = minimi[item.nimi].leveys; } } else if (item.aukkolev > maksimi[item.nimi].leveys) { /* Maksimileveys */ virhe = true; virheteksti = virheteksti + item.nimitys + ': leveys oltava enintään ' + maksimi[item.nimi].leveys + 'cm\n'; /* Jos automaattikorjaus on päällä, korjataan mitta */ if (korjaus) { item.aukkolev = maksimi[item.nimi].leveys; } } if (item.aukkokork < minimi[item.nimi].korkeus) { /* Minimikorkeus */ virhe = true; virheteksti = virheteksti + item.nimitys + ': korkeus oltava vähintään ' + minimi[item.nimi].korkeus + 'cm\n'; /* Jos automaattikorjaus on päällä, korjataan mitta */ if (korjaus) { item.aukkokork = minimi[item.nimi].korkeus; kork[item.nimi] = item.aukkokork; if (item.nimi == "yla") { kork["kesk"] = kork["ovi"] + kork["yla"]; } /* Korjataan tarvittavat rajamitat */ if (tyyppi.toString().charAt(0) == "2" || tyyppi.toString().charAt(2) == "2") { minimi["vas"].korkeus = kork["kesk"] - 1.5; minimi["oik"].korkeus = kork["kesk"] - 1.5; maksimi["vas"].korkeus = kork["kesk"] + 1.5; maksimi["oik"].korkeus = kork["kesk"] + 1.5; } else if (tyyppi.toString().charAt(0) == "3" || tyyppi.toString().charAt(2) == "3") { minimi["vas"].korkeus = kork["kesk"] - kork["ovi"] + 60; minimi["oik"].korkeus = kork["kesk"] - kork["ovi"] + 60; maksimi["vas"].korkeus = kork["kesk"] - 42; maksimi["oik"].korkeus = kork["kesk"] - 42; } } } else if (item.aukkokork > maksimi[item.nimi].korkeus) { /* Maksimikorkeus */ virhe = true; virheteksti = virheteksti + item.nimitys + ': korkeus oltava enintään ' + maksimi[item.nimi].korkeus + 'cm\n'; /* Jos automaattikorjaus on päällä, korjataan mitta */ if (korjaus) { item.aukkokork = maksimi[item.nimi].korkeus; kork[item.nimi] = item.aukkokork; if (item.nimi == "yla") { kork["kesk"] = kork["ovi"] + kork["yla"]; } /* Korjataan tarvittavat rajamitat */ if (tyyppi.toString().charAt(0) == "2" || tyyppi.toString().charAt(2) == "2") { minimi["vas"].korkeus = kork["kesk"] - 1.5; minimi["oik"].korkeus = kork["kesk"] - 1.5; maksimi["vas"].korkeus = kork["kesk"] + 1.5; maksimi["oik"].korkeus = kork["kesk"] + 1.5; } else if (tyyppi.toString().charAt(0) == "3" || tyyppi.toString().charAt(2) == "3") { minimi["vas"].korkeus = kork["kesk"] - kork["ovi"] + 60; minimi["oik"].korkeus = kork["kesk"] - kork["ovi"] + 60; maksimi["vas"].korkeus = kork["kesk"] - 42; maksimi["oik"].korkeus = kork["kesk"] - 42; } } } lev[item.nimi] = item.aukkolev; kork[item.nimi] = item.aukkokork; /* Jos ylälasille on valittu kiinnikkeet, asetetaan näiden tiedot ja sijainnit */ if (item.nimi == "yla" && kiinnikkeet[kiinniketxt]) { kiinnike[0] = new osanen(kiinniketxt, kiinnikkeet[kiinniketxt][0]); kiinnike[1] = new osanen(kiinniketxt, kiinnikkeet[kiinniketxt][0]); kiinnike[0].y0 = round( item.y0 + (item.korkeus / 2), 2); kiinnike[1].y0 = round( item.y0 + (item.korkeus / 2), 2); kiinnike[0].x0 = round( item.aukkox, 2); kiinnike[1].x0 = round( item.aukkox + item.aukkolev, 2); } /* Lasketaan saranoiden sijainnit */ if (item.nimi == "ovi" && saranat[saranatxt]) { /* Selvitetään saranoiden lukumäärä */ srnlkm = 0; saranatlkm.forEach(function(item2, index2) { if (lev["ovi"] >= item2[1]) { srnlkm = index2; } }); for (i = 0; i < srnlkm; i++) { sarana[i] = new osanen(saranatxt, saranat[saranatxt][0]); if (i < (srnlkm-1) ) { sarana[i].y0 = round( item.y0 + saranatlkm[srnlkm][i+2], 2); } else { sarana[i].y0 = round( item.y0 + item.korkeus - saranatlkm[srnlkm][2], 2); } if (saranapuoli == "vas") { sarana[i].x0 = round( item.aukkox, 2); } else { sarana[i].x0 = round( item.aukkox + item.aukkolev, 2); } } } /* Lasketaan vetimen sijainti */ if (item.nimi == "ovi" && vetimet[vedintxt]) { /* Selvitetään saranoiden lukumäärä */ vedin = new osanen(vedintxt, vetimet[vedintxt][0]); vedin.y0 = round( item.y0 + item.korkeus + rako["ovi"]["ala"] - vetimet[vedintxt][8], 2); if (saranapuoli == "vas") { vedin.x0 = round( item.x0 + item.leveys - vetimet[vedintxt][9], 2); } else { vedin.x0 = round( item.x0 + vetimet[vedintxt][9], 2); } } /* Jos leveys tai korkeus ylittää raja-arvon, lisätään laskentamittaan määrätty arvo */ if (item.leveys > levraja) { levhinta = levlisa; } if (item.korkeus > korkraja) { korkhinta = korklisa; } /* Lasketaan todellinen pinta-ala */ pa = pa + ((item.leveys/100) * (item.korkeus/100)); /* Lasketaan laskutettava pinta-ala, eli todellinen pinta-ala kerrottuna materiaalin hintakertoimela */ if (!hintakerroin[materiaali]) { hintakerroin[materiaali] = 1; } ala = ala + (item.leveys * item.korkeus * hintakerroin[materiaali]); }); /* Lisätään laskutettavaan pinta-alaan mahdolliset suuren kappaleen sekä sarana- ja jalkamäärän lisät */ ala = ala + levhinta + korkhinta; if (typeof jalatlkm[jalkalkm] != 'undefined') { ala = ala + jalatlkm[jalkalkm][3]; } if (typeof saranatlkm[srnlkm] != 'undefined') { ala = ala + saranatlkm[srnlkm][0]; } /* Lasketaan pinta-alan neliömitta hintalaskuria varten */ var neliomitta = Math.sqrt(ala); neliomitta = +neliomitta.toFixed(3); /* Lasketaan aukon kokonaiskorkeus keskellä */ kork["kesk"] = kork["ovi"] + kork["yla"]; /* Jos virhetila, ilmoitetaan asiasta pop-up -ikkunalla ja korjataan tarvittaessa */ if (virhe) { if (korjaus) { virheteksti = virheteksti + "Mainitut mitat muutettu mahdollisiksi."; } if (varoitus) { alert(virheteksti); } } /* Kirjoitetaan tiedot kenttiin */ jQuery('input[custom-details*="levOVI"]' ).val(lev["ovi"]); jQuery('#levOVI').val(lev["ovi"]); jQuery('input[custom-details*="korkO"]' ).val(kork["ovi"]); jQuery('#korkO').val(kork["ovi"]); jQuery('input[custom-details*="levVL"]' ).val(lev["vas"]); jQuery('#levVL').val(lev["vas"]); jQuery('input[custom-details*="levOL"]' ).val(lev["oik"]); jQuery('#levOL').val(lev["oik"]); jQuery('input[custom-details*="korkY1"]' ).val(kork["vas"]); jQuery('#korkY1').val(kork["vas"]); jQuery('input[custom-details*="korkY3"]' ).val(kork["oik"]); jQuery('#korkY3').val(kork["oik"]); jQuery('input[custom-details*="korkY2"]' ).val(kork["kesk"]); jQuery('#korkY2').val(kork["kesk"]); if (virhe) { virhe = false; /* Laukaistaan vielä muutos */ if (korjaus) { jQuery('input['.concat(dataid,'*="laskumitta"]') ).trigger('change'); return; } } /* Kirjoitetaan neliömitta kenttään ja päivitetään hinta */ jQuery('input[custom-details*="laskumitta"]').val(neliomitta); /* Jos ei olla sisäisellä lomakkeella, päivitetään hinta */ if ( typeof opConfig != "undefined" ) { opConfig.reloadPrice(); } /* Kirjoitetaan muut laskujen tulokset kenttiin */ jQuery('input[custom-details*="levkok"]' ).val(lev["aukko"]); jQuery('#levkok').val(lev["aukko"]); jQuery('input[custom-details*="pa"]' ).val(pa); jQuery('#pa').val(pa); jQuery('input[custom-details*="ala"]' ).val(ala/10000); jQuery('#ala').val(ala/10000); /* Kirjoitetaan lasien tiedot oikeisiin kenttiin ja lisätään samat arvot esikatselukuvan optiomuuttujaan */ jQuery.each( lasi[tyyppi], function(index, item) { jQuery('#'.concat(item.nimi,'lev')).val(item.leveys); jQuery('#'.concat(item.nimi,'kork')).val(item.korkeus); jQuery('#'.concat(item.nimi,'x0')).val(item.x0); jQuery('#'.concat(item.nimi,'y0')).val(item.y0); optiot += "&n"+index+"="+item.nimi+"&w"+index+"="+item.leveys+"&h"+index+"="+item.korkeus+"&x"+index+"="+item.x0+"&y"+index+"="+item.y0; optiot += "&aw"+index+"="+item.aukkolev+"&ah"+index+"="+item.aukkokork+"&ax"+index+"="+item.aukkox+"&ay"+index+"="+item.aukkoy; }); /* Jos jalat asetettu, lisätään arvot esikatselukuvan optiomuuttujaan */ if (jalka.length > 0) { optiot += "&f="+jalkatxt; jQuery.each( jalka, function(index, item) { optiot += "&fx"+index+"="+item.x0+"&fy"+index+"="+item.y0; }); } /* Jos saranat asetettu, lisätään arvot esikatselukuvan optiomuuttujaan */ if (sarana.length > 0) { optiot += "&h="+saranatxt; jQuery.each( sarana, function(index, item) { optiot += "&hx"+index+"="+item.x0+"&hy"+index+"="+item.y0; }); } /* Jos vedin asetettu, lisätään arvot esikatselukuvan optiomuuttujaan */ if (vedin) { optiot += "&k="+vedintxt+"&kx="+vedin.x0+"&ky="+vedin.y0; } /* Jos ylälasin kiinnikkeet asetettu, lisätään arvot esikatselukuvan optiomuuttujaan */ if (kiinnike.length > 0) { optiot += "&p="+kiinniketxt; jQuery.each( kiinnike, function(index, item) { optiot += "&px"+index+"="+item.x0+"&py"+index+"="+item.y0; }); } /* Lisätään lasin väri optiomuuttujaan */ optiot += "&c="+materiaali /* jQuery('select['.concat(dataid,'*="materiaali"]', ' :selected')).text() */; /* Jos virhe, lisätään tieto optiomuuttujaan */ if (virhe) { optiot += "&err=1"; } /* Lisätään vielä kätisyys optiomuuttujaan */ optiot += "&sd=" + saranapuoli; /* Korjataan mahd. uri */ optiot = encodeURI(optiot); /* Lisätään suunnittelijan ja suunnitelman nimet optiomuuttujaan */ var otsikkonimi = true; if ( (jQuery('input[custom-details*="suunnitelma"]').length) && (jQuery('input[custom-details*="suunnitelma"]').val() != "") ) { optiot += "&pl=" + encodeURIComponent( jQuery('input[custom-details*="suunnitelma"]').val() ); } else if ( (jQuery('h1').length) && (otsikkonimi) ) { optiot += "&pl=" + encodeURIComponent( jQuery('h1').text() ); } var suunnittelija = jQuery('select['.concat(dataid,'*="suunnittelija"]', ' :selected')).val(); if (suunnittelija != "") { optiot += "&dg="+suunnittelija; } /* Tarkistetaan, onko olemassa kenttä optiokoodia varten ja onko siinä sisältöä */ if ( (jQuery('input[custom-details*="linkkikoodi"]').length) && (jQuery('input[custom-details*="linkkikoodi"]').val() != "") ) { optiot = jQuery('input[custom-details*="linkkikoodi"]').val(); } /* Päivitetään esikatselukuva ja kuvan linkki asiakkaalle */ jQuery('#esikatselu').prop('src', jQuery('#esikatselu').prop('alt')+'?'+optiot ); if ( jQuery('input[custom-details*="kuvaosoite"]').length ) { jQuery('input[custom-details*="kuvaosoite"]').val( jQuery('#esikatselu').prop('alt')+'?'+optiot ); } /* Jos ollaan sisäisessä lomakkeessa, päivitetään lomakkeen käsittely */ if ( jQuery('#Lasilaskuriformi') ) { jQuery('#Lasilaskuriformi').attr('action', 'lasipdf.php'+'?'+optiot ); jQuery("#rakoovivas").val(rako["ovi"]["vas"]);jQuery("#rakoovioik").val(rako["ovi"]["oik"]);jQuery("#rakooviyla").val(rako["ovi"]["yla"]);jQuery("#rakooviala").val(rako["ovi"]["ala"]);jQuery("#rakovasvas").val(rako["vas"]["vas"]);jQuery("#rakovasoik").val(rako["vas"]["oik"]);jQuery("#rakovasyla").val(rako["vas"]["yla"]);jQuery("#rakovasala").val(rako["vas"]["ala"]);jQuery("#rakooikvas").val(rako["oik"]["vas"]);jQuery("#rakooikoik").val(rako["oik"]["oik"]);jQuery("#rakooikyla").val(rako["oik"]["yla"]);jQuery("#rakooikala").val(rako["oik"]["ala"]);jQuery("#rakoylavas").val(rako["yla"]["vas"]);jQuery("#rakoylaoik").val(rako["yla"]["oik"]);jQuery("#rakoylayla").val(rako["yla"]["yla"]);jQuery("#rakoylaala").val(rako["yla"]["ala"]); } }); /* Lasketaan arvot myös oletusasetuksilla tai ohjelmallisilla muutoksilla */ jQuery('input['.concat(dataid,'*="laskumitta"]') ).trigger('change'); });