+function checkISValue(textbox, type) {
+ if (type == "coord") {
+ textbox.value = roundCoord(parseFloat(textbox.value));
+ }
+ else if (type == "dim") {
+ textbox.value = parseInt(textbox.value);
+ if (textbox.id == "image_width")
+ gSyncPrefs.set("image.width", textbox.value);
+ if (textbox.id == "image_height")
+ gSyncPrefs.set("image.height", textbox.value);
+ }
+}
+
+function recalcCoord(coord, target) {
+ var othercoord = (coord == "Ci") ? "Cr" : "Ci";
+ var owndim = (coord == "Ci") ? "height" : "width";
+ var otherdim = (coord == "Ci") ? "width" : "height";
+ var myscale;
+ if (target == "scale") {
+ myscale =
+ parseFloat(document.getElementById(coord + "_max").value) -
+ parseFloat(document.getElementById(coord + "_min").value);
+ document.getElementById(coord + "_scale").value = roundCoord(myscale);
+ }
+ else if (target == 'max') {
+ var mymax =
+ parseFloat(document.getElementById(coord + "_min").value) +
+ parseFloat(document.getElementById(coord + "_scale").value);
+ document.getElementById(coord + "_max").value = roundCoord(mymax);
+ myscale = document.getElementById(coord + "_scale").value;
+ }
+ if (document.getElementById("proportional").checked) {
+ var otherscale = myscale *
+ document.getElementById("image_" + otherdim).value /
+ document.getElementById("image_" + owndim).value;
+ document.getElementById(othercoord + "_scale").value = roundCoord(otherscale);
+ var othermax =
+ parseFloat(document.getElementById(othercoord + "_min").value) +
+ parseFloat(document.getElementById(othercoord + "_scale").value);
+ document.getElementById(othercoord + "_max").value = roundCoord(othermax);
+ }
+}
+
+function checkProportions() {
+ var prop = document.getElementById("proportional").checked;
+ if (!prop) {
+ recalcCoord("Cr", "scale");
+ }
+ gSyncPrefs.set("syncProportions", prop);
+}
+
+function roundCoord(floatval) {
+ // We should round to 10 decimals here or so
+ return parseFloat(floatval.toFixed(10));
+}
+