// JavaScript Document

// REVIEW ORDER FUNCTIONS__________________________________________________________________________

var currentShippingOptionID = -1;
var currentTaxMode = -1;
var displayResponse = false;
var removeAllURLParams;
var lastTotalCost = 0.00;

function showCurrencyConverter(totalCost,cc)
{
	if(lastTotalCost == 0.00)
	{
		lastTotalCost = totalCost;
	}
	window.open("convertcurrency.php?v=" + lastTotalCost + "&b=" + cc,"","width=300,height=140,resizable=no,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no");
}

function initalizeOrderDetails(shippingOption,taxMode)
{
	currentShippingOptionID = shippingOption;
	currentTaxMode = taxMode;
}

function confirmRemoveAll(urlparams)
{
	if(!confirm("Remove all items in your basket.\nAre you sure?")) return;
	document.location='orderclear.php' + urlparams;
}

function confirmRemoveBasketItem(basketItemID,photoID,colorMode,message,urlparams)
{
	if(!confirm(message)) return;
	removeAllURLParams = urlparams;
	displayResponse = false;
	http = createRequestObject();
	http.open('get', 'ajax.changeorder.php?mode=removeOrderItem&biid=' + basketItemID + '&taxMode=' + currentTaxMode + '&soid=' + currentShippingOptionID + '&photoID=' + photoID + '&colorMode=' + colorMode);
	http.onreadystatechange = orderResponse;
	http.send(null);
}

function changeTaxOption()
{
	var taxOptionCheckEL = document.getElementById('fTaxOption');
	if(taxOptionCheckEL.checked)
	{
		currentTaxMode = 1;
	}
	else
	{
		currentTaxMode = 0;
	}
	http = createRequestObject();
	http.open('get', 'ajax.changeorder.php?mode=changeShippingItem&taxMode=' + currentTaxMode + '&soid=' + currentShippingOptionID);
	http.onreadystatechange = orderResponse;
	http.send(null);
}

function changeShippingOption()
{
	displayResponse = false;
	var shippingCostComboEl = document.getElementById('fShipping');
	
	var shippingCostEl = document.getElementById('shippingCost');
	
	currentShippingOptionID = shippingCostComboEl.value;
	http = createRequestObject();
	http.open('get', 'ajax.changeorder.php?mode=changeShippingItem&taxMode=' + currentTaxMode + '&soid=' + currentShippingOptionID);
	http.onreadystatechange = orderResponse;
	http.send(null);
}

function changeOrderItem(basketItemID) {
	displayResponse = false;
	http = createRequestObject();
	var ajaxhistory = document.getElementById('ajaxhistory');
	//showLoading();
	//alert(basketID + ' is being changed.');
	var theQTY = document.getElementById('bi' + basketItemID + 'qty');
	http.open('get', 'ajax.changeorder.php?mode=changeOrderItem&biid=' + basketItemID + '&qty=' + theQTY.value + '&taxMode=' + currentTaxMode + '&soid=' + currentShippingOptionID);
	//ajaxhistory.innerHTML += 'changed order<br />';
	http.onreadystatechange = orderResponse;
	http.send(null);	 
}

function orderResponse() {
	
	
	
	if (http.readyState == 4) {
		// Finished loading the response
		//var miniBasket = document.getElementById('quickBasket');
		//miniBasket.innerHTML = http.responseText;
		
		if(http.responseText.length == 0)
		{
			if(displayResponse) alert("No Data Returned");
			displayResponse = false;
			return;
		}
		
		if(displayResponse) alert(http.responseText);
		
		var theResponse = http.responseText.split('-');
		
		
		
		
		//1 = basket item id
		//2 - basket item cost
		//3 - Shipping cost
		//4 - Tax cost
		//5 - sub total
		//6 - total
		//7 - discount total
		//8 - removed table id
		var theBasketItem = theResponse[1];
		
		
		
		if(theResponse[2] == "Removed")
		{
			//this item was remove from the basket
			//need to remove row
			if(removeBaskItemRow(theResponse[8]))
				return;
		}
		else
		{
			//item was updated so need to display new values
			var theBasketItemCost = new Number(theResponse[2]);
			var biCostEl = document.getElementById('bi' + theBasketItem + 'cost');
			if(biCostEl != null) biCostEl.innerHTML = theBasketItemCost.toFixed(2);			
		}
		
		var theShippingCost = new Number(theResponse[3]);
		var theTaxCost = new Number(theResponse[4]);
		var theSubTotal = new Number(theResponse[5]);
		var theTotalCost = new Number(theResponse[6]);
		var theTotalDiscount = new Number(theResponse[7]);
		
		lastTotalCost = theTotalCost;
		
		var shippingCostEL = document.getElementById('shippingCost');
		if(shippingCostEL != null) shippingCostEL.innerHTML = theShippingCost.toFixed(2);
		
		var subTotalEL = document.getElementById('subTotal');
		if(subTotalEL != null) subTotalEL.innerHTML = theSubTotal.toFixed(2);
		
		var taxCostEL = document.getElementById('taxCost');
		if(taxCostEL != null) taxCostEL.innerHTML = theTaxCost.toFixed(2);
		
		var totalCostEl = document.getElementById('totalCost');
		if(totalCostEl != null) totalCostEl.innerHTML = theTotalCost.toFixed(2);
	
		var totalDiscountEl = document.getElementById('totalDiscount');
		if(totalDiscountEl != null) totalDiscountEl.innerHTML = theTotalDiscount.toFixed(2);
	
		
		//alert(theBasketItem + '//' + theItemCost + '//' + theTotalCost);
		//hideLoading();
	}	
}

function removeBaskItemRow(tableRowID)
{
	if(tableRowID == "REFRESH DUE TO REMOVED ALL")
	{
		document.location="orderclear.php" + removeAllURLParams;
		return true;
	}
	
	
	
	var tableRowEL = document.getElementById(tableRowID);
	var tableEL = tableRowEL.parentNode;
	var rowIndex = tableRowEL.rowIndex;
	tableEL.deleteRow(rowIndex);
	
	if(tableRowID.substring(0,6)=="album_")
	{
		//remove the next row down
		tableEL.deleteRow(rowIndex);
	}
	
	//if it was a photo that was remove and not just a sub photo item 
	//the alternate colour scheme has to be re done
	if(tableRowID.substring(0,6)=="photo_" || tableRowID.substring(0,6)=="album_")
	{
		var counter = 0;
		var i = 0;
		for(i=0;i<tableEL.rows.length;i++)
		{
			if(tableEL.rows[i].id.length > 0)
			{
				if(tableEL.rows[i].id.substring(0,6)=="photo_")
				{
					counter++;
					if(counter % 2 ==0)
					{
						tableEL.rows[i].className = "USERReviewAltColor";
					}
					else
					{
						tableEL.rows[i].className = "";
					}
				}
			}
		}
	}
	return false;
}
/*
function removeFromOrder(basketItemID) {
	http = createRequestObject();
	http.open('get', 'ajax.changeorder.php?mode=removeOrderItem&biid=' + basketItemID);
}*/

// BROWSER DETECT__________________________________________________________________________________
// get the browser specific XMLHTTPRequest object
function createRequestObject() {
	var http_request = false;
	if (window.XMLHttpRequest) {
		// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		// Internet Explorer
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		// browser cannot support AJAX
		alert('Cannot create XMLHTTP instance');
		return false;
	} else {
		return http_request;
	}
}

