function component_AmazonBooks(auto_id)
{
	this.DOMConstruct('AmazonBooks', auto_id);
	
	var handler = this;
	
	this.references = [];
	
	this.delegates = {
		
	};
}

component_AmazonBooks.prototype =
	new SK_ComponentHandler({
		
		construct : function( data ){

			var handler = this;

			handler.bindEditData(data.books);
			
			$('#amz_select').unbind('click');

			$('#amz_select').click(
				function(){
					window.amzFloatBox = new SK_FloatBox({
					$title		: $( '#amazon_books_title' ),
					$contents	: $( '#amazon_books_list' ),
					width		: 850
					});		
				}
			);
			
			handler.bs_info = data.bs_info;
			
			handler.selectedAsins = {};

			handler.$('#bs_add_button').click(
				function(){
					var asins = {};
					var length = 0;
					$.each( handler.selectedAsins, 
						function( index, data ){
							if( data != null ){
								asins[data] = data;
								length++;
							}
						}  
					);
					if( length > 0 ){
						handler.bsAddBooks(asins);
						window.amzFloatBox.close();
						window.amzFloatBox = null;
					}
				}
			);
			
			handler.$('#bs_add_button1').click(
				function(){
					var asins = {};
					var length = 0;
					$.each( handler.selectedAsins, 
						function( index, data ){
							if( data != null ){
								asins[data] = data;
								length++;
							}
						}  
					);
					if( length > 0 ){
						handler.bsAddBooks(asins);
						window.amzFloatBox.close();
						window.amzFloatBox = null;
					}
				}
			);
			
			if( data.next )
			{
				handler.$('#next').click(
					function(){
						handler.$('#next').click(function(){return false;});
						$('#amz_loader').css({display:'block'});
						handler.reload({page:data.next, keyWords:data.keyWords});
					}
				);
			}
			
			if( data.prev )
			{
				handler.$('#prev').click(
					function(){
						handler.$('#prev').click(function(){return false;});
						$('#amz_loader').css({display:'block'});
						handler.reload({page:data.prev, keyWords:data.keyWords});
					}
				);
			}
			
			
			
			$.each( data.items, function( index, data ){
				handler[data] = {};
				
				handler.$('#add_'+data).click(
					function(){
					
						if( !handler[data].check ){
							handler.$('#li_'+data).attr('class', 'selected');
							$(this).attr('value', 'Deselect');
							handler[data].check = true;
							handler.selectedAsins[data] = data;	
						}
						else{
							handler.$('#li_'+data).removeAttr('class');
							$(this).attr('value', 'Select');
							handler[data].check = false;
							handler.selectedAsins[data] = null;
						}
					}
				);
				
			} );
			
			
			handler.$('#amz_keywords_submit').click(
				function(){
					var keywords = handler.$('#amz_keywords').attr('value');
					
					if( !keywords || keywords == 'Find a book' )
					{
						handler.$('#amz_keywords').focus();
						return;
					}
					
					// TOblock
					$('#amz_loader').css({display:'block'});
					handler.$('#amz_keywords_submit').attr('disabled', 'disabled');
					
					handler.reload({page:data.prev, keyWords:keywords});
				}
			);
			
			handler.$('#amz_s_form').submit(
				function(){
					handler.$('#amz_keywords_submit').trigger('click');
					return false;
				}
			);
			

			
			
		},
		
		bsAddBooks : function(asins){
			
			var handler = this;
		
			var resultAsins = {};
		
			if( !window.addedAsins )
			{
				window.addedAsins = {};
				resultAsins = asins;
			}
			else
			{
				resultAsins = handler.array_diff_key( asins, window.addedAsins );
			}
		
			$.each( resultAsins, 
				function( index, data ){
				
					window.addedAsins[index] = data;
					
					var nd = $(
						'<div class="amz_field_item clearfix" id="list_'+data+'">'+
							'<span class="title">'+handler.bs_info[data].title+'</span>'+
							'<span class="del_item"><a href="javascript://" id="bs_del_item_'+data+'">remove</a></span>'+
							'<span style="display:none"><input value="'+data+'" type="checkbox" name="bookshelf[]" checked="checked" /></span>'+
						'</div>'
					);
				
					$('#amz_selected_books').append(nd);
					
					$('#bs_del_item_'+data).click(
						function(){
							$('#list_'+data).remove();
							delete window.addedAsins[data];
						}
					);
				} 
			);

		},
		
		array_diff_key : function(object) {
 
		    var tpm_ar = new Object(), argc = arguments.length, argv = arguments, key, argidx, other;
		 
		    for (key in object) {
		        tpm_ar[key] = object[key];
		    }
		    for (argidx = 1; argidx < argc; ++argidx) {
		        other = argv[argidx];
		 
		        if (other instanceof Object) {
		            for (key in other) {
		                delete tpm_ar[key];
		            }
		        }
		    }
		 
		    return tpm_ar;
		},
		
		bindEditData: function(data){
			
			if(!data) return;
			
			if( !window.addedAsins ) window.addedAsins = {};
			
			$.each(data, 
				function( index, data ){
				window.addedAsins[data.asin] = data.asin;
				
				$('#bs_del_item_'+data.asin).click(
						function(){
							$('#list_'+data.asin).remove();
							delete window.addedAsins[data.asin];
						}
					);
				
				}	
			);
			
		}
	});