/*
	$Id: product.js 13657 2009-07-10 06:19:15Z mjhorne $
*/

function updateUnitSizeDetails(id)
{
	var element = document.getElementById(id);
	if(!element)
	{
		return;
	}

	var option = element.options[element.selectedIndex];

	showElementAsDisabled("addToCart");
	showElementAsDisabled("size");
	showElementAsDisabled("quantity");
	return updateUnitDetails(option.value + '/');
}


function showElementAsDisabled(id)
{
	var element = document.getElementById(id);
	if(element)
	{
		element.style.opacity = "0.3";
		element.style.filter = "alpha(opacity=30)";
		element.disabled = true;
	}
}


function updateUnitDetails(pageURL, wrapper, urlSuffix)
{	
	var callbackArgs = new Array();
	callbackArgs['pageURL'] = pageURL;

	if(wrapper)
	{
		callbackArgs['wrapper'] = wrapper;
	}

	var ajax = new AJAX(showUpdateUnitDetails, callbackArgs);
	ajax.setResponseFormat("JSON");

	var url = getBaseURL() + pageURL + "get-product-details/";

	if(urlSuffix)
	{
		url += urlSuffix;
	}
	ajax.request(url);
	return false;
}


function showUpdateUnitDetails(args)
{
	var details = JSON.parse(args['response'], null);

	if(args['wrapper'])
	{
		var wrapper = args['wrapper'];
	}
	else
	{
		args['wrapper'] = "productDetails";
	}

	var productDetails = document.getElementById('productDetails');
	if(productDetails)
	{
		productDetails.innerHTML = details.summary;
	}

	replacePageTitles();
}


function addToShoppingTrolley(pageURL, id)
{
	var url = getBaseURL() + pageURL + "/add-item-to-shopping-trolley/";

	var callbackArgs = new Array();

	var ajax = new AJAX(showAddToShoppingTrolley, callbackArgs);
	ajax.setResponseFormat("JSON");
	ajax.setMethod("POST");

	var quantity = document.getElementById("quantity");
	var quantityValue = 1;

	if(quantity)
	{
		quantityValue = quantity.value;
	}

	ajax.setPayload("trolley=main&ajax=true&quantity=" + quantityValue + "&overwriteQuantity=true");
	ajax.request(url);
	return false;
}


function showAddToShoppingTrolley(args)
{
	var response = JSON.parse(args['response']);
	if(response)
	{
		if(response['success'] == true || response['success'] == "true")
		{
			var responseMessage = '<h6>' + response['message'] + '</h6>';

			responseMessage += '<p class="clear">';
		
			responseMessage += '<a class="shopPopup" id="shopPopupContinue" href="#" onclick="return closeMessage(this, 2);" style="background-image: url(' + getBaseURL() + 'core/images/public/products/continue-button.gif);"><span>Continue</span></a>';
			responseMessage += '<a class="shopPopup" id="shopPopupCheckout" href="' + getBaseURL() + 'shopping-cart" style="background-image: url(' + getBaseURL() + 'core/images/public/products/checkout-button.gif);"><span>Checkout</span></a>';
			responseMessage += '</p>';
			responseMessage += '<a href="#"></a>';

			displayShopMessage("detailsMessage", "productDetails", responseMessage);
		}
	}

	updateTrolleySummary(getBaseURL() + 'shopping-cart/get-trolley-summary/');
}


function displayShopMessage(id, parentID, message)
{
	var detailsMessage = document.getElementById(id);
	if(!detailsMessage)
	{
		detailsMessage = document.createElement("SPAN");
		detailsMessage.id = id;
	}

	var parentElement = document.getElementById(parentID);
	if(parentElement) 
	{
		parentElement.appendChild(detailsMessage);
	}

	detailsMessage.innerHTML = message;
	detailsMessage.style.display = "block";
}


function displayMessage(id, parentID, message, className)
{
	var detailsMessage = document.getElementById(id);
	if(!detailsMessage)
	{
		detailsMessage = document.createElement("SPAN");
		detailsMessage.id = id;
	}

	var parentElement = document.getElementById(parentID);
	if(parentElement) 
	{
		parentElement.appendChild(detailsMessage);
	}

	detailsMessage.innerHTML = message;
	detailsMessage.style.display = "block";

	if(className != null)
	{
		detailsMessage.className = className;
	}
	
	// get the window height and width
	var height = $(window).height();
	var width = $(window).width();

//	$('#' + id).css('top', height/2 - $('#' + id).height()/2);
//	$('#' + id).css('left', width/2 - $('#' + id).width()/2);
//	$('#' + id).css('position', 'fixed');
}


