From 35ee83443f771f3ba792515de16bbcca2f9da561 Mon Sep 17 00:00:00 2001
From: Ed Kraus <eddybaur@users.sourceforge.net>
Date: Thu, 2 Jul 2009 13:25:00 +0000
Subject: [PATCH] Captcha completed for Default Style! unfortuantly that's not
 universial...

git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@565 c66351dc-e62f-0410-b875-e3a5c0b9693f
---
 src/messenger/webim/create_image.php          | 66 +++++++++++++++++++
 src/messenger/webim/locales/en/properties     |  3 +-
 .../styles/default/templates/leavemessage.tpl | 11 ++++
 3 files changed, 79 insertions(+), 1 deletion(-)
 create mode 100755 src/messenger/webim/create_image.php

diff --git a/src/messenger/webim/create_image.php b/src/messenger/webim/create_image.php
new file mode 100755
index 00000000..7a38c7d5
--- /dev/null
+++ b/src/messenger/webim/create_image.php
@@ -0,0 +1,66 @@
+<?
+/*
+	This is PHP file that generates CAPTCHA image for the How to Create CAPTCHA Protection using PHP and AJAX Tutorial
+
+	You may use this code in your own projects as long as this 
+	copyright is left in place.  All code is provided AS-IS.
+	This code is distributed in the hope that it will be useful,
+ 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+ 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+	
+	For the rest of the code visit http://www.WebCheatSheet.com
+	
+	Copyright 2006 WebCheatSheet.com	
+
+*/
+
+//Start the session so we can store what the security code actually is
+session_start();
+
+//Send a generated image to the browser 
+create_image(); 
+exit(); 
+
+function create_image() 
+{ 
+    //Let's generate a totally random string using md5 
+    $md5_hash = md5(rand(0,999)); 
+    //We don't need a 32 character long string so we trim it down to 5 
+    $security_code = substr($md5_hash, 15, 5); 
+
+    //Set the session to store the security code
+    $_SESSION["security_code"] = $security_code;
+
+    //Set the image width and height 
+    $width = 100; 
+    $height = 20;  
+
+    //Create the image resource 
+    $image = ImageCreate($width, $height);  
+
+    //We are making three colors, white, black and gray 
+    $white = ImageColorAllocate($image, 255, 255, 255); 
+    $black = ImageColorAllocate($image, 0, 0, 0); 
+    $grey = ImageColorAllocate($image, 204, 204, 204); 
+
+    //Make the background black 
+    ImageFill($image, 0, 0, $black); 
+
+    //Add randomly generated string in white to the image
+    ImageString($image, 3, 30, 3, $security_code, $white); 
+
+    //Throw in some lines to make it a little bit harder for any bots to break 
+    ImageRectangle($image,0,0,$width-1,$height-1,$grey); 
+    imageline($image, 0, $height/2, $width, $height/2, $grey); 
+    imageline($image, $width/2, 0, $width/2, $height, $grey); 
+ 
+    //Tell the browser what kind of file is come in 
+    header("Content-Type: image/jpeg"); 
+
+    //Output the newly created image in jpeg format 
+    ImageJpeg($image); 
+    
+    //Free up resources
+    ImageDestroy($image); 
+} 
+?>
\ No newline at end of file
diff --git a/src/messenger/webim/locales/en/properties b/src/messenger/webim/locales/en/properties
index f798c4f9..4098f1ee 100644
--- a/src/messenger/webim/locales/en/properties
+++ b/src/messenger/webim/locales/en/properties
@@ -112,7 +112,8 @@ errors.invalid.file.type=Invalid file type
 errors.prefix=<li class="error">
 errors.required=Please fill "{0}".  
 errors.suffix=</li>
-errors.wrong_field=Please fill "{0}" correctly.  
+errors.wrong_field=Please fill "{0}" correctly.
+errors.captcha=Captcha is incorrect!
 features.saved=Features activated
 form.field.address.description=Ex: 12.23.45.123 or todo.com
 form.field.address=Visitor's Address
diff --git a/src/messenger/webim/styles/default/templates/leavemessage.tpl b/src/messenger/webim/styles/default/templates/leavemessage.tpl
index 5a710905..3fa278cd 100644
--- a/src/messenger/webim/styles/default/templates/leavemessage.tpl
+++ b/src/messenger/webim/styles/default/templates/leavemessage.tpl
@@ -115,8 +115,19 @@ ${endif:errors}
 				<td class="text">${msg:form.field.message}:</td>
 				<td height="120" valign="top">
 					<textarea name="message" tabindex="0" cols="40" rows="8" style="border:1px solid #878787; overflow:auto">${form:message}</textarea>
+				</tr>
+				<td> 
+					<img id="imgCaptcha" src="create_image.php" />
+				</td><td>
+					<input id="txtCaptcha" type="text" name="txtCaptcha" value="" maxlength="10" size="32" />
 				</td>
 			</tr>
+			
+			</tr>
+				</td>
+			</tr>
+			<tr>
+			</tr>
 			<tr>
 				<td colspan="2" align="right">
 					<table cellspacing="0" cellpadding="0" border="0">