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 && !f.cshape_t_junc.checked)
		{
			valid = false;
			errMsg += "> Connector shape\n";
			f.cshape_straight.focus();
		}
		if (!f.cmounting_none.checked && !f.cmounting_panel.checked && !f.cmounting_bulkhead.checked)
		{
			valid = false;
			errMsg += "> Connector mounting\n";
			f.cmounting_none.focus();
		}
	}

	if (searchMode == 'adv' && f.cn_pattern.value == "none")
	{
		valid = false;
		errMsg += "> Connector pattern\n";
		f.cn_pattern.focus();
	}

	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("Please provide following information:\n\n" + errMsg);
		return false;
	}
	else
	{
		// submit the form
		return true;
	}

	return false;
}


function toggleCables(listA, listB)
{
	if ($(listA).style.visibility == "visible")
	{
		$(listA).style.display = "none";
		$(listA).style.visibility = "hidden";
		$(listB).style.display = "inline";
		$(listB).style.visibility = "visible";
	}
	else
	{
		$(listA).style.display = "inline";
		$(listA).style.visibility = "visible";
		$(listB).style.display = "none";
		$(listB).style.visibility = "hidden";
	}
}


function togglePattern(hideItem, showItem)
{
	$(showItem+'Icon').style.display = "inline";
	$(showItem+'Icon').style.visibility = "visible";
	$(hideItem+'Icon').style.display = "none";
	$(hideItem+'Icon').style.visibility = "hidden";
	$(showItem+'Image').style.display = "inline";
	$(showItem+'Image').style.visibility = "visible";
	$(hideItem+'Image').style.display = "none";
	$(hideItem+'Image').style.visibility = "hidden";
}


