<?LassoScript

var ('path_to_fonts')=('/usr/share/fonts/default/truetype/');
var ('grid') =  Image('images/sec_grid.jpg');
var ('overlay') = image('images/sec_overlay.gif');
var ('seed') = 'secret code';
var ('fonts') = array(
                'verdana.ttf', 'trebuc.ttf', 'times.ttf',
                'tahoma.ttf', 'georgia.ttf', 'arial.ttf',
                'comic.ttf', 'impact.ttf');

var ('colors') = array('Black', 'Gray', 'Green', 'Red', 'Pink', 'Purple', 'Orange');
var ('code')	= string (decrypt_blowfish (action_param('s'), -seed=$seed));
var ('rand1')	= math_random(-min=-10,-max=10); // for wave graphic first parameter
var ('rand2')	= math_random(-min=40,-max=60); // for wave graphic first parameter
var ('rand3')	= math_random(-min=-10,-max=10); // for wave graphic first parameter
var ('rand4')	= math_random(-min=-40,-max=60);// for wave graphic second parameter
var ('rand5')	= math_random(-min=-90,-max=90);// for wave graphic second parameter
var ('rand_size')= math_random(-min=30,-max=45); // random font size
var ('rand_font')= $fonts->(get(math_random(-min=1,-max=($fonts->size)))) ;// pick a random font
var ('rand_color')= $colors->(get(math_random(-min=1,-max=($colors->size)))) ;// pick a random color
var ('rand_top')	= math_random(-min=10+$rand_size,-max=80);// for wave graphic second parameter
var ('rand_left')= math_random(-min=2,-max=200-$rand_size*4);// for wave graphic second parameter

$overlay->Annotate( ($code), -Left=$rand_left, -Top=$rand_top, -Font=($path_to_fonts + $rand_font), 
	-Size=$rand_size, -Color=$rand_color, -Aliased) & Execute('mogrify -wave ' $rand1 'x' $rand2);

$grid->Execute('mogrify -swirl ' $rand5 ' -implode .5');
$grid->Execute('mogrify -wave ' $rand3 'x' $rand4);
$grid->Composite( $overlay,-op='over');

while(($grid->data)->size < 2000);
	sleep(2);
/while;

var('image')=($grid->data);

if( var_defined('image') );
	file_serve($image,-type='image/jpeg');
else;
	log_critical('Error : The secure image was not generated in time for serving.');
/if;


?>