function domLoadEvents(validationerror) {
    Event.observe("palautelinkki", "click", toggleFeedback);
Element.extend("palaute");
    Event.observe("palaute", "submit", doFeedbackSubmit);
    $$("#tulostuslinkki a.printteri").invoke("observe", "click", printPage);
    $$("#sisaltopalsta a").each(formatSpecialLinks);
    if ($("kakkosnavi").down("li")) {
        $$("#kakkosnavi li").last().addClassName("viimeinen");
    }
    $$("#kolmosnavi li.sel").each(function(e) {
        var lnk = e.down("a"),
            s = document.createElement("SPAN"),
            t = document.createTextNode(lnk.innerHTML);
        s.appendChild(t);
        e.insertBefore(s, lnk);
        lnk.hide();
    });
    setBreadCrumb();
    $$("#vasenJaSisaltopalsta img:not(hspace)").each(function(i){if (i.src.indexOf("kkhmuokkaa.gif")<0)i.setAttribute("hspace", "10")});
    if (validationerror===1 && location.hash != "#palautekohta" && window.af == "palaute") {
        toggleFeedback();
        window.location = "#palautekohta";
    }
};
function domLoadFrontpageEvents(validationerror) {
    Event.observe("palautelinkki", "click", toggleFeedback);
    Event.observe("palaute", "submit", function(event) {
        lahetaLomake(1);
        if (event && event.preventDefault) event.preventDefault();
        return false
    });
    if ($("kakkosnavi").down("li")) {
        $$("#kakkosnavi li").last().addClassName("viimeinen");
    }
    if (validationerror===1 && location.hash != "#palautekohta") {
        toggleFeedback();
        window.location = "#palautekohta";
    }
//    $$('.aklinkki').invoke('observe', 'click', toggleNews);
    $$(".previousnext").each(listPaging);
};
function domLoadIntraEvents(validationerror) {
    if ($('palautelinkki')) Event.observe("palautelinkki", "click", toggleFeedback);
    $$("#tulostuslinkki a.printteri").invoke("observe", "click", printPage);
    $$("#sisaltopalsta a").each(formatSpecialLinks);
    if (validationerror===1 && location.hash != "#palaute") {
        toggleFeedback();
        window.location = "#palaute";
    }
};
toggleFeedback=function(event) {
    naytaLomake(1);
    if (event && event.preventDefault) event.preventDefault();
    return false;
};
doFeedbackSubmit=function(event) {
    lahetaLomake(1);
    if (event && event.preventDefault) event.preventDefault();
    return false
};
printPage=function(event) {
    window.print();
    if (event && event.preventDefault) event.preventDefault();
    return false;
};
setBreadCrumb=function() {
    var breadlinks = $$("#murupolku a");
    if (breadlinks[0] && breadlinks[0].innerHTML == breadlinks[1].innerHTML) {
        $("frontpage").hide();
    }
    if ($("leftcurrent") != null) {
        if ($("leftcurrent").down("li").match(".sel")) {
if ($("leftcurrent").down("a").match(".act")) $("murupolku").insertBefore($("trailcurrent"), $("trailcurrent").previousSiblings().find(function(e) { return e.innerHTML!="" }).previousSibling);
            $("trailcurrent").show();
        }
    }
};
formatSpecialLinks=function(lnk) {
    var lh = lnk.href;
    var inp = window.intrapath ? intrapath : "";
    if (lh.indexOf("\/$FILE\/") > 0) {
        lnk.addClassName("liite");
        new Insertion.After(lnk, " (" + lh.substr(lh.lastIndexOf(".")+1) + ")" );
    } else if (lnk.href.indexOf('mailto') == 0) { 
        if (lnk.href.indexOf('_POISTA_TAMA_') > 0) {
            lnk.href = lnk.href.replace('_POISTA_TAMA_', '');
            var thelink = lnk.href.substr(lnk.href.indexOf(':') + 1);
            lnk.update(thelink);
        }
    } else if (inp !="" && lh.indexOf(inp) >= 0) {
        lnk.addClassName("intralinkki");
        lnk.title = intramsg;
        var lnkpart = lh.substr(lh.indexOf(intrapath));
        if (window.intrauser ? intrauser : "0" == "1") {
            lnk.href="http://rovasti.evl.fi/" + lnkpart;
        } else {
            lnk.href=window.intradefault ? "sp?Open&cid=" + intradefault : "#";
        }
    }
    else {
        var trg = lnk.readAttribute("target");
        if (trg == "_blank") {
/* TODO:
Fix intranet links that point to wrong path
*/
        }
    }
    if (lh.substr(lh.length-4).toLowerCase() == ".pdf") {
        lnk.target="_blank";
    }
}
toggleNews = function(event) {
    $$('.ajankoht').invoke('toggle');
    if (event && event.preventDefault) event.preventDefault();
    return false;
}
listPaging = function(prevnext) {
    var pl = new Array();
    var pcount = 0;
    var sourceID = prevnext.readAttribute("data-viewid");
    var paging = $(sourceID).readAttribute("data-count");
    var allNodes = $$("#" + sourceID + " li")
    allNodes.each(function(e, c) {
        if (c >= paging) {
            e.hide();
        }
        if (c % paging == 0) {
            pl[pcount] = document.createElement("a");
            pl[pcount].appendChild(document.createTextNode(pcount + 1));
            pl[pcount].setAttribute("data-count", paging);
            pl[pcount].setAttribute("data-start", c);
            pl[pcount].setAttribute("data-viewid", sourceID);
            pl[pcount].href = "#";
            pl[pcount].onclick = showListPage;
            Element.extend(pl[pcount]);
            prevnext.appendChild(pl[pcount]);
            prevnext.appendChild(document.createTextNode(" "));
            pcount++;
        }
    });
    if (pl[0]) { 
        pl[0].addClassName("valittu");
    }
}
showListPage = function(event) {
    var start = this.readAttribute("data-start") * 1;
    var paging = this.readAttribute("data-count") * 1;
    var sourceID = this.readAttribute("data-viewid");
    var iamfirst = !this.previous("a");
    var iamlast = !this.next("a");
    this.siblings().invoke("removeClassName", "valittu");
    this.addClassName("valittu");
    var pmin = start;
    var pmax = start + paging;
    var allNodes = $$("#" + sourceID + " li");
    allNodes.each(function(e, c) {
        if (c < pmin || c >= pmax) {
            e.hide();
        } else {
            e.show();
        }
    });
    if (event && event.preventDefault) event.preventDefault();
    return false;
}
function validate(frm) {
var f=Event.element(frm), ok=true, dp="", re;
$(f).getElementsBySelector('input,textarea').each(function(e) { 
dp = e.readAttribute("data-pattern");
if (!dp) { return }
e.next("span").hide();
re=new RegExp(dp);
if (!($F(e).match(re))) {
ok=false;
e.next("span").show();
}
});
return ok;
}

