var gCurrentParty = 0;
var gCurrentLanguage = 0;




var locations = [ 
[ "Aldino", "Aldein", "Aldein" ],
[ "Andriano", "Andrian", "Andrian" ],
[ "Anterivo", "Altrei", "Altrei" ],
[ "Appiano S.S.D.V.", "Eppan A.D.W.", "Eppan A.D.W." ],
[ "Avelengo", "Hafling", "Hafling" ],
[ "Badia", "Abtei", "Badia" ],
[ "Barbiano", "Barbian", "Pèrbian" ],
[ "Bolzano", "Bozen", "Bulsan" ],
[ "Braies", "Prags", "Prags" ],
[ "Brennero", "Brenner", "Prëner" ],
[ "Bressanone", "Brixen", "Persenon" ],
[ "Bronzolo", "Branzoll", "Branzoll" ],
[ "Brunico", "Bruneck", "Burnech" ],
[ "Caines", "Kuens", "Kuens" ],
[ "Caldaro S.S.D.V.", "Kaltern A.D.W.", "Kaltern A.D.W." ],
[ "Campo Di Trens", "Freienfeld", "Freienfeld" ],
[ "Campo Tures", "Sand In Taufers", "Sand In Taufers" ],
[ "Castelbello-Ciardes", "Kastelbell-Tschars", "Kastelbell-Tschars" ],
[ "Castelrotto", "Kastelruth", "Ciastel" ],
[ "Cermes", "Tscherms", "Tscherms" ],
[ "Chienes", "Kiens", "Kiens" ],
[ "Chiusa", "Klausen", "Tluses" ],
[ "Cornedo all`Isarco", "Karneid", "Karneid" ],
[ "Cortaccia S.S.D.V.", "Kurtatsch A.D.W.", "Kurtatsch A.D.W." ],
[ "Cortina S.S.D.V.", "Kurtinig A.D.W.", "Kurtinig A.D.W." ],
[ "Corvara In Badia", "Corvara", "Corvara" ],
[ "Curon Venosta", "Graun in Vinschgau", "Graun in Vinschgau" ],
[ "Dobbiaco", "Toblach", "Toblach" ],
[ "Egna", "Neumarkt", "Neumarkt" ],
[ "Falzes", "Pfalzen", "Pfalzen" ],
[ "Fiè allo Sciliar", "Völs am Schlern", "Fié" ],
[ "Fortezza", "Franzensfeste", "Franzensfeste" ],
[ "Funes", "Villnöss", "Funés" ],
[ "Gais", "Gais", "Gais" ],
[ "Gargazzone", "Gargazon", "Gargazon" ],
[ "Glorenza", "Glurns", "Glurns" ],
[ "Laces", "Latsch", "Latsch" ],
[ "Lagundo", "Algund", "Algund" ],
[ "Laion", "Lajen", "Laion" ],
[ "Laives", "Leifers", "Leifers" ],
[ "Lana", "Lana", "Lana" ],
[ "Lasa", "Laas", "Laas" ],
[ "Lauregno", "Laurein", "Laurein" ],
[ "Luson", "Lüsen", "Lujon" ],
[ "Magrè S.S.D.V.", "Margreid A.D.W.", "Margreid A.D.W." ],
[ "Malles Venosta", "Mals", "Mals" ],
[ "Marebbe", "Enneberg", "Mareo" ],
[ "Marlengo", "Marling", "Marling" ],
[ "Martello", "Martell", "Martell" ],
[ "Meltina", "Mölten", "Mölten" ],
[ "Merano", "Meran", "Maran" ],
[ "Monguelfo", "Welsberg", "Welsberg" ],
[ "Montagna", "Montan", "Montan" ],
[ "Moso in Passiria", "Moos in Passeier", "Moos in Passeier" ],
[ "Nalles", "Nals", "Nals" ],
[ "Naturno", "Naturns", "Naturns" ],
[ "Naz-Sciaves", "Natz-Schabs", "Natz-Schabs" ],
[ "Nova Levante", "Welschnofen", "Welschnofen" ],
[ "Nova Ponente", "Deutschnofen", "Deutschnofen" ],
[ "Ora", "Auer", "Auer" ],
[ "Ortisei", "St. Ulrich", "Urtijëi" ],
[ "Parcines", "Partschins", "Partschins" ],
[ "Perca", "Percha", "Percha" ],
[ "Plaus", "Plaus", "Plaus" ],
[ "Ponte Gardena", "Waidbruck", "Pruca" ],
[ "Postal", "Burgstall", "Burgstall" ],
[ "Prato allo Stelvio", "Prad am Stilfserjoch", "Prad am Stilfserjoch" ],
[ "Predoi", "Prettau", "Prettau" ],
[ "Provés", "Proveis", "Proveis" ],
[ "Racines", "Ratschings", "Ratschings" ],
[ "Rasun-Anterselva", "Rasen-Antholz", "Rasen-Antholz" ],
[ "Renon", "Ritten", "Ritten" ],
[ "Rifiano", "Riffian", "Riffian" ],
[ "Rio di Pusteria", "Mühlbach", "Mühlbach" ],
[ "Rodengo", "Rodeneck", "Redant" ],
[ "Salorno", "Salurn", "Salurn" ],
[ "San Candido", "Innichen", "Sanciana" ],
[ "San Genesio Atesino", "Jenesien", "Jenesien" ],
[ "San Leonardo in Passiria", "St. Leonhard in Passeier", "St. Leonhard in Passeier" ],
[ "San Lorenzo di Sebato", "St. Lorenzen", "S.Laurënz" ],
[ "San Martino in Badia", "St. Martin in Thurn", "S.Martin de Tor" ],
[ "San Martino in Passiria", "St. Martin in Passeier", "St. Martin in Passeier" ],
[ "San Pancrazio", "St. Pankraz", "St. Pankraz" ],
[ "Santa Cristina Valgardena", "St. Christina in Gröden", "S.Crestina" ],
[ "Sarentino", "Sarntal", "Sarntal" ],
[ "Scena", "Schenna", "Schenna" ],
[ "Selva dei Molini", "Mühlwald", "Mühlwald" ],
[ "Selva di Val Gardena", "Wolkenstein in Gröden", "Sëlva" ],
[ "Senales", "Schnals", "Schnals" ],
[ "Sesto", "Sexten", "Le Sext" ],
[ "Silandro", "Schlanders", "Schlanders" ],
[ "Sluderno", "Schluderns", "Schluderns" ],
[ "Stelvio", "Stilfs", "Stilfs" ],
[ "Terento", "Terenten", "Terenten" ],
[ "Terlano", "Terlan", "Terlan" ],
[ "Termeno S.S.D.V.", "Tramin A.D.W.", "Tramin A.D.W." ],
[ "Tesimo", "Tisens", "Tisens" ],
[ "Tires", "Tiers", "Tiers" ],
[ "Tirolo", "Tirol", "Tirol" ],
[ "Trodena nel parco naturale", "Truden im Naturpark", "Truden im Naturpark" ],
[ "Tubre", "Taufers im Münstertal", "Taufers im Münstertal" ],
[ "Ultimo", "Ulten", "Ulten" ],
[ "Vadena", "Pfatten", "Pfatten" ],
[ "Valdaora", "Olang", "Valdaura" ],
[ "Val di Vizze", "Pfitsch", "Pfitsch" ],
[ "Valle Aurina", "Ahrntal", "Ahrntal" ],
[ "Valle Di Casies", "Gsies", "Gsies" ],
[ "Vandoies", "Vintl", "Vintl" ],
[ "Varna", "Vahrn", "Vahrn" ],
[ "Verano", "Vöran", "Vöran" ],
[ "Villabassa", "Niederdorf", "Niederdorf" ],
[ "Villandro", "Villanders", "Villanders" ],
[ "Vipiteno", "Sterzing", "Sterzing" ],
[ "Velturno", "Feldthurns", "Feldthurns" ],
[ "La Valle", "Wengen", "La Val" ],
[ "Senale-San Felice", "U.L. Frau im Walde-St. Felix", "U.L. Frau im Walde-St. Felix" ]
];


