/*
	$Id: product.js 19535 2011-02-03 00:10:05Z 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;
	}
}


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 continueShopping(url, link, depth)
{
	closeMessage(link, depth);
	showStandardTab('standardTabs', 'plans');
	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'];
	}
}


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;
}


function selectMBBContractLength(pageURL, planCategory, contractLength)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "/select-contract-length/" + planCategory  + "/" + contractLength + "/",
		dataType: 'json',
		success: function(data, responseStatus)
			{
				$('#planCategory_' + planCategory).replaceWith(data['content'])
			}
	});

	return false;
}


function selectMBB(pageURL, comboID)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "/select-combo/" + comboID  + "/",
		dataType: 'json',
		success: function(data, responseStatus)
			{
				var responseMessage = '<h6>' + data['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>';

				if($('span#detailsMessage').length == 0)
				{
					$('div#standardTabs').append('<span id="detailsMessage">' + responseMessage + '</span>').show();
				}
				else
				{
					$('span#detailsMessage').html(responseMessage).show();
				}
				updateTrolleySummary(getBaseURL() + 'shopping-cart/get-trolley-summary/');
			}
	});
	return false;
}

function hoverMBB(id, hover) {
	var details = $('#planComboDetails-'+id);
	if(hover) {
		details.siblings().hide();
		details.show();
	} else {
		details.parent().children().not('.current').hide();
		details.parent().children('.current').show();
	}
}
function clickSelectMBB(id) {
	var details = $('#planComboDetails-'+id);
	details.siblings().not(details).removeClass('current');
	details.addClass('current');
	var row = $('tr#mobileBroadbandScheduleItems_'+id);
	row.siblings().removeClass('active');
	row.addClass('active');
}

function selectSimOnlyContractLength(pageURL, planCategory, contractLength)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "/select-contract-length/" + planCategory  + "/" + contractLength + "/",
		dataType: 'json',
		success: function(data, responseStatus)
			{
				$('#planCategory_' + planCategory).replaceWith(data['content'])
			}
	});

	return false;
}


function selectSimOnly(pageURL, id, event)
{
	var comboID = id.replace("scheduleItems_", "");

	$.ajax(
	{
		url: getBaseURL() + pageURL + "select-handset-plan-combo/" + comboID  + "/",
		dataType: 'json',
		success: function(data, responseStatus)
			{
	
				var row = $('#scheduleItems_'+comboID);
				var details = $('#planComboDetails-'+comboID);

				details.siblings().not(details).removeClass('current');
				$('tr.planSelection').removeClass('active');

				$('#comboBonusesTab').html(data['bonuses']);
				if(data['action'] == 'select')
				{
					details.addClass('current');
					row.addClass('active');

					showSpecialStandardTab('standardTabs', 'comboBonuses', pageURL)
				}
				else
				{
					details.removeClass('current');
				}
			}
	});


	event.stopPropagation();

	return false;
}

function hoverSimOnly(id, hover) {
	var details = $('#planComboDetails-'+id);
	if(hover) {
		details.siblings().hide();
		details.show();
	} else {
		details.parent().children().not('.current').hide();
		details.parent().children('.current').show();
	}
}



function displayPlansMessage(id, parentID, title, message)
{
	if($('#' + id).length >= 0)
	{
		$('#' + id).remove();
	}

	$('#' + parentID + ' td.button').append('<span id="' + id + '"><h6></h6><p></p><a href="#" onclick="return closeMessage(this)"><img src="http://www.crazyjohns.com.au/core/images/public/products/close-button.gif" height="22px" width="51px" alt="close"></a></span>');

	$('#' + id + ' h6').html(title);
	$('#' + id + ' p').html(message);

	$('#' + id).css({
		top: ($('#' + parentID).offset().top - $('div#standardTabs').offset().top - 60) + 'px',
		left: ($('#' + parentID).offset().left - 195) + 'px'
	});
	$('#' + id).show();
}


function showSpecialStandardTab(parentID, index, pageURL)
{
	var available = true;
	if(index == "comboBonuses")
	{
		available = false;
		$.ajax(
		{
			url: getBaseURL() + pageURL + "tab-available/bonuses/",
			dataType: 'json',
			type: 'POST',
			async: false,
			success: function(data, responseText)
				{
					if(data['available'])
					{
						available = true;
					}
					else
					{
						displayMessage("detailsMessage", "standardTabs", data['content']);
					}
				},
			error: function(response)
				{
				}
		});
	}

	if(available)
	{
		showStandardTab(parentID, index);
	}
	return false;
}


function selectSIMOnlyBonus(pageURL, bonusID)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "select-bonus-option/" + bonusID + "/",
		dataType: 'json'
	});
}


function selectSIMOnlyFreebie(pageURL, freebieID)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "select-freebie/" + freebieID + "/",
		dataType: 'json'
	});
}

function selectSIMOnlyDataPack(pageURL, dataPackID)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "select-data-pack/" + dataPackID + "/",
		dataType: 'json'
	});
}

function selectSIMOnlyTextPack(pageURL, textPackID)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "select-text-pack/" + textPackID + "/",
		dataType: 'json'
	});
}

function addSIMOnlyToCart(pageURL)
{
	$.ajax(
	{
		url: getBaseURL() + pageURL + "add-to-cart/",
		dataType: 'json',
		success: function(data, responseStatus)
			{
				if(data['success'])
				{
					var responseMessage = '<h6>' + data['message'] + '</h6>';
						responseMessage += '<p class="clear">';
						responseMessage += '<a class="shopPopup" id="shopPopupContinue" href="#" onclick="return continueShopping(\'' + getBaseURL() + pageURL + '\', 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>';
	
					if($('span#detailsMessage').length == 0)
					{
						$('div#standardTabs').append('<span id="detailsMessage">' + responseMessage + '</span>').show();
					}
					else
					{
						$('span#detailsMessage').html(responseMessage).show();
					}

					$('span#detailsMessage').html(responseMessage).show();
		            $('span#detailsMessage').css('top', $('a#plansAddToCart').offset().top - $('#standardTabs').offset().top - 95);
		            $('span#detailsMessage').css('left', 492);
	
					$('tr.planSelection').removeClass('active');
					updateTrolleySummary(getBaseURL() + 'shopping-cart/get-trolley-summary/');
				}
				else
				{
					var message = "<h6>" + data['title'] + "</h6><p>" + data['message'] + "</p>" + '<a href="#" onclick="return closeMessage(this);"><img src="' + getBaseURL() + 'core/images/public/products/close-button.gif" alt="Close" title="Close" /></a>';
					displayMessage("detailsMessage", "standardTabs", message);
		            $('span#detailsMessage').css('top', $('a#plansAddToCart').offset().top - $('#standardTabs').offset().top - 118);
		            $('span#detailsMessage').css('left', 492);
				}
			}
	});
	return false;
}

