// Kopieringsrätt av Digitalyard Sverige AB. Alla rättigheter reserverade. // För mer information, eller för att köpa scripten vänligen kontakta info@yard.se. var m_ajaxId = 0, m_previousSearchText = "", m_previousResponse = ""; var m_ajaxDelayedId = 0, m_ajaxDelayedUrl = "", m_ajaxDelayedArgs = "", m_ajaxDelayedCallback = null; function SearchFocusBlur(source, focusOrBlur) { if (focusOrBlur == 1) { if (source.value == source.getAttribute("defaultvalue")) { source.value = ""; } } else if (focusOrBlur == 2) { if (source.value.length == 0) { source.value = source.getAttribute("defaultvalue"); } } } function Search(force,pageIndex) { var source = document.getElementById("searchText"); var searchProgressItem = document.getElementById("searchProgress"); var searchProgressTitleItem = document.getElementById("searchProgressTitle"); var searchProgressTextItem = document.getElementById("searchProgressText"); var searchResultTable = document.getElementById("searchResult"); var searchPageIndex = document.getElementById("searchPageIndex"); if (!pageIndex) { pageIndex = searchPageIndex.value; } else { searchPageIndex.value = pageIndex; } var searchText = source.value; if (searchText == source.getAttribute("defaultvalue")) searchText = ""; searchText = searchText.replace(/[\s]+/g, " ").replace(/^[\s]+/g, "").replace(/[\s]+$/g, ""); var searchNameItem = document.getElementById("searchName").checked; var searchIngredientsItem = document.getElementById("searchIngredients").checked; if (searchText.length == 0) { searchProgressItem.style.display = "none"; } else if (searchText.length < 2) { searchProgressTitleItem.innerHTML = "Skriv in fler tecken för att söka"; searchProgressTextItem.innerHTML = "Skriv in fler än 2 tecken för att söka. Sökningen startar automatiskt."; searchProgressItem.style.display = ""; } else { if ((searchText != m_previousSearchText) || (force)) { searchProgressTitleItem.innerHTML = "Sökning Pågår"; searchProgressTextItem.innerHTML = "Din sökning pågår, resultatet visas strax här..."; searchProgressItem.style.display = ""; searchResultTable.style.display = "none"; AjaxQueryDelayed("/ajax.aspx", "p=" + (pageIndex ? pageIndex : 1) + "&n=" + (searchNameItem ? "1" : "0") + "&i=" + (searchIngredientsItem ? "1" : "0") + "&q=" + encodeURIComponent(searchText), SearchRender); m_previousSearchText = searchText; } } } function SearchRender(id, response) { if (id == m_ajaxId) { var searchResultTable = document.getElementById("searchResult"); var searchProgressItem = document.getElementById("searchProgress"); var searchProgressTitleItem = document.getElementById("searchProgressTitle"); var searchProgressTextItem = document.getElementById("searchProgressText"); if (response.substring(0, 3) == "ER:") { searchProgressTitleItem.innerHTML = response.substring(4, response.indexOf("/")); searchProgressTextItem.innerHTML = response.substring(response.indexOf("/") + 1); searchProgressItem.style.display = ""; searchResultTable.style.display = "none"; pageTracker._trackPageview("/ajaxSearchResult"); return; } else { searchProgressItem.style.display = "none"; searchResultTable.style.display = ""; } if (m_previousResponse != response) { if (searchResultTable.getElementsByTagName("TBODY").length > 0) searchResultTable = searchResultTable.getElementsByTagName("TBODY")[0]; // remove previous rows var z, trs = searchResultTable.getElementsByTagName("TR"); for (z = trs.length - 1; z > 0; z--) { searchResultTable.removeChild(trs[z]); } // add new rows var y = 0, x = response.indexOf("\r\n"); var pagingData; while (x > -1) { var items = response.substring(y, x).split('\t'); if (y == 0) { pagingData = items; } else { var tr = document.createElement("TR"); var td = document.createElement("TD"); tr.appendChild(td); td.style.width = "10%"; if (items[4] == "1") { td.innerHTML = ""; } else { td.innerHTML = " "; } td = document.createElement("TD"); tr.appendChild(td); td.innerHTML = "" + items[1] + " (Jämför)"; hoverTipsHook(td.getElementsByTagName("a")[1], "Endast tillgängligt för medlemmar. Bli medlem gratis - eller logga in - genom att klicka på länken ovan!"); td = document.createElement("TD"); tr.appendChild(td); td.innerHTML = items[2]; td = document.createElement("TD"); tr.appendChild(td); td.innerHTML = items[3]; searchResultTable.appendChild(tr); } y = x + 2; x = response.indexOf("\r\n", y); } // analyze pagingData var footer = "
Visar " + pagingData[1].substring(1,9999) + " till " + pagingData[2].substring(1,9999) + " av totalt " + pagingData[3].substring(1,9999) + " produkter.
"; for (x = 4; x < pagingData.length; x++) { var pagingType = pagingData[x].substring(0,1); var pagingValue = pagingData[x].substring(1,9999); switch (pagingType) { case "P": footer += " « Föreg."; break; case "C": footer += " " + pagingValue; break; case "J": footer += " " + pagingValue + ""; break; case "N": footer += " Nästa »"; break; } } footer += "

