function generateStoreBody() {
	var html = "";

	html += '<div id="debug">';
	html += '</div>';
	html += '<div id="storeHeader">';
	html += 'Loading...';
	html += '</div>';
	html += '<div id="storeBody">';
	html += '</div>';
	html += '';

	if(_VIEWER == null) {
		return 'waiting to load viewer object';
	}
	
	//alert("at A " + _BASE_URL);
	// Perform actual send plant back on the server using PHP
	var url = _BASE_URL + "os/greentrees/store.php";
	url += "?userId=" + _VIEWER.getId();
	url += "&userType=" + _USER_TYPE;
	url += "&op=getPrepareSupplies";
	url += "&prepareSuppliesForm=prepareSuppliesForm";
	url += "&onPrepareSuppliesFunc=onPrepareSuppliesClicked";
	url += "&uq=" + (new Date().getUTCMilliseconds());
	
	//alert(url);

	var params = {};
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, onGetSuppliesRequestComplete, params);
	
	return html;
}

function updateTotal() {

  var rakePrice = document.getElementById('lgp-RakePrice').value;
  var glovesPrice = document.getElementById('lgp-GlovesPrice').value;
  var hosePrice = document.getElementById('lgp-HosePrice').value;
  var carrotsPrice = document.getElementById('lgp-CarrotsPrice').value;
  var nutsPrice = document.getElementById('lgp-NutsPrice').value;
  var dogbonesPrice = document.getElementById('lgp-DogbonesPrice').value;
  var cameraPrice = document.getElementById('lgp-CameraPrice').value;

  var rakeCount = 0;
  var elem = document.getElementById('lgp-RakeSelect');
  var val = document.getElementById('lgp-RakeCount');
  if (elem != null) {
    rakeCount = elem.selectedIndex;
    var rakeCountInt = parseInt(rakeCount);
    if (rakeCountInt > 0) {
      val.value = rakeCountInt;
    } else {
      val.value = '0';
    }
  }

  var glovesCount = 0;
  var elem = document.getElementById('lgp-GlovesSelect');
  var val = document.getElementById('lgp-GlovesCount');
  if (elem != null) {
    glovesCount = elem.selectedIndex;
    var glovesCountInt = parseInt(glovesCount);
    if (glovesCountInt > 0) {
      val.value = glovesCountInt;
    } else {
      val.value = '0';
    }
  }

  var hoseCount = 0;
  var elem = document.getElementById('lgp-HoseSelect');
  var val = document.getElementById('lgp-HoseCount');
  if (elem != null) {
    hoseCount = elem.selectedIndex;
    var hoseCountInt = parseInt(hoseCount);
    if (hoseCountInt > 0) {
      val.value = hoseCountInt;
    } else {
      val.value = '0';
    }
  }

  var carrotsCount = 0;
  var elem = document.getElementById('lgp-CarrotsSelect');
  var val = document.getElementById('lgp-CarrotsCount');
  if (elem != null) {
    carrotsCount = elem.selectedIndex;
    var carrotsCountInt = parseInt(carrotsCount);
    if (carrotsCountInt > 0) {
      val.value = carrotsCountInt;
    } else {
      val.value = '0';
    }
  }

  var nutsCount = 0;
  var elem = document.getElementById('lgp-NutsSelect');
  var val = document.getElementById('lgp-NutsCount');
  if (elem != null) {
    nutsCount = elem.selectedIndex;
    var nutsCountInt = parseInt(nutsCount);
    if (nutsCountInt > 0) {
      val.value = nutsCountInt;
    } else {
      val.value = '0';
    }
  }

  var dogBonesCount = 0;
  var elem = document.getElementById('lgp-DogbonesSelect');
  var val = document.getElementById('lgp-DogbonesCount');
  if (elem != null) {
    dogbonesCount = elem.selectedIndex;
    var dogbonesCountInt = parseInt(dogbonesCount);
    if (dogbonesCountInt > 0) {
      val.value = dogbonesCountInt;
    } else {
      val.value = '0';
    }
  }

  var cameraCount = 0;
  var elem = document.getElementById('lgp-CameraSelect');
  var val = document.getElementById('lgp-CameraCount');
  if (elem != null) {
    cameraCount = elem.selectedIndex;
    var cameraCountInt = parseInt(cameraCount);
    if (cameraCountInt > 0) {
      val.value = cameraCountInt;
    } else {
      val.value = '0';
    }
  }

  var total = (rakePrice     * rakeCount    ) +
              (glovesPrice   * glovesCount  ) +
              (hosePrice     * hoseCount    ) +
              (carrotsPrice  * carrotsCount ) +
              (nutsPrice     * nutsCount    ) +
              (dogbonesPrice * dogbonesCount) +
              (cameraPrice   * cameraCount  );

  document.getElementById('checkoutAmount').innerHTML = total;
	gadgets.window.adjustHeight();
}

