function calcFramerateCCD_old(formname)
{
	var integration = document.getElementById(formname).integrationtime.value;
	var lines = document.getElementById(formname).numberlines.value;
  var cam_mode = document.getElementById(formname).elements["camera_mode"];
	var cam_mode_length = cam_mode.length;

	for(i = 0; i < cam_mode_length; i++)
	{
		if(cam_mode[i].checked)
		{
			var mode = cam_mode[i].value;
		}
	}

	if(mode == "high")
	{
		var trig = document.getElementById(formname).trigger_high.value;
		var readline = document.getElementById(formname).readline_high.value;
		var vshift = document.getElementById(formname).vshift_high.value;
		var trans = document.getElementById(formname).trans_high.value;
		var wait = document.getElementById(formname).wait_high.value;
		var max_h_lines = document.getElementById(formname).maxhlines_high.value;
		var max_w_lines = document.getElementById(formname).maxwlines_high.value;
		var max_integration = document.getElementById(formname).maxintegration_high.value;
	}
	else
	{
		var trig = document.getElementById(formname).trigger_standard.value;
		var readline = document.getElementById(formname).readline_standard.value;
		var vshift = document.getElementById(formname).vshift_standard.value;
		var trans = document.getElementById(formname).trans_standard.value;
		var wait = document.getElementById(formname).wait_standard.value;
		var max_h_lines = document.getElementById(formname).maxhlines_standard.value;
		var max_w_lines = document.getElementById(formname).maxwlines_standard.value;
		var max_integration = document.getElementById(formname).maxintegration_standard.value;
	}

	if(parseInt(lines) > parseInt(max_h_lines))
	{
		lines = max_h_lines;
		document.getElementById(formname).numberlines.value = max_h_lines;
	}
	if(parseInt(integration) > parseInt(max_integration))
	{
		integration = max_integration;
		document.getElementById(formname).integrationtime.value = max_integration;
	}

	if((integration != "") && (lines != ""))
	{
		readout = (lines * parseFloat(readline)) + ((max_w_lines - lines) * parseFloat(vshift));
		frame = 1/(parseFloat(trig)+parseFloat(readout)+parseFloat(integration)+parseFloat(trans)+parseFloat(wait));
		frame_rate = (Math.round(frame * 10000000) / 10);
		document.getElementById(formname).framerate.value = frame_rate;
	}
	else
	{
		alert("Please insert two values.");
	}
}

function calcFramerateCCD(formname)
{
	var integration = document.getElementById(formname).integrationtime.value;
	var lines = document.getElementById(formname).numberlines.value;
  var cam_mode = document.getElementById(formname).elements["camera_mode"];
	var cam_mode_length = cam_mode.length;

	for(i = 0; i < cam_mode_length; i++)
	{
		if(cam_mode[i].checked)
		{
			var mode = cam_mode[i].value;
		}
	}

	if(mode == "high")
	{
		var trig = document.getElementById(formname).trigger_high.value;
		var readline = document.getElementById(formname).readline_high.value;
		var vshift = document.getElementById(formname).vshift_high.value;
		var trans = document.getElementById(formname).trans_high.value;
		var wait = document.getElementById(formname).wait_high.value;
		var max_h_lines = document.getElementById(formname).maxhlines_high.value;
		var max_w_lines = document.getElementById(formname).maxwlines_high.value;
		var max_integration = document.getElementById(formname).maxintegration_high.value;
	}
	else
	{
		var trig = document.getElementById(formname).trigger_standard.value;
		var readline = document.getElementById(formname).readline_standard.value;
		var vshift = document.getElementById(formname).vshift_standard.value;
		var trans = document.getElementById(formname).trans_standard.value;
		var wait = document.getElementById(formname).wait_standard.value;
		var max_h_lines = document.getElementById(formname).maxhlines_standard.value;
		var max_w_lines = document.getElementById(formname).maxwlines_standard.value;
		var max_integration = document.getElementById(formname).maxintegration_standard.value;
	}

	if(parseInt(lines) > parseInt(max_h_lines))
	{
		lines = max_h_lines;
		document.getElementById(formname).numberlines.value = max_h_lines;
	}
	if(parseInt(integration) > parseInt(max_integration))
	{
		integration = max_integration;
		document.getElementById(formname).integrationtime.value = max_integration;
	}

	if((integration != "") && (lines != ""))
	{
		readout = (lines * parseFloat(readline)) + ((max_w_lines - lines) * parseFloat(vshift)) + parseFloat(readline);
		frame = 1/(parseFloat(trig)+parseFloat(readout)+parseFloat(integration)+parseFloat(trans)+parseFloat(wait));
		frame_rate = (Math.round(frame * 10000000) / 10);
		document.getElementById(formname).framerate.value = frame_rate;
	}
	else
	{
		alert("Please insert two values.");
	}
}

