#!/usr/bin/perl
require "kisrael.pl";

use List::Util qw(shuffle);

&chugCGI(*input);


print "Content-type:text/html\n\n";

$raw = $input{"text"};
if($raw eq ""){
    $ignorecase = "CHECKED";
} else {
$ignorecase = $input{"ignorecase"};
$reverse = $input{"reverse"};
$nosort = $input{"nosort"};
$dedup = $input{"dedup"};
$shuffle = $input{"shuffle"};
}
if($raw ne ""){
    $raw =~ s/\r//g;
    if($nosort eq  ""){
	if($ignorecase ne ""){
	    @lines = sort {uc($a) cmp uc($b)} (split(/\n/,$raw));
	} else {
	    @lines = sort(split(/\n/,$raw));
	}
    } else {
	@lines = split(/\n/,$raw);
    }
    if($reverse ne ""){
	@lines = reverse(@lines);
    }
    print "<hr>";

    if($shuffle ne ""){
	@lines = shuffle(@lines);
    }


    foreach $line (@lines){
	$line =~ s/\</\&lt\;/g;
	$line =~ s/\>/\&gt\;/g;

	if($dedup eq ""){
	    print "$line<br>\n";
	} else {
	    if(! defined($showed{$line})){
		print "$line<br>\n";
	    }		
	    $showed{$line} = "on";
	}
    }

    print "<hr>";
}



print<<__EOQ__;
<head><title>sortof</title></head>
<a href="/">kisrael.com</a> | <a href="/tools/">tools</a> |
<b>sortof v0.4</b><br>
A really simple sorting program. Current, just paste text into the box and it will return all the lines, sorted.
<br>
<form method="post">
<textarea name="text" cols=80 rows=15>$raw</textarea><br>
<input type="checkbox" $ignorecase value="CHECKED" name="ignorecase">ignore case
<input type="checkbox" $reverse value="CHECKED" name="reverse">reverse order
<input type="checkbox" $nosort value="CHECKED" name="nosort">don't actually sort (useful for reverse)
<input type="checkbox" $dedup value="CHECKED" name="dedup">remove duplicates
<input type="checkbox" $shuffle value="CHECKED" name="shuffle">random shuffle

&nbsp;&nbsp;&nbsp;&nbsp;
<a href="#" onCLick="document.forms[0].elements[0].value='';return false;">(clear form)</a>
<br>
<input type="submit" value="sort"><br>	


</form>
__EOQ__

