React = require 'react'
createClass = require 'create-react-class'
PropTypes = require 'prop-types'

{div, a} = require 'react-dom-factories'

###&
  @props.address1 - [String] - Optional
  First part of the address
  
  @props.address2 - [String] - Optional
  Second part of the address
  
  @props.address3 - [String] - Optional
  Third part of the address
  
  @props.city - [String] - Optional
  City or town
  
  @props.state - [String] - Optional
  State or province
  
  @props.zip - [String] - Optional
  ZIP/postal code

  @props.country - [String] - Optional
  country
  
  @props.mapLink - [Boolean] - Optional
  Build a link to google maps and display address as a clickable link.
  Link opens a new tab/window
&###


AddressUK = createClass

  displayName: 'AddressUK'

  propsTypes:
    address1: PropTypes.string
    address2: PropTypes.string
    address3: PropTypes.string
    city: PropTypes.string
    state: PropTypes.string
    zip: PropTypes.string
    country: PropTypes.string
    mapLink: PropTypes.string

  getDefaultProps: ->
    showCountry: yes
    mapLink: no

  render: ->
    {address1, address2, address3, city, state, zip, country, mapLink} = @props
    
    address = []
    mapAddress = ''

    if address1?
      address.push div {
        key: 'address1'
      }, address1
      mapAddress += "#{address1} "
    
    if address2?
      address.push div {
        key: 'address2'
      }, address2
      mapAddress += "#{address2} "
    
    if address3?
      address.push div {
        key: 'address3'
      }, address3  
      mapAddress += "#{address3} "
    
    if city?
      address.push div {
        key: 'city'
      }, city
      mapAddress += "#{city}"
    
    if state?
      address.push div {
        key: 'state'
      }, state
      if city? then mapAddress += ","
      mapAddress += " #{state}"
    
    if zip?
      address.push div {
        key: 'zip'
      }, zip
      mapAddress += " #{zip}"
    
    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 {className: 'address-display'}, address

module.exports = AddressUK