// SN template
// Copyright exorbyte GmbH, 2008-2011. All rights reserved.

var exoCatDelimiter = ">";
var exoProjectId = 877;
var exoProxyUrl = "ea/suggest";
var searchFieldSel = "frm-search";
var containerDivSel = "content";
var facetDivSel = "map";
var isUrlTrigger = true;
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: "limit=15", Filter: getLocationParam },
	projectId: exoProjectId,
	dataType: 'jsonp',
	leftOffset: 0,
	topOffset: 1,
	width: 350,
	formatHeader: null,
	formatItem: displayLine
};

if ($.browser.msie
	 && (document.compatMode === 'BackCompat' || document.documentMode < 7)) {
	exoSuggestParams.formatFooter = fixImgIE;
}

function exoSuggRedirect(event, data, formatted, inputValue) {
	var input = $(this)
	var form = input.parents("form");
	if (data.URL != "") {
		location.assign(data.URL.replace("http:", location.protocol));
	} else if (data.SN_value=="more_link" && data.Type=="event" ){
		// hidden field erzeugen und parameter einfügen
		input.val( inputValue );
		$('<input>').attr({
		    type: 'hidden',
		    name: 'filter',
		    value: 'veranstaltungen'
		}).appendTo( form );
		form.submit();
	} else if(data.SN_value=="more_link" && data.Type=="article" ){
		// hidden field erzeugen und parameter einfügen
		input.val( inputValue );
		$('<input>').attr({
		    type: 'hidden',
		    name: 'filter',
		    value: 'haendler'
		}).appendTo( form );
		form.submit();
	} else if (data.Type=="article") {
		input.val( inputValue );
		// Price contains the number of propects for the dealer
		if (data.Price == 1) {
			var display = data.Display.split(";");
			var query = data.Display.split(';')[1].replace(',', '+');
			var affiliateId = 0;
			// online dealer only have 3 Fields in Display; regular dealers 5
			if (display.size > 3) { 
				affiliateId = display[0];
			} 
	 		var url = encodeURI("http://www.einkaufaktuell.de/ea/content/einkaufaktuell/flashlayer.html?id=" + data.AID + "&dealerId=" + affiliateId + "&style=offer&query=" + query);
			Page.openModal(url);
		} else {			
			$('<input>').attr({
			    type: 'hidden',
			    name: 'haendler',
			    value: encodeURI(data.Brand)
			}).appendTo( form );			
			form.submit();
		}
	} else if (data.Category = "keyword") {
		if (formatted.indexOf(" ") == -1) {
			input.val( formatted );
		} else {
			input.val( "\"" + formatted + "\"" );
		}	
		form.submit();
	} else {
		$(this).val(formatted).parents("form").submit();
	}
}

function getLocationParam () {
  //TODO: An dieser Stelle müssen Koordianten und Umkreis sowie
  //die Gebiets ID in einen String gepackt werden
  //<XCoord,YCoord;Radius;EA-Gebiet>
  //XCoord und YCoord sind die Koordinaten mit 10.000 (zehntausend)
  //multipliziert und auf Integer gerundet Radius kann 1,2,3,5,10 und 20 sein 
  //EA-Gebiet ist eine Gebiets ID
	//window.console.debug(localGeo);
  return localGeo;
}

function exoFormatTypeHdr(s) {
	switch (s) {
		case "bsugg":
			return "Marke";
		case "article":
		    return "H&auml;ndler";			
		case "keyword":
			return "Suchvorschl&auml;ge";
		case "suggestion":
		    return "Menüpunkte";
		case "event":
		    return "Veranstaltungen";
		case "gewinnspiel":
		    return "Gewinnspiele";		    
	}
	return s;
}

//Mit dieser Funktion kann das Aussehen der einzlnen Zeilen im suggest 
//definiert werden. row enthält den zurückgelieferten Record mit row.XYZ
//kann auf die Elemente zugegriffen werden.
function displayLine(row, i, count, dispStr, term) {
	var inHtml;
	if (row.SN_type.substring(0,4) === "cat_") {
		inHtml = "<span id='" + row.SN_value + "' class='col1'>" + exoFormatTypeHdr(row.SN_value) + "</span>";
	} else if (row.SN_value=="more_link" && row.Type=="event") {
		inHtml = "<span style='margin-left: 290px;' class='sn_more'>weitere</span>"
	} else if (row.SN_value=="more_link" && row.Type=="article") {
		inHtml = "<span class='sn_more'>weitere</span>"
	} else if (row.AID != "" && row.Type=="article")  {
		inHtml = "<span class='icon'><img src='http://www.einkaufaktuell.de/files/offer/" + row.AID + "/out/thumb-std-1.jpg'>"
			+ row.SN_value + "</span>";
	} else if (row.Image != "" && row.Type=="event") {
		inHtml = "<span class='icon'><img src='" + row.Image + "'>"
		+ row.SN_value + "</span>";
	} else {
		inHtml = "<span class='col1' style='max-width:95%;width:95%'>"
			+ row.SN_value + "</span>";
	}
	return inHtml;
}

function fixImgIE() {
	$(".ac_item img").each(function(i, val) {
		$(val).parents(".ac_item").height(35);
	});

	return "";
}