var southtyrolmap = ["255,303,260,305,262,308,265,309,271,307,281,313,288,313,291,317,292,319,288,321,285,328,274,332,272,331,271,334,272,330,268,333,266,330,269,329,264,329,259,324,249,325,252,314,250,308,251,307,253,307,255,303,255,303","222,257,230,256,230,261,227,265,224,265,222,261,219,259,220,259,222,257,222,257","261,342,266,344,268,348,271,354,269,355,264,355,261,354,260,350,256,347,256,342,258,343,261,342,261,342","219,259,222,261,224,265,227,265,230,261,230,265,232,264,233,266,234,264,235,264,235,267,237,267,244,274,244,283,246,285,245,286,246,289,244,299,242,303,234,294,232,289,234,288,229,288,227,291,223,289,222,288,221,286,221,284,222,284,223,281,221,276,220,270,214,264,213,263,219,259,219,259","235,191,239,194,236,200,239,209,237,208,236,211,229,218,223,218,221,220,219,216,219,214,217,214,218,209,221,206,222,206,225,204,226,201,229,198,232,198,232,196,230,195,233,194,235,191,235,191","410,218,411,222,416,230,423,235,424,238,427,241,424,247,421,243,415,243,411,245,409,250,402,248,402,245,398,240,396,239,393,240,393,237,388,236,384,226,384,222,387,217,387,213,392,209,394,210,397,208,398,211,400,212,401,211,402,212,401,213,403,214,403,215,406,214,407,216,410,218,410,218","304,222,302,227,300,234,300,235,295,234,290,229,285,230,282,228,281,221,283,215,285,217,289,217,292,220,296,218,304,222,304,222","260,256,259,256,260,257,259,259,258,259,258,260,257,261,260,263,265,263,266,262,266,265,272,265,275,268,278,267,275,269,272,268,266,267,271,273,271,278,274,280,272,283,268,281,265,285,264,284,259,276,255,279,253,279,250,282,250,287,246,286,246,285,244,283,244,282,244,274,237,267,240,264,246,264,251,258,255,258,257,254,260,256,260,256","455,167,456,168,458,168,458,170,462,173,464,179,468,181,468,183,469,183,470,195,473,196,475,204,471,206,468,204,465,207,461,208,458,204,454,203,450,199,443,195,442,193,440,194,439,195,436,193,431,194,427,190,429,186,435,184,436,180,439,178,441,176,441,172,446,173,447,171,452,172,454,172,455,167,455,167","299,83,291,93,292,97,290,98,290,100,277,103,268,101,262,102,259,106,253,107,250,108,248,106,235,100,228,94,222,90,225,88,235,84,240,84,243,81,248,84,249,82,253,82,259,89,264,91,268,90,273,87,275,86,277,80,281,79,282,76,284,73,292,75,299,83,299,83","341,171,344,173,345,171,350,172,350,176,351,176,352,178,354,181,355,184,353,187,353,189,356,190,360,190,369,198,369,199,357,201,350,199,340,204,329,199,322,202,326,195,325,192,314,185,318,181,321,181,324,177,327,177,328,179,330,179,333,177,333,174,335,174,336,170,339,173,341,171,341,171","255,302,255,303,253,307,251,307,250,308,249,308,249,311,247,313,246,310,248,308,244,307,248,298,251,298,255,302,255,302","416,152,416,152,418,153,418,158,419,162,415,164,411,171,407,169,404,168,405,161,400,156,400,152,398,153,396,148,399,145,397,142,399,140,394,131,398,132,404,136,404,139,410,140,412,138,417,141,415,149,412,151,416,152,416,152","211,194,210,196,205,192,205,189,206,187,207,187,208,192,211,194,211,194","223,289,227,291,229,288,234,288,232,289,234,294,242,303,240,309,238,309,238,310,235,308,238,317,238,319,234,320,235,321,239,320,240,321,239,324,236,332,236,333,231,330,235,324,234,321,233,321,233,319,232,316,231,318,231,316,229,318,220,317,219,315,220,309,222,306,220,299,221,296,220,295,222,291,223,289,223,289","312,111,313,115,311,119,315,122,312,129,315,134,312,139,308,140,307,139,305,143,303,144,301,144,301,142,299,140,292,142,287,147,287,149,282,150,280,149,279,146,274,145,274,140,276,137,271,127,271,121,278,123,277,121,280,115,284,119,296,119,301,116,305,111,312,111,312,111","449,69,451,74,451,77,453,78,453,86,454,87,459,89,462,94,458,102,456,103,452,109,450,110,448,108,444,110,442,109,440,112,440,115,437,116,436,115,434,114,433,112,431,112,422,114,420,116,413,120,407,119,407,117,403,116,397,120,396,114,400,112,400,109,398,109,397,106,389,104,390,101,396,98,400,92,410,91,416,88,425,87,433,80,436,79,438,76,440,76,444,72,445,68,449,69,449,69","150,205,151,206,152,209,153,210,157,211,158,212,158,213,154,213,148,212,148,212,153,216,154,215,155,215,156,219,155,219,158,236,156,239,147,242,142,232,136,228,139,226,138,224,136,223,134,224,134,222,131,222,130,222,136,219,136,216,133,210,135,207,136,205,140,207,144,205,148,204,150,205,150,205","331,234,339,236,343,238,348,241,345,246,351,258,347,262,338,264,331,263,330,264,325,264,317,260,314,257,311,260,309,257,305,255,303,249,298,246,298,242,300,239,300,235,300,234,302,234,304,230,310,228,314,229,324,228,331,234,331,234","209,217,209,217,202,221,202,220,196,220,189,217,189,215,199,215,202,214,209,217,209,217","384,125,383,131,382,130,380,135,381,141,379,143,380,144,383,149,385,157,384,157,382,155,378,153,376,156,373,156,369,159,367,158,366,153,361,152,361,151,362,150,362,149,364,144,368,142,373,142,377,132,373,126,374,124,379,123,382,125,384,125,384,125","304,185,303,188,305,192,307,193,310,196,311,203,313,203,317,207,318,205,320,207,329,211,330,215,331,215,330,217,328,218,322,216,320,212,318,211,314,213,309,213,308,211,306,209,307,207,309,207,308,206,302,204,299,206,296,205,292,207,290,203,287,203,282,199,290,192,291,187,295,183,295,181,300,182,301,185,304,185,304,185","282,266,288,268,294,275,303,278,303,282,299,285,297,288,290,290,282,284,274,280,271,278,271,273,266,267,272,268,275,269,278,267,279,268,281,266,282,266,282,266","220,326,225,324,227,334,229,332,230,333,228,337,232,339,231,342,228,346,226,346,222,343,218,350,213,352,208,352,204,349,204,349,205,347,209,346,210,344,213,342,215,337,220,326,220,326","228,355,227,355,228,357,226,358,224,356,224,351,226,350,228,351,227,352,227,352,229,353,228,355,228,355","402,248,394,252,386,255,380,258,379,254,376,250,376,245,373,240,380,238,382,236,384,226,388,236,393,237,393,240,396,239,398,240,402,245,402,248,402,248","76,129,77,131,82,132,84,134,83,138,86,140,89,140,91,143,99,145,102,149,98,152,97,156,92,158,87,157,83,160,75,156,73,158,72,162,66,167,64,171,53,172,52,175,48,180,50,181,48,184,45,182,43,183,41,175,34,176,29,175,20,178,19,177,19,170,14,163,16,160,21,158,23,153,23,146,25,145,24,143,26,141,26,138,28,137,33,141,39,141,47,139,48,141,46,143,46,144,52,142,57,139,58,136,65,134,72,133,76,129,76,129","506,152,502,155,502,160,500,163,491,163,488,166,490,169,486,171,484,173,487,174,489,184,494,186,493,189,490,188,488,189,491,191,490,196,493,202,495,202,497,205,502,204,505,208,505,210,503,212,497,212,490,208,486,210,486,213,478,216,477,220,473,222,473,212,470,213,468,208,465,207,468,204,471,206,475,204,473,196,470,195,469,183,472,182,470,178,471,172,472,173,472,171,471,169,470,165,467,165,466,164,467,163,465,162,476,160,478,156,485,153,489,148,493,148,494,151,500,150,506,152,506,152","248,349,243,351,235,347,234,354,232,354,232,357,232,358,232,358,231,357,230,355,229,356,228,355,229,353,227,352,227,352,228,351,229,349,228,346,231,342,232,339,236,333,236,332,238,333,240,329,242,333,241,335,245,336,247,339,246,344,244,347,248,349,248,349","383,149,380,144,379,143,381,141,380,135,382,130,383,131,384,125,387,124,395,125,398,132,394,131,399,140,397,142,399,145,396,148,392,148,392,150,383,149,383,149","325,264,319,264,314,266,307,267,306,271,301,270,294,275,288,268,282,266,283,265,284,264,285,263,286,262,287,260,289,260,290,258,292,255,292,253,293,252,294,251,295,251,298,246,303,249,305,255,309,257,311,260,314,257,317,260,325,264,325,264","312,139,317,139,318,145,324,149,324,156,323,158,328,161,320,164,317,162,316,165,312,166,311,161,309,162,305,159,299,159,299,162,297,163,291,159,287,149,287,147,292,142,299,140,301,142,301,144,303,144,305,143,307,139,308,140,312,139,312,139","369,199,370,203,369,206,373,208,373,213,370,214,370,217,367,220,364,220,360,224,352,225,351,223,353,220,350,219,343,221,339,224,336,224,337,222,334,219,333,220,332,216,330,217,331,215,330,215,329,211,320,207,318,205,321,205,322,202,329,199,340,204,350,199,357,201,369,199,369,199","436,115,432,118,427,131,417,141,412,138,410,140,404,139,404,136,398,132,395,125,397,120,403,116,407,117,407,119,413,120,420,116,422,114,431,112,433,112,434,114,436,115,436,115","219,234,222,239,218,243,218,243,215,241,213,234,219,234,219,234","53,206,54,207,52,210,53,214,51,214,51,217,49,219,41,219,37,221,38,218,43,208,46,207,45,203,53,206,53,206","135,207,133,210,136,216,136,219,130,222,131,222,134,222,134,224,136,223,138,224,139,226,136,228,142,232,147,242,140,243,133,248,130,249,128,253,124,254,120,247,115,242,115,241,117,241,117,239,113,237,114,228,110,227,111,226,117,225,118,221,121,216,120,208,129,209,132,207,135,207,135,207",["199,196,201,200,200,204,195,200,194,205,189,203,186,196,187,189,186,184,195,188,196,191,195,194,196,196,199,196,199,196","188,214,184,221,182,223,181,216,177,207,180,207,181,209,187,212,188,214,188,214"],"330,217,332,216,333,220,334,219,337,222,336,224,334,225,331,234,324,228,314,229,310,228,302,227,304,222,309,213,314,213,318,211,320,212,322,216,328,218,330,217,330,217","264,284,263,291,260,296,259,296,260,299,259,301,258,300,255,302,251,298,248,298,248,295,250,291,246,286,250,287,250,282,253,279,255,279,259,276,264,284,264,284","189,215,189,217,196,220,202,220,202,221,209,217,212,222,211,226,213,234,215,241,214,244,205,234,198,241,196,239,192,242,194,236,195,234,194,229,198,226,192,224,191,226,186,222,184,221,188,214,189,215,189,215","92,201,92,204,87,206,85,210,87,214,88,214,93,220,94,224,93,224,94,228,92,229,92,231,93,235,91,240,92,242,92,247,86,253,84,257,75,260,72,262,71,256,74,254,74,249,73,247,62,245,64,241,63,230,66,221,69,214,69,212,74,206,76,204,80,204,83,200,92,201,92,201","172,262,174,263,178,266,179,268,182,273,185,283,185,290,183,289,183,288,179,286,173,279,173,276,177,274,177,269,175,269,174,266,171,263,172,262,172,262","371,163,371,165,373,164,375,165,375,168,378,170,376,172,378,174,377,175,379,178,380,183,376,185,375,188,373,187,370,191,369,198,360,190,356,190,353,189,353,187,355,184,354,181,352,178,351,176,350,176,350,172,345,171,344,173,341,171,344,165,347,164,352,158,356,156,371,163,371,163","228,351,226,350,224,351,224,356,220,358,218,358,211,357,208,352,213,352,218,350,222,343,226,346,228,346,229,349,228,351,228,351","93,162,95,184,92,185,93,187,90,191,93,195,92,201,83,200,80,204,76,204,74,206,62,204,53,206,45,203,46,207,43,208,38,218,28,206,20,205,18,202,16,202,11,195,13,193,13,189,8,184,17,177,19,177,20,178,29,175,34,176,41,175,43,183,45,182,48,184,50,181,48,180,52,175,53,172,64,171,66,167,72,162,73,158,75,156,83,160,87,157,92,158,93,162,93,162","411,171,414,175,414,176,419,177,417,180,418,182,423,183,424,181,427,180,436,180,435,184,429,186,427,190,431,194,436,193,439,195,440,194,440,201,442,205,440,206,440,213,437,215,435,219,436,223,435,228,433,231,431,237,427,241,424,238,423,235,416,230,411,222,410,218,417,212,422,213,424,210,423,208,408,195,405,191,403,192,403,190,400,189,399,186,395,183,392,184,392,185,388,186,384,189,379,190,375,188,376,185,380,183,379,178,377,175,380,174,386,174,391,170,401,170,404,168,407,169,411,171,411,171","200,204,209,217,202,214,199,215,189,215,188,214,191,210,192,209,194,205,195,200,200,204,200,204","113,237,117,239,117,241,115,241,115,242,120,247,124,254,120,257,117,259,114,264,105,275,98,277,92,285,85,288,83,290,80,289,71,292,68,290,62,282,65,277,69,275,70,274,69,269,72,268,72,262,75,260,84,257,86,253,92,247,94,244,98,244,99,241,102,240,113,237,113,237","247,220,244,218,243,222,242,221,242,223,241,224,241,227,237,231,240,238,239,241,240,243,239,247,235,247,236,251,234,251,227,247,222,239,219,234,220,233,228,229,229,226,235,224,238,220,240,212,243,215,244,215,246,217,247,220,247,220","226,201,225,204,222,206,221,206,218,209,217,214,219,214,219,216,217,219,217,222,215,221,212,222,209,217,209,217,200,204,201,200,199,196,201,196,205,199,207,203,209,202,209,197,211,197,212,203,220,203,226,201,226,201","437,159,438,157,443,154,444,151,444,150,443,149,443,148,446,145,449,145,451,147,454,145,453,141,452,140,455,135,461,136,464,134,467,139,461,141,462,144,458,148,460,151,459,152,460,156,462,158,460,159,461,162,454,162,455,167,454,172,452,172,447,171,446,173,441,172,438,169,442,168,443,163,437,159,437,159","249,325,259,324,264,329,269,329,266,330,261,328,259,326,258,328,255,329,250,335,252,344,249,348,248,349,244,347,246,344,247,339,245,336,241,335,242,333,240,329,240,327,249,325,249,325","217,134,219,141,218,145,216,146,213,145,214,147,212,150,213,155,213,159,209,162,204,164,202,164,201,165,194,156,192,156,192,164,190,165,189,170,190,173,188,176,185,178,179,185,174,181,173,176,173,175,170,173,169,169,172,158,174,155,173,153,177,152,184,147,182,143,180,141,181,139,181,135,188,121,187,121,186,113,190,111,190,107,191,106,197,107,205,100,209,103,213,104,213,106,213,119,216,126,216,131,217,134,217,134","218,243,225,251,225,255,222,257,220,259,219,259,213,263,208,261,209,259,212,258,212,256,217,250,218,245,217,245,218,243,218,243,218,243","186,222,183,223,180,227,177,227,167,231,163,235,158,236,155,219,156,219,155,215,154,215,153,216,148,212,148,212,154,213,158,213,158,212,157,211,153,210,152,209,151,206,150,205,149,202,150,202,152,198,159,199,162,197,163,195,167,196,175,204,177,207,172,211,177,216,182,223,184,221,186,222,186,222","336,156,339,159,339,162,342,161,343,162,344,165,341,171,339,173,336,170,335,174,333,174,331,170,333,165,328,161,323,158,324,156,328,156,333,159,333,154,336,156,336,156","326,286,327,287,327,292,324,297,322,306,321,308,321,308,313,309,304,297,302,292,292,293,290,290,297,288,299,285,303,282,305,283,312,278,313,280,317,280,320,283,326,286,326,286","274,280,282,284,290,290,292,293,302,292,304,297,313,309,312,320,310,323,304,320,291,317,288,313,281,313,271,307,265,309,262,308,260,305,255,303,255,302,258,300,259,301,260,299,259,296,260,296,263,291,264,284,265,285,268,281,272,283,274,280,274,280","250,308,252,314,249,325,240,327,239,325,239,324,242,320,244,320,244,315,243,314,244,307,248,308,246,310,247,313,249,311,249,308,250,308,250,308","352,225,351,229,352,233,350,233,346,238,343,236,343,238,339,236,331,234,334,225,336,224,339,224,343,221,350,219,353,220,351,223,352,225,352,225","179,185,181,186,186,184,187,189,186,196,189,203,194,205,192,209,191,210,188,214,187,212,181,209,180,207,177,207,177,207,175,204,167,196,163,195,158,189,156,190,156,187,159,185,160,182,163,179,173,176,174,181,179,185,179,185","437,116,437,120,435,122,435,127,431,141,432,144,429,149,428,149,427,150,421,154,421,154,421,153,420,153,419,152,418,152,416,152,412,151,415,149,417,141,427,131,432,118,436,115,437,116,437,116","177,207,181,216,182,223,177,216,172,211,177,207,177,207,177,207","310,228,304,230,302,234,300,234,302,227,310,228,310,228","217,222,220,233,219,234,213,234,211,226,212,222,215,221,217,222,217,222","53,214,58,218,66,221,63,230,64,241,62,245,73,247,74,249,54,249,53,244,50,242,51,237,52,236,48,227,45,227,40,230,33,228,37,221,41,219,49,219,51,217,51,214,53,214,53,214","478,45,472,48,472,53,470,60,463,61,460,64,455,62,449,69,445,68,444,72,440,76,438,76,434,69,435,63,432,50,436,49,438,46,440,43,443,42,447,44,451,41,455,41,464,36,474,39,478,45,478,45","171,263,174,266,175,269,177,269,177,274,173,276,173,279,179,286,177,286,166,277,160,274,163,267,168,263,171,263,171,263","253,107,255,109,262,111,262,112,266,118,265,119,261,120,256,118,255,120,256,122,259,121,263,122,268,120,271,121,271,127,276,137,274,140,274,145,269,146,264,153,258,152,253,143,250,142,248,139,225,138,223,135,217,134,216,131,216,126,213,119,213,106,213,104,209,103,205,100,203,98,203,93,206,94,210,91,213,91,214,93,218,91,222,90,228,94,235,100,248,106,250,108,253,107,253,107","418,158,418,153,416,152,416,152,418,152,419,152,420,153,421,153,421,154,421,154,427,150,428,149,429,149,432,144,431,141,435,127,435,122,437,120,437,116,440,115,440,112,442,109,444,110,448,108,450,110,452,109,456,103,461,106,468,106,470,109,471,112,476,118,475,121,471,123,466,122,464,123,463,125,465,125,468,128,464,131,464,134,461,136,455,135,452,140,453,141,454,145,451,147,449,145,446,145,443,148,443,149,444,150,444,151,443,154,438,157,437,159,437,160,427,157,418,158,418,158","283,215,281,221,282,228,285,230,290,229,295,234,300,235,300,239,298,242,298,243,298,246,295,251,294,251,293,252,292,253,292,255,290,258,289,260,287,260,286,262,285,263,284,264,283,265,282,266,281,266,279,268,278,267,275,268,272,265,266,265,266,262,265,263,260,263,257,261,258,260,258,259,259,259,260,257,259,256,260,256,260,255,260,254,260,253,261,251,261,247,260,246,261,245,260,244,261,241,261,239,261,238,262,238,264,239,267,237,269,234,268,231,270,230,265,227,265,226,275,219,279,220,278,219,280,217,281,217,283,215,283,215","201,165,204,169,204,171,206,171,211,168,215,167,214,169,212,171,213,174,208,174,206,177,208,180,216,182,214,183,215,184,213,184,214,187,211,194,208,192,207,187,206,187,205,185,201,183,202,181,193,179,188,176,190,173,189,170,190,165,192,164,192,156,194,156,201,165,201,165","319,103,322,104,325,107,327,111,327,117,332,117,333,121,339,127,339,137,338,139,338,143,340,146,336,152,336,156,333,154,333,159,328,156,324,156,324,149,318,145,317,139,312,139,315,134,312,129,315,122,311,119,313,115,312,111,319,103,319,103","361,152,366,153,367,158,369,159,369,159,371,163,356,156,352,158,347,164,344,165,343,162,342,161,339,162,339,159,336,156,336,152,340,146,342,145,343,147,348,149,355,149,361,152,361,152","224,356,226,358,228,357,227,355,228,355,229,356,230,355,231,357,232,358,232,358,232,357,232,354,234,354,235,347,243,351,248,349,249,348,250,352,247,357,243,356,240,360,234,366,232,368,222,372,221,371,216,370,214,368,214,368,214,367,213,366,215,364,216,361,217,360,217,362,219,362,220,358,224,356,224,356","517,166,521,175,514,175,512,172,509,176,504,175,503,181,505,182,507,186,506,192,504,196,505,200,502,204,497,205,495,202,493,202,490,196,491,191,488,189,490,188,493,189,494,186,489,184,487,174,484,173,486,171,490,169,488,166,491,163,500,163,502,160,502,155,506,152,513,153,517,166,517,166","261,245,260,246,261,247,261,251,260,253,260,254,260,255,260,256,257,254,255,258,251,258,246,264,240,264,239,262,240,260,237,259,237,257,236,257,237,254,236,253,236,251,235,247,239,247,240,243,239,241,240,238,237,231,241,227,241,224,242,223,242,221,243,222,244,218,247,220,251,224,253,228,259,232,263,232,263,233,263,236,262,236,262,237,262,238,261,238,261,239,261,241,260,244,261,245,261,245","217,134,223,135,225,138,248,139,250,142,253,143,258,152,256,154,245,157,241,165,241,170,237,172,233,170,229,174,226,173,226,174,222,174,221,178,219,177,218,178,220,179,219,182,215,184,214,183,216,182,215,178,217,173,217,170,222,160,225,149,219,146,214,147,213,145,216,146,218,145,219,141,217,134,217,134","369,159,373,156,376,156,378,153,382,155,384,157,385,157,383,149,392,150,392,148,396,148,398,153,400,152,400,156,405,161,404,168,401,170,391,170,386,174,380,174,377,175,378,174,376,172,378,170,375,168,375,165,373,164,371,165,371,163,369,159,369,159,369,159","403,190,399,192,396,200,394,203,395,204,392,209,387,213,387,217,384,222,384,226,379,226,378,224,371,225,367,223,367,220,370,217,370,214,373,213,373,208,369,206,370,203,369,199,369,198,370,191,373,187,375,188,379,190,384,189,388,186,392,185,392,184,395,183,399,186,400,189,403,190,403,190","214,147,219,146,225,149,222,160,217,170,217,173,215,178,216,182,208,180,206,177,208,174,213,174,212,171,214,169,215,167,211,168,206,171,204,171,204,169,201,165,202,164,204,164,209,162,213,159,213,155,212,150,214,147,214,147","163,235,167,231,177,227,180,227,183,223,186,222,191,226,192,224,198,226,194,229,195,234,194,236,192,242,193,246,190,254,188,254,187,256,181,262,174,263,172,262,174,260,176,253,174,249,175,248,173,244,174,242,170,238,166,238,163,235,163,235","371,225,369,230,365,229,364,232,361,231,353,241,358,256,356,259,352,259,351,258,345,246,348,241,43,238,343,236,346,238,350,233,352,233,351,229,352,225,360,224,364,220,367,220,367,223,371,225,371,225","287,149,291,159,288,162,289,168,293,172,295,177,295,179,295,181,295,183,291,187,290,192,282,199,279,201,275,200,273,205,270,208,270,209,277,214,275,219,265,226,265,227,270,230,268,231,269,234,267,237,264,239,262,238,262,237,262,236,263,236,263,233,263,232,259,232,253,228,251,224,247,220,246,217,244,215,243,215,240,212,239,212,239,209,236,200,239,194,235,191,236,188,235,186,236,183,234,180,237,172,241,170,241,165,245,157,256,154,258,152,264,153,269,146,274,145,279,146,280,149,282,150,287,149,287,149","237,172,234,180,236,183,235,186,236,188,235,191,233,194,230,195,232,196,232,198,229,198,226,201,220,203,212,203,211,197,209,197,210,196,211,194,214,187,213,184,215,184,219,182,220,179,218,178,219,177,221,178,222,174,226,174,226,173,229,174,233,170,237,172,237,172","369,78,370,85,368,87,370,89,369,93,372,95,375,104,378,106,389,104,397,106,398,109,400,109,400,112,396,114,397,120,395,125,387,124,384,125,382,125,379,123,374,124,370,120,366,120,364,117,360,119,358,115,353,112,351,108,352,97,350,91,353,86,358,85,362,77,369,78,369,78","384,226,382,236,380,238,373,240,376,245,376,250,369,258,358,261,356,259,358,256,353,241,361,231,364,232,365,229,369,230,371,225,378,224,379,226,384,226,384,226","169,169,170,173,173,175,173,176,163,179,160,182,159,185,156,187,156,190,158,189,163,195,162,197,159,199,152,198,150,202,149,202,150,205,148,204,144,205,140,207,136,205,135,207,132,207,129,209,120,208,117,206,119,202,114,200,113,197,113,193,108,191,108,189,106,187,99,188,97,185,95,184,93,162,100,163,106,161,108,158,115,166,118,167,120,164,122,164,125,166,129,167,129,169,133,170,136,168,139,168,143,165,156,166,160,168,166,166,169,169,169,169","532,181,536,185,544,185,545,188,535,192,528,201,521,202,521,204,524,207,523,209,516,211,511,206,510,208,505,208,502,204,505,200,504,196,506,192,507,186,505,182,503,181,504,175,509,176,512,172,514,175,521,175,529,181,532,181,532,181","95,184,97,185,99,188,106,187,108,189,108,191,113,193,113,197,114,200,119,202,117,206,120,208,121,216,118,221,117,225,111,226,110,227,114,228,113,237,102,240,99,241,98,244,94,244,92,247,92,242,91,240,93,235,92,231,92,229,94,228,93,224,94,224,93,220,88,214,87,214,85,210,87,206,92,204,92,201,93,195,90,191,93,187,92,185,95,184,95,184","74,206,69,212,69,214,66,221,58,218,53,214,52,210,54,207,53,206,62,204,74,206,74,206","33,228,40,230,45,227,48,227,52,236,51,237,50,242,53,244,54,249,74,249,74,254,71,256,72,262,72,268,69,269,70,274,69,275,65,277,62,282,53,279,47,274,33,272,30,273,25,267,24,259,25,256,28,255,30,250,29,247,31,241,32,238,31,232,33,228,33,228","374,124,373,126,377,132,373,142,368,142,364,144,363,142,361,143,356,142,351,143,351,136,353,135,351,128,357,123,361,122,360,119,364,117,366,120,370,120,374,124,374,124","222,239,227,247,234,251,236,251,236,253,237,254,236,257,237,257,237,259,240,260,239,262,240,264,237,267,235,267,235,264,234,264,233,266,232,264,230,265,230,261,230,256,222,257,225,255,225,251,218,243,222,239,222,239",["220,317,229,318,231,316,231,318,232,316,233,319,233,321,234,321,235,324,231,330,236,333,232,339,228,337,230,333,229,332,227,334,225,324,220,326,219,324,217,320,217,318,220,317,220,317","239,324,239,325,240,327,240,329,238,333,236,332,239,324,239,324,239,324"],"218,243,217,245,218,245,217,250,212,256,212,258,209,259,208,261,205,257,195,258,195,256,191,257,190,254,193,246,192,242,196,239,198,241,205,234,214,244,215,241,218,243,218,243","330,264,330,266,333,268,334,270,333,274,332,273,328,275,329,277,326,286,320,283,317,280,313,280,312,278,305,283,303,282,303,278,294,275,301,270,306,271,307,267,314,266,319,264,325,264,330,264,330,264","188,176,193,179,202,181,201,183,205,185,206,187,205,189,205,192,210,196,209,197,209,202,207,203,205,199,201,196,199,196,196,196,195,194,196,191,195,188,186,184,181,186,179,185,185,178,188,176,188,176","271,334,270,338,267,340,261,340,261,342,258,343,256,342,252,344,250,335,255,329,258,328,259,326,261,328,266,330,268,333,272,330,271,334,271,334","11,195,16,202,18,202,20,205,28,206,38,218,37,221,33,228,21,219,12,221,10,220,9,220,8,216,7,214,7,207,4,203,7,201,9,195,11,195,11,195","163,235,166,238,170,238,174,242,173,244,175,248,174,249,176,253,174,260,172,262,171,263,168,263,163,267,160,274,154,280,150,281,148,287,144,290,137,289,136,288,130,294,114,291,105,275,114,264,117,259,120,257,124,254,128,253,130,249,133,248,140,243,147,242,156,239,158,236,163,235,163,235","246,286,250,291,248,295,248,298,244,307,243,314,244,315,244,320,242,320,239,324,239,324,240,321,239,320,235,321,234,320,238,319,238,317,235,308,238,310,238,309,240,309,242,303,244,299,246,289,245,286,246,285,246,286,246,286","437,159,443,163,442,168,438,169,441,172,441,176,439,178,436,180,427,180,424,181,423,183,418,182,417,180,419,177,414,176,414,175,411,171,415,164,419,162,418,158,427,157,437,160,437,159,437,159","322,71,324,75,332,79,338,77,344,78,348,85,353,86,350,91,345,94,342,93,337,94,331,93,326,95,320,99,319,103,312,111,305,111,301,116,296,119,284,119,280,115,277,121,273,115,273,113,275,110,276,111,281,110,285,105,288,106,290,100,290,98,292,97,291,93,299,83,309,78,312,74,322,71,322,71","432,50,435,63,434,69,438,76,436,79,433,80,425,87,416,88,410,91,400,92,396,98,390,101,389,104,378,106,375,104,372,95,369,93,370,89,368,87,370,85,369,78,376,77,377,75,380,74,384,69,385,70,386,68,390,67,396,61,400,59,403,60,406,57,409,58,412,54,413,55,416,54,422,54,428,49,432,50,432,50","495,120,495,125,496,128,499,129,499,132,493,139,496,144,493,148,489,148,485,153,478,156,476,160,465,162,461,162,460,159,462,158,460,156,459,152,460,151,458,148,462,144,461,141,467,139,464,134,464,131,468,128,465,125,463,125,464,123,466,122,471,123,475,121,476,118,476,115,479,115,481,111,490,113,490,117,495,120,495,120","364,144,362,149,362,150,361,151,361,152,355,149,348,149,343,147,342,145,340,146,338,143,338,139,339,137,339,127,333,121,332,117,327,117,327,111,325,107,322,104,319,103,320,99,326,95,331,93,337,94,342,93,345,94,350,91,352,97,351,108,353,112,358,115,360,119,361,122,357,123,351,128,353,135,351,136,351,143,356,142,361,143,363,142,364,144,364,144","328,161,333,165,331,170,333,174,333,177,330,179,328,179,327,177,324,177,321,181,318,181,314,185,310,187,306,184,304,185,301,185,300,182,295,181,295,179,295,177,293,172,289,168,288,162,291,159,297,163,299,162,299,159,305,159,309,162,311,161,312,166,316,165,317,162,320,164,328,161,328,161","220,233,217,222,217,219,219,216,221,220,223,218,229,218,236,211,237,208,239,209,239,212,240,212,238,220,235,224,229,226,228,229,220,233,220,233","465,162,467,163,466,164,467,165,470,165,471,169,472,171,472,173,471,172,470,178,472,182,469,183,468,183,468,181,464,179,462,173,458,170,458,168,456,168,455,167,454,162,461,162,465,162,465,162","309,213,304,222,296,218,292,220,289,217,285,217,283,215,281,217,280,217,278,219,279,220,275,219,277,214,270,209,270,208,273,205,275,200,279,201,282,199,287,203,290,203,292,207,296,205,299,206,302,204,308,206,309,207,307,207,306,209,308,211,309,213,309,213","271,121,268,120,263,122,259,121,256,122,255,120,256,118,261,120,265,119,266,118,262,112,262,111,255,109,253,107,259,106,262,102,268,101,277,103,290,100,288,106,285,105,281,110,276,111,275,110,273,113,273,115,277,121,278,123,271,121,271,121","314,185,325,192,326,195,322,202,321,205,318,205,317,207,313,203,311,203,310,196,307,193,305,192,303,188,304,185,306,184,310,187,314,185,314,185","403,190,403,192,405,191,408,195,423,208,424,210,422,213,417,212,410,218,407,216,406,214,403,215,403,214,401,213,402,212,401,211,400,212,398,211,397,208,394,210,392,209,395,204,394,203,396,200,399,192,403,190,403,190","190,254,191,257,195,256,195,258,205,257,208,261,213,263,214,264,207,272,199,275,195,269,189,267,187,256,188,254,190,254,190,254"];
	

