if (!SBH.Acquisition) { 
	SBH.Acquisition = function(){
	
		var url = '';
		
		var instances = new Array();
		
		var current_gadget_id;
		
		return {
			current_config: {},
			current_mode: {},
			
			getInstance: function(instance_id){
				return instances[instance_id];
			},
			getCurrentUrl: function(gadget_id){
				var url = '';
				
				if (this.current_config[gadget_id] != undefined) {
					url += this.current_config[gadget_id].web_root + 'index.php?cmd=gadget';
					url += '&id=' + gadget_id + '&gi=' + this.current_config[gadget_id].gi;
				}
				return url;
			},
			init: function(config){
				
				this.current_config[config.gadget_id] = config;
				
				this.current_mode[config.gadget_id] = 'carousel';
				
				instances[config.gadget_id] = new ImageFlowSbh();
				
				instances[config.gadget_id].init({
					ImageFlowID: 'myImageFlow' + config.gadget_id,
					caption1: 'alt',
					caption2: 'longdesc',
					buttons: true,
					slider: true,
					reflections: false,
					reflectionP: 0.4,
					opacity: true,
					startID: (config.start_id ? config.start_id : 1),
					startAnimation: false,
					imageFocusM: 1.5,
					scrollbarP: 0.8,
					onClick: function(obj){
//						windows.location = '';
					},
					vubisActions: (config.vubisActions != undefined ? config.vubisActions : true),
					gadgetID: config.gadget_id,
					gadgetMode: (config.gadgetMode != undefined ? config.gadgetMode : true),
					listAvailable: (config.listAvailable != undefined ? config.listAvailable : true),
					showNavigation: (config.showNavigation != undefined ? config.showNavigation : true),
					hover: (config.hover != undefined ? config.hover : false),
					src: (config.src ? config.src : '')
				});

				SBH.Acquisition.maakCoversAanklikbaar(config.gadget_id, (config.src ? config.src : ''));
								
				instances[config.gadget_id].refreshVubis = function(category_id, gadget_id, maincateg, subcateg){
				
					var current_url = this.getCurrentUrl(gadget_id) + '&action=get_overview_vubis';
					
					if (maincateg != undefined && maincateg != '') {
						current_url += '&maincateg='+encodeURIComponent(maincateg)
					}
					
					if (subcateg != undefined && subcateg != '') {
						current_url += '&subcateg='+encodeURIComponent(subcateg);
					}
					
					var postdata = {};
					
					if (category_id != null) {
						postdata.categ_id = category_id;
					}
					
					if (gadget_id != null) {
						postdata.gadget_id = gadget_id;
					}
					
					
					var src = (this.current_config[gadget_id].src ? this.current_config[gadget_id].src : '');
					
					if (config.opensocial) {
						var params = {};
						params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
						params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
						params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
						//params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
						
						gadgets.io.makeRequest(current_url, function(data){
							SBH.Acquisition.maakLijstOp(data);
							SBH.Acquisition.getInstance(gadget_id).loadCovers(data);					
							
							SBH.Acquisition.maakCoversAanklikbaar(gadget_id, src);
						}, params);
					}
					else {
						$.post(current_url, postdata, function(data){
							SBH.Acquisition.maakLijstOp({
								data: data
							});
							SBH.Acquisition.getInstance(gadget_id).loadCovers(data);
							
							SBH.Acquisition.maakCoversAanklikbaar(gadget_id, src);
							
						}, 'json');
					}
				}
				instances[config.gadget_id].refreshMylist = function(gadget_id){
					var current_url = this.getCurrentUrl(gadget_id) + '&action=get_overview_mylist';
					
					if (config.opensocial) {
						var params = {};
						params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
						params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
						
						gadgets.io.makeRequest(current_url, function(data){
							SBH.Acquisition.getInstance(gadget_id).loadCovers(data);
							
							SBH.Acquisition.maakCoversAanklikbaar(gadget_id);
						}, params);
					}
					else {
						$.post(current_url, {}, function(data){
							SBH.Acquisition.getInstance(gadget_id).loadCovers(data);
							
							SBH.Acquisition.maakCoversAanklikbaar(gadget_id);
						}, 'json');
					}
				}
				
				if (config.listAvailable) {		
					this.initList(config.gadget_id);
				}
			},
			maakCoversAanklikbaar: function(gadget_id, src) {
				$('#myImageFlow' + gadget_id+' .images img').unbind('click').click(function() {
					var recordnr = this.getAttribute('recordnr');
					var cdrnr = this.getAttribute('cdrnr');

//					if (cdrnr != undefined && cdrnr != '') {
//						var record_target = 'recordmuziekweb';
//						
//						recordnr = cdrnr;
//					} else {
//						var record_target = 'record';
//					}
					
					var record_target = 'record';
					
					if ($(this).css('font-weight') == 'bold' || $(this).css('font-weight') == '700') {
						window.open('http://www.debibliotheekhaarlem.nl/aquabrowser/?'+record_target+'='+recordnr+(src != '' ? '&src='+src : ''));
					}
				});
				
				$('#myImageFlow' + gadget_id+' .images img').unbind('hover').hover(function() {
					$(this).css('cursor', 'pointer');
				}, function() {
					$(this).css('cursor', 'hand');
				});
				
			},
			initList: function(gadget_id) {
				var image_path = $('#aanwinstentogglebutton').attr('src');
				image_path = image_path.substring(0, (image_path.lastIndexOf('/')+1));
				
				$('#aanwinstentogglebutton').toggle(function() {
					SBH.Acquisition.current_mode[gadget_id] = 'lijst';
					
					$(this).attr('src', image_path+'button-tooncaroussel.gif');
					$('.sbh_vubis_lijst').show();
					$('.sbh_vubis_carousel').hide();					
				}, function() {
					SBH.Acquisition.current_mode[gadget_id] = 'carousel';
					
					$(this).attr('src', image_path+'button-toontitels.gif');
					$('.sbh_vubis_lijst').hide();
					$('.sbh_vubis_carousel').show();
				});
				
				$('.vubis_aanwinst').live('click', function() {
					$('#aanwinstenvoegtoe2').show();
				});
				
				var current_page = 1;
				
				$('.pager5').pager({ 
					pagenumber: current_page, 
					pagecount: 5, 
					buttonClickCallback: function() {},
					prev_text: '< vorige',
					next_text: 'volgende >'  
				});				
			},
			loadLijst: function(gadget_id, category_id, new_from) {
							
				if (this.current_config[gadget_id].listAvailable != undefined) {
					$('#aanwinstenvoegtoe2').hide();
					
					var current_url = this.getCurrentUrl(gadget_id) + '&action=get_overview_vubis';
					
					var postdata = {};
					
					postdata.offset = (new_from != undefined ? new_from : 0);
					
					if (category_id != null) {
						postdata.categ_id = category_id;
					}
					
					if (gadget_id != null) {
						postdata.gadget_id = gadget_id;
					}
					
					postdata.limit = 10;
					
					if (this.current_config[gadget_id].opensocial) {
						var params = {};
						params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
						params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
						params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
						
						gadgets.io.makeRequest(current_url, function(data){
							SBH.Acquisition.maakLijstOp(data);
						}, params);
					}
					else {
						$.post(current_url, postdata, function(data){
							SBH.Acquisition.maakLijstOp({
								data: data
							});
						}, 'json');
					}
				}
			},
			maakLijstOp: function(data) {
				
				var jsondata = data.data;

				$('#aanwinstenlijst').html('');
				
				for (var key in jsondata) {
					var value = jsondata[key];
					
					var new_html = '<input type="radio" class="vubis_aanwinst" name="aanwinstenRadio" value="' + value.recordnr + '"> ' + value.alt + '<br>';
					
					$('#aanwinstenlijst').append(new_html);
				}
							
//				if (jsondata.paging.numberOfPages > 1) {
//					$('.pager2').pager({ 
//						pagenumber: current_page, 
//						pagecount: jsondata.paging.numberOfPages, 
//						buttonClickCallback: BART.GN.pageClick,
//						prev_text: '< vorige',
//						next_text: 'volgende >' 
//					});
//				}
//				<?smarty if $opensocial_compatible ?>					
//				gadgets.window.adjustHeight();
//				<?smarty /if ?>
			},
			loadCovers: function(data){
				//instances[this.current_config.gadget_id].loadCovers(data);
			},
			redirectAction: function(gadget_id, action, recordnr, new_window){
				var postdata = {
					action: action,
					params: {
						ri: this.current_config[gadget_id].ri,
						recordnr: recordnr
					}
				};			
				
				if (new_window != null) {
					var cmd = (this.current_config.opensocial ? 'parent.' : '') + 'window.open(\'' + this.current_config[gadget_id].web_root + 'login/?origin=' + $.toJSON(postdata) + '\')';
				}
				else {
					var cmd = (this.current_config.opensocial ? 'parent.' : '') + 'window.location = \'' + this.current_config[gadget_id].web_root + 'login/?origin=' + $.toJSON(postdata) + '\'';
				}
				eval(cmd);
			},
			/**
			 *
			 */
			voegToeAanMijnlijst: function(gadget_id, recordnr){
				current_gadget_id = gadget_id;

				var postdata = {
					ri: this.current_config[gadget_id].ri,
					recordnr: recordnr
				};
				
				if (this.current_config[gadget_id].gadgetMode) {
					var current_url = this.getCurrentUrl(gadget_id) + '&action=group_title_ajax';
					
					if (this.current_config.opensocial) {
						var params = {};
						params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
						params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
						params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
						//params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
						
						gadgets.io.makeRequest(current_url, this.verwerkVoegToe, params);
					}
					else {
						$.post(current_url, postdata, this.verwerkVoegToe, 'json');
					}
				} else {
					SBH.Acquisition.redirectAction(gadget_id, 'to_my_list', recordnr);
				}
			},
			verwerkVoegToe: function(data){
				var data = data.data || data;

				if (data.success == true) {
					alert('Het item is toegevoegd aan uw lijst.');
				}
				else {
					if (data.message == 'Not logged in!') {
						SBH.Acquisition.redirectAction(current_gadget_id, 'to_my_list', data.recordnr);
					}
					else {
						alert((data.message != '' ? data.message : 'Er is iets misgegaan bij het toevoegen!'));
					}
				}
			},
			/**
			 *
			 */
			verwijderVanMijnLijst: function(gadget_id, recordnr){
				var postdata = {
					ri: this.current_config[gadget_id].ri,
					recordnr: recordnr
				};
				
				var current_url = this.getCurrentUrl(gadget_id) + '&action=block_title_ajax';
				
				if (this.current_config[gadget_id].gadgetMode) {				
					if (this.current_config.opensocial) {
						var params = {};
						params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
						params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
						params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postdata);
						//params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
						
						gadgets.io.makeRequest(current_url, this.verwerkVerwijder, params);
					}
					else {
						$.post(current_url, postdata, this.verwerkVerwijder, 'json');
					}
				} else {
					SBH.Acquisition.redirectAction(gadget_id, 'from_my_list', gadget_id);
				}
			},
			verwerkVerwijder: function(data){
				var data = data.data || data;
				
				if (data.success == true) {
					alert('Het item is verwijderd van uw lijst.');
				}
				else {
					if (data.message == 'Not logged in!') {
						SBH.Acquisition.redirectAction(current_gadget_id, 'from_my_list', data.recordnr);
					}
					else {
						alert((data.message != '' ? data.message : 'Er is iets misgegaan bij het verwijderen!'));
					}
				}
			},
			/**
			 *
			 */
			reserveerBoek: function(gadget_id, recordnr){
				SBH.Acquisition.redirectAction(gadget_id, 'reservation', recordnr, true);
			},
			/**
			 *
			 * @param {Object} gadget_id
			 */
			herlaadGadget: function(gadget_id){
				
				try {
					if (eval('BART.Gadgets.Interest2') != undefined) {
						BART.Gadgets.Interest2.haalCategs();
						
						BART.Gadgets.Interest2.haalBoeken(this);
					}
					else {
						throw new Exception();
					}
				} 
				catch (e) {
					instances[gadget_id].refreshVubis.call(this, null, gadget_id, '', '');
				}				
			},
			/**
			 *
			 */
			refreshMylist: function(gadget_id){
				instances[gadget_id].refreshMylist.call(this, gadget_id);
			},
			/**
			 *
			 */
			refreshVubis: function(gadget_id, categ_id){				
				if (this.current_config[gadget_id].listAvailable != undefined && this.current_mode[gadget_id] == 'lijst') {				
					this.loadLijst(gadget_id, categ_id);
				}
				else {
					instances[gadget_id].refreshVubis.call(this, categ_id, gadget_id);
				}
			},
			
			showMainCateg: function(gadget_id, categ_index) {
				$('.sub-categ-box').hide();
				$('.sub-categ-box.box'+categ_index).show();
				
				$('.btn-main').removeClass('checked');
				$('.btn-main'+categ_index).addClass('checked');

				instances[gadget_id].refreshVubis.call(this, null, gadget_id, $('.btn-main'+categ_index+' span').text(), '');
			},
			showSubCateg: function(gadget_id, categ_index) {
				
				$('.btn-sub').removeClass('active');
				$('.btn-sub'+categ_index).addClass('active');
				
				instances[gadget_id].refreshVubis.call(this, null, gadget_id, '', $('.btn-sub'+categ_index+' span span').text());
			}
		}
	}();
}


(function($){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},s={'array':function(x){var a=['['],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a[a.length]=v;b=true;}}}
a[a.length]=']';return a.join('');},'boolean':function(x){return String(x);},'null':function(x){return"null";},'number':function(x){return isFinite(x)?String(x):'null';},'object':function(x){if(x){if(x instanceof Array){return s.array(x);}
var a=['{'],b,f,i,v;for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a.push(s.string(i),':',v);b=true;}}}
a[a.length]='}';return a.join('');}
return'null';},'string':function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
c=b.charCodeAt();return'\\u00'+
Math.floor(c/16).toString(16)+
(c%16).toString(16);});}
return'"'+x+'"';}};$.toJSON=function(v){var f=isNaN(v)?s[typeof v]:s['number'];if(f)return f(v);};$.parseJSON=function(v,safe){if(safe===undefined)safe=$.parseJSON.safe;if(safe&&!/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))
return undefined;return eval('('+v+')');};$.parseJSON.safe=false;})(jQuery);
