// Javascript copyright Sean T. McHugh
// http://www.cambridgeincolour.com

var airy1 = new Image(); airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f32.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f22.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f16.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f11.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f5p6.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f4.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f2p8.jpg"; airy1.src = "http://images.cambridgeincolour.com/tutorials/airy-f2.jpg";
var grid1 = new Image(); grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-10D.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-1D.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-1Ds.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-1DsMkII.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-1DMkII.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-D70.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-D2X.png"; grid1.src = "http://images.cambridgeincolour.com/tutorials/airy-grid-G6.png";

// coc(35mm)/coc(x) = Diag(35mm) / Diag(x) = FLM
// Diag(x) = Width(x) * sqrt(1+1/AR^2), AR == aspect ratio
// horizonalresolution = sqrt(AR*megapixels)

<!-- Begin Standard Calculator
function diffcalc(difform1) {
coc1 = (document.difform1.format.options[document.difform1.format.selectedIndex].value);
aperture = (document.difform1.aperture.options[document.difform1.aperture.selectedIndex].value);
unit = difform1.unit.value;
view_dist = (difform1.view_dist.value)/100;
print_size = difform1.print_size.value;
eyesight = (document.difform1.eyesight.options[document.difform1.eyesight.selectedIndex].value);
megapixels = difform1.megapixels.value;

if (isNaN(print_size)) {
	alert('Please enter a numerical value for the maximum print dimension.');
	document.difform1.print_size.focus();
	document.difform1.print_size.select();
	}
if (isNaN(megapixels))  {
	if (megapixels != "?") {
	alert('Please enter a numerical value for the megapixel resolution.');
	document.difform1.megapixels.focus();
	document.difform1.megapixels.select();
		}
	}

if (megapixels == "?") {
	difform1.pix_out.value = "?";
	}
else {
	if (coc1 < 0.0165) {
		aspectratio = 4/3;
		}
	else {
		aspectratio = 3/2;
		}
	pixelsize = (coc1 / 0.032) * 43266.6 / ( Math.sqrt(aspectratio * megapixels * 1e6) * Math.sqrt(1 + 1 / (aspectratio * aspectratio)) ); // 43266.6 is diagonal for 35mm format; 0.032 is coc for 35mm	
	difform1.pix_out.value = Math.round(10 * pixelsize) / 10;
	}

if (document.difform1.usepixels.checked  == true) {
	if (megapixels == "?") {
		alert('Please enter a numerical value for the megapixel resolution.');
		document.difform1.megapixels.focus();
		document.difform1.megapixels.select();
		}
	else {
		difform1.coc_out.value = Math.round(10 * 2.5 * pixelsize) / 10;
		CoC = difform1.coc_out.value;
		}
	}
else {
	CoC = 1000 * coc1 * eyesight * (view_dist / 0.25) * (10 * unit / print_size); //in microns
	difform1.coc_out.value = Math.round(100 * CoC) / 100;
	}

airy = 2.43932 * 546e-9 * aperture * 1e6;
difform1.airy_out.value = Math.round(10 * airy) / 10;
if (CoC < airy) {
	difform1.diff_out.value = "YES";
	}
else {
	difform1.diff_out.value = "NO";
	}
}
//  End Standard Calculator -->

<!-- Begin Advanced Diffraction Limited Aperture Calculator
function diffcalc2(difform2) {
coc = difform2.coc.value;
megapixels = difform2.megapixels.value;

if (isNaN(megapixels)) {
	alert('Please enter a numerical value for the megapixel resolution.');
	document.difform2.megapixels.focus();
	document.difform2.megapixels.select();
	}
else {

if (coc > 0.016) {
	pixelsize = (coc / 0.032) * 36000 / Math.sqrt(3/2 * megapixels * 1e6); // in microns
	}
else {
	pixelsize = (coc / 0.032) * 36000 / Math.sqrt(4/3 * megapixels * 1e6); // in microns
	}
	
temp1 = 2.0 * pixelsize / ( 2.43932 * 546e-9 * 1e6 ); // in f-stops - diffraction likely becomes visible
temp2 = 2.5 * pixelsize / ( 2.43932 * 546e-9 * 1e6 ); // in f-stops - diffractin limits extinction resolution
temp3 = 3.0 * pixelsize / ( 2.43932 * 546e-9 * 1e6 ); // in f-stops - diffraction limits standard grayscale resolution
// temp4 = 4.0 * pixelsize / ( 2.43932 * 650e-9 * 1e6 ); // in f-stops - diffraction limits red color resolution
// temp5 = 4.0 * pixelsize / ( 2.43932 * 450e-9 * 1e6 ); // in f-stops - diffraction limits blue color resolution
	
difform2.diffaperture1.value = "f/" + Math.round(10 * temp1) / 10;
difform2.diffaperture2.value = "f/" + Math.round(10 * temp2) / 10;
difform2.diffaperture3.value = "f/" + Math.round(10 * temp3) / 10;
// difform2.diffaperture4.value = "f/" + Math.round(10 * temp4) / 10;
// difform2.diffaperture5.value = "f/" + Math.round(10 * temp5) / 10;

difform2.diffaperture6.value = difform2.diffaperture1.value + " - " + difform2.diffaperture3.value;

	}
}
//  End Advanced Diffraction Limited Aperture Calculator Calculator -->