exitlabel = [
		"Chiudi",
		"Schließen",
		"Stlüje"
];

buttonlabel = [ 
		"Comuni",
		"Gemeinden", 
		"Comuns"
];

landesweitlabel = [ 
		"Aggiorna", 
		"Aktualisieren", 
		"Atualizé"
];

gemeindelistlabel = [
		"Incidenza percentuale Referendum 2009",
		"Stimmenanteile Volksabstimmung 2009",
		"Spartiziun dles usc por les Lites 2009 Resultac sön le teritor"
];

gemeindedifflistlabel = [
		"Differenza percentuale Referendum 2009",
		"Gewinne und Verluste Volksabstimmung 2009",
		"Spartiziun dles usc por les Lites 2008 Resultac sön le teritor"
];


landesweit = [
		"Aggiorna",
		"Aktualisieren"
];



coalitionlabel = [
		"Coalizione",
		"Koalition",
		"Coaliziun"
];


function getImagePF(lang)
{
	var iPF = [ "it", "de", "la" ];
	return iPF[lang];
}


var gemeindelisttitel = (isDiff) ? gemeindedifflistlabel : gemeindelistlabel;



Array.prototype.odd = function()
{
	var oddVector = new Array();
	for ( var i = 0; i < this.length ; i+=2)
	{
		oddVector[i/2] = this[i];
	}
	return oddVector;
}

