 var http_request;

 
function GetXmlHttpObject() {

	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		 // Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	return xmlHttp;
}

function makeGETRequest(url, parameters, action, itemid)
{
	http_request =GetXmlHttpObject();

	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	
	switch(action)
	{
		case 'POPULATE_PRICE':
		http_request.onreadystatechange = function() { 
			if (http_request.readyState == 4)
			{
				if(http_request.status==200)
				{
					results=http_request.responseText;
					
					document.getElementById('Price'+itemid).value=results;
					document.getElementById('Prices'+itemid).innerHTML=results;
				}
			}
		}
		break;

		case 'SET_CURRENT_TIME':
		http_request.onreadystatechange = function() {
			if (http_request.readyState == 4)
			{
				if(http_request.status==200)
				{
					results=http_request.responseText;
					document.getElementById('curdatetm').innerHTML=results;
					TimeCount();
				}
			}
		}
		break;

	default:
	}
	  
      
	url = url + "?" + parameters

	http_request.open('GET', url, true);

	http_request.send(null);
}


function makePOSTRequest(url, parameters, action)
{
	http_request = GetXmlHttpObject();
	//alert("parameters on ajax.js: " + parameters);

	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
      
	switch(action)
	{
		case 'INSERT_ORDER':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						results=http_request.responseText;
						
						document.getElementById('orders').innerHTML=results;
						setComboTime();
					}
				}
			}
			break;
		
		case 'REMOVE_ITEM':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						results=http_request.responseText;
						setComboTime();
						window.location.reload(true);
					}
				}
			}
			break;

		case 'VALIDATE_PICKUP_DATE':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						setComboTime();
						results=http_request.responseText;
						var rs = results.split("#");
						if(rs[0] == 0)
						{
							//alert('Your pick-up time xxx is out of Online Order hours.\nOnline Order hours for this Merchant are \nOpen: '+rs[1]+' \nClose '+rs[2]);
							alert('Your pick-up time '+rs[3]+' is out of Online Order hours.\nOnline Order hours for this Merchant are \nOpen: '+rs[1]+' \nClose '+rs[2]);
							//document.frm.Place_Order.disabled=true;
							//document.getElementById('Place_Order').className='btn_st_disabled';
							return false;
						}
						else
						{
//CHANGE_THIS
			// something funky here when the pickup time is out of hours.  if the user then tries again
			// and does a lead time that IS within hours,  the pickup time get set to the first choice of lead
			// time which resulted in a fail.  GOTTA FIGURE THAT OUT. i think its on subdomain/index.php where
			// one might start looking.  not sure though
							document.frm.page_action.value="PLACE_ORDER";
							// these 3 added by ***arosenthal*** they correspond to the hidden fields created in clsMerchantMenu on lines 277,278,279
							// these allow us to easily pass the pickup time based on the value of lead time.
							document.frm.p_pick_up_date_time.value=rs[3];
							document.frm.p_pick_up_time.value=rs[4];
							document.frm.p_server_pick_up_date_time.value=rs[5];
							//alert("the p_pickUPtime: " + document.frm.p_pick_up_time.value);
							//alert("the pickup date value: " + document.frm.p_pick_up_date_time.value);
							document.frm.action="";
							document.frm.submit();
						}
					}
				}
			}
			break;
		case 'VERIFY_PHONE':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						results=http_request.responseText;
						//alert("results: " + results);
						var rs = results.split("#");
						if(rs[0].substring(0,8) == 'sms_sent') {
							alert("You should recieve the message shortly");
							document.frm.txtSMS.value = rs[1];
							document.frm.hidCode.value = rs[2];
							
						} else {
							alert(rs[0]);
							document.frm.txtAltPhone.value = null;
							document.frm.txtAltPhone.focus();
						}
						return true;
					}	
				}
			}
			break;
		case 'VALIDATE_PICKUP_DATE2':
			//  during debugging if you add alerts you will need to also clear the cache of the browser before they show up
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						//setComboTime();
						results=http_request.responseText;
						
						// if anything is returned from the validatePickupDate.php other than the expected, like warnings or the like, it will blow this up.
						// so make sure you are NOT NOT NOT displaying errors.  this is really only an issue during development but good to be aware of   
						// alert("results: " + results");
						var rs = results.split("#");
						if(rs[0] == 0)
						{
							alert('Your pick-up time '+rs[3]+' is out of Online Order hours.\nOnline Order hours for this Merchant are \nOpen: '+rs[1]+' \nClose '+rs[2]);
							//document.frm.Place_Order.disabled=true;
							//document.getElementById('Place_Order').className='btn_st_disabled';
							return false;
						}
						else
						{
							// added in server_pickup_date for time zone fucntionality.  this lets the messaging go out at the correct time.
							// added by ***arosenthal*** 5/11/09
							document.location = "constructOrder.php?"+parameters+"&pickup_date="+rs[3]+"&pickupTime="+rs[4]+"&server_pickup_date="+rs[5];
						}
					}
				}
			}
			break;
		case 'LOGIN_AJAX':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						setComboTime();
						
						results=http_request.responseText;
												
						if(results == 0)
						{
							alert('Invalid User.');
							document.getElementById('Place_Order').className='btn_st_disabled';
							return false;
						}
						else if (results == 100)  // balance over limit
						{
							alert('Thanks for using SplickIt so much but your account needs resolving, Please goto the MyAccount tab to pay. Thanks! ');
							document.getElementById('Place_Order').className='btn_st_disabled';
							top.location='../user_welcome.php';
							return false;
						}
						else if (results == 200)  // user has not paid membership fee
						{
							alert('You have not joined the SplickIt community yet!  Please pay your  membership fee so you can start SplickIt orderint today. Thanks!');
							document.getElementById('Place_Order').className='btn_st_disabled';
							top.location='../congratulations.php?showalert=true';
							return false;
						}
						else
						{
							document.getElementById('login').style.display ='none';
							alert('Login successful.');
							//alert('the results are: '+results);
							
							// this openModalConfirm is currently on order-online.html  i think it should move to order.js
							//checkAll(results);
							openModalConfirm(results);
						}
					}
				}
			}
			break;
		
		case 'LOGIN_FAVORITE_AJAX':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						setComboTime();
						
						results=http_request.responseText;
												
						if(results == 0)
						{
							alert('Invalid User.');
							document.getElementById('Place_Order').className='btn_st_disabled';
							return false;
						}
						else
						{
							document.getElementById('login').style.display ='none';
							alert('Login successful.');
							Modalbox.resizeToContent();
							Modalbox.show("setmFavorite.php?task=ADDMFAVORITE&order_id=100");
							
						}
					}
				}
			}
			break;
		
			case 'MENU_ITEMS':
			http_request.onreadystatechange = function() {
				if (http_request.readyState == 4)
				{
					if(http_request.status==200)
					{
						setComboTime();
						
						results=http_request.responseText;
												
						if(results == 0)
						{
							alert('Invalid User.');
							document.getElementById('Place_Order').className='btn_st_disabled';
							return false;
						}
						else
						{
							document.getElementById('login').style.display ='none';
							alert('Login successful.');
							Modalbox.resizeToContent();
							Modalbox.show("setmFavorite.php?task=ADDMFAVORITE&order_id=100");
							
						}
					}
				}
			}
			break;

		default:
	}
	  
      
	http_request.open('POST', url, true);

	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");

	http_request.send(parameters);
}
