Implements an image recognition captcha.

"; break; case 'admin/modules#description': case 'admin/modules/textimage': case 'admin/textimage': $output = t('Implements an image recognition captcha.'); break; } return $output; } function textimage_captchachallenge(&$form) { $form['captcha_response'] = array ( '#type' => 'textfield', '#title' => t('Captcha Validation'), '#default_value' => '', '#required' => TRUE, '#validate' => array('_captcha_validate' => array()), '#description' => t('Please type in the letters/numbers that are shown in the image above.'), '#prefix' => 'Captcha Image: you will need to recognize the text in it.', ); return $form; } function textimage_captchavalidate(&$captcha_word, &$correct) { $captcha_word = drupal_strtolower($captcha_word); if (($_SESSION['captcha'] != '') && $captcha_word == $_SESSION['captcha']) { $correct = true; } else { $correct = false; form_set_error('captcha_response', t('The image verification code you entered is incorrect.')); } } /** * Implementation of hook_menu(). */ function textimage_menu($may_cache) { $items = array(); $suffix = ''; if (arg(2)!=null) $suffix='/'.arg(2); $items[] = array( 'path' => '_textimage/image'.$suffix, 'title' => t('textimage'), 'callback' => '_textimage_image', 'access' => user_access('access textimages'), 'type' => MENU_CALLBACK ); return $items; } function textimage_perm() { return array('access textimages'); } function textimage_settings() { $fonts_path = variable_get("textimage_fonts_path", ""); $images_path = variable_get("textimage_images_path", ""); //check for GD if (!function_exists(imagecreate)) drupal_set_message(t('Image library not available. Textimage needs the GD library extension to be installed. Please install GD.')); //check for TTF support elseif (!function_exists(imagettftext)) drupal_set_message(t('Your image library does not seem to have TrueType font support. Textimage will work, but will use the default inbuilt font.'),'status'); //check for valid font path elseif ($fonts_path!="" && !is_dir($fonts_path)) drupal_set_message(t('The current font path is invalid. The default font will be used.')); //check for valid image path if ($images_path!="" && !is_dir($images_path)) drupal_set_message(t('The current images path is invalid. No images will be used.')); //Fonts settings $form['fonts'] = array( '#type' => 'fieldset', '#title' => t('Fonts settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['fonts']['textimage_use_only_upper'] = array( '#type' => 'checkbox', '#title' => t('Use only Uppercase'), '#default_value' => variable_get('textimage_use_only_upper',0) ); $form['fonts']['textimage_fonts_path'] = array( '#type' => 'textfield', '#title' => t('TrueType Fonts Path'), '#default_value' => $fonts_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the Truetype (.ttf) fonts are stored. If you do not provide any fonts, the module will use the default font for text. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['fonts']['textimage_font_size'] = array( '#type' => 'textfield', '#title' => t('Font Size'), '#default_value' => variable_get('textimage_font_size',24), '#size' => 5, '#maxlength' => 2, '#description' => t('Font size of Captcha text (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_font_size")), ); $form['fonts']['textimage_char_spacing_max'] = array( '#type' => 'textfield', '#title' => t('Character Spacing'), '#default_value' => variable_get('textimage_char_spacing_max',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the kerning between letters in Captcha. Higher numbers indicate more spacing.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_spacing_max")), ); $form['fonts']['textimage_char_jiggle_amount'] = array( '#type' => 'textfield', '#title' => t('Character Jiggle'), '#default_value' => variable_get('textimage_char_jiggle_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of up and down movement in the Captcha letters. Higher numbers indicate more jiggling.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_jiggle_amount")), ); $form['fonts']['textimage_char_rotate_amount'] = array( '#type' => 'textfield', '#title' => t('Character Rotation'), '#default_value' => variable_get('textimage_char_rotate_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of rotation in the Captcha letters (in degrees, only works with non-default fonts).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_rotate_amount")), ); $form['fonts']['textimage_char_size_amount'] = array( '#type' => 'textfield', '#title' => t('Character Size Adjustment'), '#default_value' => variable_get('textimage_char_size_amount',2), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of variation in size between the different letters in the Captcha (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_size_amount")), ); //Image settings $form['images'] = array( '#type' => 'fieldset', '#title' => t('Image settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['images']['textimage_images_path'] = array( '#type' => 'textfield', '#title' => t('Background Images Path'), '#default_value' => $images_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the background images are stored. If you do not provide a directory, solid colors will be used. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['images']['textimage_image_noise'] = array( '#type' => 'textfield', '#title' => t('Image Noise (pixels)'), '#default_value' => variable_get('textimage_image_noise',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random pixels) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_noise")), ); $form['images']['textimage_image_lines'] = array( '#type' => 'textfield', '#title' => t('Image Noise (lines)'), '#default_value' => variable_get('textimage_image_lines',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random lines) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_lines")), ); $form['images']['textimage_image_margin'] = array( '#type' => 'textfield', '#title' => t('Image Margin'), '#default_value' => variable_get('textimage_image_margin',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Set a distance between the Captcha letters and the edges of the image.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_margin")), ); $form['info'] = array( '#type' => 'fieldset', '#title' => t('Image and font information'), '#collapsible' => TRUE, '#collapsed' => FALSE ); if (isset($fonts_path)) { $imagefontinfo .= t('Number of fonts found: ').count(_textimage_font_list()); } if (isset($images_path)) { $imagefontinfo .= '
'.t('Number of background images found: ').count(_textimage_image_list()); } $gdinfo = gd_info(); $imagefontinfo .= '
'.t('GD Version: ').$gdinfo["GD Version"]; $imagefontinfo .= '
'.t(' FreeType Support: '); $imagefontinfo .= ($gdinfo["FreeType Support"]==true) ? 'True' : 'False'; $imagefontinfo .= '
'; $form['info']['captcha_info'] = array ( '#type' => 'item', '#value' => $imagefontinfo, ); return $form; } function textimage_settings_form_validate ($form_id,$form) { //check for valid font path if ($form['textimage_fonts_path'] !="" && !is_dir($form['textimage_fonts_path'])) form_set_error('textimage_fonts_path', t('The entered font path is invalid')); //check for valid image path if ($form['textimage_images_path'] !="" && !is_dir($form['textimage_images_path'])) form_set_error('textimage_images_path', t('The entered image path is invalid')); } function _textimage_number_validate ($field,$fieldName) { if (!is_numeric($field['#value'])) { form_set_error($fieldName,t("The value for")." ".t($field['#title'])." ".t("must be a number")); } } /** * Prints an image containing a textimage code. */ function _textimage_image() { //if we don't have GD2 functions, we can't generate the image if (!function_exists('imagecreatetruecolor')) return; // Set headers header('Expires: Mon, 01 Jan 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header('Content-type: image/png'); $string = _textimage_code(); // Get truetype font list $fonts = _textimage_font_list(); // Get the background images list $images = _textimage_image_list(); // Randomization amounts: $charSpacingMax = variable_get('textimage_char_spacing_max',10); // Letter spacing max (pixels) $charSpacingMin = max($charSpacingMax*.5,0); // Letter spacing minimum (pixels) $charJiggleAmount = variable_get('textimage_char_jiggle_amount',5); // Up and down randomization (pixels) $charRotateAmount = variable_get('textimage_char_rotate_amount',5); // Character rotation amount (degrees) $charSizeAmount = variable_get('textimage_char_size_amount',2); // Character size amount (pixels) $imageRotateAmount = variable_get('captcha_image_rotate_amount',12); // Image rotation amount (degrees) // Static amounts: $charInitialSize = variable_get('textimage_font_size',24); // Initial Font $imageNoise = variable_get('textimage_image_noise',4); // Amount of noise added to image $imageLines = variable_get('textimage_image_lines',4); // Amount of noise added to image $imageMargin = variable_get('textimage_image_margin',10); // Margin around image (pixels) // write text using a truetype font if (function_exists(imagettftext) && count($fonts) > 0) { // Initialize variables for the loop $characterDetails = array(); // contains the final info about each character // Build a list of character settings for the captcha string for ($i=0;$i $charSize, "angle" => $charAngle, "x" => $x, "y" => $y, "color" => $foreground, "font" => $font, "char" => $char ); // Increment the image size $imageWidth = $x + $charWidth; $imageHeight = max($imageHeight,$y+$charJiggleAmount); } // Create the image based off the string length and margin if (count($images) > 0) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Specify colors to be used in the image $foreground = imagecolorallocate($im, rand(0, 80), rand(0, 80), rand(0, 80)); foreach($characterDetails as $char) { // draw character imagettftext($im,$char['size'],$char['angle'],$char['x']+$imageMargin,$char['y']+$imageMargin,$foreground,$char['font'],$char['char']); } } else { // write text using a built-in font $x = 0; $y = 0; $imageWidth = 60 + drupal_strlen($string)*$charSpacingMax*.35; $imageHeight = 30 + $charJiggleAmount; // Create the image if (count($images) > 0 && function_exists(imagecolorallocatealpha)) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth, $imageHeight); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth, $imageHeight); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Add the text for ($i=0;$i 0) { // Prepare a larger image with a background image $im2 = _textimage_create_transparent_image($imageWidth, $imageHeight); } else { // Prepare a larger image with a solid color $im2 = imagecreatetruecolor($imageWidth, $imageHeight); imagefill($im2, 0, 0, $background); } $result = imagecopyresampled ($im2, $im, $imageMargin, $imageMargin, 0, 0, $imageWidth, $imageHeight, imagesx($im), imagesy($im)); $im = $im2; } // strikethrough imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $foreground); // Add Noise for ($x=0; $x<$imageWidth; $x++) { for ($row=0; $row<$imageNoise;$row++) { $y = rand(0,$imageHeight); imagesetpixel($im, $x, $y, $noisecolor); } } // Add Lines and Ellipses for ($x=0; $x<$imageLines;$x++) { imageline($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); imageellipse($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); } // Fill image with a random background image if available if (count($images) > 0) { $image = $images[rand(0,count($images)-1)]; _textimage_apply_background_image($im,$image); } //output to browser imagepng($im); imagedestroy($im); } /** * Returns a random string for use in a captcha */ function _textimage_code() { $consts='bcdgjxvmnprst'; $vowels='aeiou'; for ($x=0; $x < 6; $x++) { mt_srand ((double) microtime() * 1000000); $const[$x] = drupal_substr($consts,mt_rand(0,drupal_strlen($consts)-1),1); $vow[$x] = drupal_substr($vowels,mt_rand(0,drupal_strlen($vowels)-1),1); } $string = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4]; $string = drupal_substr($string,0,rand(4,6)); //everytime we create a new code, we write it to session $_SESSION['captcha'] = drupal_strtolower($string); if(variable_get('textimage_use_only_upper',0)) $string = drupal_strtoupper($string); return $string; } /** * Returns an array of files with TTF extensions in the specified directory. */ function _textimage_font_list() { $fontdir = variable_get("textimage_fonts_path", ""); $filelist = array(); if (is_dir($fontdir) && $handle = opendir($fontdir)) { while ($file = readdir($handle)) { if (preg_match("/\.ttf$/i",$file) == 1) $filelist[] = $fontdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Returns an array of files with jpg, png, and gif extensions in the specified directory. */ function _textimage_image_list() { $imagesdir = variable_get("textimage_images_path", ""); $filelist = array(); if (is_dir($imagesdir) && $handle = opendir($imagesdir)) { while ($file = readdir($handle)) { if (preg_match("/\.gif|\.png|\.jpg$/i",$file) == 1) $filelist[] = $imagesdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Overlays an image to the supplied image resource */ function _textimage_apply_background_image (&$imageResource,$imageFile) { $backgroundResource = image_gd_open($imageFile,substr($imageFile,-3)); // Copy the text onto the background $backX = imagesx($backgroundResource); $backY = imagesy($backgroundResource); $textX = imagesx($imageResource); $textY = imagesy($imageResource); $randomBackX = rand(0,$backX-$textX); $randomBackY = rand(0,$backY-$textY); // Place the text onto a random location of the background image imagecopyresampled($backgroundResource,$imageResource,$randomBackX,$randomBackY,0,0,$textX,$textY,$textX,$textY); // Crop the background image to the original image size imagecopyresampled($imageResource,$backgroundResource,0,0,$randomBackX,$randomBackY,$textX,$textY,$textX,$textY); } /** * Creates transparent image resources for images with graphic backgrounds */ function _textimage_create_transparent_image($x, $y) { $i = imagecreatetruecolor($x, $y); $b = imagecreatefromstring(base64_decode(_text_image_blankpng())); imagealphablending($i, false); imagesavealpha($i, true); imagecopyresized($i, $b ,0 ,0 ,0 ,0 ,$x, $y, imagesx($b), imagesy($b)); return $i; } function _text_image_blankpng() { $c = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m"; $c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg"; $c .= "dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN"; $c .= "egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ"; $c .= "oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA"; $c .= "DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII="; return $c; } ?> Florida Peace Links logo
Published on Tallahassee Network for Justice & Peace (http://tnjp.org)

Florida Peace Links

Created 04/30/2007 - 4:09pm

Florida Peace Links

PEACE NOW!!!

Links for Peace & Justice Groups in Florida

Florida - Statewide

Florida Action [1]
Florida Action has created this online and technical infrastructure whereby local groups can work closely with other Florida Peace & Justice groups and their members by recruiting other groups to endorse, participate and co-sponsor their projects.

Pax Christi Florida [2]
BreyerCA(at)aol.com [2]

American Civil Liberties Union of Florida [3]

Bridges Across Borders [4]
P.O. Box 103
Graham, FL 32042
(352) 485-2594
bridgesacrossborders(at)juno.com [4]

CodePINK Florida [5]
CodePINK Florida Yahoo group [6]

Equality Florida [7]
Equality Florida Blog [8]
3150 5th Ave North, Suite 325
St. Petersburg, FL 33713
Phone: 813-870-EQFL(3735)
Fax: 727-490-0965
david(at)eqfl.org [8]

Fairness for All Families [9]
contact: mailto:info(at)fairnessforallfamilies.org [9]
P.O. Box 13184, St. Petersburg, Florida 33733

Florida Death Row Advocacy Group [10]
114856 SE 25th Avenue
Starke Florida 32091
Ph. (904) 964-7303
FloridaDeathRowAdvocacyGroup(at)gmail.com [10]

Florida Peace Action Network [11]

Floridians for Alternatives to the Death Penalty [12]
2840 W. Bay Drive, #118
Belleair Bluffs, FL 33770-2620
(800) 973-6548
fadp(at)fadp.org [12]

Humanists of Florida Association [13]
PO Box 18574
Jacksonville, FL 32229
Phone: 904-236-6797
info(at)floridahumanist.org [13]

Florida Immigrant Advocacy Center [14]
3000 Biscayne Blvd, Suite 400
Miami, Florida 33137
tel: 305-573-1106
fax: 305-576-6273

Florida NOW [15]
6825 NW 43 Place
Gainesville, FL 32606
1-888-5-FLA-NOW
Voice Mail and Fax Number: 1-800-299-1710
contact page [16]

Florida PIRG [17]
926 E. Park Ave.
Tallahassee FL 32301
850-224-3321
Fax: (850) 224-1310
info(at)floridapirg.org [17]

Florida Cannabis Action Network [18]

Regional

Bradenton - Sarasota

Coalition of Concerned Patriots [19]
Co-Chairperson:  Don Thompson
941-739-7103
janedonjuan(at)juno.com [19]

Southwest Florida Coalition For Peace & Justice [20]
julia.aires(at)verizon.net [20]

Broward - Ft. Lauderdale

Broward Anti-War Coalition [21]
antiwarbroward Yahoo group [22]
antiwarbroward(at)yahoo.com [22]

Daytona - Volusia

Central Florida Veterans For Peace [23]
Daytona Beach, FL
Philip Restino
RestinoP(at)aol.com [23]
386-255-7441
jan(at)cflveteransforpeace.org [23]

Deland

Peace Deland [24] (Yahoo Group)

Gainesville and N. Central FL

The Community Coalition Against War and Terrorism [25]
ccawt(at)yahoo.com [25]

Florida Coalition for Peace and Justice [26]
FCPJ Today Blog [27]
FCPJ Yahoo group [28]
Bob Tancig, State Coordinator
PO Box 336
Graham, Florida  32042
Tel: (352) 468-3295
fcpj(at)earthlink.net [28]

Gainesville CODEPINK Yahoo Group [29]
jacque(at)codepinkalert.org

Gainesville Vets For Peace [30]
Chapter 12/78 Gainesville, Florida
Gainesville Vets For Peace Blog [31]
Chapter email: pbutler(at)igc.org [31]
Scott Camil Chapter Contact: 352-375-2563
Gainesville Veterans for Peace
PO Box 142562
Gainesville, FL 32614

Pax Christi, Gainesville
c/o Johnny Zokovitch
18213 โ€“ 11 NW 5th Avenue
Gainesville, FL 32603
352/271-6941
johnnypcusa(at)yahoo.com [31]

Students for a Human Society [32]
contact [33]

Jacksonville, St. Augustine & NE Florida

Solidarity and Peace.org [34] (formerly the St. Augustine War Resisters League)
Contact us [35]
(904)522-0252

St. Augustine People for Peace & Justice (members of www.SolidarityandPeace.org [36])
marstans(at)hotmail.com

Grandparents for Peace
Peg McIntire
21 Village Las Palma Circle
St. Augustine, FL 32080-3590
Phone: (904) 471-1986
pegmcintire(at)bellsouth.net [36]

Jacksonville Friends Meeting [37]
768-3648 or 249-8642

Pax Christi, Northeast Florida
Mary Lea Zamora
P.O. 782
St. Augustine, FL 32085-0782
904-797-6264
mlprcz(at)msn.com [37]

St. Johns Riverkeeper [38]
2800 University Blvd.N.
Jacksonville, FL 32211
Phone:904-256-7591
Neil Armingeon, Riverkeeper
narming(at)ju.edu [38]

Wage Peace - Jacksonville [39]
wagepeace(at)bellsouth.net [39]

Miami and South Florida

Coalition of Immokalee Workers [40]
Immokalee, FL
Gerardo Reyes Chavez
workers(at)ciw-online.org [40]
239-657-8311

CodePINK South Florida [41]
codepinkSoFL Yahoo group [42]
Contact CodePINK South Florida [43]

Miami for Peace [44]
Monthly Meetings second and fourth Sundays promptly at 4pm at the Friends Meeting House, 1185 Sunset Drive, S. Miami
miamiforpeace Yahoo group [45]
janhuss(at)ix.netcom.com [45]

Quaker Peace Center [46]
Bartram House
1205 Sunset Drive
Miami, FL 33143
quakerpeacecenter(at)gmail.com [46]
305-598-1404
305-238-8517 fax
Quaker Peace Center MySpace page [47]

SDS Miami/FIU [48]

SFPJN - South Florida Peace And Justice Network [49] (Yahoo group)


Melbourne - Space Coast - Brevard

Space Coast Progressive Alliance [50]
PO Box 412
Melbourne FL 32902-0412
contact(AT)spacecoastprogressivealliance.org [50]

Brevard County NOW [51]
Brevard NOW
PO Box 121036
West Melbourne, FL 32912
BrevardNOW(at)yahoo.com [51]

Brevard Patriots For Peace
Peace Vigil 6-7:30PM first Wednesday of the month at the "Peace Corner", 1700 West New Haven, Melbourne.
Vicki Impoco
(321) 720-3520
vimpoco(at)cfl.rr.com [51]

Coalition for the Hungry and Homeless of Brevard County [52]
Provide decent, affordable housing & expand opportunities available to very low, low, & moderate income citizens. Facilitate ownership, management, & operations of business enterprises in economically depressed areas.
Ginger Ferguson
(321) 631-2549
homeless(at)k2services.com [52]

PFLAG Vero Beach Florida [53]
PFLAG (Parents & Families of Lesbians & Gays) promotes health & well-being of gay, lesbian, bisexual & transgendered persons, their families & friends through support, education, and advocacy.
772-778-9835
contact(at)VeroBeachPFLAG.org [53]

Naples - SW Florida

CodePink SW Florida Yahoo group [54]

The Environmental & Peace Education Center [55]
Yahoo group Newsletter [56]
P.O. Box 07224
Fort Myers, FL 33919
email EPEC [56]
(239) 223-8223

Pax Christi - Naples [57]
Naples, FL
Karen & John Dwyer
dwyerj1(at)comcast.net [57]
239-594-5754

Collier County Anti-War Coalition
Naples, FL
Ian Harvey
mmediamaniac(at)yahoo.com [57]
239-591-4568

Naples for Peace [58]
Naples, Florida
noelia(at)naplesforpeace.org [58]

Nature Coast, West Central FL

Peace Now Citrus County [59]
PeaceNowCitrusCounty Yahoo group [60]
peacenowcitruscounty(at)tampabay.rr.com [60]
(352) 400-4174

Marions for Peace, Ocala, FL [61] (MySpace page)
marionsforpeace(at)gmail.com [61]

Military Families Speak Out - Florida [62]
1202 S Elmwood Drive
Inverness, FL 34450
mfsoflorida(at)Yahoo.com [62]
mfsoflorida Yahoo group [63]
(352) 400-4174
FAX:(810) 583-6475

NatureCoast Coalition for Peace and Justice [64]
Brian Moore
PO Box 5742
Spring Hill, FL 34611
(352) 686-9936
campaign(at)votebrianmoore.com [64]

Orlando

Amnesty International of Orlando [65]
Amnesty International #519
PO Box 677055
Orlando, fl. 32817
Amnestyorlando(at)hotmail [65]
Central Florida ACLU [66]

Central Florida Jobs With Justice [67]

Central Florida Movement for a Democratic Society [68]

Codepink CAN at UCF [69]
CodepinkUCF [70] Yahoo group

CODEPINK Orlando [71]
codepinkorlando yahoo group [72]
codepinkorlando(at)gmail.com [72]

Orlando Direct Action [73]
orlando_direct_action(at)yahoo.com [73]

Orlando Food Not Bombs [74]
Contact/to help out: OrlandoFNB(at)orlandofoodnotbombs.org [74]
407.263.7768 (leave a message)
otownfnb Yahoo group [75]

S.T.O.P. [76]
Stop The Ordinance Partnership is a broad-based coalition of local homeless service providers; civic, religious, political and activist groups; and homeless individuals working for repeal โ€“ through action by the Orlando City Council or by court ruling โ€“ of the City ordinance [77] passed in July 2006 that effectively bans the sharing of food with hungry and homeless people in public parks downtown
stop-orlando(at)stop-orlando.org [77]

Orlando Progressive Alliance [78]
OPA meets on the 15th of every month at UCF, within the Student Union building. The meeting is held inside the Office of Student Development, on the second floor of the Student Union.
jackofspades83(at)aim.com [78]

NOW ORLANDO [79]
PMB 357
4250 ALAFAYA TRAIL, SUITE 212
OVIEDO, FL 32765
contact: info(at)noworlando.org [79]

Students for a Democratic Society Central Florida [80]
Phil Jasen - Florida Regional Contact
philjasenishot(at)gmail.com [80]
Austin Smith - Local Representative
austin(at)mail.ucf.edu [80]
SDSatUCF Blog [81]

Center For Peace Orlando [82]
Islamic Society of Central Florida
1021 N. Goldenrod Rd. Second Floor
Orlando, FL 32807
Tel: (407)273-8363 ext:4
Fax:(407)273-0266
c4p(at)iscf.org [82]

Palm Beach County

Palm Beach County Peace and Justice Coalition [83]
Palm Beach County Peace Coalition [84] (Yahoo group)
contact: susanm4peace(at)yahoo.com [84]

Florida War Resisters League
PO Box 211084
Royal Palm Beach, Florida 33421
(561) 791-7659
FloridaWarResisters(at)gmail.com [84]

South Florida Raging Grannies [85]
contact: sfraginggranny(at)yahoo.com [85]

Pensacola

Florida Palestine Solidarity Network [86]
P.O. Box 9773
Pensacola, FL 32503
flpalsolidarity(at)riseup.net [86]

Veterans for Peace, Northwest Florida [87]
The Hugh C. Thompson Chapter, No. 135
Scott Satterwhite
vfppcola(at)yahoo.com [87]
850-437-1323

Polk County, Lakeland

Polk County Citizens for Peace and Justice [88]
Polk County Citizens for Peace and Justice Blog [89]
peace(at)polkpeace.org [89]

St. Peterburg

African People's Solidarity Committee [90]
African People's Solidarity Committee - St. Pete [91] (Yahoo group - then sign-up for
Listbox group)
African People's Solidarity Committee on MySpace [92]!
apsc_uhuru(at)yahoo.com [92]
info(at)apscuhuru.org [92]
P.O. Box 4176
St. Petersburg, FL 33731
727-824-5685
727-521-0248

St Pete for Peace [93]
info(at)stpeteforpeace.org [93]

St. Petersburg Food Not Bombs [94]
info(at)stpetefnb.org [94]
Join us at Williams Park every FRIDAY at 7:30PM, 2nd Avenue North and 4th Street in downtown St. Petersburg.

Refuge of St Petersburg [95]
33 4th Street North - Suite 203
St Petersburg, FL 33701
Affiliated websites - www.myspace.com/refugeproductions [96], www.nomadchurch.org [97]
(727) 821-7050, or by fax at (727) 821-7057

Tallahassee and Big Bend Region

Environmental Alliance of North Florida (Yahoo group [98])

Tallahassee Network for Justice and Peace [99]
tnjp-organize(at)tnjp.org [99]
850-893-7390 (leave msg.)

Tallahassee CodePINK [100]
CodePink Tally Yahoo Group [101]

Pax Christi, Tallahassee
Shirley Poore
3732 Ivy Green Trail
Tallahassee, FL 32311
850/893-6838
bpoore(at)earthlink.net [101]

SaveTaylorCountyFloridaResidents ยท Taylor Emphysema Center (Yahoo group [102])

Tallahassee NOW [103]
TallahNOW(at)aol.com [103]
P.O. BOX 47 - Tallahassee, FL. 32302
(850) 847-6299

Tallahassee RESIST! [104] (archive - inactive)
resisttallahassee@hotmail.com [105]
850-224-8799

Tampa Bay

Alternatives to Violence Tampa Bay [106]
AVP-TampaBay(at)tampabay.rr.com [106]

CodePINK Tampa Bay [107] (MySpace)
CodePINK Tampa Bay Yahoo group [108]
codepinktampabay(at)yahoo.com [108]

Florida Peace Action Network [109]
contact: Bettejo [109]

Tampa Bay Coalition ~ Pride Tampa Bay [110]
Pride Tampa Bay on MySpace [111]
Contact TBC [111]

Tampa Bay Veterans For Peace [112]
Tampa Bay Veterans For Peace Yahoo group [113]
Tampa Bay Veterans For Peace Blog [114]
jayalexus(at)yahoo.com [114]

Tampa World Can't Wait [115]
tampa(at)worldcantwait.org [115]

CIRCUS McGURKIS [116]
Friends Meeting House
130 19th Ave Southeast
St Petersburg, FL 33705
Greg D. Stemm, Clerk
2007 Circus McGurkis
tel: 727-768-3890
info(at)circusmcgurkis.org [116]

Lizardhall.org [117]
TheLizards(at)LizardHall.org [117]

Voice of Freedom [118]
Office: 2605 West Kennedy Boulevard
Tampa, Florida 33609
813-870-3733
Fax: 813-348-3954
lorelei.jackson(at)gmail.com [118]
mrosas1(at)tampabay.rr.com [118]

For links to national peace and justice groups check out the Blogging For Peace [119] page.


Visit the old (static) HTML TNJP Peace Links page [120], archived for posterity...

Peace, Florida!...