Array.prototype.even = function()
{
	var oddVector = new Array();
	for ( var i = 1; i < this.length ; i+=2)
	{
		oddVector[(i - 1)  /2] = this[i];
	}
	return oddVector;
}


Array.prototype.oddColumns = function()
{
var filteredVotes = new Array();

	for ( var j = 0; j < votes.length ; j++ )
	{
		filteredVotes[j] = votes[j].odd();
		
	}
	return filteredVotes;
}

Array.prototype.evenColumns = function()
{
var filteredVotes = new Array();

	for ( var j = 0; j < votes.length ; j++ )
	{
		filteredVotes[j] = votes[j].even();
		
	}
	return filteredVotes;
}





function Numsort(a,b)
{ 
	var compare = null;	
	if ( a[0] - b[0] > 0)		compare = 1;
	else if (a[0] - b[0] == 0)
	{
		if (a[1] > b[1])        compare = -1;
		else if (a[1] == b[1]) 	compare = 0;
		else			compare = 1;	
	}
	else
		compare = -1;
	return compare; 
}

function AbsNumsort(a,b)
{
	var compare = null;	
	if ( Math.abs(a[0]) - Math.abs(b[0]) > 0)		compare = 1;
	else if (Math.abs(a[0]) - Math.abs(b[0]) == 0)
	{
		if (Math.abs(a[1]) > Math.abs(b[1]))        compare = -1;
		else if (Math.abs(a[1]) == Math.abs(b[1])) 	compare = 0;
		else			compare = 1;	
	}
	else
		compare = -1;
	return compare; 
}


