#!/usr/bin/perl
##############################################################################
#
# 	Script to get details from FSA
#
##############################################################################

require 5.002;

use LWP::UserAgent;
use HTTP::Cookies;

$ua = new LWP::UserAgent;
$ua->agent("Mozilla/1.1 ".$ua->agent);
$cookies=new HTTP::Cookies(file=>'cookies.dat',autosave=>1);
$ua->cookie_jar($cookies);

$mainurl = "http://council.lancashire.gov.uk/mgMemberIndex.aspx?FN=PARTY&VW=LIST&PIC=0";
$outputfile  = 'lancscc.csv';
open OHFILE, '>'.$outputfile or die "failed to open file ($!) \n";

$| = 1;

# read in the page
$mainpage = fetch_url($mainurl);
@mpage = split(/\n/, $mainpage);

$count = 0;
foreach $line (@mpage) {
  chomp($line);
  if ($line =~ /href="mgUserInfo.aspx\?UID/) {
    $line =~ m/href="(mgUserInfo.aspx.*?)"/;
    $link = $1;
    $link = 'http://council.lancashire.gov.uk/'.$link;

    print "fetching: $link\n";
    $page = fetch_url($link);

    @bpage = split(/\n/, $page);

    $name  = '';
    $party = '';
    $const = '';
    $email = '';

    foreach $bline (@bpage) {

      if ($bline =~ /<title>/) {
        $bline =~ m/<title>(.*?)<\/title>/i;
        $name = $1;
        $name =~s/Councillor details - County Councillor //;
      }


      if ($bline =~ /mailto:/) {
        $bline =~ m/mailto:(.*?)"/;
        $email = $1;
      }

    }

    print OHFILE $name.'|'.$party.'|'.$const.'|'.$email."\n";

  }
}


close OHFILE;

sub do_post {

  my $url = shift(@_);
  my $pc  = shift(@_);

  my $res = $ua->post( $url,
    { pageNumber=> '0',
      firmName=> '',
      postcodeOut => $pc,
      searchType => '2',
      currAuthorisedInd => 'on',
    ddd => 'Submit' }  );

  # Return the result

  if ($res->is_success) { return $res->content; }
  else                  { return ''; }

}


sub fetch_url {

  my $url = shift(@_);

  # Create a request

  my $req = new HTTP::Request GET => $url;

  # Pass request to the user agent and get a response back

  my $res = $ua->request($req);

  # Return the result

  if ($res->is_success) { return $res->content; }
  else                  { return ''; }

}
