+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ - You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
<!DOCTYPE html>
<html manifest="manifest.appcache">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <!-- try to counts default scaling on mobile, see
+ https://developer.mozilla.org/en/Mobile/Viewport_meta_tag -->
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=.6667, maximum-scale=.6667">
<title>KaiRo.at Mandelbrot Web</title>
<script src="js/mandelbrot.js"></script>
<link rel="stylesheet" href="style/mandelbrot.css">
+ <link rel="shortcut icon" href="style/mandelbrotIcon16.png" type="image/png">
</head>
-<body>
+<body onload="Startup();">
<h1>KaiRo.at Mandelbrot Web</h1>
<div id="overlayArea">
<input type="button" id="drawButton" value="Draw Image"
onclick="drawImage();">
+<input type="button" id="backButton" value="Back"
+ onclick="goBack();" disabled="true">
<input type="button" id="settingsButton" value="Settings"
onclick="toggleSettings();">
<fieldset id="settings"><legend>Image data</legend>
Image coordinates:
<br>Real:
-Min: <input id="Cr_min" value="-2.0" maxlength="6" size="6" type="text">
-Max: <input id="Cr_max" value="1.0" maxlength="6" size="6" type="text">
+<br><label for="Cr_min">Min:</label>
+<input id="Cr_min" value="-2.0" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');">
+<label for="Cr_max">Max:</label>
+<input id="Cr_max" value="1.0" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'scale');">
+<label for="Cr_scale">Scale:</label>
+<input id="Cr_scale" value="3.0" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Cr', 'max');">
<br>Imag:
-Min: <input id="Ci_min" value="-1.5" maxlength="6" size="6" type="text">
-Max: <input id="Ci_max" value="1.5" maxlength="6" size="6" type="text">
+<br><label for="Ci_min">Min:</label>
+<input id="Ci_min" value="-1.5" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');">
+<label for="Ci_max">Max:</label>
+<input id="Ci_max" value="1.5" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'scale');">
+<label for="Ci_scale">Scale:</label>
+<input id="Ci_scale" value="3.0" maxlength="10" size="10" type="text"
+ onchange="checkISValue(this, 'coord'); recalcCoord('Ci', 'max');">
+
+<br><br>Image size:
+<br><label for="image_width">Width:</label>
+<input id="image_width" value="300" maxlength="4" size="4" type="number"
+ onchange="checkISValue(this, 'dim'); recalcCoord('Ci', 'scale');">
+<label for="image_height">Height:</label>
+<input id="image_height" value="300" maxlength="4" size="4" type="number"
+ onchange="checkISValue(this, 'dim'); recalcCoord('Cr', 'scale');">
+<input type="checkbox" id="proportional" checked="true"
+ onchange="checkProportions();">
+<label for="proportional">proportional</label>
-<br>Maximum of iterations:
+<br><br><label for="iterMax">Maximum of iterations:</label>
<select id="iterMax">
<option value="50">50</option>
<option value="100">100</option>
<option value="5000">5000</option>
</select>
-<br>Color palette:
+<br><label for="palette">Color palette:</label>
<select id="palette">
<option value="bw">Black & White</option>
<option value="kairo" selected="selected">KaiRo default</option>
<option value="rainbow-linear1">Rainbow-linear 1</option>
+<option value="rainbow-squared1">Rainbow 1 Squared</option>
+<option value="rainbow-linear2">Rainbow 2 Linear</option>
+<option value="rainbow-squared2">Rainbow 2 Squared</option>
</select>
</fieldset>
</div>
<div id="mainArea">
-<canvas id="mbrotImage" width="300" height="300"></canvas>
+<canvas id="mbrotImage" width="300" height="300"
+ onclick="drawIfEmpty();"></canvas>
</div>
<p>Time taken for calculation: <span id="calcTime">none yet</span></p>