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.loadData(startOffset, endOffset, function(){
		if(tgProducts.container.totalTGProducts > 0){																							  
			tgProducts.container.loadBucketTypes(function(){													  
				tgProducts.container.initSortingLists();													  
				tgProducts.container.initTabs();
				tgProducts.container.showView(1);
			});
		} else {
			$('div.products-loading').html('No result found.');
		}																   
	});	
	/*
	tgProducts.container.loadBucketTypes(function(){
		tgProducts.container.loadData(startOffset, endOffset, function(){
			tgProducts.container.loadBucketTypeAll();
			tgProducts.container.initTabs();																	   
			tgProducts.container.showView(1);
		});
	});
	*/
}

tgProducts.Container.prototype.loadBucketTypes = function(callBackFunction) {
	tgProducts.container.subContainers = new Object();

	tgProducts.container.subContainers['subContainer-all'] = new Object();
	var subContainer = tgProducts.container.subContainers['subContainer-all'];
	subContainer.id = 'all';
	subContainer.name = 'All';
	subContainer.displayOrder = 0;
	subContainer.itemCount = tgProducts.container.totalTGProducts;
	subContainer.offset = 1;
	subContainer.itemListByName = new Array();
	subContainer.itemListByDate = new Array();
	subContainer.itemListByPrice = new Array();
	subContainer.items = new Object();
	var i=0;
	for(var key in tgProducts.container.tgProducts_){
		var item_ = key;
		subContainer.itemListByName[i] = item_;
		subContainer.itemListByDate[i] = item_;
		subContainer.itemListByPrice[i] = item_;
		subContainer.items[('item-' + i++)] = item_;
	}
	//alert("data/getBucketTypesByCategory2.aspx?regionId=7&categoryId=" + productCategoryId);
	//alert(filters);
	$.ajax({
		type: "GET",
		url: "data/getBucketTypesByCategory.aspx?regionId=7&productCategoryId=" + productCategoryId + "&filters=" + filters,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('bucketType').each(function(n){
				var bucketType = this;
				var id = trim($(bucketType).attr('id'));
				var name = $(bucketType).find('name').text();
				var displayOrder = $(bucketType).find('display_order').text();
				var items = $(bucketType).find('items');
				var itemCount = items.attr('count'); 
				if($(bucketType).attr('coupon')){
					var coupon = $(bucketType).attr('coupon');
				}
 				tgProducts.container.subContainers['subContainer-' + id] = new Object();
				var subContainer = tgProducts.container.subContainers['subContainer-' + id];
				subContainer.id = id;
				subContainer.name = name;
				subContainer.displayOrder = displayOrder;
				subContainer.itemCount = itemCount;
				subContainer.offset = 1;
				subContainer.coupon = coupon;
				subContainer.itemListByName = new Array();
				subContainer.itemListByDate = new Array();
				subContainer.itemListByPrice = new Array();
				subContainer.items = new Object();
				var i=0;
				$(items).find('item').each(function(n){
					var item_ = $(this).text().toUpperCase();
					subContainer.itemListByName[i] = item_;
					subContainer.itemListByDate[i] = item_;
					subContainer.itemListByPrice[i] = item_;					
					subContainer.items['item-' + i++] = item_;
				});					
				//alert(subContainer.items['item-1']);
			}); //close each(
			callBackFunction();
		}
	}); //close $.ajax(					
}

tgProducts.Container.prototype.loadData = function(startOffset, endOffset, callBackFunction) {
//	alert(startOffset + ":" + endOffset);
	$.ajax({
		type: "GET",
//		url: "data/getProductsByCategory.aspx?regionId=7&categoryId=5&startOffset=" + startOffset + "&endOffset=" + endOffset,
		url: "data/getProductsByCategory.aspx?regionId=7&productCategoryId=" + productCategoryId + "&filters=" + filters,
//		url: "products.xml",
		dataType: "xml",
		success: function(xml) {
			//var imgs = new Array("images/TBT04401US_cases_a.jpg","images/CUCT02UA15S_cases_a.jpg","images/TBC023US_cases_a.jpg","images/TBR006US_cases_a.jpg","images/TBR002US_cases_a.jpg","images/TBT045US_cases_a.jpg");
			//var imgs = new Array("images/TBT04401US_cases_a.jpg","images/CUCT02UA15S_cases_a.jpg","images/TBC023US_cases_a.jpg","images/TBR006US_cases_a.jpg","images/TBR002US_cases_a.jpg");
			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 img_highres = $(this).find('img_highres').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, imgHighRes: img_highres, ecommerce: ecommerce, displayPrice: displayPrice, webPrice: webPrice, salePrice: salePrice, stock: stock, shoppingCartCode: shoppingCartCode, entryDate : entryDate});
				tgProducts.container.addTGProduct(product);
			}); //close each(
			callBackFunction();
		}
	}); //close $.ajax(		
}