jQuery.xmlSivu = function(options){
    
	var defaults = { 
		
		polku: "xml/",
		sivupolku: "xml/sivut/",
		juuri: "http://www.hanslangh.fi/",
		rakenne: "rakenne.xml",		
		sivu: "etusivu",
		nav_alue: "#ylanavi",
		ennen_nav: "<li>",
		jalkeen_nav: "</li>",
		subnav_alue: "#sivunavigaatio",
		ennen_subnav: "<li>",
		ennen_subnav_valittu: "<li class='valittu'>",
		jalkeen_subnav: "</li>",
		ennen_subnav2: "<li class='alaalasivu'>",
		ennen_subnav2_valittu: "<li class='alaalasivuvalittu'>",
		jalkeen_subnav2: "</li>",
		tekstialue: "#tekstialue",
		ennen_otsikko: "<h1>",
		jalkeen_otsikko: "</h1>",
		ennen_teksti: "<div>",
		jalkeen_teksti: "</div>"
		
	};
	
	if(kieli == "en") {
	
		var kielivalikko = "en/";
		
	} else if(kieli == "se") {
		
		var kielivalikko = "se/";
		
	} else {
		
		var kielivalikko = "";
	}		
	
	var options = $.extend(defaults, options);

	var url = options.sivu.split("/");
	
	
	if(url[0] != "") { // Käytetään metodia ainoastaan jos haetaan jotakin muuta kuin pääsivua

	// ********** SIVUSTON HAKU ******** //	
	
		$.ajax({
	
			type: "GET",
			url: options.juuri + options.polku + options.rakenne,
			dataType: "xml",		
			success: function(data) {
				
			varvarasivu = "";
			sivustoid = "tyhja";
			pvm = "";
			ak = "";
	
			  $(data).children("structure").children("page").each(function() {
	
					// Jos listataan valitun sivun alasivuja
	
					if($(this).attr("location") == url[0]) {
						
						// listataan valittu alasivu tai valittu pääsivu
						
						
						// Valitun yläsivun luokkalisäys						
						$("#" + $(this).attr("location")).addClass("ylavalittu");
						
						if(url[1] == $(this).attr("location")) { // Kirjoitetaan alasivulistaukseen myös yläsivulle linkki
						
							$(options.subnav_alue).append(options.ennen_subnav_valittu + '<a href="' + options.juuri + kielivalikko + url[0] + "/" + $(this).attr("location") + '">' + muunnaMerkit($(this).children("name").text()).toUpperCase() + "</a>" + options.jalkeen_subnav);
							
						} else {
						
							$(options.subnav_alue).append(options.ennen_subnav + '<a href="' + options.juuri + kielivalikko + url[0] + "/" + $(this).attr("location") + '">' + muunnaMerkit($(this).children("name").text()).toUpperCase() + "</a>" + options.jalkeen_subnav);				
						
						}												
						
						x = 0;

						if($(this).attr("location") == "ajankohtaista") {
						
							ak = "valittu";
						
						}
						
						// ********** ALASIVU ********** //
	
						$(this).children("page").each(function() {
															   
																
							if($(this).attr("location") == url[1]) { // ALASIVU
							
								sivustoid = $(this).attr("id");
	
								$(options.subnav_alue).append(options.ennen_subnav_valittu + '<a href="' + options.juuri + kielivalikko + url[0] + "/" + $(this).attr("location") + '">' + $(this).children("name").text() + "</a>" + options.jalkeen_subnav);
	
								$('meta[name=description]').attr('content', $(this).children("description").text());
								
								if(ak == "valittu") {
								
									pvm = " " + $(this).children("muokattu").text();
									
								}
								
								x = 1;
								
								// ********** ALA-ALASIVU ********** //
								
								$(this).children("page").each(function() { // ALAALASIVU
					
									if($(this).attr("location") == url[2]) {
		
										sivustoid = $(this).attr("id");
									
										$(options.subnav_alue).append(options.ennen_subnav2_valittu + $(this).children("name").text() + options.jalkeen_subnav2);
								
										$('meta[name=description]').attr('content', $(this).children("description").text());
										
										x = 1;											
										
									} else { // ELSE ALAALASIVU
									
										$(options.subnav_alue).append(options.ennen_subnav2 + '<a href="' + options.juuri + kielivalikko + url[0] + "/" + url[1] + "/" + $(this).attr("location") + '">' + $(this).children("name").text() + "</a>" + options.jalkeen_subnav2);	
										
									}
										
								});								
								
							} else { // ELSE ALASIVU
								
								if(x == 0 && ak == "valittu") { // Jos listataan ak sivua, haetaan ajankohtais-etusivulle uusin uutinen
								
									ak = 1;
									
									sivustoid = $(this).attr("id");
									
									pvm = " " + $(this).children("muokattu").text();
									
									$('meta[name=description]').attr('content', $(this).children("description").text());
								
								}
	
								$(options.subnav_alue).append(options.ennen_subnav + '<a href="' + options.juuri + kielivalikko + url[0] + "/" + $(this).attr("location") + '">' + $(this).children("name").text() + "</a>" + options.jalkeen_subnav);
							}
										
						
						});
						
						if(x == 0 && ak == "") { // Jos ei löytynyt valittua alasivulistausta, pääsivun description
							
							$('meta[name=description]').attr('content', $(this).children("description").text());
						}
						
						varasivu = $(this).attr("id");				   
					
					}
				
			  });
					  
			  tekstiksi(varasivu, sivustoid);
			  
			}
	
		});
		
	}
		
	function tekstiksi(varasivu, sivustoid) {
		
		
		if(sivustoid == "tyhja") {
			
			polku = varasivu;
			
		} else {
			
			polku = sivustoid;	
			
		}

		$.ajax({
			   
			type: "GET",
			url: options.juuri + options.sivupolku + polku + ".xml",
			dataType: "xml",
			success: function(data2) {	
			
				$(data2).children("site").children("page").each(function() {				
																		 
					
					$(options.tekstialue).append(options.ennen_otsikko + $(this).children("header").text() + options.jalkeen_otsikko);
					
					if(pvm != "") {
					
						$(options.tekstialue).append("<h2>" + pvm + "</h2>");
					
					}
					
					$(options.tekstialue).append(options.ennen_teksti + $(this).children("content").text() + options.jalkeen_teksti);
					
					document.title = muunnaMerkit($(this).children("title").text());
		
				});
			
			}
			
		});			
		
	}
	
	function muunnaMerkit(str) {
	
		str = str.replace(/(&Aacute;)/g, "Á"); 
		str = str.replace(/(&aacute;)/g, "á"); 
		str = str.replace(/(&acirc;)/g, "â"); 
		str = str.replace(/(&Acirc;)/g, "Â"); 
		str = str.replace(/(&acute;)/g, "´"); 
		str = str.replace(/(&aelig;)/g, "æ"); 
		str = str.replace(/(&AElig;)/g, "Æ"); 
		str = str.replace(/(&Agrave;)/g, "À"); 
		str = str.replace(/(&agrave;)/g, "à"); 
		str = str.replace(/(&alefsym;)/g, "ℵ"); 
		str = str.replace(/(&Alpha;)/g, "Α"); 
		str = str.replace(/(&alpha;)/g, "α"); 
		str = str.replace(/(&amp;)/g, "&"); 
		str = str.replace(/(&and;)/g, "∧"); 
		str = str.replace(/(&ang;)/g, "∠"); 
		str = str.replace(/(&aring;)/g, "å"); 
		str = str.replace(/(&Aring;)/g, "Å"); 
		str = str.replace(/(&asymp;)/g, "≈"); 
		str = str.replace(/(&Atilde;)/g, "Ã"); 
		str = str.replace(/(&atilde;)/g, "ã"); 
		str = str.replace(/(&Auml;)/g, "Ä"); 
		str = str.replace(/(&auml;)/g, "ä"); 
		str = str.replace(/(&bdquo;)/g, "„"); 
		str = str.replace(/(&Beta;)/g, "Β"); 
		str = str.replace(/(&beta;)/g, "β"); 
		str = str.replace(/(&brvbar;)/g, "¦"); 
		str = str.replace(/(&bull;)/g, "•"); 
		str = str.replace(/(&cap;)/g, "∩"); 
		str = str.replace(/(&Ccedil;)/g, "Ç"); 
		str = str.replace(/(&ccedil;)/g, "ç"); 
		str = str.replace(/(&cedil;)/g, "¸"); 
		str = str.replace(/(&cent;)/g, "¢"); 
		str = str.replace(/(&chi;)/g, "χ"); 
		str = str.replace(/(&Chi;)/g, "Χ"); 
		str = str.replace(/(&circ;)/g, "ˆ"); 
		str = str.replace(/(&clubs;)/g, "♣"); 
		str = str.replace(/(&cong;)/g, "≅"); 
		str = str.replace(/(&copy;)/g, "©"); 
		str = str.replace(/(&crarr;)/g, "↵"); 
		str = str.replace(/(&cup;)/g, "∪"); 
		str = str.replace(/(&curren;)/g, "¤"); 
		str = str.replace(/(&dagger;)/g, "†"); 
		str = str.replace(/(&Dagger;)/g, "‡"); 
		str = str.replace(/(&dArr;)/g, "⇓"); 
		str = str.replace(/(&darr;)/g, "↓"); 
		str = str.replace(/(&deg;)/g, "°"); 
		str = str.replace(/(&Delta;)/g, "Δ"); 
		str = str.replace(/(&delta;)/g, "δ"); 
		str = str.replace(/(&diams;)/g, "♦"); 
		str = str.replace(/(&divide;)/g, "÷"); 
		str = str.replace(/(&eacute;)/g, "é"); 
		str = str.replace(/(&Eacute;)/g, "É"); 
		str = str.replace(/(&ecirc;)/g, "ê"); 
		str = str.replace(/(&egrave;)/g, "è"); 
		str = str.replace(/(&Egrave;)/g, "È"); 
		str = str.replace(/(&empty;)/g, "∅"); 
		str = str.replace(/(&epsilon;)/g, "ε"); 
		str = str.replace(/(&Epsilon;)/g, "Ε"); 
		str = str.replace(/(&equiv;)/g, "≡"); 
		str = str.replace(/(&Eta;)/g, "Η"); 
		str = str.replace(/(&eta;)/g, "η"); 
		str = str.replace(/(&eth;)/g, "ð"); 
		str = str.replace(/(&ETH;)/g, "Ð"); 
		str = str.replace(/(&euml;)/g, "ë"); 
		str = str.replace(/(&Euml;)/g, "Ë"); 
		str = str.replace(/(&euro;)/g, "€"); 
		str = str.replace(/(&exist;)/g, "∃"); 
		str = str.replace(/(&fnof;)/g, "ƒ"); 
		str = str.replace(/(&forall;)/g, "∀"); 
		str = str.replace(/(&frac12;)/g, "½"); 
		str = str.replace(/(&frac14;)/g, "¼"); 
		str = str.replace(/(&frac34;)/g, "¾"); 
		str = str.replace(/(&frasl;)/g, "⁄"); 
		str = str.replace(/(&Gamma;)/g, "Γ"); 
		str = str.replace(/(&gamma;)/g, "γ"); 
		str = str.replace(/(&ge;)/g, "≥"); 
		str = str.replace(/(&gt;)/g, ">"); 
		str = str.replace(/(&hArr;)/g, "⇔"); 
		str = str.replace(/(&harr;)/g, "↔"); 
		str = str.replace(/(&hearts;)/g, "♥"); 
		str = str.replace(/(&hellip;)/g, "…"); 
		str = str.replace(/(&iacute;)/g, "í"); 
		str = str.replace(/(&Iacute;)/g, "Í"); 
		str = str.replace(/(&icirc;)/g, "î"); 
		str = str.replace(/(&Icirc;)/g, "Î"); 
		str = str.replace(/(&iexcl;)/g, "¡"); 
		str = str.replace(/(&Igrave;)/g, "Ì"); 
		str = str.replace(/(&igrave;)/g, "ì"); 
		str = str.replace(/(&image;)/g, "ℑ"); 
		str = str.replace(/(&infin;)/g, "∞"); 
		str = str.replace(/(&int;)/g, "∫"); 
		str = str.replace(/(&Iota;)/g, "Ι"); 
		str = str.replace(/(&iota;)/g, "ι"); 
		str = str.replace(/(&iquest;)/g, "¿"); 
		str = str.replace(/(&isin;)/g, "∈"); 
		str = str.replace(/(&Iuml;)/g, "Ï"); 
		str = str.replace(/(&iuml;)/g, "ï"); 
		str = str.replace(/(&Kappa;)/g, "Κ"); 
		str = str.replace(/(&kappa;)/g, "κ"); 
		str = str.replace(/(&lambda;)/g, "λ"); 
		str = str.replace(/(&Lambda;)/g, "Λ"); 
		str = str.replace(/(&lang;)/g, "〈"); 
		str = str.replace(/(&laquo;)/g, "«"); 
		str = str.replace(/(&larr;)/g, "←"); 
		str = str.replace(/(&lArr;)/g, "⇐"); 
		str = str.replace(/(&lceil;)/g, "⌈"); 
		str = str.replace(/(&ldquo;)/g, "“"); 
		str = str.replace(/(&le;)/g, "≤"); 
		str = str.replace(/(&lfloor;)/g, "⌊"); 
		str = str.replace(/(&lowast;)/g, "∗"); 
		str = str.replace(/(&loz;)/g, "◊"); 
		str = str.replace(/(&lsaquo;)/g, "‹"); 
		str = str.replace(/(&lsquo;)/g, "‘"); 
		str = str.replace(/(&lt;)/g, "<"); 
		str = str.replace(/(&macr;)/g, "¯"); 
		str = str.replace(/(&mdash;)/g, "—"); 
		str = str.replace(/(&micro;)/g, "µ"); 
		str = str.replace(/(&middot;)/g, "·"); 
		str = str.replace(/(&minus;)/g, "−"); 
		str = str.replace(/(&Mu;)/g, "Μ"); 
		str = str.replace(/(&mu;)/g, "μ"); 
		str = str.replace(/(&nabla;)/g, "∇"); 
		str = str.replace(/(&ndash;)/g, "–"); 
		str = str.replace(/(&ne;)/g, "≠"); 
		str = str.replace(/(&ni;)/g, "∋"); 
		str = str.replace(/(&not;)/g, "¬"); 
		str = str.replace(/(&notin;)/g, "∉"); 
		str = str.replace(/(&nsub;)/g, "⊄"); 
		str = str.replace(/(&ntilde;)/g, "ñ"); 
		str = str.replace(/(&Ntilde;)/g, "Ñ"); 
		str = str.replace(/(&Nu;)/g, "Ν"); 
		str = str.replace(/(&nu;)/g, "ν"); 
		str = str.replace(/(&oacute;)/g, "ó"); 
		str = str.replace(/(&Oacute;)/g, "Ó"); 
		str = str.replace(/(&Ocirc;)/g, "Ô"); 
		str = str.replace(/(&ocirc;)/g, "ô"); 
		str = str.replace(/(&OElig;)/g, "Œ"); 
		str = str.replace(/(&oelig;)/g, "œ"); 
		str = str.replace(/(&ograve;)/g, "ò"); 
		str = str.replace(/(&Ograve;)/g, "Ò"); 
		str = str.replace(/(&oline;)/g, "‾"); 
		str = str.replace(/(&omega;)/g, "ω"); 
		str = str.replace(/(&Omega;)/g, "Ω"); 
		str = str.replace(/(&Omicron;)/g, "Ο"); 
		str = str.replace(/(&omicron;)/g, "ο"); 
		str = str.replace(/(&oplus;)/g, "⊕"); 
		str = str.replace(/(&or;)/g, "∨"); 
		str = str.replace(/(&ordf;)/g, "ª"); 
		str = str.replace(/(&ordm;)/g, "º"); 
		str = str.replace(/(&Oslash;)/g, "Ø"); 
		str = str.replace(/(&oslash;)/g, "ø"); 
		str = str.replace(/(&Otilde;)/g, "Õ"); 
		str = str.replace(/(&otilde;)/g, "õ"); 
		str = str.replace(/(&otimes;)/g, "⊗"); 
		str = str.replace(/(&Ouml;)/g, "Ö"); 
		str = str.replace(/(&ouml;)/g, "ö"); 
		str = str.replace(/(&para;)/g, "¶"); 
		str = str.replace(/(&part;)/g, "∂"); 
		str = str.replace(/(&permil;)/g, "‰"); 
		str = str.replace(/(&perp;)/g, "⊥"); 
		str = str.replace(/(&phi;)/g, "φ"); 
		str = str.replace(/(&Phi;)/g, "Φ"); 
		str = str.replace(/(&Pi;)/g, "Π"); 
		str = str.replace(/(&pi;)/g, "π"); 
		str = str.replace(/(&piv;)/g, "ϖ"); 
		str = str.replace(/(&plusmn;)/g, "±"); 
		str = str.replace(/(&pound;)/g, "£"); 
		str = str.replace(/(&Prime;)/g, "″"); 
		str = str.replace(/(&prime;)/g, "′"); 
		str = str.replace(/(&prod;)/g, "∏"); 
		str = str.replace(/(&prop;)/g, "∝"); 
		str = str.replace(/(&psi;)/g, "ψ"); 
		str = str.replace(/(&Psi;)/g, "Ψ"); 
		str = str.replace(/(&quot;)/g, "\""); 
		str = str.replace(/(&radic;)/g, "√"); 
		str = str.replace(/(&rang;)/g, "〉"); 
		str = str.replace(/(&raquo;)/g, "»"); 
		str = str.replace(/(&rArr;)/g, "⇒"); 
		str = str.replace(/(&rarr;)/g, "→"); 
		str = str.replace(/(&rceil;)/g, "⌉"); 
		str = str.replace(/(&rdquo;)/g, "”"); 
		str = str.replace(/(&real;)/g, "ℜ"); 
		str = str.replace(/(&reg;)/g, "®"); 
		str = str.replace(/(&rfloor;)/g, "⌋"); 
		str = str.replace(/(&Rho;)/g, "Ρ"); 
		str = str.replace(/(&rho;)/g, "ρ"); 
		str = str.replace(/(&rsaquo;)/g, "›"); 
		str = str.replace(/(&rsquo;)/g, "’"); 
		str = str.replace(/(&sbquo;)/g, "‚"); 
		str = str.replace(/(&Scaron;)/g, "Š"); 
		str = str.replace(/(&scaron;)/g, "š"); 
		str = str.replace(/(&sdot;)/g, "⋅"); 
		str = str.replace(/(&sect;)/g, "§"); 
		str = str.replace(/(&Sigma;)/g, "Σ"); 
		str = str.replace(/(&sigma;)/g, "σ"); 
		str = str.replace(/(&sigmaf;)/g, "ς"); 
		str = str.replace(/(&sim;)/g, "∼"); 
		str = str.replace(/(&spades;)/g, "♠"); 
		str = str.replace(/(&sub;)/g, "⊂"); 
		str = str.replace(/(&sube;)/g, "⊆"); 
		str = str.replace(/(&sum;)/g, "∑"); 
		str = str.replace(/(&sup;)/g, "⊃"); 
		str = str.replace(/(&sup1;)/g, "¹"); 
		str = str.replace(/(&sup2;)/g, "²"); 
		str = str.replace(/(&sup3;)/g, "³"); 
		str = str.replace(/(&supe;)/g, "⊇"); 
		str = str.replace(/(&szlig;)/g, "ß"); 
		str = str.replace(/(&Tau;)/g, "Τ"); 
		str = str.replace(/(&tau;)/g, "τ"); 
		str = str.replace(/(&there4;)/g, "∴"); 
		str = str.replace(/(&Theta;)/g, "Θ"); 
		str = str.replace(/(&theta;)/g, "θ"); 
		str = str.replace(/(&thetasym;)/g, "ϑ"); 
		str = str.replace(/(&THORN;)/g, "Þ"); 
		str = str.replace(/(&thorn;)/g, "þ"); 
		str = str.replace(/(&tilde;)/g, "˜"); 
		str = str.replace(/(&times;)/g, "×"); 
		str = str.replace(/(&trade;)/g, "™"); 
		str = str.replace(/(&uacute;)/g, "ú"); 
		str = str.replace(/(&Uacute;)/g, "Ú"); 
		str = str.replace(/(&uArr;)/g, "⇑"); 
		str = str.replace(/(&uarr;)/g, "↑"); 
		str = str.replace(/(&ucirc;)/g, "û"); 
		str = str.replace(/(&Ucirc;)/g, "Û"); 
		str = str.replace(/(&Ugrave;)/g, "Ù"); 
		str = str.replace(/(&ugrave;)/g, "ù"); 
		str = str.replace(/(&uml;)/g, "¨"); 
		str = str.replace(/(&upsih;)/g, "ϒ"); 
		str = str.replace(/(&upsilon;)/g, "υ"); 
		str = str.replace(/(&Upsilon;)/g, "Υ"); 
		str = str.replace(/(&uuml;)/g, "ü"); 
		str = str.replace(/(&Uuml;)/g, "Ü"); 
		str = str.replace(/(&weierp;)/g, "℘"); 
		str = str.replace(/(&xi;)/g, "ξ"); 
		str = str.replace(/(&Xi;)/g, "Ξ"); 
		str = str.replace(/(&yacute;)/g, "ý"); 
		str = str.replace(/(&Yacute;)/g, "Ý"); 
		str = str.replace(/(&yen;)/g, "¥"); 
		str = str.replace(/(&yuml;)/g, "ÿ"); 
		str = str.replace(/(&Yuml;)/g, "Ÿ"); 
		str = str.replace(/(&Zeta;)/g, "Ζ"); 
		str = str.replace(/(&zeta;)/g, "ζ"); 
		str = str.replace(/(&#39;)/g, "'");
		
		return str; 
		
	}		
	
	
};
