//
//    delivery time
//

function start_time()
	{
		arrTime		= {};    								//  initialize object
		
		get_delivery_time();								//  start right away
		
		setInterval( "get_delivery_time()", 5000 );    		//  repeat every 5 sec
		
		display_delivery_time();						 	//    start right away
		
		setInterval( "display_delivery_time()", 1000 );    	//  1 sec

}    //    end of function


function display_delivery_time()
	{
		//alert( "display_delivery_time() 1" );
		
		if( get_object_size( arrTime ) >= 3 )
			{
				var delMin			= arrTime['delMin'];
				var delNow			= arrTime['delNow'];
				var delHours		= arrTime['delHours'];	
			}
		else
			{
				//var delMin			= 31;							//  should be > 0
				//var delNow			= "yes";						//  should be yes or no
				//var delHours			= "11:00 a.m. to 11:00 p.m.";	//  should be text string like "11:00 a.m. to 11:00 p.m."
				
				return;    //    nothing to display :(
			}

		var now 	= new Date();
		var del 	= new Date();
		del.setTime( now.getTime() + ( delMin * 60 * 1000 ) );  //  add del_min minutes
		
		//
		//    now
		//
		
		//    hours
		
		var h		= now.getHours();
		var hd12	= h;
		var hd24	= h;
		var ampm	= "a.m.";
		
		if( h >= 12 )
			{
				ampm	= "p.m.";
			}

		if( h == 0 * 1 )
			{
				hd12	= 12;
			}

		if( h > 12 )
			{
				hd12	= h - 12;
			}

		if( h < 10 )
			{
				hd12 	= "0" + h + "";
				hd24 	= "0" + h + "";
			}

		//    minutes
		
		var m		= now.getMinutes();
		
		if( m < 10 )
			{
				var md = "0" + m + "";
			}
		else
			{
				var md	= m;
			}
		
		//    seconds
		
		var s		= now.getSeconds();
		
		if( s < 10 )
			{
				var sd = "0" + s + "";
			}
		else
			{
				var sd	= s;
			}
		
		var hms24		= hd24 + ":" + md + ":" + sd;
		var hms12		= hd12 + ":" + md + ":" + sd + " " + ampm;
		
		//
		//    del
		//
		
		//    hours
		
		var h			= del.getHours();
		var hd12_del	= h;
		var hd24_del	= h;
		var ampm_del	= "a.m.";
		
		if( h >= 12 )
			{
				ampm_del	= "p.m.";
			}

		if( h == 0 * 1 )
			{
				hd12_del	= 12;
			}

		if( h > 12 )
			{
				hd12_del	= h - 12;
			}

		if( h < 10 )
			{
				hd12_del 	= "0" + h + "";
				hd24_del 	= "0" + h + "";
			}

		//    minutes
		
		var m		= del.getMinutes();
		
		if( m < 10 )
			{
				var md_del = "0" + m + "";
			}
		else
			{
				var md_del	= m;
			}
		
		//    seconds
		
		var s		= del.getSeconds();
		
		if( s < 10 )
			{
				var sd_del = "0" + s + "";
			}
		else
			{
				var sd_del	= s;
			}
		
		var hms24_del	= hd24_del + ":" + md_del + ":" + sd_del;
		//var hms12_del	= hd12_del + ":" + md_del + ":" + sd_del + " " + ampm_del;
		var hms12_del	= hd12_del + ":" + md_del + " " + ampm_del;
		
		//    output message 
		
		if( delNow == "open" )
			{
				document.getElementById( "delivery_time" ).innerHTML = "<div class='delivery_message_box'><span class='delivery_message_text'>If you place an order now, your estimated delivery time is " + hms12_del + "</span> Deliveries are averaging " + delMin + " minutes.<br />Delivery is available from " + delHours +  " The current time is " + hms12 + "</div><br />" ;
			}
		else
			{
				document.getElementById( "delivery_time" ).innerHTML = "<div class='delivery_message_box'><span class='delivery_message_text'>Sorry, we are closed for deliveries now.</span> Deliveries usually take between 30 and 45 minutes.<br />Delivery is available from " + delHours +  " The current time is " + hms12 + "</div><br />" ;
			}

	}    //    end of function



function update_delivery_time( resp )
	{
		//    retrieve current delivery time from server
		
		//    split response
		
		//alert( resp );
		
		var dla			= resp.split( "::::" );			//  dla = downloaded array
		
		var arrName		= dla[0*1];
		
		//debug_variable( "resp", resp, "debug" );
		//debug_array( "dla", dla, "debug" );
		//debug_variable( "Name", dla[0*1], "debug" );
		
		//    check to see if array or object
		
		if( dla.length == 2 )
			{
				var arrData		= dla[1*1].split( "::" );
				//debug_array( "Array : " + arrName, arrData, "debug" );
			}
		else if( dla.length == 3 )
			{
				//alert( "dla.length == 3" );
				
				var ind			= dla[1*1].split( "::" );
				var val			= dla[2].split( "::" );
				
				var newObj		= {};	//  object
				
				for( i = 0; i < ind.length; i++ )
					{
						newObj[ ind[i] ]	= val[i];
					}
					
				//debug_variable( arrName, dla[0*1], "debug" );
				//debug_array( "ind", ind, "debug" );
				//debug_array( "val", val, "debug" );
				//debug_array( "Object : " + arrName, newObj, "debug" );
			}
		else
			{
				//var error	= dla.length;
				//debug_variable( "ERROR - dla.length", error, "debug" );
				return;
			}
		
		//
		//  check for new info
		//
		
		if( arrName == "arrTime" )
			{
				//alert( newObj );
				
				arrTime		= newObj;
				
				display_delivery_time();		//    start right away
			}
		
	}    //    end of function



function get_delivery_time()
	{
		var xml_string	= "<xml><function>get_delivery_time</function></xml>";
		
		//alert( "xml_string = " + xml_string );

		//
		//    build XMLHttpRequest()
		//
		
		var http_rq = new XMLHttpRequest();
		
		//alert( window.location.protocol );
		
		if( window.location.protocol == "https:" )
			{
				var url		= "https://www.fastorder.info/fastorder/xml_3.php";
			}
		else
			{
				var url		= "http://www.fastorder.info/fastorder/xml_3.php";
			}
		
		http_rq.open( "POST", url, true );    //    'true' is for asynchronous
		
		//    Send the proper header information along with the request
		
		http_rq.setRequestHeader( "MessageType", "Call" );
		http_rq.setRequestHeader( "Content-type", "text/xml" );
		http_rq.setRequestHeader( "Content-length", xml_string.length );
		http_rq.setRequestHeader( "Connection", "close" );

		http_rq.send( xml_string );
		
		//    wait for response
		
		http_rq.onreadystatechange	= function() { if( http_rq.readyState == 4 )
			{
				//alert( "http_rq.responseText = " + http_rq.responseText );  //  for debug
				
				update_delivery_time( http_rq.responseText );
				
			}    //  end of if( http_rq.readyState == 4 )
			
		}    //    end of http_rq.onreadystatechange function()

	}    //    end of function


