// SN template 25.11.2011
// Copyright exorbyte GmbH, 2008-2011. All rights reserved.

var exoCatDelimiter = ">";
var exoProjectId = 196;
var exoProxyUrl = "suggest.php";
var searchFieldSel = "input[name=keywords]";
var containerDivSel = "";
var facetDivSel = "";
var isUrlTrigger = false;
var imgServerDomain = "img2.exorbyte.com"; // this is used in exorbyte-search, makeImgTag
var useGA = "true";

var exoSuggestParams = {
	max: 25,
	exoUrl: "http://commerce.exorbyte.de",
	extraParams: { Bias: 100, SN_limit: "display=type&search=article|brand|category|suggestion&limit=5-5-5-5" },
	projectId: exoProjectId,
	dataType: 'jsonp',
	leftOffset: -6,
	topOffset: 1,
	width: 435,
	showLogo: false,
	formatHeader: null,
	formatItem: secondColNone
};

if ($.browser.msie
	 && (document.compatMode === 'BackCompat' || document.documentMode < 7)) {
	exoSuggestParams.formatFooter = fixImgIE;
}

function exoSuggRedirect(event, data, formatted) {
	if (data.URL != "") {
		location.assign(data.URL.replace("http:", location.protocol));
	} else {
		$(this).val(formatted).parents("form").submit();
	}
}

function exoFormatTypeHdr(s) {
	switch (s) {
	 case "article":
	  return "Artikel";
	 case "suggestion":
	  return "Zielseiten";
	 case "category":
	  return "Kategorien";
	 case "brand":
	  return "Hersteller";
	}
	return s;
}

function exoFormatType(s) {
	switch (s) {
	 case "article":
	  return "Artikel";
	 case "suggestion":
	  return "Zielseite";
	 case "category":
	  return "Kategorie";
	 case "brand":
	  return "Hersteller";
	}
	return s;
}

function exoFormatPrice(p) {
	var currencySymbolAfterPrice = true;
	var decimalPoint = ",";
	var currencySymbol = "&euro;";
	var pFormat;

	if (p) {
		if (currencySymbolAfterPrice) {
			pFormat = p.replace(".", decimalPoint) + " "
				+ currencySymbol;
		} else {
			pFormat = currencySymbol
				+ p.replace(".", decimalPoint);
		}
		return pFormat;
	}
	return p;
}

function exoMakeImgTag(url, useImgCache) {
	var imgTag = "";
	if (url) {
		var imgUrl = url.replace("http:", location.protocol);
		if (useImgCache && url.split("?").length === 1) {
			var imgLink = url.replace(/^https?:\/\//, "");
			var first = imgLink.indexOf("/");
			var imgHost = imgLink.substr(0,first);
			if (imgHost == "") {
				imgHost = location.host;
			}
			var last = imgLink.lastIndexOf("/");
			var imgFile = imgLink.substr(first+1);
			imgUrl = location.protocol
				+ "//img2.exorbyte.com/imageserver/" + imgFile
				+ "?location=" + imgHost + "&width=40&height=40&dprefix="
				+ exoProjectId;
		}
		imgTag = "<img style='max-height:40px; max-width:40px;' src='" + imgUrl + "' alt=''/>";
	}
	return imgTag;
}

function exoSuggFirstCol(row, twoCol) {
	var showImg = 1;
	var useImgCache = true;
	var out;
	var nameW = 325 - 40;
	if ($.browser.msie && document.documentMode < 7) {
		nameW -= 20;
	}
	if (showImg && row.Type === "article") {
		out = "<span class='exoSuggImg' style='height:40px; width:40px;'>"
			+ exoMakeImgTag(row.Image, useImgCache) + "</span>"
			+ "&nbsp;<span class='exoSuggName' ";
		if (twoCol) {
			out += "style='width:" + nameW + "px;'";
		}
		out += ">" + row.SN_value + "</span>";
	} else {
		out = row.SN_value;
	}
	return out;
}

function secondColNone(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else {
		inHtml = "<span class='col1' style='max-width:95%;width:95%'>"
			+ exoSuggFirstCol(row, false) + "</span>";
	}

	return inHtml;
}

function secondColType(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else {
		inHtml = "<span class='col1'>" + exoSuggFirstCol(row, true) + "</span>" +
			"<span class='col2'>" + exoFormatType(row.Type) + "</span>";
	}

	return inHtml;
}

function secondColCat(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else {
		var cat = "";
		if (row.Type === "article") {
			cat = $.trim(row.Category.split(exoCatDelimiter)[0]);
		}
		inHtml = "<span class='col1'>" + exoSuggFirstCol(row, true) + "</span>"
			+ "<span class='col2'>" + cat + "</span>";
	}

	return inHtml;
}

function secondColBrand(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else {
		var brand = "";
		if (row.Type === "article") {
			brand = $.trim(row.Brand);
		}
		inHtml = "<span class='col1'>" + exoSuggFirstCol(row, true) + "</span>"
			+ "<span class='col2'>" + brand + "</span>";
	}

	return inHtml;
}

function secondColPrice(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else {
		inHtml = "<span class='col1'>" + exoSuggFirstCol(row, true) + "</span>" +
			"<span class='col2'>" + exoFormatPrice(row.Price) + "</span>";
	}

	return inHtml;
}

function fixImgIE() {
	$(".ac_item img").each(function(i, val) {
			$(val).parents(".ac_item").height(40);
		});

	return "";
}

