
// Kaytettava XML-tiedosto
var tiedosto      = "/tyopaikat/xml/saima_MTVMEDIA.xml";
// Aukeamis- ja sulkeutumisnopeudet millisekunneissa
var nopeus_auki   = 100;
var nopeus_kiinni = 200;

//
var xml;
var elementti  = null;
var elementti2 = null;
function lataaXML() {
	new Ajax.Request(tiedosto, {
		method: "get",
		onSuccess: function(t) {
			if (!t) return;
			xml = t.responseXML.getElementsByTagName("vacancy");
			valmisteleTyopaikat();
		}
	});
}
function valmisteleTyopaikat() {
	if (!xml) return;
	var tagi = "";
	var arvo = "";
	for (i = 0; i < xml.length; i++) {
		var nimike = "";
		var kuvaus = "";
		var osoite = "";
		try {
			for (j = 0; j < xml[i].childNodes.length; j++) {
				if (!xml[i] ||!xml[i].childNodes[j] || xml[i].childNodes[j].nodeType != 1) continue;
				tagi = xml[i].childNodes[j].tagName ? xml[i].childNodes[j].tagName : "";
				/*arvo = xml[i].childNodes[j].firstChild && xml[i].childNodes[j].firstChild.nodeValue ?
				       dekoodaa(xml[i].childNodes[j].firstChild.nodeValue) : "";*/
				// Firefoxin 4096 merkin rajoituksen vuoksi haetaan data nodesta palautaTeksti-funktiolla:
				arvo = xml[i].childNodes[j].firstChild && xml[i].childNodes[j].firstChild.nodeValue ?
					dekoodaa(palautaTeksti(xml[i].childNodes[j])) : "";
				switch (tagi) {
				case "vacancy_name":
					nimike = arvo
					break;
				case "vacancy_text":
					kuvaus = arvo;
					break;
				case "application_url":
					osoite = arvo;
					break;
				}
			}
		}
 		catch(err) {
		}
		var e0;
		var e1;
		var e2;
		var e3;
		e0 = new Element("div", { "class": "tyopaikka-wrapper" });
		e1 = new Element("div", { "class": "tyopaikka" });
		e2 = new Element("div", { "class": "nimike" }).update(nimike);
		e3 = new Element("div", { "class": "kuvaus" });
		if (osoite) {
			kuvaus += "<p><a href=\"" + osoite + "\" target=\"_blank\">T&auml;yt&auml; hakemus</a></p>";
		}
		e3.appendChild(new Element("div", { "class": "kuvaus_sisa" }).update(kuvaus));
		e3.hide();
		e1.appendChild(e2);
		e1.appendChild(e3);
		e0.appendChild(e1);
		//
		e2.observe("click", function(t) {
			e  = t.element();
			e1 = e.up("div").down("div");
			e2 = e.up("div").down("div", 1);
			if (elementti) {
				elementti.up("div").down("div", 1).down().setStyle({ overflow: "hidden"});
				if (elementti.className == "nimike") {
					elementti = null;
				}
				else {
					elementti.className = "nimike";
					elementti.up("div").down("div", 1).setStyle({ overflow: "hidden"});
					Effect.SlideUp(elementti.up("div").down("div", 1), {
						duration: (nopeus_kiinni / 1000)
					});
				}
			}
			if (e1 != elementti) {
				e2.down().setStyle({ "overflow": "hidden" });
				e1.className = "nimike_auki";
				Effect.SlideDown(e2, {
					duration: (nopeus_auki / 1000)
				});
				elementti2 = e2.down();
				setTimeout(function() {
					if (!elementti2) return;
					elementti2.setStyle({ overflow: "auto"});
				}, (nopeus_auki + 100));
			}
			//
			elementti = e1;
		});
		// document.body.appendChild(e1);
		document.getElementById("tyopaikat").appendChild(e0);
	}
}
function dekoodaa(data) {
	data = data.replace(/&lt;/g, "<");
	data = data.replace(/&gt;/g, ">");
	data = data.replace(/&nbsp;/g, " ");
	data = data.replace(/&quot;/g, "\"");
	return(data);
}

function palautaTeksti(data) {
  if(!data) return '';
  // Firefox:
  if(typeof(data.textContent) != 'undefined') return data.textContent;
  // IE yms. selaimet:
  return data.firstChild.nodeValue;
}