"; var tr = document.createElement("TR"); var td = document.createElement("TD"); tr.appendChild(td); td = document.createElement("TD"); tr.appendChild(td); td.innerHTML = footer; td = document.createElement("TD"); tr.appendChild(td); td = document.createElement("TD"); tr.appendChild(td); searchResultTable.appendChild(tr); pageTracker._trackPageview("/ajaxSearchResult"); } m_previousResponse = response; } } function SearchCheck() { var searchNameItem = document.getElementById("searchName"); var searchIngredientsItem = document.getElementById("searchIngredients"); if ((searchNameItem.checked == false) && (searchIngredientsItem.checked == false)) { searchNameItem.checked = true; } // set cookie to remember this createCookie("SearchSettings", (searchNameItem.checked ? "T" : "F") + (searchIngredientsItem.checked ? "T" : "F"), 365*5); Search(true,1); } function AjaxQueryDelayed(url, args, callback) { if (m_ajaxDelayedId != 0) { clearTimeout(m_ajaxDelayedId); m_ajaxDelayedId = 0; } m_ajaxDelayedUrl = url; m_ajaxDelayedArgs = args; m_ajaxDelayedCallback = callback; m_ajaxDelayedId = setTimeout(AjaxQueryDelayedCallback, 1000); } function AjaxQueryDelayedCallback() { if (m_ajaxDelayedId != 0) { clearTimeout(m_ajaxDelayedId); m_ajaxDelayedId = 0; } AjaxQuery(m_ajaxDelayedUrl, m_ajaxDelayedArgs, m_ajaxDelayedCallback); } function AjaxQuery(url, args, callback) { var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0"); var id = ++m_ajaxId; request.open("POST", url, true); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.onreadystatechange = function() { if ((request.readyState == 4) && (request.status == 200)) { if (request.responseText) { callback(id, request.responseText); } } }; request.send(args); } function CompareAdd(productId) { } function CompareClear() { } 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 ""; } function eraseCookie(name) { createCookie(name,"",-1); } function addEvent(element, eventName, eventHandler) { if (element.addEventListener) { element.addEventListener(eventName, eventHandler, false); } else { element.attachEvent("on" + eventName, eventHandler); } } function PopUpWindow(url, width, height) { var left = screen.width / 2 - width / 2; var top = screen.height / 2 - height / 2; return window.open(url,'','resizable=1,scrollbars=0,toolbar=0,status=0,left=' + left + ',top=' + top + ',width=' + width + ',height=' + height); } addEvent(window, "load", Search);