The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#! /usr/bin/perl 

use strict ; 
use warnings ; 

use JQuery::Demo ;
use CGI ; 

package main ;
my $tester =  new JQuery::Demo ; 
$tester->run ; 

package JQuery::Demo ;
use JQuery::Taconite ; 
use JQuery::Form ; 

# This initiates the form
# Note: the hidden field "rm" to tell the program which routine to use for the reply
# The form is just a simple form, with the addition of an id
# To use Taconite (Ajax), just add register Taconite with jquery, and add the id of the form


sub start {
    my $my = shift ;
    my $q = new CGI ; 

    $my->{info}{TITLE} = "Taconite With Form Example" ;

    my $jquery = $my->{jquery} ; 
    JQuery::Form->new(id => 'myForm', addToJQuery => $jquery) ; 

    my $html =<<EOD; 
<form id="myForm" action="/cgi-bin/jquery_form.pl" method="post"> 
    Name: <input type="text" name="name" /><br/> 
    Comment: <textarea name="comment"></textarea><br/> 
    <input type="submit" value="Submit Comment" /><br/> 
    <input type=hidden name="rm" value="reply" /><br/>
</form>
    <div id="example1" style="background-color: #ffa; padding:10px; border:1px solid #ccc"> 
    This is the <span style="color:#800">structure example</span> div. 
    </div>	 
    <div id="example4" style="background-color: orange; padding:10px; border:1px solid #bbb"> </div>	 
EOD
    
    $my->{info}{BODY} =  "<h1>START OF FORM EXAMPLE</h1>$html<h1>END OF EXAMPLE</h1>" ;
}


# This updates the form
sub reply { 
    my $my = shift ;
    
    #my $params = $my->Vars;
    #my $par ;
    #for (sort keys %$params) { 
#	$par .= "$_ = $params->{$_}<br />\n" ;
 #   } 


    my $env ;
    for (sort keys %ENV) { 
	$env .= "$_ = $ENV{$_}<br />\n" ; 
    } 

    my $result=<<EOD;
    
<taconite> 
    <after select="#example1"> 
        $env
        This text will go AFTER the example div. 
    </after> 
 
    <before select="#example1"> 
        <div>This div will go BEFORE the example div.</div> 
    </before> 
 
    <wrap select="#example1 span"> 
        <span style="border: 1px dashed #00F"></span> 
    </wrap> 
 
    <append select="#example1"> 
        <div>This div is APPENDED</div> 
    </append> 

    <replaceContent select="#example4"> 
        <pre> 
        lorem ipsum dolor sit amet 
        consectetuer adipiscing elit 
        </pre> 
    </replaceContent> 
 
    <slideDown select="#example4" value="100" /> 

</taconite>

EOD
 
$my->{info}{AJAX} = $result ; 
#print $q->header(-type=>'text/xml');
#print $result ; 

}