#!/usr/local/bin/perl


use CGI qw(:all);


########################################################################
#
#   Subroutine to parse bkm version 2.2 files
#
# 	Daddy-O productions, 7/98
#
##########################################################################


##$bkm_fileName= "/misc/www/projects/eco/dev/cgi-bin/bkm2_3.txt"; ## DM
##$bkm_fileName= "bkm2_3.txt";	## DM
$output = $ENV{'QUERY_STRING'};	## DM 
## Verify file name here if you like....
$bkm_fileName= $output;		## DM


	&Parse_bkm($bkm_fileName);


sub Parse_bkm($bkm_fileName) {

	$data_data_A = "";
	$data_righ_B = "";
	$data_data_B = "";
	@$file_file_B = "";
	@file_vari_B = "";
	@rese_proj_C = "";
	@rese_site_C = "";
	@data_stat_C = "";
	@supp_supp_D = "";

        $file_vari_B[0] = "file0";
	$var_cnt = "0";
	$var_mark = "0";
	$resrch_cnt = "0";
	$resrch_site_cnt = "0";
	$status_cnt = "0";
	$supp_cnt = "0";

	open( FILE, "<$bkm_fileName" ) || die "Can not open $bkm_fileName";
	while (<FILE>) {
	   $linedata = $_ ;

	   @dashdata = split( /_/, $linedata );
	   @quotedata = split( /"/, $linedata );
	   @colondata = split( /;/, $dashdata[8] );
	   

#   foreach $i (0 .. $#dashdata) {
#     print  $i, $dashdata[$i], "\n";
#   }
#   foreach $i (0 .. $#quotedata) {
#     print  $i, $quotedata[$i], "\n";
#   }

#print  $dashdata[2], $quotedata[1], $quotedata[3], "\n";

	   foo:  {
	     if ( substr($dashdata[0],0,1) eq "#") { last foo; }
#	print "first char = ", substr($dashdata[0],0,1),"\n";

	     if (($dashdata[2] eq "A" )&&( $dashdata[4] eq "dataset" )&&( $dashdata[6] eq "dataset" )){
		$data_data_A = $data_data_A."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "B" )&&( $dashdata[4] eq "dataset" )&&( $dashdata[6] eq "rights" )){
		$data_righ_B = $data_righ_B."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "B" )&&( $dashdata[4] eq "dataset" )&&( $dashdata[6] eq "dataset" )){
		$data_data_B = $data_data_B."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "B" )&&( $dashdata[4] eq "file" )&&( $dashdata[6] eq "file" )){
		$file_cnt = $dashdata[5];
		$file_file_B[$file_cnt] = $file_file_B[$file_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "B" )&&( $dashdata[4] eq "file" )&&( $dashdata[6] eq "variable" )){
		if ($var_mark != 10*$dashdata[5] + $dashdata[7] ) {
		   $var_mark = 10*$dashdata[5] + $dashdata[7];
		   $var_cnt++ ;
		   $file_vari_B[$var_cnt] = "file_".$file_cnt;
		}
		$file_vari_B[$var_cnt] = $file_vari_B[$var_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "C" )&&( $dashdata[4] eq "research" )&&( $dashdata[6] eq "project" )){
		$resrch_cnt = $dashdata[5];
		$rese_proj_C[$resrch_cnt] = $rese_proj_C[$resrch_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "C" )&&( $dashdata[4] eq "research" )&&( $dashdata[6] eq "site" )){
		$resrch_site_cnt = $dashdata[5];
		$rese_site_C[$resrch_cnt] = $rese_site_C[$resrch_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "C" )&&( $dashdata[4] eq "dataset" )&&( $dashdata[6] eq "status" )){
		$status_cnt = $dashdata[5];
		$data_stat_C[$status_cnt] = $data_stat_C[$status_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	     if (($dashdata[2] eq "D" )&&( $dashdata[4] eq "supplemental" )&&( $dashdata[6] eq "supplemental" )){
		$supp_cnt = $dashdata[5];
		$supp_supp_D[$supp_cnt] = $supp_supp_D[$supp_cnt]."&".$colondata[0].";".$quotedata[1];
		last foo;
	     }
	   }
	}

	close (FILE);

#Output strings
	print "Content-type: text/html\n"; ## dm
	print "\n";			   ## dm
 
	$data_data_A = "data_data_A".$data_data_A;
	print $data_data_A, "\n";

	$data_righ_B = "data_righ_B".$data_righ_B;
	print $data_righ_B, "\n";

	$data_data_B = "data_data_B".$data_data_B;
	print $data_data_B, "\n";

	foreach $i (0 .. $file_cnt) {
	   $file_file_B[$i] = "file_file_B_".$i.$file_file_B[$i];
  	   print $file_file_B[$i], "\n";
	}
	foreach $i (0 .. $var_cnt) {
	   $file_vari_B[$i] = "file_vari_C_".$i.$file_vari_B[$i];
  	   print $file_vari_B[$i], "\n";
	}
	foreach $i (0 .. $resrch_cnt) {
	   $rese_proj_C[$i] = "rese_proj_C_".$i.$rese_proj_C[$i];
  	   print $rese_proj_C[$i], "\n";
	}
	foreach $i (0 .. $resrch_site_cnt) {
	   $rese_site_C[$i] = "rese_site_C_".$i.$rese_site_C[$i];
  	   print $rese_site_C[$i], "\n";
	}
	foreach $i (0 .. $status_cnt) {
	   $data_stat_C[$i] = "data_stat_C_".$i.$data_stat_C[$i];
  	   print $data_stat_C[$i], "\n";
	}
	foreach $i (0 .. $supp_cnt) {
	   $supp_supp_D[$i] = "supp_supp_D_".$i.$supp_supp_D[$i];
  	   print $supp_supp_D[$i], "\n";
	}

}


