#!/usr/bin/perl -X
use LWP;
use XML::Simple;
use MIME::Base64;
use HTTP::Headers;


#######################################################################################################################################
sub DoHTTPCall($)
{
  my ($xml) = @_;

  $ua = new LWP::UserAgent;
  #$request = HTTP::Request->new('POST',"$HTTP");
  #$request->content("POSTDATA=$xml");
  my $headers = HTTP::Headers->new('UNIT_TEST_HEADER' => '1');    
  $request = HTTP::Request->new('GET',"$HTTP",$headers);
  $request->content("$xml");
  $ua->timeout(3600);
  $response = $ua->request($request);
  $TicketXML = $response->content;
  if($TicketXML eq "") {print "No Data Returned \@ Line(".__LINE__.")\n"; exit(-1);}
  if($DEBUG==1) {print "\n|Return||$TicketXML||\n\n";}

  return(XMLin($TicketXML,SuppressEmpty => undef));
}

#######################################################################################################################################
sub ShowXML()
{
 my ($xml,$depth) = @_;
 my $loop=0;

 for(my $x=0;$x<$depth;$x++) {print "\t";}
 print "Start\n";

 while(my ($key,$value) = each(%$xml))
 {
  for(my $x=0;$x<$depth;$x++) {print "\t";}

  print "$key | $value\n";
  if(ref($value) eq "HASH")
  {
    ShowXML($value,$depth+1);
  }
  elsif(ref($value) eq "ARRAY")
  {
    $loop=0;
    do
    {
      for(my $x=0;$x<$depth;$x++) {print "\t";}

      print "$key $loop | ".$value->[$loop]."\n";
      if(ref($value->[$loop]) eq "HASH")
      {
        ShowXML($value->[$loop],$depth+1);
      }
    }while(defined($value->[++$loop]));
  }
 }
 for(my $x=0;$x<$depth;$x++) {print "\t";}
 print "End\n";
}

sub xml_friendly
{
  #my $this=shift;
  my ($msg) = @_;
  my $loop=0;
  my $rep;
  my $repchar;

  $msg =~ s/\&/\&amp;/ig;
  $msg =~ s/\"/\\\'/ig;
  $msg =~ s/\</\&lt;/ig; #break the xml
  $msg =~ s/\>/\&gt;/ig; #break the xml

  for($loop=1;$loop<32;$loop++)
  {
    if($loop==10 || $loop==13)
    {
    }
    else
    {
      $rep = "&#$loop;";
      $repchar = chr($loop);
      $msg =~ s/$repchar/$rep/ig;
    }
  }

  for($loop=128;$loop<256;$loop++)
  {
    if ($loop != 223)
    {
      $rep = "&#$loop;";
      $repchar = chr($loop);
      $msg =~ s/$repchar/$rep/ig;
    }
  }

  return($msg);
}

1; 
