var paperComponent = function(){
	
	data = {};
	linking = {};
	textCopy = {};
	
	selectedCategory = '';
	
	function appendPaperCategoryHTML(parent,id,paperCategory) {	
		if ($('#'+id).length == 0){
			
			$('#'+parent).append(
				'<div id="'+id+'" class="paper_category" >'+
                '<a name="'+id+'"><h3 id="paper_categ_title">'+paperCategory+'</h3></a>'+
				'<div class="spacer2"></div>'+
				'</div>'
			);
			
			$('#paper_categories').append('<a href="#'+id+'" id="anchor_'+id+'" class="underline">'+paperCategory+'</a><br />');
		}
	}
	
	function appendPaperHTML(parent,id,paperObj){	
		if ($('#'+parent).find('#'+id).length == 0){
		
			$('#'+parent).append(
				'<div id="paper_$paper.id" class="paper_item">'+
        			'<h4>'+paperObj.name+'</h4>'+
        			paperObj.description+ 
        	        '<div class="spacer"></div>'+
                    '<div class="table_container table_container_list white" style="border:solid 1px #D5D5D5">'+
                    '<table id="'+id+'">'+
                    '<tr>'+
                        '<th>'+textCopy.size+'</th>'+
                        '<th>'+textCopy.qtty+'</th>'+
                        '<th>'+textCopy.price+'</th>'+
                    '</tr>'+
                    '</table>'+
                '</div>'+
                '<div class="spacer"></div>'
			);
		}
	}
	
	
	function appendPaperUnitHTML (parent,id,paperUnitObj){
		
		if ($('#'+parent).find('#'+id).length == 0){
			$('#'+parent).append(
				'<tr id="'+id+'">'+
                	'<td>'+paperUnitObj.size+'</td>'+
                    '<td>'+paperUnitObj.qtty+'</td>'+
                    '<td>'+(paperUnitObj.price!=''?(textCopy.currency+paperUnitObj.price):textCopy.noprice)+'</td>'+
                '</tr>'									
			);
		}
	}
	
	function buildHTMLForProduct(selectedProduct){
		
		
		for (var paperCategory in selectedProduct){
			
			var categId = paperCategory.replace(/ /g,'-');
			var categId = categId.replace(/\//g,'-');
			
			
			appendPaperCategoryHTML('papercateg_container',categId,paperCategory);
			
			
			for (var paper in selectedProduct[paperCategory]){
				
				
				var paperObj = data.papers[paper];
				
				appendPaperHTML(categId, paper, paperObj);
				
				
				for (var paperUnit in selectedProduct[paperCategory][paper]){
					var paperUnitObj = data.paperunits[paperUnit];
					
					appendPaperUnitHTML(paper,paperUnit,paperUnitObj);
				}
			}
		}		
	}
	
	return {
		
		init : function () {
			for (var categ in linking){
				
				var selectedCateg = linking[categ];
				
				for (var i in selectedCateg){
					
					var paperProduct = selectedCateg[i];
					
					buildHTMLForProduct(paperProduct);
				}
			}
		},
		
		showProduct : function (value,defaultCopy) {
			
			$('#paper_categories').html('');
			$('#papercateg_container').html('');
		
			selectedCategory = value;
			var selectedCateg = linking[value];
			
			var optionsArray = [];
			
			
            
			
			for (var i in selectedCateg){
				
				optionsArray.push(i);
				
				
				
				
				var paperProduct = selectedCateg[i];
				
				buildHTMLForProduct(paperProduct);
			}
			
			optionsArray.sort();
			
			var htmlOptions = '<option value="0">'+defaultCopy+'</option>';
			
			for (var i=0; i < optionsArray.length; i++){
				htmlOptions += '<option value="'+optionsArray[i]+'">'+optionsArray[i]+'</option>';
			}
			
			jQuery('#product').html(htmlOptions);
			
			//sortSelectBox(document.getElementById('product'));
			
			if (value == 0){
				this.init();
			}
		},
			
		
		showPapers: function (value) {
			
			$('#paper_categories').html('');
			$('#papercateg_container').html('');
						
			var selectedProduct = linking[selectedCategory][value];
			
			buildHTMLForProduct(selectedProduct);
		},
		
		setCopy : function (copy){
			textCopy = copy;
		},
		
		setJSON : function (paperJSON){
			data = paperJSON.data;
			linking = paperJSON.linking;
		}
	}
}();
