/***************************************************************
 * Constants
 ***************************************************************/

var BPAjaxURLUpdateFlagged = "/proofs/ajax/updateFlagged";
var BPAjaxURLToggleDisplayOnlyFlagged = "/proofs/ajax/toggleDisplayOnlyFlagged";
var BPAjaxURLSwitchPage = "/proofs/ajax/switchPage";
var BPAjaxURLChangeNumberPerPage = "/proofs/ajax/changeNumberPerPage";

var BPAjaxURLShowPreview = "/proofs/ajax/preview";
var BPAjaxURLShowPreviousPreview = "/proofs/ajax/previousPreview";
var BPAjaxURLShowNextPreview = "/proofs/ajax/nextPreview";
var BPAjaxURLPreloadPreview = "/proofs/ajax/preloadPreview";

var BPAjaxURLAddToCart = "/proofs/ajax/addToCart";
var BPAjaxURLReloadCartBar = "/proofs/ajax/reloadCartBar";

var BPAjaxURLUpdateInCartQuantity = "/proofs/ajax/updateInCartQuantity";
var BPAjaxURLShowCartPreview = "/proofs/ajax/cartPreview";
var BPAjaxURLShowRemovePrompt = "/proofs/ajax/showCartRemovePrompt";
var BPAjaxURLRemoveFromCart = "/proofs/ajax/removeFromCart";

var BPAjaxURLUpdateCardImage = "/proofs/ajax/updateCardImage";
var BPAjaxURLUpdateTotals = "/proofs/ajax/updateTotals";

var BPAjaxURLAddNotifyAddress = "/proofs/ajax/addNotificationAddress";

var BPAjaxURLAuthorizeReceipt = "/proofs/ajax/authorizeReceipt";

var BPURLRunPurchase = "/proofs/checkout/purchase";

/***************************************************************
 * Fix IE
 ***************************************************************/

if (!window['Node'])
{
	window.Node = new Object();
	Node.ELEMENT_NODE = 1;
	Node.ATTRIBUTE_NODE = 2;
	Node.TEXT_NODE = 3;
	Node.CDATA_SECTION_NODE = 4;
	Node.ENTITY_REFERENCE_NODE = 5;
	Node.ENTITY_NODE = 6;
	Node.PROCESSING_INSTRUCTION_NODE = 7;
	Node.COMMENT_NODE = 8;
	Node.DOCUMENT_NODE = 9;
	Node.DOCUMENT_TYPE_NODE = 10;
	Node.DOCUMENT_FRAGMENT_NODE = 11;
	Node.NOTATION_NODE = 12;
}

/***************************************************************
 * Common
 ***************************************************************/

function _findElementInNodeList(nodeList)
{
	for (var i = 0; i < nodeList.length; i++)
	{
		if (nodeList.item(i).nodeType == Node.ELEMENT_NODE)
		{
			return nodeList.item(i);
		}
	}
	
	return null;
}

function _showLoading()
{
	var loadingSize = {'x': 150, 'y': 60};
	var windowSize = $(window).getSize();
	var windowScrollSize = $(window).getScroll();
	
	//Loading box
	var xOffset = Math.floor((windowSize.x - loadingSize.x) / 2) + windowScrollSize.x;
	var yOffset = Math.floor((windowSize.y - loadingSize.y) / 2) + windowScrollSize.y;
	
	var bodySize = $(document.body).getSize();
	var overlayObject = new Element("div",
	{
		'styles':
		{
			'top': yOffset,
			'left': xOffset,
			'width': loadingSize.x,
			'height': loadingSize.y
		},
		'id': "proofsLoading"
	});
	
	//Spinner
	var spinnerObject = new Element("img",
	{
		'src': "/images/common/loading.gif"
	});
	overlayObject.appendChild(spinnerObject);
	
	//Text
	var textObject = new Element("div",
	{
		'text': "Loading..."
	});
	overlayObject.appendChild(textObject);
	
	$(document.body).appendChild(overlayObject);
}

function _hideLoading()
{
	var loadingObject = $("proofsLoading");
	if (loadingObject != null)
	{
		loadingObject.getParent().removeChild(loadingObject);
	}
}

/***************************************************************
 * Previews
 ***************************************************************/

function preloadPreview(targetIndex)
{
	var ajaxRequest = new Request({
		method: 'post',
		url: BPAjaxURLPreloadPreview,
		data: {'index': targetIndex},
		onSuccess: _preloadPreviewResponse
		});
	ajaxRequest.send();
}

function _preloadPreviewResponse(responseText, responseXML)
{
	var imagePreloader = new Image();
	imagePreloader.src = responseText;
}
