#--
# Ruby Whois
#
# An intelligent pure Ruby WHOIS client and parser.
#
# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
#++

require 'whois/record/parser/base'

module Whois
  class Record
    class Parser

      # Parser for the whois.corporatedomains.com server, added by Yang Li 02/05/2013.
      class WhoisMelbourneitCom < Base
		
	property_supported :admin_contacts do
          build_contact("Admin Name", Whois::Record::Contact::TYPE_ADMIN)
        end

        property_supported :registrant_contacts do
          build_contact("Domain Name", Whois::Record::Contact::TYPE_REGISTRANT)
        end

        property_supported :technical_contacts do
          build_contact("Tech Name", Whois::Record::Contact::TYPE_TECHNICAL)
        end

        property_not_supported :billing_contacts 

      private

        def build_contact(element, type)
          reg=Record::Contact.new(:type => type)
		  if content_for_scanner =~ /^#{element}\.+((.+\n)+)\n/i
			  line_num=1
			  addrs=''
			  $1.split(%r{\n}).each do |entry|
				  reg["name"]=entry if line_num==1
				  reg["organization"]=entry.strip.split(%r{\.\s}).last if entry =~ /Organisation Name/i
				  reg["phone"]=entry.strip.split(%r{\.\s}).last.strip if entry =~ /Phone/i
				  reg["fax"]=entry.strip.split(%r{\.\s}).last.strip if entry =~ /Fax/i
				  reg["email"]=entry.strip.split(%r{\.\s}).last.strip if entry =~ /Email/i
				  if entry =~ /Address\./i && !entry.strip.split(%r{\.\s})[1].nil?
					addrs = addrs + entry.strip.split(%r{\.\s})[1] + ", " 
				  end
				  reg["address"]=addrs
				  line_num=line_num+1
			  end
		end
	  return reg
        end	
		
      end
    end
  end
end