function parteiList(parties, votes)
{
	var trStyle = "font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:12px;height:1em;background-color:"
	var rowBgHighColor = "#FFFFFF";
	var rowBgLowColor = "#d0d0d0";

	var landesEbene = new Array();

	for (i=0; i<votes.length; i++)
			landesEbene[i] = [votes[i][gCurrentParty], getGemeinde(i,gCurrentLanguage) ];
	
	landesEbene.sort(AbsNumsort);
	landesEbene.reverse();


	var page= "" ;
	var rowBgColor="";
	page= "<html><head><title>"+buttonlabel[gCurrentLanguage]+"</title></head>" +
		'<body><center><p style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:18px;">' + 
		(parties[gCurrentParty]).replace(/^-/,coalitionlabel[gCurrentLanguage]) +
		'<br>'+ gemeindelisttitel[gCurrentLanguage]+'</p></center>' +
		'<center><table  width="90%" border="0" cellspacing="0" cellpadding="0">';
	var line = 1;	
	for (i=0; i < landesEbene.length; i++)
	{
		if (landesEbene[i][0] == null) continue;
		line ++;
		rowBgColor = (line % 2 == 0) ? rowBgLowColor : rowBgHighColor;
		page += '<tr style="' + trStyle +rowBgColor+';"><td align="left">' +
			formatNumber((i + 1),"000")  + '.</td><td align="left">' + landesEbene[i][1] + '</td><td align="right">' +
			formatNumber(landesEbene[i][0],"0.0#") + ' %</td></tr>';
	}
	page += "</table></center>" +
		'<p><center><form  name=buttonform><input type=button name=button value="' +
		exitlabel[gCurrentLanguage]+'" onClick="javascript:window.close();"></form></center>' +
		"</body></html>";

	return page;
}