function calcFramerateCMOS_Aptina_old(formname)
{
	var ImageWidth = document.getElementById(formname).imagewidth.value;
	var ImageHeight = document.getElementById(formname).imageheight.value;
	var ExposureTime = document.getElementById(formname).exposuretime.value;
	var cam_mode = document.getElementById(formname).elements["camera_mode"];
	var cam_mode_length = cam_mode.length;
	var PixelClock = document.getElementById(formname).pixelclock.value;
	var max_h_lines = document.getElementById(formname).maxhlines.value;
	var max_w_lines = document.getElementById(formname).maxwlines.value;

	for(i = 0; i < cam_mode_length; i++)
	{
		if(cam_mode[i].checked)
		{
			var mode = cam_mode[i].value;
		}
	}

	if(parseInt(ImageWidth) > parseInt(max_w_lines))
	{
		ImageWidth = max_w_lines;
		document.getElementById(formname).imagewidth.value = max_w_lines;
	}
	if(parseInt(ImageHeight) > parseInt(max_h_lines))
	{
		ImageHeight = max_h_lines;
		document.getElementById(formname).imageheight.value = max_h_lines;
	}

	if((ImageWidth != "") && (ImageHeight != "") && (ExposureTime != ""))
	{
		ActivePixelReadOut = (((parseInt(ImageWidth) * parseInt(ImageHeight)) / parseInt(PixelClock)) * 1000000);

		if(mode == "snap")
		{
			AdditionalTransferTimes = (Math.round(((5.01 * parseInt(ImageHeight)) + 300) * 10) / 10);
			readout = (Math.round((ActivePixelReadOut + AdditionalTransferTimes + parseInt(ExposureTime)) * 10) / 10);
			frame = 1/(readout / 1000000);
			frame_rate = (Math.round(frame * 10) / 10);
			document.getElementById(formname).framerate.value = frame_rate;
		}
		else
		{
			AdditionalTransferTimes = (Math.round(((5.01 * parseInt(ImageHeight)) + 480) * 10) / 10);
			readout = (Math.round((ActivePixelReadOut + AdditionalTransferTimes) * 10) / 10);
			if(ExposureTime < readout)
			{
				frame = 1/(readout / 1000000);
				frame_rate = (Math.round(frame * 10) / 10);
				document.getElementById(formname).framerate.value = frame_rate;
			}
			else
			{
				frame = 1/(parseFloat(ExposureTime) / 1000000);
				frame_rate = (Math.round(frame * 10) / 10);
				document.getElementById(formname).framerate.value = frame_rate;
			}
		}
	}
	else
	{
		alert("Please insert three values.");
	}
}

function calcFramerateCMOS_Aptina(formname)
{
	var ImageWidth = document.getElementById(formname).imagewidth.value;
	var ImageHeight = document.getElementById(formname).imageheight.value;
	var ExposureTime = document.getElementById(formname).exposuretime.value;
	var max_h_lines = document.getElementById(formname).maxhlines.value;
	var max_w_lines = document.getElementById(formname).maxwlines.value;
	var cam_mode = document.getElementById(formname).elements["camera_mode"];
	var cam_mode_length = cam_mode.length;
	var pixel_clock = document.getElementById(formname).elements["pixelclock"];
	var pixel_clock_length = pixel_clock.length;
	var HorizontalBlank = document.getElementById(formname).horizontalblank.value;
	var VerticalBlank = document.getElementById(formname).verticalblank.value;

	for(i = 0; i < cam_mode_length; i++)
	{
		if(cam_mode[i].checked)
		{
			var mode = cam_mode[i].value;
		}
	}

	for(i = 0; i < pixel_clock_length; i++)
	{
		if(pixel_clock[i].checked)
		{
			var PixelClock = pixel_clock[i].value;
		}
	}

	if(parseInt(ImageWidth) > parseInt(max_w_lines))
	{
		ImageWidth = max_w_lines;
		document.getElementById(formname).imagewidth.value = max_w_lines;
	}
	if(parseInt(ImageHeight) > parseInt(max_h_lines))
	{
		ImageHeight = max_h_lines;
		document.getElementById(formname).imageheight.value = max_h_lines;
	}

	if((ImageWidth != "") && (ImageHeight != "") && (ExposureTime != ""))
	{
		FrameTime = ((parseInt(ImageWidth) + parseInt(HorizontalBlank)) * ((parseInt(ImageHeight) + parseInt(VerticalBlank)) / parseInt(PixelClock)));
		if(mode == "snap")
		{
			FrameTime = FrameTime + parseInt(ExposureTime);
		}
		readout = (Math.round(FrameTime * 10) / 10);
		if(ExposureTime < readout)
		{
			frame = 1/(readout / 1000000);
			frame_rate = (Math.round(frame * 10) / 10);
			document.getElementById(formname).framerate.value = frame_rate;
		}
		else
		{
			frame = 1/(parseFloat(ExposureTime) / 1000000);
			frame_rate = (Math.round(frame * 10) / 10);
			document.getElementById(formname).framerate.value = frame_rate;
		}
	}
	else
	{
		alert("Please insert three values.");
	}
}

