﻿/* 
exlibris.ch - Search Funcs
2009 by Ex Libris

Version 091223

General */

 $(document).ready(function() {
	var searchServer = "http://search.epoq.de/inbound-servletapi/getSearchResult";
	var tenantId = "exlibris";
	var tenantIdMdl = "musicdownload";
	var count = 0;
	var imgId = '';
    var sessionId = guid();

	function findValueCallback(event, data, formatted) {
		$('<li>').html( !data ? 'No match!' : 'Selected: ' + formatted).appendTo('#result');
	}
	
	function formatItem(row) {
		return row;
	}
	function formatResult(row) {
		return row.replace(/(<.+?>)/gi, '');
	}

	$("#searchbox").autocomplete(searchServer, {
		dataType: 'jsonp',
		parse: function(data) {
			var parsed = [];

			if ( typeof data.result.findings !== 'undefined' ) {
				data = data.result.findings.finding;

				if ( $.isArray(data) ) {
					for ( var i = 0; i < data.length; i++ ) {
						if ( typeof data[i].suggestion === 'undefined' ) {
							continue;
						}
						parsed[parsed.length] = {
							data: data[i].suggestion['$'],
							value: data[i].suggestion['$'],
							result: data[i].suggestion['$']
						};
					}
				}
				else {
					parsed[0] = {
						data: data.suggestion['$'],
						value: data.suggestion['$'],
						result: data.suggestion['$']
					};
				}
			}

			return parsed;
		},
		formatItem: formatItem,
		extraParams: {
					q: '',
					limit: '',
					maxRows: 10,
					format: 'json',
					pretty: 'true',
					tenantId:  function () { return getTenantId() },
					sessionId: sessionId,
					matchAttr:  function () { return getMatchAttr() },
					matchValue:  function () { return getMatchValue() },
					locakey:  function () { return getArticleGroupTyp('lang') },
					query: function () { return $("#searchbox").val() }
			
		},
		selectFirst: false,
		max: 10,
		width: 266,
		scrollHeight: 300,
		highlight: function(match, keywords) {
	        keywords = keywords.split(' ').join('|');
	        return match.replace(new RegExp("("+keywords+")", "gi"),'<strong>$1</strong>');
	    },
		cacheLength: 0

	}).result(function(e, data) {
		searchSubmit(data.replace(/([ ]{2,}|[\"]|\'. )/gi, ' '));
	});
	function getServer() {
		if (getArticleGroupTyp('groups') == 'mdl'){
			return searchServerMdl;}else{
			return searchServer;}
	}
	function getTenantId() {
		if (getArticleGroupTyp('groups') == 'mdl'){
			return tenantIdMdl;}else{
			return tenantId;}
	}
	function getMatchAttr() {
		if (getArticleGroupTyp('groups') == 'mdl'){
			return '';}else{
			return 'g:product_type';}
	}
	function getMatchValue() {
		if (getArticleGroupTyp('groups') == 'mdl'){
			return '';}else{
			return getArticleGroupTyp('groups');}	  
	}

/*
   function isCoverExist(id,src) {
	var img = new Image();
		img.onerror = function () {
		document.getElementById('span_' + id).innerHTML = getMetaData('product');
		}
	}
*/

	// Meta Daten Funcs
	function getArticleGroup(n) {
	var y = '';
		if (n == 'b'){
			y = '02';
		}else if (n == 'b-e'){
			y = '32';
		}else if (n == 'promo-en'){
			y = '99';
		}else if (n == 'hb'){
			y = '16';
		}else if (n == 'b-dl'){
			y = '11';
		}else if (n == 'hb-dl'){
			y = '20';
		}else if (n == 'm'){
			y = '03';
		}else if (n == 'p'){
			y = '14';
		}else if (n == 'mdl'){
			y = '17';
		}else if (n == 'd'){
			y = '05';
		}else if (n == 'f-blu'){
			y = '36';
		}else if (n == 'g'){
			y = '07';
		}else if (n == 'g-pc'){
			y = '44';
		}else if (n == 'g-ps3'){
			y = '37';
		}else if (n == 'g-ps2'){
			y = '38';
		}else if (n == 'g-psp'){
			y = '39';
		}else if (n == 'g-xbox360'){
			y = '40';
		}else if (n == 'g-wii'){
			y = '41';
		}else if (n == 'g-ds'){
			y = '42';
		}else if (n == 'e'){
			y = '25';
		}else if (n == 's'){
			y = '04';
		}else if (n == 'bs'){
			y = '31';
		}else if (n == 'o'){
			y = '19';
		}
		return getArticleGroupTitle(y);
   }

	function getArticleGroupTyp(x) {
		n = getArticleGroupValue();
		if (x == 'lang'){
			if (n == '32'){
				return 'en';
			}else{
				return getPageLang();
			}
		}
		if (x == 'groups'){
			if (n == '00'){
				return 'b;hb;b-dl;hb-dl;m;p;mdl;d;f-blu;e;s;bs;o;g-pc;g-ps3;g-ps2;g-psp;g-xbox360;g-wii;g-ds';
			}else if (n == '33'){
				return 'b;hb;b-dl;hb-dl';
			}else if (n == '02'){
				return 'b';
			}else if (n == '32'){
				return 'b-e;promo-en';
			}else if (n == '99'){
				return 'promo-en';
			}else if (n == '16'){
				return 'hb';
			}else if (n == '11'){
				return 'b-dl';
			}else if (n == '20'){
				return 'hb-dl';
			}else if (n == '34'){
				return 'm;p;mdl';
			}else if (n == '03'){
				return 'm';
			}else if (n == '14'){
				return 'p';
			}else if (n == '17'){
				return 'mdl';
			}else if (n == '35'){
				return 'd;f-blu';
			}else if (n == '05'){
				return 'd';
			}else if (n == '36'){
				return 'f-blu';
			}else if (n == '07'){
				return 'g-pc;g-ps3;g-ps2;g-psp;g-xbox360;g-wii;g-ds';
			}else if (n == '44'){
				return 'g-pc';
			}else if (n == '37'){
				return 'g-ps3';
			}else if (n == '38'){
				return 'g-ps2';
			}else if (n == '39'){
				return 'g-psp';
			}else if (n == '40'){
				return 'g-xbox360';
			}else if (n == '41'){
				return 'g-wii';
			}else if (n == '42'){
				return 'g-ds';
			}else if (n == '25'){
				return 'e';
			}else if (n == '04'){
				return 's';
			}else if (n == '31'){
				return 'bs';
			}else if (n == '19'){
				return 'o';
			}
		}
	}
	function getMetaData(data){
		if (getPageLang() == 'de'){
				if(data == 'product'){return 'Artikel';}
				if(data == 'suggestion'){return '';}
				if(data == 'hitcount'){return 'Treffer';}
				if(data == 'foundin'){return 'Gefunden in';}
				if(data == 'title'){return 'Titel';}
				if(data == 'c:track'){return 'Track';}
				if(data == 'c:person'){return 'Person';}
				if(data == 'c:subtitle'){return 'Subtitel';}
				if(data == 'g:brand'){return 'Herausgeber / Verlag';}
				if(data == 'g:id'){return 'EAN / ISBN / ID';}
				if(data == 'g:isbn'){return 'ISBN';}
				if(data == 'track_title'){return 'Track';}
				if(data == 'track_artist'){return 'Person';}
				if(data == 'warenkorb'){return 'warenkorb';}
				if(data == 'c:others'){return 'Diverses';}
			}else{
				if(data == 'product'){return 'Article';}
				if(data == 'suggestion'){return '';}
				if(data == 'hitcount'){return 'résultats trouvés';}
				if(data == 'foundin'){return '';}
				if(data == 'title'){return 'Titre';}
				if(data == 'c:person'){return 'Person';}
				if(data == 'c:subtitle'){return 'Subtitre';}
				if(data == 'c:track'){return 'Track';}
				if(data == 'g:brand'){return 'Editeur';}
				if(data == 'g:id'){return 'EAN / ISBN / ID';}
				if(data == 'g:isbn'){return 'ISBN';}
			    if(data == 'track_title'){return 'Track';}
				if(data == 'track_artist'){return 'Person';}
				if(data == 'warenkorb'){return 'warenkorb';}
				if(data == 'c:others'){return 'diverses';}
			}
	}
	function getPageLang(){
			var lang_de = document.getElementById('lang-de');
			var lang_fr = document.getElementById('lang-fr');
			if (lang_de && lang_fr){
				if(lang_de.className == 'select'){
					return 'de';
				}else if(lang_fr.className == 'select'){
					return 'fr';
				}else{
					return 'unkown';
				}
			}
	}
   function getSelectValue(sObj) {
    with (sObj) return options[selectedIndex].value;
   }		
   function S4() {
		return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
   }
   function guid() {
	   if (document.getElementById('epid')){
		   return document.getElementById('epid').value;
		}else{   
			return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
		}
   }
 
  });