function toggleList(hideItem, showItem)
{
		$(showItem+'Icon').style.display = "inline";
		$(showItem+'Icon').style.visibility = "visible";
		$(hideItem+'Icon').style.display = "none";
		$(hideItem+'Icon').style.visibility = "hidden";
		$(showItem+'List').style.display = "inline";
		$(showItem+'List').style.visibility = "visible";
		$(hideItem+'List').style.display = "none";
		$(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();


/* Build compare 'catch' area */

$j(document).ready(function() {

	var enableBsk	= new Boolean(true && false);

	var scrEpdb;
	var bskForm;
	var bskItem;

	var winWidth	= $j(window).width();
	var newWidth	= winWidth;
	var itmList		= [];
	var intStatus	= parseInt("0",10);
	var blnDetail	= new Boolean(parseInt("0",10));
	var blnCompare	= new Boolean(parseInt("0",10));
	var blnSmall	= new Boolean(winWidth < HuSu.maxWidthSmall);
	var imgClass	= "wrpImg";
	var tocTitle	= ("Items zum Vergleichen").unescapeHTML();
	var lstNodes	= new Array();
	var bskAction	= new Array();
	var objLink		= new Object();
	var objReg		= new RegExp("^lst", "gi");

	var lstId		= "content_pdb";
	var wrpId		= "content_pdb_bsk";
	var bskId		= "content_pdb_basket";
	var actId		= "content_pdb_action";
	var cntId		= "content_pdb_cnt";
	var cmpId		= "content_pdb_cmp";
	var delId		= "content_pdb_del";
	var itmId		= "content_pdb_item";
	var epyId		= "content_pdb_empty";

	var wrpClsSmall	= wrpId+"_small";
	var bskClsSmall	= bskId+"_small";

	try
	{
		scrEpdb = new libEpdb();
		scrEpdb.setUsr("");
		scrEpdb.setOrgClsId("");
		scrEpdb.setUrlPage("");

		if (enableBsk == true && intStatus > 0 && tocEnabled == true)
		{
			if (!itmList || itmList.length == 0)
			{
				//basket is empty
				bskForm = Builder.node("div", {id:wrpId,className:"itemBskStd"+((blnSmall == true) ? " "+wrpClsSmall : "")},
								[
									Builder.node("p", {id:bskId,className:((HotSpot.isTocVisible == true) ? "toc_visible" : "toc_hidden")+((blnSmall == true) ? " "+bskClsSmall : "")},
										Builder.node("strong", tocTitle)
									),
									Builder.node("div", {id:cntId,className:"itemBskStd"},
										[
											Builder.node("ul", {id:lstId,className:((HotSpot.isTocVisible == true) ? "toc_visible" : "toc_hidden")},
												Builder.node("li", {id:epyId}, Builder.node("p", ("Ihre Liste ist leer.").unescapeHTML()))
											)
										]
									)
								]
							);
			}
			else
			{
				//some items in basket available
				for (var i=0; i<itmList.length; i++)
				{
					lstNodes.push(Builder.node("li", {id:"bsk"+itmList[i].compId,className:itmId+" bsk clearfix"},
										[
											Builder.node("a", {id:"lst"+itmList[i].compId, name:itmList[i].desc, title:"Item number: "+itmList[i].desc, href:scrEpdb.urlPage+"?applied=&selected=&search=&display=&unit=&step=&col=&sort=&vt=&p_Query="+itmList[i].desc+"&cls=&list=d&listed=2&prm="+itmList[i].compId}, itmList[i].desc+((itmList[i].item==true) ? scrEpdb.selfSign : "")),
											Builder.node("span", {id:"evt"+itmList[i].compId,title:("Klicken zum Erntfernen aus der Liste!").unescapeHTML(),className:"del"})
										]
									)
					);
				}

				switch(itmList.length)
				{
					case 1:
						bskAction.push(Builder.node("span", {id:delId,className:"float-right"}, ("Liste leeren").unescapeHTML()));
						break;

					default:
						bskAction.push(Builder.node("span", {id:delId,className:"float-right"}, ("Liste leeren").unescapeHTML()));
						bskAction.push(Builder.node("span", {id:cmpId,className:"float-left"}, ("Vergleiche!").unescapeHTML()));
						break;
				}

				bskItem = Builder.node("div", {id:wrpId,className:"itemBskStd"+((blnSmall == true) ? " "+wrpClsSmall : "")},
								[
									Builder.node("p",{id:bskId,className:((HotSpot.isTocVisible == true) ? "toc_visible" : "toc_hidden")+((blnSmall == true) ? " "+bskClsSmall : "")},
										Builder.node("strong", tocTitle)
									),
									Builder.node("div", {id:cntId,className:"itemBskStd"},
										[
											Builder.node("ul", {id:lstId,className:((HotSpot.isTocVisible == true) ? "toc_visible" : "toc_hidden")}, lstNodes),
											Builder.node("div", {id:actId,className:"clearfix "+((HotSpot.isTocVisible == true) ? "toc_visible" : "toc_hidden")}, bskAction)
										]
									)
								]
							);

				bskForm = ePDB.getCompareForm({actionUrlPage:scrEpdb.urlPage}, bskItem, Builder.node("input", {type:"hidden",name:"persistence",value:"0"}));
			}

			$j("#content_1st_toc").append(bskForm);

			// Show or hide list/basket
			$j("#"+bskId).click( function() {
				if ($j(this).hasClass("toc_visible"))
				{
					$j("#"+cntId).slideUp(ePDB.evntSpeed/2);
				}
				else
				{
					$j("#"+cntId).slideDown(ePDB.evntSpeed/2);
				}
				$j(this).toggleClass("toc_visible").toggleClass("toc_hidden");
				
			} );

			// Drag / drop handler
			$j("div."+imgClass).draggable(
				{
					start:			function(event, ui) { if(scrEpdb){ return scrEpdb.startDragPict(event, ui); } return false; },
					stop:			function(event, ui) { if(scrEpdb){ return scrEpdb.stopDragPict(event, ui); } return false; },
					drag:			function(event, ui) { if(scrEpdb){ return scrEpdb.dragPict(event, ui); } return false; },
					helper:			"clone",
					disabled:		false,
					revert:			true,
					revertDuration: 500,
					opacity:		0.7,
					distance:		4,
					zIndex:			1001
				}
			);
			$j("#"+bskId).parent().droppable(
				{
					drop:			function(event, ui) { if(scrEpdb){ return scrEpdb.dropPict(event, ui, true); } return false; },
					over:			function(event, ui) { if(scrEpdb){ return scrEpdb.dropOverPict(event, ui); } return false; },
					out:			function(event, ui) { if(scrEpdb){ return scrEpdb.dropOutPict(event, ui); } return false; },
					accept:			"."+imgClass,
					activeClass:	"itemBskAct",
					hoverClass:		"bgBskAct",
					tolerance:		"touch"
				}
			);
			$j("div.itemCompare").droppable(
				{
					drop:			function(event, ui) { if(scrEpdb){ return scrEpdb.dropPict(event, ui, false); } return false; },
					accept:			"."+imgClass,
					activeClass:	"itemBskAct",
					hoverClass:		"bgBskAct",
					tolerance:		"touch"
				}
			);

			// Other (click) handler
			$j("input.compare").click( function(event) { if(scrEpdb){ scrEpdb.clickToElement(event, true); } } );
			$j(".itemCompare").click( function(event) { if(scrEpdb){ scrEpdb.clickToElement(event, (blnDetail!=true)); } } );
			$j(".del").click( function(event) { if(scrEpdb){ return scrEpdb.evRemoveItemFromBasket(event.currentTarget.id, false, {usr:"x", cls:"x"}, (blnDetail!=true)); } return false; } );
			$j("#"+cmpId).click( function(event) { $j("form[name="+ePDB.frmName+"]").submit(); } );
			$j("#"+delId).click( function(event) { if(scrEpdb){ return scrEpdb.evRemoveItemFromBasket(event.currentTarget.id, true, {usr:"x", cls:"x"}, (blnDetail!=true)); } return false; } );

			$j(window).resize( function(event) {
				var useSmall = new Boolean();

				newWidth = $j(this).width();
				blnSmall = new Boolean(newWidth < HuSu.maxWidthSmall);
				useSmall = new Boolean(winWidth >= newWidth && blnSmall == true);

				if (scrEpdb)
				{
					scrEpdb.checkDesignClass(useSmall);
					scrEpdb.checkBasketVisibility(useSmall, [bskId, lstId, actId]);
				}
				winWidth = newWidth;
			} );
		}

		return false;
	}
	catch(e){alert(e.toSource())}
} );
