//
//    demo of enter address and show if in delivery area
//


function demo_address( da )
	{
		var demo_addr	= document.getElementById( da ).value;
		
		//alert( demo_addr );
		
		geocoder.getLatLng( demo_addr, function( point ){ demo_check( point, demo_addr ); } );
		
	}    //    end of function


function demo_check( point, demo_addr )
	{
		if( check_delivery( delivery_area, point ) )
			{
				document.getElementById( "demo_result" ).innerHTML = "<span style='color: green;'>'" + demo_addr + "' is inside the delivery area.</span>";
			}
		else
			{
				document.getElementById( "demo_result" ).innerHTML = "<span style='color: red;'>'" + demo_addr + "' is not inside the delivery area or is not a recognized street address.</span>";
			}
		
	}    //    end of function


function check_delivery( pg, point )
	{
		//  pg is a polygon like delivery_area

		var bounds = pg.getBounds();
	   
		if( ! bounds.containsLatLng( point ) )
			{
				return false;
			}

		var j = 0;
		var oddNodes = false;
		
		var x = point.lng();
		//alert( "x = " + x );
		
		var y = point.lat();
		//alert( "y = " + y );
		
		for ( var i = 0; i < pg.getVertexCount(); i++ )
			{
				j++;
				if ( j == pg.getVertexCount() )
					{ j = 0; }
				if ((( pg.getVertex(i).lat() < y ) && ( pg.getVertex(j).lat() >= y )) || (( pg.getVertex(j).lat() < y ) &&
				( pg.getVertex(i).lat() >= y )))
					{
						if ( pg.getVertex(i).lng() + (y - pg.getVertex(i).lat()) / 
						( pg.getVertex(j).lat() - pg.getVertex(i).lat() )
						*  ( pg.getVertex(j).lng() - pg.getVertex(i).lng())<x )
							{
								oddNodes = !oddNodes
							}
					}
			}
		
		return oddNodes;

	}    //    end of function
		

