#!/usr/bin/perl

#------------------------------------------------------------------------------
#This PERL script makes one big list for all the files found under the user supplied
#directory.
#Written by Matthew McCready
#--------------------------------------------------------------------------

use Getopt::Long;
use File::Copy;
use File::Basename;
#use Time::Piece;
use lib "/mt/apps/gpms/DateTrans/lib";
use DateTrans qw(monName monNumber timeFormat AmPmFormat dayNumbeFormat);

#use lib "/home/m/mccre004/File-Recurse-0.11/blib/lib";
#use File::Recurse;


sub usage() {
        print "Usage: $0 [-file=<file>]\n";
        print "Example:perl $0 -file=file\n";
        print " where file is the filename\n";

}
%gOptions;
&GetOptions(\%gOptions, qw(file=s) );
unless ($gOptions{file}) {
        usage();
        exit(1);
};



#Infile = $gOptions{listfile};
$file=$gOptions{file};
#chdir $directory;
$counter=0;

open JSONFILE , "<$file"  or die "Cannot open $file";
$dotLoc=index($file,".");
$baseFile=substr($file,0,$dotLoc);
#print "\$baseFile = $baseFile\n"; 
$outFile=$baseFile . ".xml";
print "\$outFile = $outFile\n";
open OUTXML, ">$outFile" or die "Cannot open $outFile" ;