function gemeindeList(acode)
{
	var gemeinde = new Gemeinde(acode);
	return processPopupVektor(mainAppl.votes[acode], mainAppl.parties, gemeinde);
}



function processPopupVektor(vote, parties, gemeinde)
{
	var titelStyle = "font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:18px;";
	
	
	var gemeindeVote = new Array();

	if (vote != null)
	{
		for(i=0; i < vote.length; i++)
		{
				if (i == gCurrentParty)
					gemeindeVote[i] = [vote[i], parties[i], "bold"];
				else
					gemeindeVote[i] = [vote[i], parties[i]];
		}
		
		var gVoteParties = getParties(gemeindeVote);
		gVoteParties.sort(AbsNumsort);
		gVoteParties.reverse();

		var gVoteCoalitions = getCoalitions(gemeindeVote);
		gVoteCoalitions.sort(AbsNumsort);
		gVoteCoalitions.reverse();

		gemeindeVote = 	getCoalitions(gemeindeVote);
		gemeindeVote.sort(AbsNumsort);
		gemeindeVote.reverse();
			
		var page= "" ;
		
		page = "<html><head><title>"+gemeinde.name + '</title></head><body><center><p style="' +
			titelStyle + "\">" + gemeinde.name +"</p></center>" +
		
		printGemeindeVote(gVoteCoalitions, "90", "alpha") + "<p/>" +
		printGemeindeVote(gVoteParties,"90") +
			'<p><center><form name=buttonform><input type=button name=button value="' +
			exitlabel[gCurrentLanguage] + '" onClick="javascript:window.close();"></form></center></body></html>';
		return page;
	}

}

