function mmFillDiv(target, rows, pageOffset) {
while (target.suggBox.hasChildNodes()) {
target.suggBox.removeChild(target.suggBox.firstChild); }
var po = 0; 
var pe = rows.length; 
if (!isNaN(pageOffset)) {
po = pageOffset;
target.mmPageOffset = pageOffset; }
if (target.parameters.pageSize > 0) {
pe = po + target.parameters.pageSize;
if (pe > rows.length) pe = rows.length; }
target.firstDisplayedRow = po;
target.lastDisplayedRow = pe - 1;
var fieldnames = target.fieldnames;
var tDiv = target.parameters.document.createElement("div");
tDiv.className = "suggCategoriesYourInput";
tDiv.innerHTML = "<div class=\"suggestHeaderSearch\">"+
"Relevante Ergebnisse zu Ihrer Eingabe:&nbsp;<span class=\"suggestHeaderSearchGreen\">"+
replaceHTMLEntities(target.value)+
"</span></div>";
target.suggBox.appendChild(tDiv);
var localize = (fieldnames.length != 2) || (fieldnames[0] != "Name") || (fieldnames[1] != "Key");
if (localize && (typeof target.parameters.headerFunction != "undefined") && (target.parameters.headerFunction != null) && (target.parameters.headerFunction != "")) {
var iDiv = target.parameters.document.createElement("div");
var ih = target.parameters.headerFunction(target, iDiv, rows);
iDiv.innerHTML = ih;
iDiv.style.width = "100%";
target.suggBox.appendChild(iDiv); }
if (localize && (typeof target.parameters.rowFunction != "undefined") && (target.parameters.rowFunction != null) && (target.parameters.rowFunction != "")) {
var field_index = new Array();
for (j = 0; j < fieldnames.length; j++) {
field_index[fieldnames[j]] = j; }}
var groupHeader = "-1";
for (i = 0; i < rows.length; i++) {
var iDiv = target.parameters.document.createElement("div");
iDiv.id = "suggRow" + target.mm_refcnt + "_" + i;
iDiv.className = "suggRow";
iDiv.style.cursor = "pointer";
var addEvents = true;
var groupHeaderText = rows[i][1]+" zu Ihrer Suche";
var rowGroup = rows[i][1];
var showType = 0;
var showAll = 1;
if (localize && (typeof target.parameters.rowFunction != "undefined") && (target.parameters.rowFunction != null) && (target.parameters.rowFunction != "")) {
addEvents = target.parameters.rowFunction(target, rows, field_index, i, iDiv);
} else {
if (groupHeader != rowGroup) {
var groupItemDiv = target.parameters.document.createElement("div");
groupItemDiv.className = "suggCategoriesGroup";
var groupHeaderinnerHTML =
"<div class='suggCategoriesGroupHeader'>"+
"<div class='suggCategoriesGroupHeaderLeft'>"+
groupHeaderText+
"</div>";
groupItemDiv.innerHTML = groupHeaderinnerHTML+"</div>";
target.suggBox.appendChild(groupItemDiv);
groupHeader = rowGroup; }
iDiv.innerHTML = "<div class='suggProduct'>" + replaceHTMLEntities(rows[i][0]) + "</div>";
if (showType == 1) {
iDiv.innerHTML += "<div class='suggCat'>" + replaceHTMLEntities(rows[i][1]) + "</div>"; }
iDiv.innerHTML = "<div class='suggItem'>"+iDiv.innerHTML+"</div>"; }
if (addEvents) {
iDiv.selectable = true;
iDiv.mmMouseOver = new Function("evt", "mmMouseEnter(" + target.mm_refcnt + "," + i + ")");
if (ie) iDiv.onmouseover = iDiv.mmMouseOver;
if (!ie) iDiv.addEventListener('mouseover', iDiv.mmMouseOver, false);
iDiv.mmMouseDown = new Function("evt", "mmRedirectClick(" + target.mm_refcnt + ", '" + i + "')");
if (ie) iDiv.onmousedown = iDiv.mmMouseDown;
if (!ie) iDiv.addEventListener('mousedown', iDiv.mmMouseDown, false); }
groupItemDiv.appendChild(iDiv); }
var hintDiv = target.parameters.document.createElement("div");
hintDiv.innerHTML = "<div class=\"suggHint\">"+
"<div class=\"suggHintRight\"><nobr><a href=\"javascript:void(null);\" onmousedown=\"xajax_XajaxUtils_showCMSContent(28); return false;\">Infos zu unserer Suche</a></nobr></div>"+
"<br class=\"clearBoth\" /></div>";
target.suggBox.appendChild(hintDiv);
target.lastHighlightedId = po - 1; }
function mmSuggestGroupResultProducer(target, rows) {
rows.sort(NameSort);
var producerList = new Array();
var searchList = new Array();
var result = new Array();
for (var i = 0; i < rows.length; i++) {
if (rows[i][4] == 1) {
producerList.push(rows[i]);
} else {
searchList.push(rows[i]); }}
for (var i = 0; i < searchList.length; i++) {
result.push(searchList[i]); }
for (var i = 0; i < producerList.length; i++) {
result.push(producerList[i]); }
return result; }
function mmSuggestGroupResult(target, rows) {
rows.sort(NameSort);
var groupList = new Object();
for (var i = 0; i < rows.length; i++) {
if (typeof(groupList[rows[i][1]]) == 'undefined') {
groupList[rows[i][1]] = new Object();
groupList[rows[i][1]]["records"] = new Array();
groupList[rows[i][1]]["bias"] = 0; }
groupList[rows[i][1]]["records"].push(rows[i]);
var bias = Number(rows[i][3]);
if (isNaN(bias)) {
bias = 110; }
groupList[rows[i][1]]["bias"] = groupList[rows[i][1]]["bias"] + bias; }
var result = mmSuggestOrderGroupResultByDefinition(groupList);
return result; }
function mmSuggestOrderGroupResultByDefinition(groupList) {
var definitionOrder = new Array();
definitionOrder.push('Schlagworte');
definitionOrder.push('Marken');
definitionOrder.push('Produktinformationen');
definitionOrder.push('Herstellernamen');
var result = new Array();
for (var i = 0; i < definitionOrder.length; i++) {
for (var groups in groupList) {
if (groups == definitionOrder[i]) {
for (var j = 0; j < groupList[groups]["records"].length; j++) {
result.push(groupList[groups]["records"][j]); }
}}}
return result; }
function mmSuggestOrderGroupResultByBias(groupList) {
var biasList = new Array();
for (var groups in groupList) {
var recordCount = groupList[groups]["records"].length;
groupList[groups]["bias"] = Math.round(groupList[groups]["bias"] / recordCount);
if (! biasList.find(groupList[groups]["bias"])) {
biasList.push(groupList[groups]["bias"]); }}
biasList.sort(NumSort);
var result = new Array();
while (biasList.length > 0) {
for (var groups in groupList) {
if (groupList[groups]["bias"] == biasList[biasList.length - 1]) {
for (var i = 0; i < groupList[groups]["records"].length; i++) {
result.push(groupList[groups]["records"][i]); }
}}
biasList.pop(); }
return result; }
function mmSuggestOnActivate(target, row) {
var result = false;
var element = document.getElementById('globalSearch');
if (element) {
element.typID.value=row[4];
element.obID.value=row[6];
element.kustnr.value=row[7];
element.MMSuggest.value=1;
if (target.parameters.searchValueObject != null)
target.parameters.searchValueObject.value = row[0];
else
target.value = row[0];
if ((target.form.action != "") &&
((target.parameters.flags & AS_NOSUBMIT) != AS_NOSUBMIT) &&
(checkSearchInput('globalSearch', 'globalSearchInput', false))) {
toggleDisplayWaitScreen(true);
result = true; }}
return result; }
Array.prototype.find = function (s) {
for(var i=0;i<this.length;i++)
if(this[i] == s) return true;
return false;
};
function NumSort (a, b) {
return a - b; }
function NameSort (field1, field2) {
field1 = field1[0].toLowerCase();
field1 = field1.replace(/ä/g,"ae");
field1 = field1.replace(/ö/g,"oe");
field1 = field1.replace(/ü/g,"ue");
field1 = field1.replace(/ß/g,"ss");
field2 = field2[0].toLowerCase();
field2 = field2.replace(/ä/g,"ae");
field2 = field2.replace(/ö/g,"oe");
field2 = field2.replace(/ü/g,"ue");
field2 = field2.replace(/ß/g,"ss");
return(field1 == field2)
? 0
: (field1 > field2)
? 1
: -1;
}