
// constants
var SUCCESS = 0;
var NO_IMAGES = -1;
var SOAP_ERROR = -2;
var NO_POSES = -3;
var WRONG_NAME = -4;
var MISSING_PARAM = -5;
var LOOKUP = 1;
var PREP = 2;
var USERNAME = 'COPTIX';
var STATUS_CODE = 0;
var STATUS_DESC = 1;

// functions
function load_images(orderno, lastname)
{
	var orderno_images_response = new Array();
	var lookup_form = document.getElementById('lookup_form');
	var query = new Ajax();
	//query.dbg = true;
	query.url = "/ax/load_images.php";
	query.post = "orderno=" + orderno + "&lastname=" + lastname + "&username=" + USERNAME + "&output=js";
	query.complete = function(response)
	{
		eval(response);

		// success
		if (orderno_images_response['status'] == 0)
		{
			document.getElementById('display').value = 1;
			lookup_form.submit();
		}

		// failure (pose numbers, no images)
		else
		{
			document.getElementById('display').value = 0;
			lookup_form.submit();
		}
	}
	query.send();
	delete query;
}

// functions
function load_data(orderno, lastname, ordertype, do_images)
{
	var orderno_data_and_poses_response = new Array();
	var lookup_form = document.getElementById('lookup_form');
	var query = new Ajax();
	//query.dbg = true;
	query.url = "/ax/load_data.php";
	query.post = "orderno=" + orderno + "&lastname=" + lastname + "&username=" + USERNAME + "&ordertype=" + ordertype + "&output=js";
	query.complete = function(response)
	{
		eval(response);

		// success
		if (orderno_data_and_poses_response['status'] == 0)
		{
			if (do_images)
			{
				load_images(orderno, lastname);
			}
			
			else // images are turned off
			{
				document.getElementById('display').value = 0;
				lookup_form.submit();
			}
		}

		// failure
		else
		{
			// display the loading message
			document.getElementById('status_text').style.color = "#A90101";
			document.getElementById('status_text').innerHTML = 'ERROR: There was a problem validating your pose number. Please try again.';
		}
	}
	query.send();
	delete query;
}

function lookup_poses(orderno, lastname)
{
		var orderno = cleanup_orderno(document.getElementById('orderno').value);
		var lastname = document.getElementById('lastname').value;
		var ordertype = document.getElementById('ordertype').value;
		var lookup_form = document.getElementById('lookup_form');
		var product_id = document.getElementById('p').value;
		document.getElementById('lookup_status').style.display = "none";
		document.getElementById('lookup_status').style.color = "#333333";

		var pose_query = new Ajax();
		//pose_query.dbg = true;
		pose_query.url = "/ax/get_poses.php";
		pose_query.post = "orderno=" + orderno + "&lastname=" + lastname + "&ordertype=" + ordertype  + "&username=" + USERNAME + "&p=" + product_id;

		pose_query.complete = function(response)
		{
			// split up the response
			var status_code = response.split("|")[STATUS_CODE];
			var status_desc = response.split("|")[STATUS_DESC];

			if (status_code == SUCCESS)
			{
				// submit the form (with the cleaned up orderno)
				document.getElementById('orderno').value = orderno;
				lookup_form.submit();
			}

			// there was a problem...
			else if (status_code > SUCCESS)
			{
				// display the success
				document.getElementById('status_instructions').style.display = "block";
				document.getElementById('status_instructions').style.color = "#268854";
				document.getElementById('status_instructions').innerHTML = "<strong>Your order number has been found!</strong> " + status_desc;

				// display the loading message
				document.getElementById('status_indicator').style.display = "none";
				//document.getElementById('status_text').innerHTML = status_desc;
				document.getElementById('status_text').style.display = "none";
				document.getElementById('status_progress').style.display = "block";
				document.getElementById('status_progress').innerHTML = "<img src=\"/images/progress.gif\" id=\"progress_bar\">";

				load_data(orderno, lastname, ordertype, true);
			}

			// there was a problem...
			else if (status_code < SUCCESS)
			{
				// re-enable the button
				document.getElementById('lookup_search').disabled = false;

				// reset the status info
				document.getElementById('status_indicator').style.display = "none";
				document.getElementById('status_text').style.display = "none";
				document.getElementById('status_text').innerHTML = "";

				// display the error
				document.getElementById('status_instructions').style.display = "block";
				document.getElementById('lookup_status').style.color = "#A90101";
				document.getElementById('status_instructions').innerHTML = "<strong>ERROR:</strong> " + status_desc;
			}
		}

		pose_query.waiting = function()
		{
			// disable the button
			document.getElementById('lookup_search').disabled = true;

			document.getElementById('status_instructions').style.display = "none";
			document.getElementById('status_indicator').style.display = "block";
			document.getElementById('status_text').style.display = "block";
			document.getElementById('lookup_status').style.display = "block";
			document.getElementById('status_text').innerHTML = "Looking up order number.  Please wait...";
		}

		pose_query.send();
}

