tgProducts.init = function(){
	var startOffset, endOffset;
	startOffset = 1;	
	if(tgProducts.container.view1_ItemsPerPage_ > tgProducts.container.view2_ItemsPerPage_) {
		endOffset = tgProducts.container.view1_ItemsPerPage_ * tgProducts.container.pageBuffer;
	} else {
		endOffset = tgProducts.container.view2_ItemsPerPage_ * tgProducts.container.pageBuffer;	
	}
	tgProducts.container.loadProductsByDimension(startOffset, endOffset, function(){
		if(tgProducts.container.totalTGProducts > 0){																							  
			tgProducts.container.loadSubcontainers(function(){
				tgProducts.container.initSortingLists();
				tgProducts.container.initTabs();
				tgProducts.container.showView(1);
			});
		} else {
			$('div.products-loading').html('No result found.');
		}			
	});	
}

tgProducts.Container.prototype.loadSubcontainers = function(callBackFunction) {
	tgProducts.container.subContainers = new Object();

	tgProducts.container.subContainers['subContainer-all'] = new Object();	
	var dSubcontainer = tgProducts.container.subContainers['subContainer-all'];
	dSubcontainer.id = 'all';
	dSubcontainer.name = 'All';
	dSubcontainer.displayOrder = 1;
	dSubcontainer.itemCount = 0;
	dSubcontainer.offset = 1;
	dSubcontainer.items = new Object();
	dSubcontainer.itemListByName = new Array();
	dSubcontainer.itemListByDate = new Array();
	dSubcontainer.itemListByPrice = new Array();
	
	var d_index=0;
	for(var key in tgProducts.container.tgProducts_){
		var item_ = key.toUpperCase();
		var tgProduct = tgProducts.container.tgProducts_[key];
		dSubcontainer.itemListByName[d_index] = item_;
		dSubcontainer.itemListByDate[d_index] = item_;
		dSubcontainer.itemListByPrice[d_index] = item_;
		dSubcontainer.itemCount = dSubcontainer.itemCount + 1;
		d_index++;
	}
	callBackFunction();
}

tgProducts.Container.prototype.loadProductsByDimension = function(startOffset, endOffset, callBackFunction) {
	$.ajax({
		type: "GET",
		url: "data/getProductsByDimensionAndCategory.aspx?regionId=" + regionId +  "&caseTypeId=" + caseTypeId +  "&productCategoryId=" + productCategoryId + "&length=" + pLength + "&width=" + pWidth + "&height=" + pHeight + "&filters=" + filters, 
		dataType: "xml",
		success: function(xml) {
			var total_records = $(xml).find('totalRecords').text();
			tgProducts.container.setTotalTGProducts(total_records);
			$(xml).find('product').each(function(n){
				var id_text = trim($(this).attr('item').toUpperCase());
				var offset = $(this).attr('offset');
				//var name_text = (tgProducts.container.numTGProducts + 1) + " : " + $(this).find('name').text()
				var img_thumb = "product_images/" + $(this).find('img_thumb').text()
				//var name_text = offset + " : " + $(this).find('name').text();
				var name_text = $(this).find('name').text();
				var ecommerce = $(this).find('ecommerce').text() == 'True'? true: false;
				var displayprice = $(this).find('displayprice').text() == 'True'? true: false;
				var displayPrice = $(this).find('displayprice').text();
				var webPrice = $(this).find('web_price').text();
				var salePrice = $(this).find('sale_price').text();
				var stock = parseInt($(this).find('stock').text());
				var shoppingCartCode = trim($(this).find('cart_code').text());
				var entryDate = new Date($(this).find('entry_date').text());
				//var img_thumb = imgs[n%5];
				var product = tgProducts.container.createTGProduct({productId: id_text, productName: name_text, imgThumb: img_thumb, ecommerce: ecommerce, displayPrice: displayPrice, webPrice: webPrice, salePrice: salePrice, stock: stock, shoppingCartCode: shoppingCartCode, entryDate: entryDate});
				tgProducts.container.addTGProduct(product);
			}); //close each(
			callBackFunction();
		}
	}); //close $.ajax(		
}