// JavaScript Document


//build arrays of known address markers

var stateNameArray = new Array("ALABAMA","AL","ALASKA","AK","AMERICAN SAMOA","AS","ARIZONA","AZ","ARKANSAS","AR","CALIFORNIA","CA","COLORADO","CO","CONNECTICUT","CT","DELAWARE","DE","DISTRICT OF COLUMBIA","DC","FEDERATED STATES OF MICRONESIA","FM","FLORIDA","FL","GEORGIA","GA","GUAM","GU","HAWAII","HI","IDAHO","ID","ILLINOIS","IL","INDIANA","IN","IOWA","IA","KANSAS","KS","KENTUCKY","KY","LOUISIANA","LA","MAINE","ME","MARSHALL ISLANDS","MH","MARYLAND","MD","MASSACHUSETTS","MA","MICHIGAN","MI","MINNESOTA","MN","MISSISSIPPI","MS","MISSOURI","MO","MONTANA","MT","NEBRASKA","NE","NEVADA","NV","NEW HAMPSHIRE","NH","NEW JERSEY","NJ","NEW MEXICO","NM","NEW YORK","NY","NORTH CAROLINA","NC","NORTH DAKOTA","ND","NORTHERN MARIANA ISLANDS","MP","OHIO","OH","OKLAHOMA","OK","OREGON","OR","PALAU","PW","PENNSYLVANIA","PA","PUERTO RICO","PR","RHODE ISLAND","RI","SOUTH CAROLINA","SC","SOUTH DAKOTA","SD","TENNESSEE","TN","TEXAS","TX","UTAH","UT","VERMONT","VT","VIRGIN ISLANDS","VI","VIRGINIA","VA","WASHINGTON","WA","WEST VIRGINIA","WV","WISCONSIN","WI","WYOMING","WY");

var streetTypeArray =new Array("ALLEY","ALLY","APPROACH","APP","ARCADE","ARC","AVENUE","AVE","BOULEVARD","BLVD","BROW","BROW","BYPASS","BYPA","CAUSEWAY","CWAY","CIRCUIT","CCT","CIRCUS","CIRC","CLOSE","CL","COPSE","CPSE","CORNER","CNR","COVE","COVE","COURT","CT","CRESCENT","CRES","DRIVE","DR","END","END","ESPLANANDE","ESP","FLAT","FLAT","FREEWAY","FWAY","FRONTAGE","FRNT","GARDENS","GDNS","GLADE","GLD","GLEN","GLEN","GREEN","GRN","GROVE","GR","HEIGHTS","HTS","HIGHWAY","HWY","LANE","LN","LINK","LINK","LOOP","LOOP","MALL","MALL","MEWS","MEWS","PACKET","PCKT","PARADE","PDE","PARK","PARK","PARKWAY","PKWY","PLACE","PL","PROMENADE","PROM","RESERVE","RES","RIDGE","RDGE","RISE","RISE","ROAD","RD","ROW","ROW","SQUARE","SQ","STREET","ST","STRIP","STRP","TARN","TARN","TERRACE","TCE","THOROUGHFARE","TFRE","TRACK","TRAC","TRUNKWAY","TWAY","VIEW","VIEW","VISTA","VSTA","WALK","WAY","WALKWAY","WWAY","YARD","YARD");

var directionArray = new Array("N","NORTH","NORTHWEST","NW","NORTHEAST","NE","EAST","E","SOUTHEAST","SE","SOUTH","S","SOUTHWEST","SW","WEST","W");

var secondaryUnitArray = new Array( "APARTMENT","APT","BASEMENT","BSMT","BUILDING","BLDG","DEPARTMENT","DEPT","FLOOR","FL","FRONT","FRNT","HANGAR","HNGR","LOBBY","LBBY","LOT","LOT","LOWER","LOWR","OFFICE","OFC","PENTHOUSE","PH","PIER","PIER","REAR","REAR","ROOM","RM","SIDE","SIDE","SLIP","SLIP","SPACE","SPC","STOP","STOP","SUITE","STE","TRAILER","TRLR","UNIT","UNIT","UPPER","UPPR");

function parseAddress()
{
var address = document.getElementById('address').value;
var number = '';
var streetName= '';
var streetType = '';


//remove commas, add a space
address = address.replace(/,/,' ')
//remove double spaces
address = address.replace(/\s{2,}/,' ')

address = address.replace(/\./,'')

//look for preset values - state, direction,street type, secondary unit (if any)
for(i=0;i<stateNameArray.length;i++)
{
 var regExpString = new RegExp("\\s{1}"+stateNameArray[i]+"\\s{1}","gi")
 if(address.match(regExpString))
 {
	state = address.match(regExpString);
	var regAddress = new RegExp(stateNameArray[i],"gi");
    address = address.replace(regAddress,'');
 }
}

for(i=0;i<directionArray.length;i++)
{
 var regExpString = new RegExp("\\s{1}"+directionArray[i]+"\\s{1}","gi")
 if(address.match(regExpString))
 {
	
var regAddress = new RegExp("\\s{1}"+directionArray[i]+"\\s{1}","gi");
address = address.replace(regAddress,' ');
 }
}


for(i=0;i<streetTypeArray.length;i++)
{
 var regExpString = new RegExp("\\s{1}"+streetTypeArray[i]+"\\s{1}","gi")
 if(address.match(regExpString))
 {
	streetType = address.match(regExpString);
	var regAddress = new RegExp(" "+streetTypeArray[i]+" ","gi");
	address = address.replace(regAddress,' ');
 }
}


var prenumber = address.match(/\d{1,}\s{1}\w{3,}/)
if(prenumber)number = prenumber[0].match(/\d{1,}\s{1}/)			 

var prename = address.match(/\d{1,}\s{1}\w{3,}\s{1}/)
if(prename) streetName = prename[0].match(/\s{1}\w{3,}/)


zip = address.match(/\s?\d{5}\s?/);
zip = zip[0].replace(' ','');
var regZip = new RegExp(" *"+zip,"gi");
address = address.replace(regZip,'');
address= address.replace(streetName,'');
address = address.replace(number,'');


//check for street type

 for(i=0;i<secondaryUnitArray.length;i++)
{
 var regExpString = new RegExp("\\w{0,4}\\s*"+secondaryUnitArray[i]+"\\s*\\d{0,4}","gi")
 if(address.match(regExpString))
 {
	address = address.replace(regExpString,' ');
 }
}


city = address;
street = number+" "+streetName+" "+streetType;

}