function calcFramerateCMOS_Aptina_ExposureStepSize(formname)
{
	var ImageWidth = document.getElementById(formname).imagewidth.value;
	var PixelClock = document.getElementById(formname).pixelclock.value;
	var max_w_lines = document.getElementById(formname).maxwlines.value;
	var LineDelay = document.getElementById(formname).linedelay.value;

	if(parseInt(ImageWidth) > parseInt(max_w_lines))
	{
		ImageWidth = max_w_lines;
		document.getElementById(formname).imagewidth.value = max_w_lines;
	}

	if((ImageWidth != ""))
	{
		PixelClkPeriod = (Math.round((1 / parseInt(PixelClock)) * 10000000000) / 10000000000);
		RowTime = Math.round(((parseInt(ImageWidth) + 244 + parseInt(LineDelay)) * parseFloat(PixelClkPeriod)) * 10) / 10;
		document.getElementById(formname).exposurestepsize.value = RowTime;
	}
	else
	{
		alert("Please insert the value.");
	}
}

function calcFramerateCMOS_Cypress(formname)
{
	var ImageWidth = document.getElementById(formname).imagewidth.value;
	var ImageHeight = document.getElementById(formname).imageheight.value;
	var RbT = document.getElementById(formname).rbt.value;
	var PixelClock = document.getElementById(formname).pixelclock.value;
	var max_h_lines = document.getElementById(formname).maxhlines.value;
	var max_w_lines = document.getElementById(formname).maxwlines.value;

	if(parseInt(ImageWidth) > parseInt(max_w_lines))
	{
		ImageWidth = max_w_lines;
		document.getElementById(formname).imagewidth.value = max_w_lines;
	}
	if(parseInt(ImageHeight) > parseInt(max_h_lines))
	{
		ImageHeight = max_h_lines;
		document.getElementById(formname).imageheight.value = max_h_lines;
	}

	if((ImageWidth != "") && (ImageHeight != ""))
	{
		FrameRate = parseInt(ImageHeight) * (parseFloat(RbT) + (parseFloat(PixelClock) * parseInt(ImageWidth)));
		frame = 1/(parseFloat(FrameRate)) * 1000000;
		frame_rate = (Math.round(frame * 10) / 10);
		document.getElementById(formname).framerate.value = frame_rate;
	}
	else
	{
		alert("Please insert two values.");
	}
}

function calcFramerateCMOS_Cypress_Snapshot(formname)
{
	var ImageWidth = document.getElementById(formname).imagewidth.value;
	var ImageHeight = document.getElementById(formname).imageheight.value;
	var ExposureTime = document.getElementById(formname).exposuretime.value;
	var RbT = document.getElementById(formname).rbt.value;
	var PixelClock = document.getElementById(formname).pixelclock.value;
	var max_h_lines = document.getElementById(formname).maxhlines.value;
	var max_w_lines = document.getElementById(formname).maxwlines.value;

	if(parseInt(ImageWidth) > parseInt(max_w_lines))
	{
		ImageWidth = max_w_lines;
		document.getElementById(formname).imagewidth.value = max_w_lines;
	}
	if(parseInt(ImageHeight) > parseInt(max_h_lines))
	{
		ImageHeight = max_h_lines;
		document.getElementById(formname).imageheight.value = max_h_lines;
	}

	if((ImageWidth != "") && (ImageHeight != "") && (ExposureTime != ""))
	{
		FrameRate = (parseInt(ExposureTime)*1000) + (parseInt(ImageHeight) * (parseFloat(RbT) + (parseFloat(PixelClock) * parseInt(ImageWidth))));
		frame = 1/(parseFloat(FrameRate)) * 1000000;
		frame_rate = (Math.round(frame * 10) / 10);
		document.getElementById(formname).framerate.value = frame_rate;
	}
	else
	{
		alert("Please insert two values.");
	}
}

function calcTraffic(formname)
{
	var image_header = 82;
	var image_trailer = 72;
	// var header_size = 36 IP Header + UDP Header + GVPC Header
	var image_width = document.getElementById(formname).image_width.value;
	var image_height = document.getElementById(formname).image_height.value;
	var bytes_per_pixel = document.getElementById(formname).bytes_per_pixel.value;
	var packet_size = document.getElementById(formname).packet_size.value;

	if((image_width != "") && (image_height != "") && (bytes_per_pixel != "") && (packet_size != ""))
	{
		var image_size = parseFloat(bytes_per_pixel.replace(",",".")) * parseInt(image_width) * parseInt(image_height);
		var payload_packets = Math.ceil(image_size / (packet_size - 50));
		traffic = image_header + (payload_packets * 72) + image_size + image_header;
		document.getElementById(formname).traffic.value = traffic;
		var framerate_1000 = Math.round(125000000 / traffic);
		document.getElementById(formname).framerate_1000.value = framerate_1000;
		var framerate_100 = Math.round(12500000 / traffic);
		document.getElementById(formname).framerate_100.value = framerate_100;
	}
	else
	{
		alert("Please insert all values.");
	}
}