// Ask OM/LP WebService to start an upload for us
function lp_setup_upload(returnUrl)
{
	var orderno = document.getElementById('orderno').value;
	var lastname = document.getElementById('lastname').value;
	var email = document.getElementById('email').value;
	var emailConfirm = document.getElementById('emailConfirm').value;
	
	// adding in a quick leading/trailing trim
	email = email.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	emailConfirm = emailConfirm.replace(/^\s\s*/, '').replace(/\s\s*$/, '');	
	
	if (email == emailConfirm)
	{	
		var setup_upload_query = new Ajax();
		//setup_upload_query.dbg = true;
		setup_upload_query.url = '/ax/lp_setup_upload.php';
		setup_upload_query.post = 'orderno=' + orderno + '&lastname=' + lastname + '&email=' + email;
		
		setup_upload_query.complete = function(response)
		{
			// Response passed back to this function will only be a URL
			// All we need to do is redirect the user
			if (response != "FAIL") 
			{
				window.location = response;
			}
			else
			{
				// append local=true so request is submitted to lookup_poses() if FAIL
				returnUrl = returnUrl + '&local=true&reset=1' + '&orderno=' + orderno + '&lastname=' + lastname;
				window.location = returnUrl;
			}
		}
	}
	setup_upload_query.send();
}

// Ask OM/LP WebService if this order is in pilot program
function lp_check_order()
{
	var orderno = cleanup_orderno(document.getElementById('orderno').value);
	var lastname = document.getElementById('lastname').value;
	var pilot_query = new Ajax();
	//pilot_query.dbg = true;
	pilot_query.url = '/ax/lp_check_order.php';
	pilot_query.post = 'orderno=' + orderno + '&lastname=' + lastname;

	pilot_query.complete = function(response)
	{
		// response ==1 means the order is part of the pilot program
		// any other response is submitted to existing cart logic
		if (response == 1)
		{
			window.location = 'cart.php?m=pilot_check&o=' + orderno + '&l=' + lastname;
		}
		else
		{
			lookup_poses();
		}
	}
	pilot_query.send();
}

function go_to_page(page, total_pages)
{
	// turn every page off
	for (i = 1; i <= total_pages; i++)
	{
		document.getElementById('photo_page_' + i).style.display = 'none';
	}

	// turn on the selected page
	document.getElementById('photo_page_' + page).style.display = 'block';
}

function hide_lookup_form(toggle)
{
	if (toggle == 'Y')
	{
		// hide the form
		document.getElementById('lookup_form').style.display = 'none';
		document.getElementById('images_table').style.display = 'block';
	}

	else
	{
		// show the form
		document.getElementById('lookup_form').style.display = 'block';
		document.getElementById('images_table').style.display = 'none';
	}
}

function cleanup_orderno(orderno)
{
	var orderno_numbers = "";
	for (i = 0; i < orderno.length; i++)
	{
		var this_number = parseInt(orderno.substring(i, i+1));
		orderno_numbers += (!isNaN(this_number)) ? this_number : '';
	}
	return orderno_numbers;
}
