var jobs = new Array(); var sortOrder = 0; var sortOn = ""; var Jobb = Class.create({ initialize: function(befattning, kategori, foretag, anmalningsdatum, url) { this.befattning = befattning; this.kategori = kategori; this.foretag = foretag; this.anmalningsdatum = anmalningsdatum; this.url = url; this.befattningLower = befattning.toLowerCase(); this.kategoriLower = kategori.toLowerCase(); this.foretagLower = foretag.toLowerCase(); } }); function initJobs() { sortOn = readCookie("sortOn"); sortOrder = readCookie("sortOrder"); if (sortOrder == null) sortOrder = 0; filterJobs(); } function renderJobs(foretag, kategori, sokord) { var hitcount = 0; var obj = $("target"); //obj.innerHTML = ""; obj = replaceHtml(obj,""); // Lower case foretag = foretag.toLowerCase(); kategori = kategori.toLowerCase(); sokord = (sokord == "Fritextsökning") ? "" : sokord.toLowerCase(); var sout = ""; var j; for (var i = 0, len = jobs.length; i < len; ++i) { j = jobs[i]; if (((foretag.length == 0) || (j.foretagLower == foretag)) && ((kategori.length == 0) || (j.kategoriLower == kategori)) && ((sokord.length == 0) || ((j.foretagLower.indexOf(sokord) > -1) || (j.kategoriLower.indexOf(sokord) > -1)) || (j.befattningLower.indexOf(sokord) > -1))) { if(j.url.length==0) sout += "
Kommer inom kort
" + j.befattning + "
" + j.foretag + "
"; else sout += "
" + j.befattning + "
" + j.foretag + "
"; hitcount++; } } Element.insert(obj, sout); if(foretag == "" && sokord == "") $("hitcount").innerHTML = hitcount + (hitcount==1?" träff":" träffar") + ", ca 300 jobb"; else $("hitcount").innerHTML = hitcount + (hitcount==1?" träff":" träffar"); } function filterJobs() { renderJobs($("foretag").value, $("kategori").value, $("sokord").value); } function sortJobs(sorton) { if (sortOn == sorton) { // Already sorting on sorton, swap direction.. sortOrder = 1 - sortOrder; jobs.reverse(); } else { // Different sorton, reset order... sortOn = sorton; sortOrder = 0; if (sortOn == "Ansokningsdag") jobs = jobs.sortBy(function(j) { return ""+j.anmalningsdatum; }); else jobs = jobs.sortBy(function(j) { return j.befattningLower; }); } createCookie("sortOrder", sortOrder, 90); createCookie("sortOn", sortOn, 90); filterJobs(); } function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else var expires = ""; document.cookie = name + "=" + value + expires + "; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } function replaceHtml(el, html) { var oldEl = typeof el === "string" ? document.getElementById(el) : el; /*@cc_on // Pure innerHTML is slightly faster in IE oldEl.innerHTML = html; return oldEl; @*/ var newEl = oldEl.cloneNode(false); newEl.innerHTML = html; oldEl.parentNode.replaceChild(newEl, oldEl); /* Since we just removed the old element from the DOM, return a reference to the new element, which can be used to restore variable references. */ return newEl; } initJobs();