#!/usr/bin/perl

# $carddata = `/home/mann/seatsale/readcard 1000`;  # exits when card stops moving
 $carddata = `/home/mann/seatsale/readcard_with_parity_check 1000`;  # exits when card stops moving
# print $carddata;
 chomp $carddata;
# $commandstring = "echo \'$carddata\' >> cards.txt";
# print $commandstring;
# system($commandstring);
# $commandstring2 = "tail -1 cards.txt";
# system($commandstring2);
 #echo "hello^world" | sed  s/"\^"/\ /
 $carddata =~ s/\^/\ /;
 $carddata =~ s/\^/\ /;
 $carddata =~ s/\^/\ /;
 $carddata =~ s/\^/\ /;
 $carddata =~ s/\^/\ /;
 $carddata =~ s/\$/\ /;
 $carddata =~ s/\$/\ /;
 $carddata =~ s/\$/\ /;
 $carddata =~ s/\$/\ /;
 $carddata =~ s/\$/\ /;
 $carddata =~ s/\//\ /;
 $carddata =~ s/\//\ /;
 $carddata =~ s/\//\ /;
 $carddata =~ s/\//\ /;
 $carddata =~ s/\//\ /;
 print $carddata . "\n";

 $carddata =~ m/B(\d)/; # match B and a number
 ### print $1 ."\n"; # for debugging, prints the returned value of above line
 $cardtype = $1;

 if ($cardtype == 3) {
	$carddata =~ s/B(\d* ?\d* ?\d*) //; # ? matches 0 or 1 of the prev char
	$cardnumber = $1;
	
	print "American Express: ";
	print $cardnumber . "\n";
		
	$carddata =~ s/(\w*) //;
 	$cardlastname = $1;	

	print "Last Name: ";
	print $cardlastname . "\n";

	$carddata =~ s/(\w*) //;
 	$cardfirstname = $1;	

	print "First Name: ";
	print $cardfirstname . "\n";

	$carddata =~ s/.* //;
	
	$carddata =~ s/(\d\d)(\d\d)//;
	$endyear = $1;
	$endmonth = $2;
	#print "Expiry Date: ";
	#print $endmonth . "/" . $endyear ."\n";
	
	$carddata =~ s/(\d\d)(\d\d)//; # replace and match any 2 digits 
	$startyear = $1; #sed operator takes first () into $1 and 2nd () to $2..
	$startmonth = $2;
	#print "Start Date: ";
	#print $startmonth . "/" . $startyear ."\n";

	print $startmonth."/".$startyear." THRU ".$endyear."/".$endmonth."\n";

	$carddata =~ s/(\d*)//; # sed out everything past last string of numbers
	$secret = $1;
	print "Secret Number: ";
	print $secret . "\n";

 }

 if ($cardtype == 4) {
 	$carddata =~ s/B(\d{16}) //;
	$cardnumber = $1;
	
	print "Visa: ";
	print $cardnumber . "\n";

	$carddata =~ s/(\w*) //;
 	$cardlastname = $1;	

	print "Last Name: ";
	print $cardlastname . "\n";

	$carddata =~ s/(\w*) //;
 	$cardfirstname = $1;	

	print "First Name: ";
	print $cardfirstname . "\n";
	
	$carddata =~ s/.* //;
	
	$carddata =~ s/(\d\d)(\d\d)//;
	$year = $1;
	$month = $2;

	print "Expiry Date: ";
	print $month . "/" . $year ."\n";
	
	$carddata =~ s/(\d*)//;
	$secret = $1;

	print "Secret Number: ";
	print $secret . "\n";

	#print $carddata . "\n";
 }	

 if ($cardtype == 5) {
 	$carddata =~ s/B(\d{16}) //;
	$cardnumber = $1;
	
	print "Mastercard: ";
	print $cardnumber . "\n";

	$carddata =~ s/(\w*) //;
 	$cardlastname = $1;	

	print "Last Name: ";
	print $cardlastname . "\n";
	
	$carddata =~ s/(\w*) //;
 	$cardfirstname = $1;	

	print "First Name: ";
	print $cardfirstname . "\n";

	#$carddata =~ m/(\w\.)/;
	#print $1 . "\n";

	#parse out extra space or title... might want to put back title?
	$carddata =~ s/.* //;

	$carddata =~ s/(\d\d)(\d\d)//;
	$year = $1;
	$month = $2;

	print "Expiry Date: ";
	print $month . "/" . $year ."\n";

	$carddata =~ s/(\d*)//;
	$secret = $1;

	print "Secret Number: ";
	print $secret . "\n";

	#print $carddata . "\n";
 } 
 #print $carddata;

