var valid = new Boolean();

function checkForm(searchMode)
{
	var errMsg = "";
	var f = document.forms["stdForm"];

	valid = true;

	if (f.cn_cable_family.value == "none")
	{
		valid = false; 
		errMsg += "> Cable family\n";
		f.cn_cable_family.focus();
	}

	if (searchMode == 'srt')
	{
		errMsg += checkDigitFields(f.cn_operating_frequency, 'Operating frequency');
	}

	if (!searchMode || searchMode == 'std' || searchMode == 'adv' || searchMode == 'artno' || searchMode == 'type')
	{
		errMsg += checkDigitFields(f.cn_operating_frequency, 'Operating frequency');
		errMsg += checkDigitFields(f.cfreq, 'Working frequency');
		errMsg += checkDigitFields(f.cmax_atten_start, 'Attenuation min.');
		errMsg += checkDigitFields(f.cmax_atten_stop, 'Attenuation max.');
		errMsg += checkDigitFields(f.cmax_power, 'Power C.W.');
		if (f.cfreq.value.length == 0 && (f.cmax_atten_start.value.length > 0 || f.cmax_atten_stop.value.length > 0 || f.cmax_power.value.length > 0))
		{
			valid = false;
			errMsg += '> Working frequency must be specified';
			f.cfreq.focus();
		}
		if (f.cfreq.value && f.cn_operating_frequency.value && parseFloat(f.cn_operating_frequency.value) < parseFloat(f.cfreq.value))
		{
			valid = false;
			errMsg += '> Working frequency must be below or equal Operating frequency';
			f.cfreq.focus();
		}
		if (f.cfreq.value.length > 0 && (f.cmax_atten_start.value.length == 0 && f.cmax_atten_stop.value.length == 0 && f.cmax_power.value.length == 0))
		{
			valid = false;
			errMsg += '> Min. / Max. attenuation value\n\n';
			errMsg += '\t\tor\n\n';
			errMsg += '> C.W. power value must be specified';
			f.cmax_atten_start.focus();
		}
	}

	if (searchMode == 'adv')
	{
		errMsg += checkDigitFields(f.cn_operating_frequency, 'Operating frequency');
		errMsg += checkDigitFields(f.cn_conductor_inner_diameter, 'Diameter inner conductor');
		errMsg += checkDigitFields(f.cn_dielectric_diameter, 'Diameter dielectric');
		errMsg += checkDigitFields(f.cn_jacket_diameter, 'Diameter jacket');
		errMsg += checkDigitFields(f.cn_pim, 'Passive intermodulation');
	}


	if (valid == false)
	{
		// show error message
		alert("\n\n" + errMsg);
		return false;
	}
	else
	{
		// submit the form
		return true;
	}

	return false;
}


function toggleGraphs(elem, ctrlStatus)
{
	if (ctrlStatus == false)
	{
		hide(elem + 'Log');
		show(elem + 'Lin');
	}
	else
	{
		hide(elem + 'Lin');
		show(elem + 'Log');
	}

	return true;
}


function keyHandler(evt)
{
    if (parseInt(navigator.appVersion) >= 4)
	{
        if (navigator.appName == 'Netscape')
		{
            if (evt.which == 13)
			{
				return checkForm('');
			}
		}
		else
		{
            if (window.event.keyCode == 13)
			{
				return checkForm('');
			}
		}
	}
}

function frequencyHandler(maxOpFreq)
{
	var fieldName = "cfreq";
	var docElement = document.getElementById(fieldName);
	var atFreq = docElement.value;

	if (maxOpFreq && atFreq && parseFloat(maxOpFreq) < parseFloat(atFreq))
	{
		alert('Please set the value of the ' + String.fromCharCode(187) + '@ frequency' + String.fromCharCode(171) + ' to a value below or equal the Operating Frequency.');
		docElement.value = '';
		docElement.focus();
	}
}

function inputHandler()
{
	var f = document.forms["stdForm"];

	if (checkValueLength(f["cmax_atten_start"]) || checkValueLength(f["cmax_atten_stop"]) || checkValueLength(f["cmax_power"]))
	{
		show("atFreqVal");
	}
	else
	{
		hide("atFreqVal");
		f["cfreq"].value = '';
	}
}

function checkValueLength(formElem)
{
	return formElem.value.toString().length > 0;
}

/* check for digits within input elements */
function checkDigitFields(actField, errMsg)
{
	var err_digit = "Only digits allowed\n";
	var checkDigits = /^[0-9\.]{1,}$/i;

	if (actField.value.length > 0 && !checkDigits.test(actField.value))
	{
		valid = false; 
		actField.value = '';
		actField.focus();
		return '> ' + errMsg + ': ' + err_digit;
	}
	else
	{
		return '';
	}
}

/* Check for DHTML functionality */
var DHTML = 0;
var DOM = 0;
var MS = 0;
var NS = 0;
var OP = 0;

function DHTML_init()
{
	if (window.opera)
	{
		OP = 1;
	}
	if(document.getElementById)
	{
		DHTML = 1;
		DOM = 1;
	}
	if(document.all && !OP)
	{
		DHTML = 1;
		MS = 1;
	}
	if (window.netscape && window.screen && !DOM && !OP)
	{
		DHTML = 1;
		NS = 1;
	}
}

DHTML_init();

/* Function to 'show' or ' hide' document elements */
function show(id)
{
	if (DOM)
	{
		document.getElementById(id).style.visibility = 'visible';
		document.getElementById(id).style.display = 'inline';
	}
	else if (NS)
	{
		document.layers[id].visibility = 'show';
	}
	else if (MS)
	{
		document.all[id].style.visibility = 'visible';
		document.all[id].style.display = 'inline';
	}
}

function hide(id, keepDisplay)
{
	var displayArea = (keepDisplay && keepDisplay == true) ? 'inline' : 'none';

	if (DOM)
	{
		document.getElementById(id).style.visibility = 'hidden';
		document.getElementById(id).style.display = displayArea;
	}
	else if (NS)
	{
		document.layers[id].visibility = 'hide';
	}
	else if (MS)
	{
		document.all[id].style.visibility = 'hidden';
		document.all[id].style.display = displayArea;
	}
}
/* Closes the popup window if opened */
function closePopUpWindow()
{
	if (popUpWin)
	{
		popUpWin.close();
	}

	return true;
}