﻿// ----------------------------------------------
// File:		AddImageService.js
// Author:		Nathan Derksen
// Description:	A class that holds the available service methods, along with response handlers.
// ----------------------------------------------


// ----------------------------------------------
// Function:	AddImageService
// Author:		Nathan Derksen
// Description:	Base class
// Inputs:		<none>
// Returns:		<nothing>
// ----------------------------------------------
function AddImageService()
{
}

// ----------------------------------------------
// Function:	AddImageService.getProducts
// Author:		Nathan Derksen
// Description:	Calls the service to retrieve a set of products
// Inputs:		<Object> searchCriteria - An object of properties to search on
//				<Number> startIndex - The zero-based index of which row to start at in the total results
//				<Number> maxResults - The maximum number of results to return
// Returns:		<nothing>
// ----------------------------------------------
AddImageService.prototype.addImage = function(imageId)
{
	try
	{
		
		if (isAjaxEnabled() == true)
		{
			
			PageMethods.AddImage(imageId, this.onResult, this.onError);
		}
	}
	catch (err)
	{		
		Debug.error(err);
	}
};

// ----------------------------------------------
// Function:	AddImageService.onResult
// Author:		Nathan Derksen
// Description:	Callback from the successful completion of the service call
// Inputs:		<XMLElement> result - Handle to the results xml object
// Returns:		<nothing>
// ----------------------------------------------
AddImageService.prototype.onResult = function(result)
{
	try
	{
		if (result)
		{
			SetImageCount();
			
			var resultElement = result.documentElement;
			var resultsStr = XMLUtils.getValue(resultElement);
			var numResults = Number(resultsStr);
			
			if (typeof(numResults) == "undefined" || isNaN(numResults) == true || numResults == null || numResults == -1)
			{
				// Error happened
				document.getElementById("addImageResultsHolder").style.display = "none";
				document.getElementById("addImageErrorHolder").style.display = "block";
			}
			else
			{
				document.getElementById("addImageResultsHolder").style.display = "block";
				document.getElementById("addImageErrorHolder").style.display = "none";
			}
			
/*			var resultArray = ProductFactory.convertXMLToArray(resultElements);
			var numHits = ProductFactory.getTotalNumProducts(resultElements);

			var productsGrid = ViewLocator.getInstance().getView("productsGrid");
			productsGrid.setProducts(resultArray);

			var model = ProductModel.getInstance();
			model.setNumProducts(numHits);
			model.setProducts(resultArray);
		}
		else
		{
			var tempArray = new Array();
			var productsGrid = ViewLocator.getInstance().getView("productsGrid");
			productsGrid.setProducts(tempArray);
			
			var error = new Object();
			error.name = "Service 'GetProductsService' returned with no results";
			error.message = error.name;
			error.fileName = "itemPage/GetProductsService.js";
			error.lineNumber = "";
			Debug.error(error);*/
		}
	}
	catch (err)
	{
		Debug.error(err);
	}
};

// ----------------------------------------------
// Function:	GetProductsService.onError
// Author:		Nathan Derksen
// Description:	Callback from the unsuccessful completion of the service call
// Inputs:		<XMLElement> result - Handle to the results xml object
// Returns:		<nothing>
// ----------------------------------------------
AddImageService.prototype.onError = function(result)
{
	var error = new Object();
	error.name = "Service 'AddImageService' returned with an error";
	error.message = result.get_message();
	error.fileName = "itemPage/AddImageService.js";
	error.lineNumber = "";
	Debug.error(error);
};