system "cnmod 777 $outFile";
 while (<JSONFILE>){
 #print "\$_ = $_\n\n";
 $line = $_;
 #if ($line eq "{"){
 #$line =~ /{/
 if($line =~ /{/){
  $bracketCounter++;
  #print "\$bracketCounter = $bracketCounter\n"; 
  if ($bracketCounter == 1){
   print OUTXML  "<RESTJSON>\n";
   print OUTXML  "<FileID>$outFile</FileID>\n";
   #$date=`date`;
   #my $date =localtime->strftime('%m/%d/%Y');
   my $now=`date`;
   $mon=substr($now,4,3);
   $finalMonth=&monNumber($mon);
   #print "\$finalMonth = $finalMonth\n";
   $day=substr($now,8,2);
   chomp($year=substr($now,24));
   $date = $year . $finalMonth . $day;
   #print "\$date = $date\n";
   print OUTXML  "<Date>$date</Date>\n";
   $underscoreLoc=index($outFile,"_");
   $vintage=substr($outFile,0,$underscoreLoc);
   #print "\$vintage = $vintage\n";
   $dotLoc=index($outFile,".");
   $length=$dotLoc-$underscoreLoc-1;
   $service =substr($outFile,$underscoreLoc+1,$length);
   #print "\$service = $service\n";

   if($vintage=~/TIGERweb/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/TIGERweb";
   }elsif($vintage=~/Generalized_ACS2016/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/Generalized_ACS2016";
   }elsif($vintage=~/Generalized_ACS2015/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/Generalized_ACS2015";
   }elsif($vintage=~/Generalized_ACS2012/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/Generalized_ACS2012";
   }elsif($vintage=~/Census2010/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/Census2010";
   }elsif($vintage=~/Basemaps/){
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services/Basemaps";
   }else{
    $baseURL="https://tigerweb.geo.census.gov/arcgis/rest/services";
   };

   $completeURL=$baseURL . "/" . $service . "/MapServer";
   #print "\$completeURL = $completeURL\n";
   print OUTXML  "<URL>$completeURL</URL>\n";
  }#if ($bracketCounter == 1){


 #"layers": [
 }elsif($line =~ /layers/){
  $layeron="yes";
  print OUTXML  "<layers>\n"
  #tables
 }elsif($line =~/tables/){
  if ($ACS2015 eq "yes"){
   #print OUTXML"<!-- acs 2015 -->\n";
   print OUTXML "</SubLayerInfo>\n";
   print OUTXML "</LayerInfo>\n";
   print OUTXML  "</layers>\n";
   print OUTXML "<tables/> \n";
   $finishedeLayers="yes";
   $ACS2015 ="no";
   #print "tables ACS2015-------------------------\n\n";
  }else{
   print OUTXML"<!-- tables -->\n";
   print OUTXML "</LayerInfo>\n";
   print OUTXML  "</layers>\n";
   print OUTXML "<tables/>\n";
   $finishedeLayers="yes";
   print "tables regular----------------------------------\n\n";
  };
  #wkid
 }elsif($line =~/wkid/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  #print "---------------------------------------------\n";
  #print "\$line = $line\n";
  #print "\$tag = $tag\n";
  #print "\$finalTag = $finalTag\n";
  #print "\$value = $value\n";
  #print "\$finalValue = $finalValue\n";
  #print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
 }elsif($line =~/latestWkid/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  #$value=substr($line,$semiColonLoc+1);
  #$commaLoc=index($value,",");
  #$finalValue=substr($value,0,$commaLoc);
  ##
  ##print "---------------------------------------------\n";
  ##print ":q\$line = $line\n";
  ##print "\$tag = $tag\n";
  ##print "\$finalTag = $finalTag\n";
  ##print "\$value = $value\n";
  ##print "\$finalValue = $finalValue\n";
  ##print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
  #units
 }elsif($line =~/units/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  #print OUTXML"<!-- check kere!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
 }elsif($line =~/id/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  if ($line  =~/maxImageWidth/){
   $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  }elsif($ACS2016 eq "yes"){
  }elsif($ACS2015 eq "yes"){
  }else{
   $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
   print OUTXML "<LayerInfo>\n";
  };
 }elsif($line =~/mapName/){
  #$ACS2016="yes";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=rindex($value,",");
  $quoteLoc = index($value,"\"");
  $lastQouteLoc=rindex($value,"\"");
  $finalValue=substr($value,$quoteLoc+1,$lastQouteLoc-2);
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n"
 }elsif($line =~/description/){
  #$ACS2016="yes";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=rindex($value,",");
  $quoteLoc = index($value,"\"");
  $lastQouteLoc=rindex($value,"\"");
  $finalValue=substr($value,$quoteLoc+1,$lastQouteLoc-2);
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n"
 }elsif($line =~/ACS 2016/){
  #print "dealing with ACS 2016\n";
  $ACS2016="yes";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $quoteLoc = index($value,"\"");
  $lastQouteLoc=rindex($value,"\"");
  $finalValue=substr($value,$quoteLoc+1,$lastQouteLoc-2);
  #print "\$line = $line\n";
  #print "\$quoteLoc = $quoteLoc\n";
  #print "\$lastQouteLoc = $lastQouteLoc\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  #print "\$outLine = $outLine\n";
  print OUTXML "$outLine\n";
  #print "\n\n\n";
 }elsif($line =~/ACS 2015/){
  #print "dealing with ACS 2015\n";
  print OUTXML "</SubLayerInfo>\n";
  print OUTXML "</LayerInfo>\n";
  print OUTXML "<LayerInfo>\n";
  $ACS2016="no";
  $ACS2015="yes";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $quoteLoc = index($value,"\"");
  $lastQouteLoc=rindex($value,"\"");
  $finalValue=substr($value,$quoteLoc+1,$lastQouteLoc-2);
  #print "\$quoteLoc = $quoteLoc\n";
  #print "\$lastQouteLoc = $lastQouteLoc\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n"
 }elsif($line =~/name/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  if ($ACS2016 eq "yes"){
  }else{
   $value=substr($line,$semiColonLoc+1);
   $commaLoc=index($value,",");
   $quoteLoc = index($value,"\"");
   $lastQouteLoc=rindex($value,"\"");
   $finalValue=substr($value,$quoteLoc+1,$lastQouteLoc-2);
   ##print "\$quoteLoc = $quoteLoc\n";
   ##print "\$lastQouteLoc = $lastQouteLoc\n";
   $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
   print OUTXML "$outLine\n";
  };

 #maxScale
 }elsif($line =~/maxScale/){
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  #print "\$ACS2016 = $ACS2016 (maxscale)\n";
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
  if ($finishedeLayers ne "yes"){#dealing with the tables. If the tables variable has been reached, do not put the end tag
   #print OUTXML "</LayerInfo>\n";
   #print "finished the layers!!!!!!!!!!!!!!!!!!!!!!\n";
   if($ACS2016 eq "yes"){
    $ACS2016Counter++;
    #print "dealing with ACS 2016 in th maxScale!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
    if ($ACS2016Counter >1){
     print OUTXML "</SubLayerInfo>\n";
     print OUTXML "<SubLayerInfo>\n";
    }else{
     print OUTXML "<SubLayerInfo>\n";
    };
   }elsif($ACS2015 eq "yes"){
   $ACS2015Counter++;
   if ($ACS2015Counter >1){
    print OUTXML "</SubLayerInfo>\n";
    print OUTXML "<SubLayerInfo>\n";
   }else{
    print OUTXML "<SubLayerInfo>\n";
   };
   }else{
    print OUTXML "</LayerInfo>\n";
    #print "finished the layers!!!!!!!!!!!!!!!!!!!!!!\n";
   };
   }else{
    #print "finished pwith the layers\n";
   };

 #maxImageWidth
 }elsif($line =~/maxImageWidth/){
  #print "\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n";
  #print "dealing with maxImageWidth\n";
  #print "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n\n";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  print OUTXML"<!-- check kere!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->\n";
  #print "<!-- check kere!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
  #print OUTXML "</LayerInfo>\n";
 }elsif($line =~/maxImageHeight/){
  #print "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n";
  #print "dealing with maxImageHeight\n";
  #print "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n\n";
  $semiColonLoc= index($line,":");
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,0,$commaLoc);
  #print OUTXML"<!-- check kere!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->\n";
  #print "<!-- check kere!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
 
 }elsif($line =~/capabilities/){
   $semiColonLoc= index($line,":");

  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);

  $value=substr($line,$semiColonLoc+1);
  $commaLoc=rindex($value,",");
  $quoteLoc = index($value,"\"");
  $lastqoute = rindex($value,"\"");
  $length=$lastqoute- $quoteLoc-1;
  $finalValue=substr($value,$quoteLoc+1, $length);
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  
  print OUTXML "$outLine\n";
  print "\n\n-----------------------------------------\n";
  print "\$finalTag = $finalTag\n";
  print "\$value = $value\n";
  print "\$length = $length\n";
  print "\$finalValue = $finalValue\n";
  print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
 
 print OUTXML "<JSONcapabilities>\n";
print "\n\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n";
#do {
# print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n\n";
#  if ($doLoopCounter==0){
#   print "The first time!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
#   $finalValueCommaLoc=index($finalValue,",");
#   $newValue=substr($finalValue,0,$finalValueCommaLoc);
#   $postValue =substr($finalValue,$finalValueCommaLoc);  
#   $outLine= "<" . $finalTag . ">" . $newValue . "</" . $finalTag . ">";
#   print "$outLine\n";
#   print OUTXML "$outLine\n";
#  }else{
#   print "in the else!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
#   $finalValueCommaLoc=index($newPostValue,",");
#   $lastComma=rindex($newPostValue,","); 
#   if ($lastComma >1){
#    print "in the else-if!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"; 
#    $newValue=substr($postValue,$finalValueCommaLoc+1,$lastComma-1);
#    $outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
#    print OUTXML "<!-- In the else-if-->"; 
#    print OUTXML "$outLine\n";
#    print "$outLine\n";
 #   $postValueA=$postValue;
#    print "\$doLoopCounter = $doLoopCounter\n";
#    print "\$postValueA = $postValueA\n";
#    print "\$lastComma = $lastComma\n";
#    $postValue="";
#    $postValue=substr($postValueA,$lastComma+1);
#    print "\$postValue = $postValue\n";   
#   }elsif ($lastComma<0){
#  }else{
 #   print OUTXML "<!-- In the else-else ooooooooooooooooooooooooooooooooooooooooooooooooo-->";
 #    $newValue=substr($postValue,$finalValueCommaLoc+1);
 #    $outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
 #    print OUTXML "$outLine\n";
 #    $postValueA=$postValue;
 #   $postValue="";
 #   $postValue=substr($postValueA,$lastComma);
     #last;
    };#if ($lastComma >1){
    #print "\n\n--do loop maddness---------------------------------------\n";
    #print "in the else!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
    #print "\$newPostValue = $newPostValue\n";
    #print "\$finalValueCommaLoc = $finalValueCommaLoc\n";
    #print "\$lastComma = $lastComma\n";
    #print "\$newValue = $newValue\n";
    #print "\$postValue =  $postValue (redone!!!!!!!!!!!!!!!!!!!!!!!!)\n\n";
    #print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
    #$outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
    #print OUTXML "$outLine\n";
   };#
 # $doLoopCounter++;
  #if ($doLoopCounter ==1)(
  $newPostValue =substr($finalValue,$finalValueCommaLoc);
  $newPostValueCommaLoc=index( $newPostValue,",");
  #print "\n\n--do loop maddness---------------------------------------\n";
  # print "\$newPostValue =  $newPostValue\n";
  # print "\$newPostValueCommaLoc = $newPostValueCommaLoc\n";
 # print "\$doLoopCounter = $doLoopCounter\n";
  # print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
  #if ($newPostValueCommaLoc >0){
     $finalValue=$postValue;
     $finalValueCommaLoc=$newPostValueCommaLoc; 
  #print " BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB Do-Loop\n";
  #}else{  
   $newPostValue =$postValue;
  #};
 #};