function displayNakedMessage(id, parentID, heading, message, className)
{
	var processedMessage = "<h6>" + heading + "</h6><p>" + message + "</p>" + '<a href="#" onclick="return closeMessage(this);"><img src="' + getBaseURL() + 'core/images/public/products/close-button.gif" alt="Close" title="Close" /></a>';
	displayMessage(id, parentID, processedMessage, className);
}


function closeMessage(link, depth)
{
	if(!depth)
	{
		depth = 1;
	}
	currentDepth = 0;
	
	while(currentDepth < depth)
	if(link && link.parentNode)
	{
		link.parentNode.style.display = "none";
		link = link.parentNode;
		currentDepth++;
	}
	return false;
}


function updateUnitDetailsCategory(pageURL, productID)
{	
	var callbackArgs = new Array();
	callbackArgs['productID'] = productID;

	var ajax = new AJAX(showUnitDetailsCategory, callbackArgs);
	ajax.setResponseFormat("JSON");

	var url = getBaseURL() + pageURL + "get-product-details/category/";
	ajax.request(url);
	return false;
}


function showUnitDetailsCategory(args)
{
	var details = JSON.parse(args['response'], null);

	var element = document.getElementById("categoryProduct_" + args['productID']);
	if(element && details)
	{
		element.innerHTML = details.summary;
	}
}


function sizingChart(pageURL)
{
	var ajax = new AJAX(showSizingChart);
	var url = getBaseURL() + pageURL + "?ajax=true";
	ajax.setResponseFormat("XHTML");
	ajax.request(url);
	return false;
}


function showSizingChart(args)
{
	showLightboxOverlay("body");
	if(args['response'])
	{
		var container = document.getElementById("sizingChartWrapper");
		if(!container)
		{
			container = document.createElement("DIV");
			container.id = "sizingChartWrapper";
			document.body.appendChild(container);
		}
		container.innerHTML = args['response'];
		replacePageTitles();
	}
}


function something(pageURL, gender)
{
	var ajax = new AJAX(showSizingChart);
	var url = getBaseURL() + pageURL + "/" + gender + "/?ajax=true";
	ajax.setResponseFormat("XHTML");
	ajax.request(url);
	return false;
}


function closeSizingChart()
{
	var container = document.getElementById("sizingChartWrapper");
	if(container)
	{
		container.parentNode.removeChild(container);
	}
	hideLightboxOverlay();
	return false;
}


function displayImages(id, parentID, pageURL, callingPageURL, hideSelect)
{
	var url = getBaseURL() + pageURL + "get-product-images/" + Base64Utils.prototype.encode(callingPageURL) + "/large/";
	var sjax = new SJAX();
	sjax.setResponseFormat("JSON");

	var response = sjax.request(url);

	var summary = null;
	response = JSON.parse(response);

	if(!response['summary'])
	{
		return false;
	}

	showLightboxOverlay("handsetLightboxOverlay");

	var image = document.getElementById(id);

	if(!image)
	{
		image = document.createElement("DIV");
		image.id = id;
	}	

	var parentElement = document.getElementById(parentID);

	if(parentElement) 
	{
		document.body.appendChild(image);
	}

	if(hideSelect)
	{
		var linkString = '<a id="imagesClose" href="#" onclick="return hideImages(this, true);"><img src="' + getBaseURL() + 'core/images/public/products/close-button.gif" height="22px" width="51px" alt="close" /></a>';
	}
	else
	{
		var linkString = '<a id="imagesClose" href="#" onclick="return hideImages(this);"><img src="' + getBaseURL() + 'core/images/public/products/close-button.gif" height="22px" width="51px" alt="close" /></a>';
	}
	image.innerHTML = response['summary'] + linkString;
	image.style.display = "block";

	if(hideSelect)
	{
		var element = document.getElementById('quantity');
		element.style.visibility = 'hidden';
	}
	
	return false;
}


function hideImages(link, showSelect)
{
	if(link && link.parentNode)
	{
		link.parentNode.style.display = "none";
		hideLightboxOverlay("handsetLightboxOverlay");
	}	
	
	if(showSelect)
	{
		var element = document.getElementById('quantity');
		element.style.visibility = 'visible';
	}
	
	return false;
}
