﻿// -----------------------------------------------------------------
//   Description:
//	 Class that handles events on behalf of the product grids
//   
//   Usage:
//   var g_productGridEventHandler = new ProductGridEventHandler();
//   subscribe(g_productGridEventHandler);
// -----------------------------------------------------------------

function ProductGridEventHandler()
{
}

// -----------------------------------------------------------------
// Function onGridSwitched
// Author:		Nathan Derksen
// Description:	Event handler called when grid switched between view all and view less
// Inputs:		<String> gridName - Name of the current product grid
//				<Object> gridProperties - Model data representing the current product grid
// Returns:		<nothing>
// -----------------------------------------------------------------
ProductGridEventHandler.prototype.onGridSwitched = function(gridName, gridProperties)
{
	var vwLocator = ViewLocator.getInstance();
	var prodGrid = vwLocator.getView("productsGrid");
	var pageSize = gridProperties.pageSize;
	var service = ServiceLocator.getInstance().getService("getProductsService");
	
	prodGrid.setGridType(gridProperties.gridType);
//	service.getProducts("", gridProperties.currentPage * pageSize, pageSize);
};

ProductGridEventHandler.prototype.onProductSelected = function(productId, errorCode)
{
	var model = ProductModel.getInstance();
	var product = model.getProduct(productId);
	var query = window.location.search.split("?").join("");
	var mcat = URLFactory.extractQueryStringValue(query, "mcat");
	var cid = URLFactory.extractQueryStringValue(query, "cid");
	var searchQSVal = URLFactory.extractQueryStringValue(query, "search");
	var search = "";	
	var sessionId = "";
	var sessionIdQSVal = URLFactory.extractQueryStringValue(query, "mysid2");
	var partnerId = "";
	var partnerIdQSVal = URLFactory.extractQueryStringValue(query, "partner");
	var assortmentId = "";
	var assortmentIdQSVal = URLFactory.extractQueryStringValue(query, "assortmentid");
	var siteId = "";
	var siteIdQSVal = URLFactory.extractQueryStringValue(query, "siteid");
	var referrerURL = "";
	var referrerURLQSVal = URLFactory.extractQueryStringValue(query, "_UrlReferrer");
    var fromGrid = URLFactory.extractQueryStringValue(query, "fromGrid");
	var lstacttmQSVal =  URLFactory.extractQueryStringValue(query, "lstacttm");
	var lstacttm = "";
	var samebrowsersessionVal =  URLFactory.extractQueryStringValue(query, "samebrowsersession");
	var samebrowsersession = "";
	
	if (searchQSVal == "1")
	{
		search = "&search=1";
	}
	
	if (sessionIdQSVal != "")
	{
		sessionId = "&mysid2=" + sessionIdQSVal;
	}

	if (partnerIdQSVal != "")
	{
		partnerId = "&partner=" + partnerIdQSVal;
	}

	if (assortmentIdQSVal != "")
	{
		assortmentId = "&assortmentid=" + assortmentIdQSVal;
	}

	if (siteIdQSVal != "")
	{
		siteId = "&siteid=" + siteIdQSVal;
	}

	if (referrerURLQSVal != "")
	{
		referrerURL = "&_UrlReferrer=" + referrerURLQSVal;
	}

	if (fromGrid == "1")
	{
		fromGrid = "&fromGrid=1";
	}
    else
    {
		fromGrid = "";
    }

	if (lstacttmQSVal != "")
	{
		lstacttm = "&lstacttm=" + lstacttmQSVal;
	}

	if (samebrowsersessionVal != "")
	{
		samebrowsersession = "&samebrowsersession=" + samebrowsersessionVal;
	}
    
	mcat = "&mcat=" + mcat;
	cid = "&cid=" + cid;

	var baseAction = "item.php?id="+ productId + mcat + cid + fromGrid;
	if (errorCode) {
		baseAction += "&errorCode="+errorCode;
	}
	if (product != null && typeof(product.qs) != "undefined" && product.qs != "")
	{
		window.location.href = baseAction + "&search_params=" + product.qs + search + sessionId + partnerId + assortmentId + siteId + lstacttm + samebrowsersession + referrerURL;
	}
	else
	{
		window.location.href = baseAction + search + sessionId + partnerId + assortmentId + siteId + lstacttm + samebrowsersession + referrerURL;
	}
};