#};#if ($doLoopCounter==0){
# print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n\n";
#  }until ($finalValueCommaLoc<0);
                                                                                                                                                   
print "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n\n";
print OUTXML "</JSONcapabilities>\n";
 }elsif($line =~/supportedQueryFormats/){
  $semiColonLoc= index($line,":"); 
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);

  $value=substr($line,$semiColonLoc+1);
  $commaLoc=rindex($value,",");
  $quoteLoc = index($value,"\"");
  $lastqoute = rindex($value,"\"");
  $length=$lastqoute- $quoteLoc-1;
  $finalValue=substr($value,$quoteLoc+1, $length);
  #$finalValueCommaLoc=index($finalValue,",");
  
  $doLoopCounter=0;
  #QueryFormats
  print OUTXML "<QueryFormats>";
  do {
  if ($doLoopCounter==0){
   #print "The first time!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
   $finalValueCommaLoc=index($finalValue,",");
   $newValue=substr($finalValue,0,$finalValueCommaLoc);
   $postValue =substr($finalValue,$finalValueCommaLoc);  
   $outLine= "<" . $finalTag . ">" . $newValue . "</" . $finalTag . ">";
   #print "$outLine\n";
   print OUTXML "$outLine\n";
  }else{
   #print "in the else!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
   $finalValueCommaLoc=index($newPostValue,",");
   $lastComma=rindex($newPostValue,","); 
    if ($lastComma >1){
     $newValue=substr($postValue,$finalValueCommaLoc+2,$lastComma);
     $outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
    print OUTXML "$outLine\n"
    }elsif ($lastComma<0){
    }else{
     $newValue=substr($postValue,$finalValueCommaLoc+2);
     $outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
     print OUTXML "$outLine\n"
     #last;
    };
    #print "\n\n--do loop maddness---------------------------------------\n";
    #print "in the else!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";
    #print "\$newPostValue = $newPostValue\n";
    #print "\$finalValueCommaLoc = $finalValueCommaLoc\n";
    #print "\$lastComma = $lastComma\n";
    #print "\$newValue = $newValue\n";
    # print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
    #$outLine= "<" . $finalTag . ">" . $newValue  . "</" . $finalTag . ">";
    #print OUTXML "$outLine\n";
  };
  $doLoopCounter++;
   $newPostValue =substr($finalValue,$finalValueCommaLoc);
   $newPostValueCommaLoc=index( $newPostValue,",");
    #print "\n\n--do loop maddness---------------------------------------\n";
    # print "\$newPostValue =  $newPostValue\n";
    # print "\$newPostValueCommaLoc = $newPostValueCommaLoc\n";
     #print "\$doLoopCounter = $doLoopCounter\n";
    # print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
   if ($newPostValueCommaLoc >0){
     $finalValue=$postValue;
     $finalValueCommaLoc=$newPostValueCommaLoc;
   };
  #print " BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB Do-Loop\n";
  }until ($finalValueCommaLoc<0);

  #outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";

  #print OUTXML "$outLine\n";
   print OUTXML "</QueryFormats>";
  print "\n\n-----------------------------------------\n";
  print "\$finalTag = $finalTag\n";
  print "\$value = $value\n";
  print "\$length = $length\n";
  print "\$finalValue = $finalValue\n";
  print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";

  
 }elsif($line =~ /:/){ 
  $semiColonLoc= index($line,":");
  #$tag=substr($line,0,$semiColonLoc-1);
  $tag=substr($line,0,$semiColonLoc-1);
  $quoteLoc=index($tag,"\"");
  $finalTag=substr($tag,$quoteLoc+1);
  $value=substr($line,$semiColonLoc+1);
  $commaLoc=index($value,",");
  $finalValue=substr($value,1,$commaLoc);
  #print "---------------------------------------------\n";
  #print "\$line = $line\n";
  #print "\$tag = $tag\n";
  #print "\$finalTag = $finalTag\n";
  #print "\$value = $value\n";
  #print "\$finalValue = $finalValue\n";
  #print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
  $outLine= "<" . $finalTag . ">" . $finalValue . "</" . $finalTag . ">";
  print OUTXML "$outLine\n";
 };#if ($line eq "{"){
};#hile (<JSONFILE>){	

print OUTXML  "</RESTJSON>";
