| 
<?php
/**
 * Color preview
 * Remove delete feature if field is empty and only apply if its the last field
 * Add a feature to use last post code as some sort of backup when "making"
 * Make output type
 * Color picker
 */
 
 session_start();
 
 require_once('./gradientgd.class.php');
 
 if($_REQUEST['do'] == 'make')
 {
 @set_time_limit(0);
 
 # $_POST = unserialize($_SESSION['postcode']);
 
 $gradient =& new GradientGD($_POST['size_width'], $_POST['size_height']);
 
 $gradient->set_option('imagetype', 'jpg');
 $gradient->set_option('colorhandler', 'RGB');
 $gradient->set_option('reverse', false);
 
 $gradient->set_color(explode(',', str_replace(' ', '', $_POST['color_start'])), 'start');
 $gradient->set_color(explode(',', str_replace(' ', '', $_POST['color_end'])), 'end');
 
 if(is_array($_POST['color_multiple']) && sizeof($_POST['color_multiple']))
 {
 foreach($_POST['color_multiple'] as $multi => $value)
 {
 $_POST['color_multiple'][$multi] = explode(',', str_replace(' ', '', $value));
 }
 
 $gradient->set_color($_POST['color_multiple'], 'middle');
 }
 /*
 $gradient->set_color(Array($_POST['color_multiple']), 'middle');
 */
 /*
 $gradient->set_color(Array(
 Array(222, 0, 255),
 Array(123, 0 ,255),
 Array(24, 0, 255),
 Array(0, 57, 255),
 Array(0, 156, 255),
 Array(0, 255, 255),
 Array(0, 255, 156),
 Array(0, 255, 57),
 Array(24, 255, 0),
 Array(140, 255, 0),
 Array(239, 255, 0),
 Array(255, 189, 0),
 Array(255, 90, 0),
 
 ), 'middle');
 */
 
 $gradient->generate();
 
 if(!isset($_SESSION['postcode']))
 {
 $_SESSION['postcode'] = serialize($_POST);
 }
 }
 else
 {
 echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
 ?>
 <html>
 <head>
 <title>Gradient GD Generator</title>
 
 <script type="text/javascript">
 <!--
 var multiple_array = Array();
 
 function multiple_new(defaultvalue)
 {
 multiple_array[multiple_array.length] = defaultvalue;
 multiple_generate();
 }
 function multiple_modify(colorid, newvalue)
 {
 var colorinstance = document.getElementById('color_' + colorid);
 
 if(newvalue == "")
 {
 multiple_delete(colorid);
 }
 else
 {
 multiple_array[colorid] = newvalue;
 multiple_generate();
 }
 }
 function multiple_delete(colorid)
 {
 var i = 0;
 var colorinstance = document.getElementById('color_' + colorid);
 var updated_array = Array();
 
 while(i < multiple_array.length)
 {
 if(colorid != i)
 {
 updated_array[i] = multiple_array[i];
 }
 
 ++i;
 
 }
 
 multiple_array = updated_array;
 multiple_generate();
 }
 function multiple_generate()
 {
 var html = "";
 
 if(multiple_array.length)
 {
 html = html + "<table>";
 
 for(var i = 0; i < multiple_array.length; ++i)
 {
 html = html + "<tr>";
 html = html + "<td class=\"bin\"><strong>Color #" + (i + 1) + ":</strong></td>";
 html = html + "<td>";
 html = html + "<input type=\"text\" id=\"color_" + i + "\" name=\"color_multiple[]\" onblur=\"multiple_modify('" + i + "', this.value);\" value=\"" + multiple_array[i] + "\" /> ";
 html = html + "<span class=\"notice\">RGB Value; Split with commas</span>";
 
 if(i == (multiple_array.length - 1))
 {
 html = html + "<a href=\"javascript:void(0);\" onclick=\"multiple_delete(" + i + ");\">(X)</a>";
 }
 
 html = html + "</td>";
 html = html + "</tr>";
 }
 
 html = html + "</table>";
 }
 
 document.getElementById('multiplecolors').innerHTML = html;
 }
 // -->
 </script>
 
 <style type="text/css">
 <!--
 * { color: #444444; font: 8pt Verdana, Arial, Sans-serif; }
 a { color: #0088E4; margin-left: 50px; text-decoration: underline; }
 h1 { background-color: #F1F7F7; font-size: 10pt; }
 h1, .container { margin: 50px 50px 0px 50px; padding: 10px; }
 input { background-color: #FFFFFF; border: 1px solid #AAAAAA; height: 20px; padding: 3px; }
 .container { margin-top: 0px; }
 .container h2 { font-size: 9pt; margin: 0px 0px 20px 0px; }
 .container strong { font-weight: bold; }
 .container table { margin-left: 50px; width: 60%; }
 .container td { background-color: #F1F7F7; padding: 7px; }
 .container td.bin { width: 30%; }
 .container td span.notice { font-size: 7pt; }
 .submit { float: right; }
 .submit input { color: #0088E4; padding: 2px 0px; }
 // -->
 </style>
 </head>
 <body>
 <form action="./gradientgd.box.php?do=make" method="post">
 <h1>Gradient Generator</h1>
 <div class="container">
 <h2>Dimensions</h2>
 <table>
 <tr>
 <td class="bin">
 <strong>Height:</strong></td>
 <td>
 <input type="text" name="size_height" value="100" />
 <span class="notice">Pixels</span></td>
 </tr>
 <tr>
 <td class="bin">
 <strong>Width:</strong></td>
 <td>
 <input type="text" name="size_width" value="100" />
 <span class="notice">Pixels</span></td>
 </tr>
 </table>
 
 <br />
 <h2>Colors</h2>
 <table>
 <tr>
 <td class="bin">
 <strong>Start Color:</strong></td>
 <td>
 <input type="text" name="color_start" value="0,0,0" />
 <span class="notice">RGB Value; Split with commas</span></td>
 </tr>
 <tr>
 <td class="bin">
 <strong>End Color:</strong></td>
 <td>
 <input type="text" name="color_end" value="255,255,255" />
 <span class="notice">RGB Value; Split with commas</span></td>
 </tr>
 </table>
 
 <br />
 
 <h2>Multple Color Fade</h2>
 <div id="multiplecolors"></div>
 <a href="javascript:void(0);" onclick="multiple_new('0,0,0');">
 New Color</a>
 
 <br />
 <div class="submit">
 <input type="submit" value=" Generate " />
 </div>
 </div>
 </form>
 <!--
 <pre style="font: 11px Monaco Courier, Monospace;"><?php var_dump(unserialize($_SESSION['postcode'])); ?></pre>
 -->
 </body>
 <?php
 echo("</html>");
 }
 ?>
 |