Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
| Rivi 204: | Rivi 204: | ||
return (elemBottom <= winBottom) && (elemTop >= winTop); | return (elemBottom <= winBottom) && (elemTop >= winTop); | ||
} | } | ||
muniNumberToName( number ) { | |||
var munis = { | |||
'020': 'Akaa', | |||
'005': 'Alajärvi', | |||
'009': 'Alavieska', | |||
'010': 'Alavus', | |||
'016': 'Asikkala', | |||
'018': 'Askola', | |||
'019': 'Aura', | |||
'035': 'Brändö', | |||
'043': 'Eckerö', | |||
'046': 'Enonkoski', | |||
'047': 'Enontekiö', | |||
'049': 'Espoo', | |||
'050': 'Eura', | |||
'051': 'Eurajoki', | |||
'052': 'Evijärvi', | |||
'060': 'Finström', | |||
'061': 'Forssa', | |||
'062': 'Föglö', | |||
'065': 'Geta', | |||
'069': 'Haapajärvi', | |||
'071': 'Haapavesi', | |||
'072': 'Hailuoto', | |||
'074': 'Halsua', | |||
'075': 'Hamina', | |||
'076': 'Hammarland', | |||
'077': 'Hankasalmi', | |||
'078': 'Hanko', | |||
'079': 'Harjavalta', | |||
'081': 'Hartola', | |||
'082': 'Hattula', | |||
'086': 'Hausjärvi', | |||
'111': 'Heinola', | |||
'090': 'Heinävesi', | |||
'091': 'Helsinki', | |||
'097': 'Hirvensalmi', | |||
'098': 'Hollola', | |||
'102': 'Huittinen', | |||
'103': 'Humppila', | |||
'105': 'Hyrynsalmi', | |||
'106': 'Hyvinkää', | |||
'108': 'Hämeenkyrö', | |||
'109': 'Hämeenlinna', | |||
'139': 'Ii', | |||
'140': 'Iisalmi', | |||
'142': 'Iitti', | |||
'143': 'Ikaalinen', | |||
'145': 'Ilmajoki', | |||
'146': 'Ilomantsi', | |||
'153': 'Imatra', | |||
'148': 'Inari', | |||
'149': 'Inkoo', | |||
'151': 'Isojoki', | |||
'152': 'Isokyrö', | |||
'165': 'Janakkala', | |||
'167': 'Joensuu', | |||
'169': 'Jokioinen', | |||
'170': 'Jomala', | |||
'171': 'Joroinen', | |||
'172': 'Joutsa', | |||
'176': 'Juuka', | |||
'177': 'Juupajoki', | |||
'178': 'Juva', | |||
'179': 'Jyväskylä', | |||
'181': 'Jämijärvi', | |||
'182': 'Jämsä', | |||
'186': 'Järvenpää', | |||
'202': 'Kaarina', | |||
'204': 'Kaavi', | |||
'205': 'Kajaani', | |||
'208': 'Kalajoki', | |||
'211': 'Kangasala', | |||
'213': 'Kangasniemi', | |||
'214': 'Kankaanpää', | |||
'216': 'Kannonkoski', | |||
'217': 'Kannus', | |||
'218': 'Karijoki', | |||
'224': 'Karkkila', | |||
'226': 'Karstula', | |||
'230': 'Karvia', | |||
'231': 'Kaskinen', | |||
'232': 'Kauhajoki', | |||
'233': 'Kauhava', | |||
'235': 'Kauniainen', | |||
'236': 'Kaustinen', | |||
'239': 'Keitele', | |||
'240': 'Kemi', | |||
'320': 'Kemijärvi', | |||
'241': 'Keminmaa', | |||
'322': 'Kemiönsaari', | |||
'244': 'Kempele', | |||
'245': 'Kerava', | |||
'249': 'Keuruu', | |||
'250': 'Kihniö', | |||
'256': 'Kinnula', | |||
'257': 'Kirkkonummi', | |||
'260': 'Kitee', | |||
'261': 'Kittilä', | |||
'263': 'Kiuruvesi', | |||
'265': 'Kivijärvi', | |||
'271': 'Kokemäki', | |||
'272': 'Kokkola', | |||
'273': 'Kolari', | |||
'275': 'Konnevesi', | |||
'276': 'Kontiolahti', | |||
'280': 'Korsnäs', | |||
'284': 'Koski Tl', | |||
'285': 'Kotka', | |||
'286': 'Kouvola', | |||
'287': 'Kristiinankaupunki', | |||
'288': 'Kruunupyy', | |||
'290': 'Kuhmo', | |||
'291': 'Kuhmoinen', | |||
'295': 'Kumlinge', | |||
'297': 'Kuopio', | |||
'300': 'Kuortane', | |||
'301': 'Kurikka', | |||
'304': 'Kustavi', | |||
'305': 'Kuusamo', | |||
'312': 'Kyyjärvi', | |||
'316': 'Kärkölä', | |||
'317': 'Kärsämäki', | |||
'318': 'Kökar', | |||
'398': 'Lahti', | |||
'399': 'Laihia', | |||
'400': 'Laitila', | |||
'407': 'Lapinjärvi', | |||
'402': 'Lapinlahti', | |||
'403': 'Lappajärvi', | |||
'405': 'Lappeenranta', | |||
'408': 'Lapua', | |||
'410': 'Laukaa', | |||
'416': 'Lemi', | |||
'417': 'Lemland', | |||
'418': 'Lempäälä', | |||
'420': 'Leppävirta', | |||
'421': 'Lestijärvi', | |||
'422': 'Lieksa', | |||
'423': 'Lieto', | |||
'425': 'Liminka', | |||
'426': 'Liperi', | |||
'444': 'Lohja', | |||
'430': 'Loimaa', | |||
'433': 'Loppi', | |||
'434': 'Loviisa', | |||
'435': 'Luhanka', | |||
'436': 'Lumijoki', | |||
'438': 'Lumparland', | |||
'440': 'Luoto', | |||
'441': 'Luumäki', | |||
'475': 'Maalahti', | |||
'478': 'Maarianhamina - Mariehamn', | |||
'480': 'Marttila', | |||
'481': 'Masku', | |||
'483': 'Merijärvi', | |||
'484': 'Merikarvia', | |||
'489': 'Miehikkälä', | |||
'491': 'Mikkeli', | |||
'494': 'Muhos', | |||
'495': 'Multia', | |||
'498': 'Muonio', | |||
'499': 'Mustasaari', | |||
'500': 'Muurame', | |||
'503': 'Mynämäki', | |||
'504': 'Myrskylä', | |||
'505': 'Mäntsälä', | |||
'508': 'Mänttä-Vilppula', | |||
'507': 'Mäntyharju', | |||
'529': 'Naantali', | |||
'531': 'Nakkila', | |||
'535': 'Nivala', | |||
'536': 'Nokia', | |||
'538': 'Nousiainen', | |||
'541': 'Nurmes', | |||
'543': 'Nurmijärvi', | |||
'545': 'Närpiö', | |||
'560': 'Orimattila', | |||
'561': 'Oripää', | |||
'562': 'Orivesi', | |||
'563': 'Oulainen', | |||
'564': 'Oulu', | |||
'309': 'Outokumpu', | |||
'576': 'Padasjoki', | |||
'577': 'Paimio', | |||
'578': 'Paltamo', | |||
'445': 'Parainen', | |||
'580': 'Parikkala', | |||
'581': 'Parkano', | |||
'599': 'Pedersören kunta', | |||
'583': 'Pelkosenniemi', | |||
'854': 'Pello', | |||
'584': 'Perho', | |||
'592': 'Petäjävesi', | |||
'593': 'Pieksämäki', | |||
'595': 'Pielavesi', | |||
'598': 'Pietarsaari', | |||
'601': 'Pihtipudas', | |||
'604': 'Pirkkala', | |||
'607': 'Polvijärvi', | |||
'608': 'Pomarkku', | |||
'609': 'Pori', | |||
'611': 'Pornainen', | |||
'638': 'Porvoo', | |||
'614': 'Posio', | |||
'615': 'Pudasjärvi', | |||
'616': 'Pukkila', | |||
'619': 'Punkalaidun', | |||
'620': 'Puolanka', | |||
'623': 'Puumala', | |||
'624': 'Pyhtää', | |||
'625': 'Pyhäjoki', | |||
'626': 'Pyhäjärvi', | |||
'630': 'Pyhäntä', | |||
'631': 'Pyhäranta', | |||
'635': 'Pälkäne', | |||
'636': 'Pöytyä', | |||
'678': 'Raahe', | |||
'710': 'Raasepori', | |||
'680': 'Raisio', | |||
'681': 'Rantasalmi', | |||
'683': 'Ranua', | |||
'684': 'Rauma', | |||
'686': 'Rautalampi', | |||
'687': 'Rautavaara', | |||
'689': 'Rautjärvi', | |||
'691': 'Reisjärvi', | |||
'694': 'Riihimäki', | |||
'697': 'Ristijärvi', | |||
'698': 'Rovaniemi', | |||
'700': 'Ruokolahti', | |||
'702': 'Ruovesi', | |||
'704': 'Rusko', | |||
'707': 'Rääkkylä', | |||
'729': 'Saarijärvi', | |||
'732': 'Salla', | |||
'734': 'Salo', | |||
'736': 'Saltvik', | |||
'790': 'Sastamala', | |||
'738': 'Sauvo', | |||
'739': 'Savitaipale', | |||
'740': 'Savonlinna', | |||
'742': 'Savukoski', | |||
'743': 'Seinäjoki', | |||
'746': 'Sievi', | |||
'747': 'Siikainen', | |||
'748': 'Siikajoki', | |||
'791': 'Siikalatva', | |||
'749': 'Siilinjärvi', | |||
'751': 'Simo', | |||
'753': 'Sipoo', | |||
'755': 'Siuntio', | |||
'758': 'Sodankylä', | |||
'759': 'Soini', | |||
'761': 'Somero', | |||
'762': 'Sonkajärvi', | |||
'765': 'Sotkamo', | |||
'766': 'Sottunga', | |||
'768': 'Sulkava', | |||
'771': 'Sund', | |||
'777': 'Suomussalmi', | |||
'778': 'Suonenjoki', | |||
'781': 'Sysmä', | |||
'783': 'Säkylä', | |||
'831': 'Taipalsaari', | |||
'832': 'Taivalkoski', | |||
'833': 'Taivassalo', | |||
'834': 'Tammela', | |||
'837': 'Tampere', | |||
'844': 'Tervo', | |||
'845': 'Tervola', | |||
'846': 'Teuva', | |||
'848': 'Tohmajärvi', | |||
'849': 'Toholampi', | |||
'850': 'Toivakka', | |||
'851': 'Tornio', | |||
'853': 'Turku', | |||
'857': 'Tuusniemi', | |||
'858': 'Tuusula', | |||
'859': 'Tyrnävä', | |||
'886': 'Ulvila', | |||
'887': 'Urjala', | |||
'889': 'Utajärvi', | |||
'890': 'Utsjoki', | |||
'892': 'Uurainen', | |||
'893': 'Uusikaarlepyy', | |||
'895': 'Uusikaupunki', | |||
'785': 'Vaala', | |||
'905': 'Vaasa', | |||
'908': 'Valkeakoski', | |||
'092': 'Vantaa', | |||
'915': 'Varkaus', | |||
'918': 'Vehmaa', | |||
'921': 'Vesanto', | |||
'922': 'Vesilahti', | |||
'924': 'Veteli', | |||
'925': 'Vieremä', | |||
'927': 'Vihti', | |||
'931': 'Viitasaari', | |||
'934': 'Vimpeli', | |||
'935': 'Virolahti', | |||
'936': 'Virrat', | |||
'941': 'Vårdö', | |||
'946': 'Vöyri', | |||
'976': 'Ylitornio', | |||
'977': 'Ylivieska', | |||
'980': 'Ylöjärvi', | |||
'981': 'Ypäjä', | |||
'989': 'Ähtäri', | |||
'992': 'Äänekoski' | |||
}; | |||
if ( typeof munis[ number ] != 'undefined' ) { | |||
return munis[ number ]; | |||
} else { | |||
return number; | |||
} | |||
} | |||
function muniNameToNumber( name ) { | |||
var munis = { | |||
'Akaa': '020', | |||
'Alajärvi': '005', | |||
'Alavieska': '009', | |||
'Alavus': '010', | |||
'Asikkala': '016', | |||
'Askola': '018', | |||
'Aura': '019', | |||
'Brändö': '035', | |||
'Eckerö': '043', | |||
'Enonkoski': '046', | |||
'Enontekiö': '047', | |||
'Espoo': '049', | |||
'Eura': '050', | |||
'Eurajoki': '051', | |||
'Evijärvi': '052', | |||
'Finström': '060', | |||
'Forssa': '061', | |||
'Föglö': '062', | |||
'Geta': '065', | |||
'Haapajärvi': '069', | |||
'Haapavesi': '071', | |||
'Hailuoto': '072', | |||
'Halsua': '074', | |||
'Hamina': '075', | |||
'Hammarland': '076', | |||
'Hankasalmi': '077', | |||
'Hanko': '078', | |||
'Harjavalta': '079', | |||
'Hartola': '081', | |||
'Hattula': '082', | |||
'Hausjärvi': '086', | |||
'Heinola': '111', | |||
'Heinävesi': '090', | |||
'Helsinki': '091', | |||
'Hirvensalmi': '097', | |||
'Hollola': '098', | |||
'Huittinen': '102', | |||
'Humppila': '103', | |||
'Hyrynsalmi': '105', | |||
'Hyvinkää': '106', | |||
'Hämeenkyrö': '108', | |||
'Hämeenlinna': '109', | |||
'Ii': '139', | |||
'Iisalmi': '140', | |||
'Iitti': '142', | |||
'Ikaalinen': '143', | |||
'Ilmajoki': '145', | |||
'Ilomantsi': '146', | |||
'Imatra': '153', | |||
'Inari': '148', | |||
'Inkoo': '149', | |||
'Isojoki': '151', | |||
'Isokyrö': '152', | |||
'Janakkala': '165', | |||
'Joensuu': '167', | |||
'Jokioinen': '169', | |||
'Jomala': '170', | |||
'Joroinen': '171', | |||
'Joutsa': '172', | |||
'Juuka': '176', | |||
'Juupajoki': '177', | |||
'Juva': '178', | |||
'Jyväskylä': '179', | |||
'Jämijärvi': '181', | |||
'Jämsä': '182', | |||
'Järvenpää': '186', | |||
'Kaarina': '202', | |||
'Kaavi': '204', | |||
'Kajaani': '205', | |||
'Kalajoki': '208', | |||
'Kangasala': '211', | |||
'Kangasniemi': '213', | |||
'Kankaanpää': '214', | |||
'Kannonkoski': '216', | |||
'Kannus': '217', | |||
'Karijoki': '218', | |||
'Karkkila': '224', | |||
'Karstula': '226', | |||
'Karvia': '230', | |||
'Kaskinen': '231', | |||
'Kauhajoki': '232', | |||
'Kauhava': '233', | |||
'Kauniainen': '235', | |||
'Kaustinen': '236', | |||
'Keitele': '239', | |||
'Kemi': '240', | |||
'Kemijärvi': '320', | |||
'Keminmaa': '241', | |||
'Kemiönsaari': '322', | |||
'Kempele': '244', | |||
'Kerava': '245', | |||
'Keuruu': '249', | |||
'Kihniö': '250', | |||
'Kinnula': '256', | |||
'Kirkkonummi': '257', | |||
'Kitee': '260', | |||
'Kittilä': '261', | |||
'Kiuruvesi': '263', | |||
'Kivijärvi': '265', | |||
'Kokemäki': '271', | |||
'Kokkola': '272', | |||
'Kolari': '273', | |||
'Konnevesi': '275', | |||
'Kontiolahti': '276', | |||
'Korsnäs': '280', | |||
'Koski Tl': '284', | |||
'Kotka': '285', | |||
'Kouvola': '286', | |||
'Kristiinankaupunki': '287', | |||
'Kruunupyy': '288', | |||
'Kuhmo': '290', | |||
'Kuhmoinen': '291', | |||
'Kumlinge': '295', | |||
'Kuopio': '297', | |||
'Kuortane': '300', | |||
'Kurikka': '301', | |||
'Kustavi': '304', | |||
'Kuusamo': '305', | |||
'Kyyjärvi': '312', | |||
'Kärkölä': '316', | |||
'Kärsämäki': '317', | |||
'Kökar': '318', | |||
'Lahti': '398', | |||
'Laihia': '399', | |||
'Laitila': '400', | |||
'Lapinjärvi': '407', | |||
'Lapinlahti': '402', | |||
'Lappajärvi': '403', | |||
'Lappeenranta': '405', | |||
'Lapua': '408', | |||
'Laukaa': '410', | |||
'Lemi': '416', | |||
'Lemland': '417', | |||
'Lempäälä': '418', | |||
'Leppävirta': '420', | |||
'Lestijärvi': '421', | |||
'Lieksa': '422', | |||
'Lieto': '423', | |||
'Liminka': '425', | |||
'Liperi': '426', | |||
'Lohja': '444', | |||
'Loimaa': '430', | |||
'Loppi': '433', | |||
'Loviisa': '434', | |||
'Luhanka': '435', | |||
'Lumijoki': '436', | |||
'Lumparland': '438', | |||
'Luoto': '440', | |||
'Luumäki': '441', | |||
'Maalahti': '475', | |||
'Maarianhamina': '478', | |||
'Marttila': '480', | |||
'Masku': '481', | |||
'Merijärvi': '483', | |||
'Merikarvia': '484', | |||
'Miehikkälä': '489', | |||
'Mikkeli': '491', | |||
'Muhos': '494', | |||
'Multia': '495', | |||
'Muonio': '498', | |||
'Mustasaari': '499', | |||
'Muurame': '500', | |||
'Mynämäki': '503', | |||
'Myrskylä': '504', | |||
'Mäntsälä': '505', | |||
'Mänttä-Vilppula': '508', | |||
'Mäntyharju': '507', | |||
'Naantali': '529', | |||
'Nakkila': '531', | |||
'Nivala': '535', | |||
'Nokia': '536', | |||
'Nousiainen': '538', | |||
'Nurmes': '541', | |||
'Nurmijärvi': '543', | |||
'Närpiö': '545', | |||
'Orimattila': '560', | |||
'Oripää': '561', | |||
'Orivesi': '562', | |||
'Oulainen': '563', | |||
'Oulu': '564', | |||
'Outokumpu': '309', | |||
'Padasjoki': '576', | |||
'Paimio': '577', | |||
'Paltamo': '578', | |||
'Parainen': '445', | |||
'Parikkala': '580', | |||
'Parkano': '581', | |||
'Pedersören kunta': '599', | |||
'Pelkosenniemi': '583', | |||
'Pello': '854', | |||
'Perho': '584', | |||
'Petäjävesi': '592', | |||
'Pieksämäki': '593', | |||
'Pielavesi': '595', | |||
'Pietarsaari': '598', | |||
'Pihtipudas': '601', | |||
'Pirkkala': '604', | |||
'Polvijärvi': '607', | |||
'Pomarkku': '608', | |||
'Pori': '609', | |||
'Pornainen': '611', | |||
'Porvoo': '638', | |||
'Posio': '614', | |||
'Pudasjärvi': '615', | |||
'Pukkila': '616', | |||
'Punkalaidun': '619', | |||
'Puolanka': '620', | |||
'Puumala': '623', | |||
'Pyhtää': '624', | |||
'Pyhäjoki': '625', | |||
'Pyhäjärvi': '626', | |||
'Pyhäntä': '630', | |||
'Pyhäranta': '631', | |||
'Pälkäne': '635', | |||
'Pöytyä': '636', | |||
'Raahe': '678', | |||
'Raasepori': '710', | |||
'Raisio': '680', | |||
'Rantasalmi': '681', | |||
'Ranua': '683', | |||
'Rauma': '684', | |||
'Rautalampi': '686', | |||
'Rautavaara': '687', | |||
'Rautjärvi': '689', | |||
'Reisjärvi': '691', | |||
'Riihimäki': '694', | |||
'Ristijärvi': '697', | |||
'Rovaniemi': '698', | |||
'Ruokolahti': '700', | |||
'Ruovesi': '702', | |||
'Rusko': '704', | |||
'Rääkkylä': '707', | |||
'Saarijärvi': '729', | |||
'Salla': '732', | |||
'Salo': '734', | |||
'Saltvik': '736', | |||
'Sastamala': '790', | |||
'Sauvo': '738', | |||
'Savitaipale': '739', | |||
'Savonlinna': '740', | |||
'Savukoski': '742', | |||
'Seinäjoki': '743', | |||
'Sievi': '746', | |||
'Siikainen': '747', | |||
'Siikajoki': '748', | |||
'Siikalatva': '791', | |||
'Siilinjärvi': '749', | |||
'Simo': '751', | |||
'Sipoo': '753', | |||
'Siuntio': '755', | |||
'Sodankylä': '758', | |||
'Soini': '759', | |||
'Somero': '761', | |||
'Sonkajärvi': '762', | |||
'Sotkamo': '765', | |||
'Sottunga': '766', | |||
'Sulkava': '768', | |||
'Sund': '771', | |||
'Suomussalmi': '777', | |||
'Suonenjoki': '778', | |||
'Sysmä': '781', | |||
'Säkylä': '783', | |||
'Taipalsaari': '831', | |||
'Taivalkoski': '832', | |||
'Taivassalo': '833', | |||
'Tammela': '834', | |||
'Tampere': '837', | |||
'Tervo': '844', | |||
'Tervola': '845', | |||
'Teuva': '846', | |||
'Tohmajärvi': '848', | |||
'Toholampi': '849', | |||
'Toivakka': '850', | |||
'Tornio': '851', | |||
'Turku': '853', | |||
'Tuusniemi': '857', | |||
'Tuusula': '858', | |||
'Tyrnävä': '859', | |||
'Ulvila': '886', | |||
'Urjala': '887', | |||
'Utajärvi': '889', | |||
'Utsjoki': '890', | |||
'Uurainen': '892', | |||
'Uusikaarlepyy': '893', | |||
'Uusikaupunki': '895', | |||
'Vaala': '785', | |||
'Vaasa': '905', | |||
'Valkeakoski': '908', | |||
'Vantaa': '092', | |||
'Varkaus': '915', | |||
'Vehmaa': '918', | |||
'Vesanto': '921', | |||
'Vesilahti': '922', | |||
'Veteli': '924', | |||
'Vieremä': '925', | |||
'Vihti': '927', | |||
'Viitasaari': '931', | |||
'Vimpeli': '934', | |||
'Virolahti': '935', | |||
'Virrat': '936', | |||
'Vårdö': '941', | |||
'Vöyri': '946', | |||
'Ylitornio': '976', | |||
'Ylivieska': '977', | |||
'Ylöjärvi': '980', | |||
'Ypäjä': '981', | |||
'Ähtäri': '989', | |||
'Äänekoski': '992' | |||
}; | |||
if ( typeof munis[ name ] != 'undefined' ) { | |||
return munis[ name ]; | |||
} else { | |||
return name; | |||
} | |||
} | |||
Versio 3. helmikuuta 2026 kello 12.28
var queryApi = 'https://www.jarviwiki.fi/w/api.php'; // 'http://' + window.location.hostname + '/w/api.php';
var jwMapSiteStyleCache = {};
function isCSSloaded(href) {
var links = document.getElementsByTagName('link');
for (var i = 0; i < links.length; i++) {
if (links[i].getAttribute('href') === href) {
return true;
}
}
return false;
}
function loadCSS(href) {
if (!isCSSloaded(href)) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = href;
document.getElementsByTagName('head')[0].appendChild(link);
}
}
function firstDayOfWeek (year, week) {
// Jan 1 of 'year'
var d = new Date(year, 0, 1),
offset = d.getTimezoneOffset();
// ISO: week 1 is the one with the year's first Thursday
// so nearest Thursday: current date + 4 - current day number
// Sunday is converted from 0 to 7
d.setDate(d.getDate() + 4 - (d.getDay() || 7));
// 7 days * (week - overlapping first week)
d.setTime(d.getTime() + 7 * 24 * 60 * 60 * 1000
* (week + (year == d.getFullYear() ? -1 : 0 )));
// daylight savings fix
d.setTime(d.getTime()
+ (d.getTimezoneOffset() - offset) * 60 * 1000);
// back to Monday (from Thursday)
d.setDate(d.getDate() - 3);
return d;
}
function toDateFromSecsSince1970(s) {
var t = new Date(1970, 0, 1);
t.setMinutes(-t.getTimezoneOffset());
t.setSeconds(s);
return t;
}
Date.prototype.getDaysSinceZero = function () {
var aggregateMonths = [0, // January
31, // February
31 + 28, // March
31 + 28 + 31, // April
31 + 28 + 31 + 30, // May
31 + 28 + 31 + 30 + 31, // June
31 + 28 + 31 + 30 + 31 + 30, // July
31 + 28 + 31 + 30 + 31 + 30 + 31, // August
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, // September
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, // October
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, // November
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, // December
];
return (this.getFullYear()*365.25 + aggregateMonths[this.getMonth()] + this.getDate());
}
Date.prototype.inRelationToToday = function(lang) {
var today = new Date();
var days = Math.round(today.getDaysSinceZero() - this.getDaysSinceZero());
if (days == 0) {
return labels( 'today', lang);
} else if (days == 1) {
return labels( 'yesterday', lang);
} else if (days < 11) {
return days + ' ' + labels( 'daysAgo', lang);
} else {
if (lang=='fi') {
return this.getDate() + '.' + (this.getMonth()+1) + '.' + this.getFullYear();
} else {
return this.toLocaleDateString();
}
}
function labels(id, lang) {
var labs = {
fi: { today: 'Tänään', yesterday: 'Eilen', daysAgo: 'päivää sitten' },
sv: { today: 'Idag', yesterday: 'Igår', daysAgo: 'dagar sedan' },
en: { today: 'Today', yesterday: 'Yesterday', daysAgo: 'days ago' }
};
lang = lang && (lang in labs) ? lang : 'fi';
return labs[lang][id];
}
};
Date.prototype.getWeekNumber = function(){
var d = new Date(+this);
d.setHours(0,0,0);
d.setDate(d.getDate()+4-(d.getDay()||7));
return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7);
};
Date.prototype.yyyymmdd = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
};
Date.prototype.getDayOfYear = function () {
var aggregateMonths = [0, // January
31, // February
31 + 28, // March
31 + 28 + 31, // April
31 + 28 + 31 + 30, // May
31 + 28 + 31 + 30 + 31, // June
31 + 28 + 31 + 30 + 31 + 30, // July
31 + 28 + 31 + 30 + 31 + 30 + 31, // August
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, // September
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, // October
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, // November
31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, // December
];
return (aggregateMonths[this.getMonth()] + this.getDate());
}
Date.prototype.getMonthName = function(lang) {
lang = lang && (lang in Date.locale) ? lang : 'en';
return Date.locale[lang].month_names[this.getMonth()];
};
Date.prototype.getMonthNameShort = function(lang) {
lang = lang && (lang in Date.locale) ? lang : 'en';
return Date.locale[lang].month_names_short[this.getMonth()];
};
Date.locale = {
fi: {
month_names: ['Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'],
month_names_short: ['Tammi', 'Helmi', 'Maalis', 'Huhti', 'Touko', 'Kesä', 'Heinä', 'Elo', 'Syys', 'Loka', 'Marras', 'Joulu']
},
sv: {
month_names: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],
month_names_short: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec']
},
en: {
month_names: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
month_names_short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
}
};
function hslToRgb(h, s, l){
/**
* Converts an HSL color value to RGB. Conversion formula
* adapted from //en.wikipedia.org/wiki/HSL_color_space.
* Assumes h, s, and l are contained in the set [0, 1] and
* returns r, g, and b in the set [0, 255].
*
* @param Number h The hue
* @param Number s The saturation
* @param Number l The lightness
* @return Array The RGB representation
*/
var r, g, b;
if(s == 0){
r = g = b = l; // achromatic
}else{
function hue2rgb(p, q, t){
if(t < 0) t += 1;
if(t > 1) t -= 1;
if(t < 1/6) return p + (q - p) * 6 * t;
if(t < 1/2) return q;
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
}
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
}
function isElementInViewport($element) {
var winTop = $(window).scrollTop();
var winBottom = winTop + $(window).height();
var elemTop = $element.offset().top;
var elemBottom = elemTop + $element.outerHeight();
return (elemBottom <= winBottom) && (elemTop >= winTop);
}
muniNumberToName( number ) {
var munis = {
'020': 'Akaa',
'005': 'Alajärvi',
'009': 'Alavieska',
'010': 'Alavus',
'016': 'Asikkala',
'018': 'Askola',
'019': 'Aura',
'035': 'Brändö',
'043': 'Eckerö',
'046': 'Enonkoski',
'047': 'Enontekiö',
'049': 'Espoo',
'050': 'Eura',
'051': 'Eurajoki',
'052': 'Evijärvi',
'060': 'Finström',
'061': 'Forssa',
'062': 'Föglö',
'065': 'Geta',
'069': 'Haapajärvi',
'071': 'Haapavesi',
'072': 'Hailuoto',
'074': 'Halsua',
'075': 'Hamina',
'076': 'Hammarland',
'077': 'Hankasalmi',
'078': 'Hanko',
'079': 'Harjavalta',
'081': 'Hartola',
'082': 'Hattula',
'086': 'Hausjärvi',
'111': 'Heinola',
'090': 'Heinävesi',
'091': 'Helsinki',
'097': 'Hirvensalmi',
'098': 'Hollola',
'102': 'Huittinen',
'103': 'Humppila',
'105': 'Hyrynsalmi',
'106': 'Hyvinkää',
'108': 'Hämeenkyrö',
'109': 'Hämeenlinna',
'139': 'Ii',
'140': 'Iisalmi',
'142': 'Iitti',
'143': 'Ikaalinen',
'145': 'Ilmajoki',
'146': 'Ilomantsi',
'153': 'Imatra',
'148': 'Inari',
'149': 'Inkoo',
'151': 'Isojoki',
'152': 'Isokyrö',
'165': 'Janakkala',
'167': 'Joensuu',
'169': 'Jokioinen',
'170': 'Jomala',
'171': 'Joroinen',
'172': 'Joutsa',
'176': 'Juuka',
'177': 'Juupajoki',
'178': 'Juva',
'179': 'Jyväskylä',
'181': 'Jämijärvi',
'182': 'Jämsä',
'186': 'Järvenpää',
'202': 'Kaarina',
'204': 'Kaavi',
'205': 'Kajaani',
'208': 'Kalajoki',
'211': 'Kangasala',
'213': 'Kangasniemi',
'214': 'Kankaanpää',
'216': 'Kannonkoski',
'217': 'Kannus',
'218': 'Karijoki',
'224': 'Karkkila',
'226': 'Karstula',
'230': 'Karvia',
'231': 'Kaskinen',
'232': 'Kauhajoki',
'233': 'Kauhava',
'235': 'Kauniainen',
'236': 'Kaustinen',
'239': 'Keitele',
'240': 'Kemi',
'320': 'Kemijärvi',
'241': 'Keminmaa',
'322': 'Kemiönsaari',
'244': 'Kempele',
'245': 'Kerava',
'249': 'Keuruu',
'250': 'Kihniö',
'256': 'Kinnula',
'257': 'Kirkkonummi',
'260': 'Kitee',
'261': 'Kittilä',
'263': 'Kiuruvesi',
'265': 'Kivijärvi',
'271': 'Kokemäki',
'272': 'Kokkola',
'273': 'Kolari',
'275': 'Konnevesi',
'276': 'Kontiolahti',
'280': 'Korsnäs',
'284': 'Koski Tl',
'285': 'Kotka',
'286': 'Kouvola',
'287': 'Kristiinankaupunki',
'288': 'Kruunupyy',
'290': 'Kuhmo',
'291': 'Kuhmoinen',
'295': 'Kumlinge',
'297': 'Kuopio',
'300': 'Kuortane',
'301': 'Kurikka',
'304': 'Kustavi',
'305': 'Kuusamo',
'312': 'Kyyjärvi',
'316': 'Kärkölä',
'317': 'Kärsämäki',
'318': 'Kökar',
'398': 'Lahti',
'399': 'Laihia',
'400': 'Laitila',
'407': 'Lapinjärvi',
'402': 'Lapinlahti',
'403': 'Lappajärvi',
'405': 'Lappeenranta',
'408': 'Lapua',
'410': 'Laukaa',
'416': 'Lemi',
'417': 'Lemland',
'418': 'Lempäälä',
'420': 'Leppävirta',
'421': 'Lestijärvi',
'422': 'Lieksa',
'423': 'Lieto',
'425': 'Liminka',
'426': 'Liperi',
'444': 'Lohja',
'430': 'Loimaa',
'433': 'Loppi',
'434': 'Loviisa',
'435': 'Luhanka',
'436': 'Lumijoki',
'438': 'Lumparland',
'440': 'Luoto',
'441': 'Luumäki',
'475': 'Maalahti',
'478': 'Maarianhamina - Mariehamn',
'480': 'Marttila',
'481': 'Masku',
'483': 'Merijärvi',
'484': 'Merikarvia',
'489': 'Miehikkälä',
'491': 'Mikkeli',
'494': 'Muhos',
'495': 'Multia',
'498': 'Muonio',
'499': 'Mustasaari',
'500': 'Muurame',
'503': 'Mynämäki',
'504': 'Myrskylä',
'505': 'Mäntsälä',
'508': 'Mänttä-Vilppula',
'507': 'Mäntyharju',
'529': 'Naantali',
'531': 'Nakkila',
'535': 'Nivala',
'536': 'Nokia',
'538': 'Nousiainen',
'541': 'Nurmes',
'543': 'Nurmijärvi',
'545': 'Närpiö',
'560': 'Orimattila',
'561': 'Oripää',
'562': 'Orivesi',
'563': 'Oulainen',
'564': 'Oulu',
'309': 'Outokumpu',
'576': 'Padasjoki',
'577': 'Paimio',
'578': 'Paltamo',
'445': 'Parainen',
'580': 'Parikkala',
'581': 'Parkano',
'599': 'Pedersören kunta',
'583': 'Pelkosenniemi',
'854': 'Pello',
'584': 'Perho',
'592': 'Petäjävesi',
'593': 'Pieksämäki',
'595': 'Pielavesi',
'598': 'Pietarsaari',
'601': 'Pihtipudas',
'604': 'Pirkkala',
'607': 'Polvijärvi',
'608': 'Pomarkku',
'609': 'Pori',
'611': 'Pornainen',
'638': 'Porvoo',
'614': 'Posio',
'615': 'Pudasjärvi',
'616': 'Pukkila',
'619': 'Punkalaidun',
'620': 'Puolanka',
'623': 'Puumala',
'624': 'Pyhtää',
'625': 'Pyhäjoki',
'626': 'Pyhäjärvi',
'630': 'Pyhäntä',
'631': 'Pyhäranta',
'635': 'Pälkäne',
'636': 'Pöytyä',
'678': 'Raahe',
'710': 'Raasepori',
'680': 'Raisio',
'681': 'Rantasalmi',
'683': 'Ranua',
'684': 'Rauma',
'686': 'Rautalampi',
'687': 'Rautavaara',
'689': 'Rautjärvi',
'691': 'Reisjärvi',
'694': 'Riihimäki',
'697': 'Ristijärvi',
'698': 'Rovaniemi',
'700': 'Ruokolahti',
'702': 'Ruovesi',
'704': 'Rusko',
'707': 'Rääkkylä',
'729': 'Saarijärvi',
'732': 'Salla',
'734': 'Salo',
'736': 'Saltvik',
'790': 'Sastamala',
'738': 'Sauvo',
'739': 'Savitaipale',
'740': 'Savonlinna',
'742': 'Savukoski',
'743': 'Seinäjoki',
'746': 'Sievi',
'747': 'Siikainen',
'748': 'Siikajoki',
'791': 'Siikalatva',
'749': 'Siilinjärvi',
'751': 'Simo',
'753': 'Sipoo',
'755': 'Siuntio',
'758': 'Sodankylä',
'759': 'Soini',
'761': 'Somero',
'762': 'Sonkajärvi',
'765': 'Sotkamo',
'766': 'Sottunga',
'768': 'Sulkava',
'771': 'Sund',
'777': 'Suomussalmi',
'778': 'Suonenjoki',
'781': 'Sysmä',
'783': 'Säkylä',
'831': 'Taipalsaari',
'832': 'Taivalkoski',
'833': 'Taivassalo',
'834': 'Tammela',
'837': 'Tampere',
'844': 'Tervo',
'845': 'Tervola',
'846': 'Teuva',
'848': 'Tohmajärvi',
'849': 'Toholampi',
'850': 'Toivakka',
'851': 'Tornio',
'853': 'Turku',
'857': 'Tuusniemi',
'858': 'Tuusula',
'859': 'Tyrnävä',
'886': 'Ulvila',
'887': 'Urjala',
'889': 'Utajärvi',
'890': 'Utsjoki',
'892': 'Uurainen',
'893': 'Uusikaarlepyy',
'895': 'Uusikaupunki',
'785': 'Vaala',
'905': 'Vaasa',
'908': 'Valkeakoski',
'092': 'Vantaa',
'915': 'Varkaus',
'918': 'Vehmaa',
'921': 'Vesanto',
'922': 'Vesilahti',
'924': 'Veteli',
'925': 'Vieremä',
'927': 'Vihti',
'931': 'Viitasaari',
'934': 'Vimpeli',
'935': 'Virolahti',
'936': 'Virrat',
'941': 'Vårdö',
'946': 'Vöyri',
'976': 'Ylitornio',
'977': 'Ylivieska',
'980': 'Ylöjärvi',
'981': 'Ypäjä',
'989': 'Ähtäri',
'992': 'Äänekoski'
};
if ( typeof munis[ number ] != 'undefined' ) {
return munis[ number ];
} else {
return number;
}
}
function muniNameToNumber( name ) {
var munis = {
'Akaa': '020',
'Alajärvi': '005',
'Alavieska': '009',
'Alavus': '010',
'Asikkala': '016',
'Askola': '018',
'Aura': '019',
'Brändö': '035',
'Eckerö': '043',
'Enonkoski': '046',
'Enontekiö': '047',
'Espoo': '049',
'Eura': '050',
'Eurajoki': '051',
'Evijärvi': '052',
'Finström': '060',
'Forssa': '061',
'Föglö': '062',
'Geta': '065',
'Haapajärvi': '069',
'Haapavesi': '071',
'Hailuoto': '072',
'Halsua': '074',
'Hamina': '075',
'Hammarland': '076',
'Hankasalmi': '077',
'Hanko': '078',
'Harjavalta': '079',
'Hartola': '081',
'Hattula': '082',
'Hausjärvi': '086',
'Heinola': '111',
'Heinävesi': '090',
'Helsinki': '091',
'Hirvensalmi': '097',
'Hollola': '098',
'Huittinen': '102',
'Humppila': '103',
'Hyrynsalmi': '105',
'Hyvinkää': '106',
'Hämeenkyrö': '108',
'Hämeenlinna': '109',
'Ii': '139',
'Iisalmi': '140',
'Iitti': '142',
'Ikaalinen': '143',
'Ilmajoki': '145',
'Ilomantsi': '146',
'Imatra': '153',
'Inari': '148',
'Inkoo': '149',
'Isojoki': '151',
'Isokyrö': '152',
'Janakkala': '165',
'Joensuu': '167',
'Jokioinen': '169',
'Jomala': '170',
'Joroinen': '171',
'Joutsa': '172',
'Juuka': '176',
'Juupajoki': '177',
'Juva': '178',
'Jyväskylä': '179',
'Jämijärvi': '181',
'Jämsä': '182',
'Järvenpää': '186',
'Kaarina': '202',
'Kaavi': '204',
'Kajaani': '205',
'Kalajoki': '208',
'Kangasala': '211',
'Kangasniemi': '213',
'Kankaanpää': '214',
'Kannonkoski': '216',
'Kannus': '217',
'Karijoki': '218',
'Karkkila': '224',
'Karstula': '226',
'Karvia': '230',
'Kaskinen': '231',
'Kauhajoki': '232',
'Kauhava': '233',
'Kauniainen': '235',
'Kaustinen': '236',
'Keitele': '239',
'Kemi': '240',
'Kemijärvi': '320',
'Keminmaa': '241',
'Kemiönsaari': '322',
'Kempele': '244',
'Kerava': '245',
'Keuruu': '249',
'Kihniö': '250',
'Kinnula': '256',
'Kirkkonummi': '257',
'Kitee': '260',
'Kittilä': '261',
'Kiuruvesi': '263',
'Kivijärvi': '265',
'Kokemäki': '271',
'Kokkola': '272',
'Kolari': '273',
'Konnevesi': '275',
'Kontiolahti': '276',
'Korsnäs': '280',
'Koski Tl': '284',
'Kotka': '285',
'Kouvola': '286',
'Kristiinankaupunki': '287',
'Kruunupyy': '288',
'Kuhmo': '290',
'Kuhmoinen': '291',
'Kumlinge': '295',
'Kuopio': '297',
'Kuortane': '300',
'Kurikka': '301',
'Kustavi': '304',
'Kuusamo': '305',
'Kyyjärvi': '312',
'Kärkölä': '316',
'Kärsämäki': '317',
'Kökar': '318',
'Lahti': '398',
'Laihia': '399',
'Laitila': '400',
'Lapinjärvi': '407',
'Lapinlahti': '402',
'Lappajärvi': '403',
'Lappeenranta': '405',
'Lapua': '408',
'Laukaa': '410',
'Lemi': '416',
'Lemland': '417',
'Lempäälä': '418',
'Leppävirta': '420',
'Lestijärvi': '421',
'Lieksa': '422',
'Lieto': '423',
'Liminka': '425',
'Liperi': '426',
'Lohja': '444',
'Loimaa': '430',
'Loppi': '433',
'Loviisa': '434',
'Luhanka': '435',
'Lumijoki': '436',
'Lumparland': '438',
'Luoto': '440',
'Luumäki': '441',
'Maalahti': '475',
'Maarianhamina': '478',
'Marttila': '480',
'Masku': '481',
'Merijärvi': '483',
'Merikarvia': '484',
'Miehikkälä': '489',
'Mikkeli': '491',
'Muhos': '494',
'Multia': '495',
'Muonio': '498',
'Mustasaari': '499',
'Muurame': '500',
'Mynämäki': '503',
'Myrskylä': '504',
'Mäntsälä': '505',
'Mänttä-Vilppula': '508',
'Mäntyharju': '507',
'Naantali': '529',
'Nakkila': '531',
'Nivala': '535',
'Nokia': '536',
'Nousiainen': '538',
'Nurmes': '541',
'Nurmijärvi': '543',
'Närpiö': '545',
'Orimattila': '560',
'Oripää': '561',
'Orivesi': '562',
'Oulainen': '563',
'Oulu': '564',
'Outokumpu': '309',
'Padasjoki': '576',
'Paimio': '577',
'Paltamo': '578',
'Parainen': '445',
'Parikkala': '580',
'Parkano': '581',
'Pedersören kunta': '599',
'Pelkosenniemi': '583',
'Pello': '854',
'Perho': '584',
'Petäjävesi': '592',
'Pieksämäki': '593',
'Pielavesi': '595',
'Pietarsaari': '598',
'Pihtipudas': '601',
'Pirkkala': '604',
'Polvijärvi': '607',
'Pomarkku': '608',
'Pori': '609',
'Pornainen': '611',
'Porvoo': '638',
'Posio': '614',
'Pudasjärvi': '615',
'Pukkila': '616',
'Punkalaidun': '619',
'Puolanka': '620',
'Puumala': '623',
'Pyhtää': '624',
'Pyhäjoki': '625',
'Pyhäjärvi': '626',
'Pyhäntä': '630',
'Pyhäranta': '631',
'Pälkäne': '635',
'Pöytyä': '636',
'Raahe': '678',
'Raasepori': '710',
'Raisio': '680',
'Rantasalmi': '681',
'Ranua': '683',
'Rauma': '684',
'Rautalampi': '686',
'Rautavaara': '687',
'Rautjärvi': '689',
'Reisjärvi': '691',
'Riihimäki': '694',
'Ristijärvi': '697',
'Rovaniemi': '698',
'Ruokolahti': '700',
'Ruovesi': '702',
'Rusko': '704',
'Rääkkylä': '707',
'Saarijärvi': '729',
'Salla': '732',
'Salo': '734',
'Saltvik': '736',
'Sastamala': '790',
'Sauvo': '738',
'Savitaipale': '739',
'Savonlinna': '740',
'Savukoski': '742',
'Seinäjoki': '743',
'Sievi': '746',
'Siikainen': '747',
'Siikajoki': '748',
'Siikalatva': '791',
'Siilinjärvi': '749',
'Simo': '751',
'Sipoo': '753',
'Siuntio': '755',
'Sodankylä': '758',
'Soini': '759',
'Somero': '761',
'Sonkajärvi': '762',
'Sotkamo': '765',
'Sottunga': '766',
'Sulkava': '768',
'Sund': '771',
'Suomussalmi': '777',
'Suonenjoki': '778',
'Sysmä': '781',
'Säkylä': '783',
'Taipalsaari': '831',
'Taivalkoski': '832',
'Taivassalo': '833',
'Tammela': '834',
'Tampere': '837',
'Tervo': '844',
'Tervola': '845',
'Teuva': '846',
'Tohmajärvi': '848',
'Toholampi': '849',
'Toivakka': '850',
'Tornio': '851',
'Turku': '853',
'Tuusniemi': '857',
'Tuusula': '858',
'Tyrnävä': '859',
'Ulvila': '886',
'Urjala': '887',
'Utajärvi': '889',
'Utsjoki': '890',
'Uurainen': '892',
'Uusikaarlepyy': '893',
'Uusikaupunki': '895',
'Vaala': '785',
'Vaasa': '905',
'Valkeakoski': '908',
'Vantaa': '092',
'Varkaus': '915',
'Vehmaa': '918',
'Vesanto': '921',
'Vesilahti': '922',
'Veteli': '924',
'Vieremä': '925',
'Vihti': '927',
'Viitasaari': '931',
'Vimpeli': '934',
'Virolahti': '935',
'Virrat': '936',
'Vårdö': '941',
'Vöyri': '946',
'Ylitornio': '976',
'Ylivieska': '977',
'Ylöjärvi': '980',
'Ypäjä': '981',
'Ähtäri': '989',
'Äänekoski': '992'
};
if ( typeof munis[ name ] != 'undefined' ) {
return munis[ name ];
} else {
return name;
}
}