function printGemeindeVote(gVoteParties, width, format)
{
	var width = width || "90%";
	var format = format || "numeric";
	var rowBgHighColor = "#FFFFFF";
	var rowBgLowColor = "#d0d0d0";
	var trStyle="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:14px;height:1.4em;background-color:";
	var rowBgColor="";
	var pageFragment= '<center><table  width="'+width+'%" border="0" cellspacing="0" cellpadding="0">';	
		
		var line = 1;
		var counter = 1;
		for (i=0; i < gVoteParties.length; i++)
		{
			if (gVoteParties[i][0] == null) continue;
			line++;
			rowBgColor = (line % 2 == 0) ? rowBgLowColor : rowBgHighColor;
			if (typeof(gVoteParties[i][2]) != "undefined" )
				pageFragment += '<tr style="'+trStyle +rowBgColor+';"><td align="left"><b>' +
					formatIndex(counter, format)  + '.</b></td><td align="left"><b>' +
					(gVoteParties[i][1]).replace(/^-/,coalitionlabel[gCurrentLanguage]) + '</b></td><td align="right"><b>' +
					formatNumber(gVoteParties[i][0],"0.0#") + ' %</b></td></tr>';
			else
				pageFragment += '<tr style="'+trStyle +rowBgColor+';"><td align="left">' +
					formatIndex(counter, format)  + '.</td><td align="left">' +
					(gVoteParties[i][1]).replace(/^-/,coalitionlabel[gCurrentLanguage]) + '</td><td align="right">' +
					formatNumber(gVoteParties[i][0],"0.0#") + ' %</td></tr>';
			counter++;
		}
		pageFragment += "</table></center>";
	return pageFragment;
		
}

function formatIndex(counter, format)
{
var format = format || "numeric";
var alpha = ["A", "B", "C", "D", "E" ];
var formattedIndex = counter;

	if ( format == "numeric")
	{
		formattedIndex = formatNumber((counter),"00");
	}
	else
	{
		formattedIndex = alpha[counter -1];	
	}
	return formattedIndex;
}

function coalFilter(element)
{
	if (element.match(/^-/) != null)
	{	
		return true;
	}
	else
	{
		return false;
	}
}

function partyFilter(element)
{
	if (element.match(/^-/) == null)
	{	
		return true;
	}
	else
	{
		return false;
	}
}


function getCoalitions(gemeindeVote)
{
	return filterArray(gemeindeVote, partyFilter);
}


function getParties(gemeindeVote)
{
	return filterArray(gemeindeVote, coalFilter);
}

function filterArray(gemeindeVote, filterFunction)
{
	var filterFunction = filterFunction;
	var gVoteWCoalitions = new Array();
	var i = 0;
	var j = 0;
	for (i = 0; i < gemeindeVote.length; i++)
	{
		if (filterFunction(gemeindeVote[i][1])) continue;
		gVoteWCoalitions[j] = gemeindeVote[i];
		j++;
			
	}
	return gVoteWCoalitions;
}

function Gemeinde(acode)
{
	this.name = getGemeinde(acode, gCurrentLanguage);
	this.vote = getProjection ( top.mainAppl.votes, acode, gCurrentParty) ; 
	return this;
}


function getProjection(values,acode, party)
{
	if (party != null)
	{
		return (typeof(values[acode]) != "undefined" && typeof(values[acode][party]) != "undefined")  
						? values[acode][party] : "" ; 
	}
	else
	{
		return values[acode];
	}
}


function getGemeinde(acode, lang)
{
	return getProjection(locations, acode, lang);
}


function changeText(acode)
{
	var gemeinde = new Gemeinde(acode);
	return  graphics.window.document.partyform.partyname.value=(gemeinde.name !="" && (gemeinde.vote != null ) ) ? 
							   gemeinde.name +  " "  + formatNumber(gemeinde.vote,"#0.0#") +"%" : "" ;
}

function Popup(windowname, width, height, resizable, dependent, scrollbars)
{
	this.windowname = windowname || "" ;
	this.width = width || "300";
	this.height = height || "500";
	this.resizable = resizable || "yes";
	this.scrollbars = scrollbars || "yes";
	this.dependent = dependent || "yes";
	this.popupWindow = null ;
	return this;
}

Popup.prototype.show = function(page)
{
	var options = "width=" + this.width +
		",height=" + this.height +
		",resizable=" + this.resizable +
		",scrollbars=" + this.scrollbars +
		",dependent=" + this.dependent;

	if ( this.popupWindow == null || this.popupWindow.closed == true )
	{
		this.popupWindow = open("",this.windowname, options);
		if ( this.popupWindow != null && this.popupWindow.opener == null)
			this.popupWindow.opener = self;
	}
	this.popupWindow.document.write(page);
	this.popupWindow.document.close();
	this.popupWindow.focus();	
}

Popup.prototype.close = function()
{
	this.popupWindow.close();
}




function ElectionApp(language)
{
	if (typeof(language)  == null )
	{
		this.language = 1;
	}
	this.language = language ;

	this.map = southtyrolmap;  		// set the South Tyrol map as default
	this.isDiff = top.isDiff || false;
	this.chartBaseName = top.chartBasename || "elections";
	
	this.parties = (top.isDiff) ? partiesdiff : parties; 
	this.votes =  (top.isDiff) ? votesdiff : votes;
	

	if ( this.language == 0 ) //italian
	{
		this.parties = (this.parties).even();
		this.parties.isOdd = false;
		this.votes = (this.votes).evenColumns();
		this.votes.isOdd = false;
	
	}
	else if ( this.language == 1 ) //german
	{
		this.parties = (this.parties).odd();
		this.parties.isOdd = true;
		this.votes = (this.votes).oddColumns();
		this.votes.isOdd = true;
	
	}
	

	this.gemeindePopup = new Popup("gemeinde","500","460");
	this.parteiPopup = new Popup("partei","500","800");
	
	return this;
}

ElectionApp.prototype.setMap = function( map )
{
	this.map = map;
}

ElectionApp.prototype.toHTML = function()
{
	var elements = new Array();

	elements[0] = new MenuForm(this.parties, this.votes, this.isDiff , this.chartBaseName);
	this.partyMapUrls = elements[0].partyMapUrls;
	elements[1] = new ImageTag(this.isDiff, this.chartBaseName);
	elements[2] = new Map(this.map);


	var page = new String() ;
	
	for (var i = 0; i <elements.length; i ++)
		page += elements[i].toHTML();
	return page;	
}

ElectionApp.prototype.changeImage = function(index)
{
 	gCurrentParty = index;
	graphics.document.images.party.alt = "Loading image...";
	graphics.document.images.party.src = "graphics/loading.png";
	graphics.document.images.party.src = "graphics/" + this.partyMapUrls[index];
	graphics.document.images.party.alt = "";
	
}

