React = require 'react'

{div, a} = React.DOM

###
Address Props
@props.address1 - string - optional
@props.address2 - string - optional
@props.address3 - string - optional
@props.city - string - optional
@props.state - string - optional
@props.zip - string - optional
@props.mapLink - string - optional
###


Address = React.createClass

  displayName: 'Address'

  render: ->
    {address1, address2, address3, city, state, zip, country, mapLink} = @props
    
    cityStateZipString = ''
    address = []
    mapAddress = ''
    
    # Put city, state and zip on one line 
    if city? 
      cityStateZipString += city
    if state?
      if city? then cityStateZipString += ', '
      cityStateZipString += "#{state.toUpperCase()} "
    else
      cityStateZipString += ' '
    if zip? 
      if zip.length == 9 
        zip = zip.substr(0,5) + "-" + zip.substr(5,4)
      cityStateZipString += zip

    if address1?
      address.push(div {
        key: 1
      }, "#{address1} "
      )
      mapAddress += "#{address1} "
    if address2?
      address.push(div {
        key: 2
      }, "#{address2} "
      )
      mapAddress += "#{address2} "
    if address3?
      address.push(div {
        key: 3
      }, "#{address3} "
      )
      mapAddress += "#{address3} "
    if cityStateZipString.length 
      address.push(div {
        key: "cityStateZip"
        className: "capitalize"
      }, cityStateZipString
      )
      mapAddress += "#{cityStateZipString} " 
    if country?
      address.push(div {
        key: country
      }, "#{country}"
      )
      mapAddress += country

    if mapLink 
      return a {
        className: 'address block'
        target: '_blank'
        href: "https://www.google.com/maps/place/#{mapAddress}"
      }, address
    else
      return div {}, address



module.exports = Address