var valid = new Boolean();

function checkForm(searchMode)
{
	var errMsg = "";
	var f = document.forms["stdForm"];

	valid = true;

	if (!searchMode || searchMode == 'std' || searchMode == 'artno' || searchMode == 'type')
	{
		if (!f.cshape_straight.checked && !f.cshape_right_angle.checked)
		{
			valid = false;
			errMsg += "> Connector shape\n";
			f.cshape_straight.focus();
		}
		if (!f.cmounting_pcb.checked && !f.cmounting_edge.checked && !f.cmounting_combi.checked)
		{
			valid = false;
			errMsg += "> Connector mounting\n";
			f.cmounting_pcb.focus();
		}
	}

	if (searchMode == 'adv')
	{
		if (f.cn_pattern.value == "none")
		{
			valid = false;
			errMsg += "> Connector pattern\n";
			f.cn_pattern.focus();
		}

		errMsg += checkDigitFields(f.cmin_printleg_length, 'Min. Printleg Length HL');
		errMsg += checkDigitFields(f.cmax_printleg_length, 'Max. Printleg Length HL');
		errMsg += checkDigitFields(f.cmin_height_above_pcb, 'Min. Height above PCB HA');
		errMsg += checkDigitFields(f.cmax_height_above_pcb, 'Max. Height above PCB HA');
	}

	if (f.cn_connector_serie.value == "none")
	{
		valid = false; 
		errMsg += "> Connector interface series\n";
		f.cn_connector_serie.focus();
	}

	if (!searchMode || searchMode == 'std' || searchMode == 'adv' || searchMode == 'artno' || searchMode == 'type')
	{
		errMsg += checkDigitFields(f.cn_interface_frequency_max, 'Operating frequency');
	}


	if (valid == false)
	{
		// show error message
		alert("\n\n" + errMsg);
		return false;
	}
	else
	{
		// submit the form
		return true;
	}

	return false;
}


function toggleCables(listA, listB)
{
	if (document.getElementById(listA).style.visibility == "visible")
	{
		document.getElementById(listA).style.display = "none";
		document.getElementById(listA).style.visibility = "hidden";
		document.getElementById(listB).style.display = "inline";
		document.getElementById(listB).style.visibility = "visible";
	}
	else
	{
		document.getElementById(listA).style.display = "inline";
		document.getElementById(listA).style.visibility = "visible";
		document.getElementById(listB).style.display = "none";
		document.getElementById(listB).style.visibility = "hidden";
	}
}


function togglePattern(hideItem, showItem)
{
	document.getElementById(showItem+'Icon').style.display = "inline";
	document.getElementById(showItem+'Icon').style.visibility = "visible";
	document.getElementById(hideItem+'Icon').style.display = "none";
	document.getElementById(hideItem+'Icon').style.visibility = "hidden";
	document.getElementById(showItem+'Image').style.display = "inline";
	document.getElementById(showItem+'Image').style.visibility = "visible";
	document.getElementById(hideItem+'Image').style.display = "none";
	document.getElementById(hideItem+'Image').style.visibility = "hidden";
}


function toggleList(hideItem, showItem)
{
		document.getElementById(showItem+'Icon').style.display = "inline";
		document.getElementById(showItem+'Icon').style.visibility = "visible";
		document.getElementById(hideItem+'Icon').style.display = "none";
		document.getElementById(hideItem+'Icon').style.visibility = "hidden";
		document.getElementById(showItem+'List').style.display = "inline";
		document.getElementById(showItem+'List').style.visibility = "visible";
		document.getElementById(hideItem+'List').style.display = "none";
		document.getElementById(hideItem+'List').style.visibility = "hidden";
}


function changePattern(actField)
{
	var currentIndex = document.stdForm[actField].selectedIndex;
	var imgFileName = new String();
	if (currentIndex > 1)
	{
		imgFileName = document.stdForm[actField].value;
	}
	else
	{
		imgFileName = "00";
	}
	document.patternPicture.src = "gloss-pa-0" + imgFileName + ".gif";
}

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('');
			}
		}
	}
}

/* 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 '';
	}
}

/* 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;
}
/* 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();