function escapeStringArray(a)
{
	var i= 0;
	for (i=0; i < a.length; i++)
	{
		if (a[i] != null )
			a[i] = a[i].replace(/'/g,"\\'");
	}
}


function ImageTag(diff, chartBaseName)
{
	this.isDiff = diff || false;
	this.chartBaseName = chartBaseName || "elections";
	return this; 
}

ImageTag.prototype.toHTML = function()
{
	var startIndex = ( top.gCurrentLanguage == 0 ) ? "1_" : "0_" ;
	var diffPF = ( this.isDiff ) ?  "diff" : "";
	return '<center><img width="550" height="420"  border="0" name="party" src="graphics/' + this.chartBaseName +
		diffPF + startIndex +
		getImagePF(gCurrentLanguage) +
		'.png" usemap="#mymap" ></center>'; 
}


function MenuForm(partynames, votes, diff, chartBaseName)
{
	this.isDiff = diff || false;
	this.partynames = partynames || new Array();
	this.votes = votes || new Array();
	this.diffPF = ( isDiff ) ?  "diff" : "";
	this.curParties = (isDiff) ? "partiesdiff" : "parties"; 
	this.curVotes = (isDiff) ? "votesdiff" : "votes"; 
	this.chartBaseName = chartBaseName || "elections";
	this.selectstyle = "font-family:,Geneva,Arial,Helvetica,sans-serif;font-size:14px;";
	this.partyMapUrls = new Array();
	var diffPF = ( this.isDiff ) ?  "diff" : "";

	for(i = 0; i <this.partynames.length; i++)
		{
			this.partyMapUrls[i] = this.chartBaseName + diffPF +
			
			((partynames.isOdd == true ) ? (2 * i )  : (2 * i +1 ) )
			
			+ "_" + getImagePF(gCurrentLanguage) + ".png";
		}	
	return this;
}


MenuForm.prototype.toHTML = function()
{
	var inputStyle = "font-family:,Geneva,Arial,Helvetica,sans-serif;font-size:12px;";


	var curParties = (this.isDiff) ? "partiesdiff" : "parties"; 
	var curVotes = (this.isDiff) ? "votesdiff" : "votes"; 

	

	var partyFormTag = '<center><form name="partyform">';
	
	partyFormTag += this.partyCommander();
	partyFormTag += '<input style="' + this.selectStyle +
			'" name="partyname" type="text" size="35" maxlength="35"' +
			'value="" readonly="true">' +
			'<input style="' + inputStyle +'" name="gemeindelist" type="button" value="' +
			buttonlabel[gCurrentLanguage] +
			'"  onClick="top.mainAppl.parteiPopup.show(top.parteiList(top.mainAppl.parties, top.mainAppl.votes));"/>' +
//			 '<input style="' + inputStyle + '" name="landesweit" type="button" value="' +
//			landesweitlabel[gCurrentLanguage] +
//			'"  onClick="top.window.location.reload();"/>' +
			'</form></center>';

	return partyFormTag;

}


function showtip(current,e,text)
{
	if (document.all||document.getElementById)
	{
		thetitle=text.split('<br>')
		if (thetitle.length>1)
		{
			thetitles=''
			for (i=0;i<thetitle.length;i++)
				thetitles+=thetitle[i]
			current.title=thetitles
		}
		else
			current.title=text
	}
	else if (document.layers)
	{
		document.tooltip.document.write('<layer bgColor="white" style="border:1px solid black;font-size:12px;">'+text+'</layer>')
		document.tooltip.document.close()
		document.tooltip.left=e.pageX+5
		document.tooltip.top=e.pageY+5
		document.tooltip.visibility="show"
	}
}

function hidetip()
{
	if (document.layers)
	document.tooltip.visibility="hidden"
}



function setLayout(i)
{
	MenuForm.prototype.partyCommander = layout[i];
	graphics.document.write(mainAppl.toHTML());graphics.document.close();

}


var layout = new Array();
var partyCommanderigator = null;

layout[0] = function()
{
if (partyCommanderigator != null) partyCommanderigator.close();
	var partySelectBox = '<p><select style="' + this.selectStyle + '" name=party onChange="top.mainAppl.changeImage(document.partyform.party.selectedIndex);">';
	for(i = 0; i <this.partynames.length; i++)
		partySelectBox += '<option '+ ((i==0) ? 'selected': '' )  + '>' + this.partynames[i].replace(/^-/,coalitionlabel[gCurrentLanguage]);
	
	partySelectBox += '</select>';
	return partySelectBox;
} ;



layout[1] = function()
{
if (partyCommanderigator != null) partyCommanderigator.close();
	var partyLinkTable = '<p><table>';
	var columns = 11;
	var rows = this.partynames.length / columns ;

	var iParty = 0;
	for(i = 0; i < rows; i++)
	{
		partyLinkTable += '<tr>';
		for (j = 0 ; j < columns; j++)
		{
			partyLinkTable += '<td>'+  
				((iParty <this.partynames.length) ? '<a href="javascript:top.mainAppl.changeImage('+ iParty + ');"><img alt="'+this.partynames[iParty]+'" border="0" width="45" height="45" src="logos/c'+ (++iParty) +'.gif"></a>' : '') + '</td>' ;
		}
		partyLinkTable += '</tr>';
	}	
			
	partyLinkTable += '</table><p>';
	return partyLinkTable;

} ;


layout[2] = function() // 2
{
if (partyCommanderigator != null) partyCommanderigator.close();
	var partyLinkTable = '<p><table>';
	var columns = 5;
	var rows = this.partynames.length / columns ;

	var iParty = 0;
	for(i = 0; i < rows; i++)
	{
		partyLinkTable += '<tr>';
		for (j = 0 ; j < columns; j++)
		{
			partyLinkTable += '<td>'+  
				((iParty <this.partynames.length) ? '<a href="javascript:top.mainAppl.changeImage('+ iParty + ');">'+ this.partynames[iParty++]+'</a>' : '') + '</td>' ;
		}
		partyLinkTable += '</tr>';
	}	
			
	partyLinkTable += '</table><p>';
	return partyLinkTable;

} ;



layout[3] = function() // 3
{
	partyCommanderigator = new Popup("partyCommanderigator","250","550");

	var partyLinkTable = '<html><head><title>Parteien Commander</title></head><body><center><table>';
	var columns = 3;
	var rows = this.partynames.length / columns ;

	var iParty = 0;
	for(i = 0; i < rows; i++)
	{
		partyLinkTable += '<tr>';
		for (j = 0 ; j < columns; j++)
		{
			partyLinkTable += '<td>'+  
			((iParty <this.partynames.length) ? '<a href="javascript:top.window.opener.mainAppl.changeImage('+ iParty + ');"><img alt="'+this.partynames[iParty]+'" border="0" width="60" height="60" src="logos/c'+ (++iParty) +'.gif"></a>' : '') + '</td>' ;
		}
		partyLinkTable += '</tr>';
	}	
			
	partyLinkTable += '</table></center></body></html>';

	partyCommanderigator.show(partyLinkTable);
	return "<p>";
};



MenuForm.prototype.partyCommander = layout[0];

function Map(polygonVektor)
{
	this.polygonVektor = polygonVektor || new Array();
	return this;
}

Map.prototype.toHTML = function() 
{
	function mapRow(polygon, acode)
	{
		var municipality = new Gemeinde(acode);
		var onMouseOverCommand = "top.showtip(this,event,top.changeText('" + acode + "'));";

		return	'<area shape="POLYGON" ' 
		+ 'onmouseover=" ' + onMouseOverCommand + '"'

		+ "onmouseout=\"top.hidetip();top.changeText('');\"  "
		+ 'href="javascript:top.mainAppl.gemeindePopup.show(top.gemeindeList('+ acode +'));" '
		//+ ' alt="' + municipality.name 
		//+ '" title="' + municipality.name 
		+ '" coords="' + polygon + '"/>';
	}


	var mapTag="<div id=\"tooltip\" style=\"position:absolute;visibility:hidden\"></div><map name=\"mymap\">";
	for (i=0 ; i < this.polygonVektor.length; i++)
	{

		if (typeof(this.polygonVektor[i]) == "string")
			mapTag += mapRow(this.polygonVektor[i],i);
		else
			for( j=0; j < this.polygonVektor[i].length; j ++)
				mapTag += mapRow(this.polygonVektor[i][j],i);
	}
	mapTag += "</map>";
	return mapTag;	
}



 var separator = ",";  // use comma as 000's separator
  var decpoint = ".";  // use period as decimal point
  var percent = "%";
  var currency = "$";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "," + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }

  