function onGetSuppliesRequestComplete(obj) {
    if(checkMaintenanceMode(obj) == true) {
        return;
    }

	var headerHtml = obj.data.headerHtml;
	var bodyHtml = obj.data.bodyHtml;

	document.getElementById('storeHeader').innerHTML = headerHtml;
	document.getElementById('storeBody').innerHTML = bodyHtml;
	gadgets.window.adjustHeight();
}

function onPrepareSuppliesClicked() {
	var supplies = serializeForm(document.getElementById("prepareSuppliesForm"));
	//alert(serstr);

	var url = _BASE_URL + "os/greentrees/store.php";
	url += "?userId=" + _VIEWER.getId();
	url += "&userType=" + _USER_TYPE;
	url += "&op=getCheckoutSupplies";
	url += "&failFormId=checkoutSuppliesFailForm";
	url += "&failFormFunc=onCheckoutSuppliesFailClicked";
	url += "&successFormId=checkoutSuppliesSuccessForm";
	url += "&successFormFunc=onCheckoutSuppliesSuccessClicked";
	url += "&supplies=" + supplies;
	url += "&uq=" + (new Date().getUTCMilliseconds());
	
	//alert(url);
	//debug(url);

	var params = {};
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, onGetCheckoutSuppliesRequestComplete, params);
}

function onGetCheckoutSuppliesRequestComplete(obj) {
    if(checkMaintenanceMode(obj) == true) {
        return;
    }
	var headerHtml = obj.data.headerHtml;
	var bodyHtml = obj.data.bodyHtml;

	document.getElementById('storeHeader').innerHTML = headerHtml;
	document.getElementById('storeBody').innerHTML = bodyHtml;
	gadgets.window.adjustHeight();
}

function onCheckoutSuppliesFailClicked() {
	generateStoreBody();
}

function onCheckoutSuppliesSuccessClicked() {
	//alert('checkout success!');
	var checklist = serializeForm(document.getElementById("checkoutSuppliesSuccessForm"));
	//alert("final supplies = " + checklist);

	var url = _BASE_URL + "os/greentrees/store.php";
	url += "?userId=" + _VIEWER.getId();
	url += "&userType=" + _USER_TYPE;
	url += "&op=performCheckoutSupplies";
	url += "&supplies=" + checklist;
	url += "&uq=" + (new Date().getUTCMilliseconds());
	
	//alert(url);
	//debug(url);

	var params = {};
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
	gadgets.io.makeRequest(url, onPerformCheckoutSuppliesRequestComplete, params);
}

function onPerformCheckoutSuppliesRequestComplete(obj) {
    if(checkMaintenanceMode(obj) == true) {
        return;
    }
	var coinsAfterSale = obj.data.coinsEarned;
	updateGreenBucks(coinsAfterSale);
	onTabClick(1);
}

function debug(str) {
	document.getElementById('debug').innerHTML += str + '<BR/>';
	gadgets.window.adjustHeight();
}

