var popwins = new Array();
var appletarray = new Array();
var defaultvalue = new Array();
var appletcount = 0;
var wincount = 0;

var push_rangeName = "";
var push_currFrom ="";
var push_currTo = "";
var push_rangeDesc = "";

function loadApplets() {
	setInitialValues("Loading...");
}

function setWait(toggle){
	setCursor(toggle?"wait":"");
}

function setAppletFilterClause(completeFilter, appletName) {
	var appletFilterClause;
	appletFilterClause ="";
	delim = "";

	if (completeFilter) {
		for(i=0; i < document.forms[0].length; i++){
			fldObj = document.forms[0].elements[i];
			if (fldObj.type == "hidden") {
				currentFormObject = fldObj.name;
				indlen = currentFormObject.length;							

				<!-- get the name of the hidden INPUT if it contains appletFilterValue process it's clause value -->							
				appletFilterValuePosition = currentFormObject.indexOf('aFV',0);

				if (appletFilterValuePosition > -1) {
					<!-- get the appletFilterValue -->
					if (eval("document.forms[0]."+currentFormObject+".value != ''")){
						appletFilterClause = appletFilterClause + delim + eval("document.forms[0]."+currentFormObject+".value")
						delim = "|"
					}
				}
			}
		}
	}

	else {
		appletFilterClause = appletFilterClause + delim + eval("document.forms[0].aFV"+appletName+".value")
		
	}
//prompt("data",appletFilterClause);
	return appletFilterClause;
}

function gotoFilter(endSearchVal) {
	var nextFilterLevel

	if (!setSelectedValueFields(true)) {
		return false;
	}

	document.forms[0].catalogFilterClause.value=setAppletFilterClause(true,'');

	document.forms[0].Transaction.value="catalog_CatalogPartSpecsList";
	updateForm(document.forms[0],document.forms[1]);
	setCursor("wait");
	document.forms[1].submit();
}

function resetFilter(currMeasurementSystem) {
	document.forms[0].cancelSearch.value="true";
	document.forms[0].endSearch.value="false";
	document.forms[0].Transaction.value="catalog_CatalogFilter";
	setCursor("wait");
	document.forms[0].submit();
}

function setSelectedValueFields(checkIsRequired){
	var delim = "";
	var currentFormObject = "";
	var currval = "";
	var indlen = "";
	var indval = "";
	clause = "";
	cntrl_vals = "";

	for(i=0; i < document.forms[0].length; i++){
		fldObj = document.forms[0].elements[i];

		if (fldObj.type == "radio") {
			<!--//since a radio button can only have one selected item there is no-->
			<!--//need to trap a group of radio button or set a delimeter.-->
			currentFormObject = fldObj.name;							

			objname = fldObj.name;
			if (objname != 'measuringSystem') {
				meta_data_type = eval("document.forms[0].metaDataType"+currentFormObject+".value");
				char_id = eval("document.forms[0].charid"+currentFormObject+".value");
				clause = ("<"+char_id+">"+"<"+meta_data_type+">");

				indlen = eval("document.forms[0]."+fldObj.name+".length");
				indval = "";
				delim = "";

				for(iObj=0;iObj <indlen;iObj++) {
					if (eval("document.forms[0]."+fldObj.name+"[iObj].checked")){
						currval = eval("document.forms[0]."+fldObj.name+"[iObj].value");
						indval = currval;
					}
				}
				eval("document.forms[0].selectedValues"+fldObj.name+".value = indval");

				<!-- format the applet param clause -->
				clause = clause +  ("<=\""+indval+"\">");
				eval("document.forms[0].aFV"+currentFormObject+".value = clause");

				<!-- if empty range value clear out the applet param clause  -->								
				if (indval=="")  {
					eval("document.forms[0].aFV"+currentFormObject+".value = ''");
				}
			}
		} else if (fldObj.type == "checkbox") {
			<!--//control the the checkbox processing to 1 iteration per group-->
			if (currentFormObject != fldObj.name){
				currentFormObject = fldObj.name

				meta_data_type = eval("document.forms[0].metaDataType"+currentFormObject+".value");
				char_id = eval("document.forms[0].charid"+currentFormObject+".value");
				clause = ("<"+char_id+">"+"<"+meta_data_type+">");
				cntrl_vals = "in(";

				indlen = eval("document.forms[0]."+fldObj.name+".length");
				indval = "";
				delim = "";
				delimComma = "";

				for(iObj=0;iObj <indlen;iObj++) {
					if (eval("document.forms[0]."+fldObj.name+"[iObj].checked")){ 
						currval = eval("document.forms[0]."+fldObj.name+"[iObj].value");
						indval = indval + delim + currval;
						cntrl_vals = cntrl_vals + delimComma + "\""+currval+"\"";
						delimComma = ",";
						delim = "~";
					}
				}
				eval("document.forms[0].selectedValues"+fldObj.name+".value = indval");

				cntrl_vals = cntrl_vals + ")";
				clause = clause +  ("<"+cntrl_vals+">");
				eval("document.forms[0].aFV"+currentFormObject+".value = clause");
				if (indval=="") {
					eval("document.forms[0].aFV"+currentFormObject+".value = ''");							
				}

			}
		} else if (fldObj.type == "select-one") {
			currentFormObject = fldObj.name;													
			meta_data_type = eval("document.forms[0].metaDataType"+currentFormObject+".value");
			char_id = eval("document.forms[0].charid"+currentFormObject+".value");
			clause = ("<"+char_id+">"+"<"+meta_data_type+">");
			cntrl_vals = "=";

			indlen = eval("document.forms[0]."+fldObj.name+".length");
			indval = "";

			for(iObj=0;iObj <indlen;iObj++) {
				if (eval("document.forms[0]."+fldObj.name+".options[iObj].selected")) {							
					currval = eval("document.forms[0]."+fldObj.name+"[iObj].value");
					indval = indval + currval;
					if(meta_data_type=='FLOAT_VAL' || meta_data_type=='FLOAT_VALM') { 
						cntrl_vals += currval;
					}
					else {
						cntrl_vals += "\""+currval+"\"";
					}
					break;
				}
			}
			eval("document.forms[0].selectedValues"+fldObj.name+".value = indval");

			clause = clause +  ("<"+cntrl_vals+">");
			eval("document.forms[0].aFV"+currentFormObject+".value = clause");
			if (indval=="") {
				eval("document.forms[0].aFV"+currentFormObject+".value = ''");							
			}
		} else if (fldObj.type == "select-multiple") {
			currentFormObject = fldObj.name;													
			meta_data_type = eval("document.forms[0].metaDataType"+currentFormObject+".value");
			char_id = eval("document.forms[0].charid"+currentFormObject+".value");
			clause = ("<"+char_id+">"+"<"+meta_data_type+">");
			cntrl_vals = "in(";

			<!--//though only 1 option can be selected we process this the same way as  multi-select object group-->
			indlen = eval("document.forms[0]."+fldObj.name+".length");
			indval = "";
			delim = "";
			delimComma = "";

			for(iObj=0;iObj <indlen;iObj++) {
				if (eval("document.forms[0]."+fldObj.name+".options[iObj].selected")) {							
					currval = eval("document.forms[0]."+fldObj.name+"[iObj].value");
					indval = indval + delim + currval;
					cntrl_vals = cntrl_vals + delimComma + "\""+currval+"\"";
					delimComma = ",";
					delim = "~";
				}
			}
			eval("document.forms[0].selectedValues"+fldObj.name+".value = indval");

			cntrl_vals = cntrl_vals + ")";
			clause = clause +  ("<"+cntrl_vals+">");
			eval("document.forms[0].aFV"+currentFormObject+".value = clause");
			if (indval=="") {
				eval("document.forms[0].aFV"+currentFormObject+".value = ''");							
			}
		} else if (fldObj.type == "text") {
			currentFormObject = fldObj.name
			nextFormObject = document.forms[0].elements[i+1].name;
			dualSelect = false;
			if(currentFormObject.substring(0,currentFormObject.length-1)==nextFormObject.substring(0,nextFormObject.length-1)){
				currentFormObject = document.forms[0].elements[i+2].name;
				i++;
			}
			indlen = currentFormObject.length;
			fromValInput = "";
			toValInput = "";

			<!-- get the name of the text INPUT if it contains rangeHolder process it's from and to values -->							
			rangeHolderPosition = currentFormObject.indexOf('rangeHolder',0);

			if (rangeHolderPosition > -1) {
				<!-- slice off what would equate to the portion of the object's name that is rangeHolder -->
				<!-- length of rangeHolder is 11 -->
				rangeHolderPosition = 11;
				//use either mehod
				//currentFormObject = currentFormObject.slice(rangeHolderPosition);
				currentFormObject = currentFormObject.substring(rangeHolderPosition,indlen);

				meta_data_type = eval("document.forms[0].metaDataType"+currentFormObject+".value");
				char_id = eval("document.forms[0].charid"+currentFormObject+".value");
				clause = ("<"+char_id+">"+"<"+meta_data_type+">");

				<!-- a text INPUT is always paired -->								
				fromValInput = eval("document.forms[0]."+currentFormObject+"1.value")
				toValInput = eval("document.forms[0]."+currentFormObject+"2.value")
				delim = "~";

				<!-- format the selected value string -->
				indval = fromValInput + delim + toValInput;
				eval("document.forms[0].selectedValues"+currentFormObject+".value = indval");
				<!-- format the applet param clause -->
				clause = clause +  ("<between "+fromValInput+" and "+toValInput+">");
				eval("document.forms[0].aFV"+currentFormObject+".value = clause");

				<!-- if empty range value clear out the applet param clause  -->								
				if (eval("document.forms[0].selectedValues"+currentFormObject+".value") == '~' )  {
					eval("document.forms[0].aFV"+currentFormObject+".value = ''");
				}
			}
		}

	}
	return true;
}

function trim(fieldValue) { 
	var trimmedFieldValue;
	var startSubstring;
	var endSubstring;
	var processString = true;
	var stringLength;
	stringLength = fieldValue.length;
	for (var i = 0; i < stringLength && processString; i++)
	{ 
		  var c = fieldValue.charAt(i);
		  if (c != ' ') { 
			   startSubstring = (i);
			   processString = false;
		  } 
	} 
	processString = true;
	for (var t = stringLength; t > 0 && processString; t--)
	{ 
		  var c = fieldValue.charAt(t-1);
		  if (c != ' ') { 
			endSubstring = (t);
			   processString = false;
		  } 
	} 
	trimmedFieldValue = fieldValue.substring(startSubstring,endSubstring);
	return trimmedFieldValue;
}

function validateTextfield(obj){
	if(isNaN(obj.value) || obj.value==""){
		alert("Field value must be a number.");
		obj.focus();
	}
}

flangedOpen = new Image();
flangedDouble = new Image();
unflangedOpen = new Image();
unflangedDouble = new Image();

function initImages(){
	//Preload images
	if(document.images.schematic.src == IMAGE_ROOT + "ART-15IN.gif"){
		flangedOpen.src =  IMAGE_ROOT + "ART-18RA.gif";
		flangedDouble.src =  IMAGE_ROOT + "ART-19-2a.gif";
		unflangedOpen.src =  IMAGE_ROOT + "ART-15IN.gif";
		unflangedDouble.src =  IMAGE_ROOT + "ART-16-1a.gif";
		unflangedDouble.src =  IMAGE_ROOT + "Nr-type_labeled.gif";
	}
}

function swapSchematic(){
	values = buildDecisionArray();
	if(arrayContains(values, "flanged") && (arrayContains(values, "open") || arrayContains(values, "All")))
		document.images.schematic.src = IMAGE_ROOT + "ART-18RA.gif";
	else if(arrayContains(values, "flanged") && arrayContains(values, "shielded"))
		document.images.schematic.src = IMAGE_ROOT + "ART-19-2a.gif";
	else if(arrayContains(values, "unflanged") && (arrayContains(values, "open") || arrayContains(values, "All")))
		document.images.schematic.src = IMAGE_ROOT + "ART-15IN.gif";
	else if(arrayContains(values, "unflanged") && arrayContains(values, "shielded"))
		document.images.schematic.src = IMAGE_ROOT + "ART-16-1a.gif";
	else if(arrayContains(values, "stop ring") && (arrayContains(values, "shielded") || arrayContains(values, "All")))
		document.images.schematic.src = IMAGE_ROOT + "Nr-type_labeled.gif";
}

function arrayContains(array, testString){
	for(i=0; i<array.length; i++)
		if(array[i].toUpperCase()==testString.toUpperCase())
			return true;
	return false;
	
}

function buildDecisionArray(){
	values = new Array();
	for(i=0; i<formDecisionObjectNames.length; i++){
		formObj = getFormObject(formDecisionObjectNames[i]);
		if(formObj.type=="select-one"){
			values[values.length] = formObj.options[formObj.selectedIndex].value;
		} else {
			for(c=0; c<formObj.length; c++)
				if(formObj[c].checked)
					values[values.length] = formObj[c].value;
		}
	}
	return values;
}

function getFormObject(name){
	returnObj = eval("document.forms[0]." + formDecisionObjectNames[i]);
	return returnObj
}

formDecisionObjectNames = new Array();

function addFormDecision(name){
	if(formDecisionObjectNames.length==0 || formDecisionObjectNames[formDecisionObjectNames.length-1] != name){
		formDecisionObjectNames[formDecisionObjectNames.length] = name;
	}
}

appletTaintArray = new Array();

function initTaintArray(){
	for(i=0; i < appletcount; i++)
		appletTaintArray[i] = false;
}

function taintSelection(index){
	appletTaintArray[index-1] = true;
}

function loadSelectedApplets() {
	setWait(true);

	setSelectedInitialValues("Loading...");

	var changes = false;
	setSelectedValueFields(false);

	ctgTmpltID = document.forms[0].templateId.value;
	var elementURL = REUQEST_URL + "?Transaction=catalog_CatalogAppletFilter&html=true&class=elements&templateId=" + ctgTmpltID + "&catalogFilterClause=";
	var totalURL = REUQEST_URL + "?Transaction=catalog_CatalogAppletFilter&html=true&class=total&templateId=" + ctgTmpltID + "&catalogFilterClause=";


	//Check for tainting and reload
	for(i=0; i < appletcount; i++){
		if(appletTaintArray[i]){
			nameVal = appletarray[i];
			clause = setAppletFilterClause(false,nameVal);
			window.frames[nameVal].location.replace(elementURL + clause);
			changes = true;
		}
	}

	if(changes){
		clause = setAppletFilterClause(true,'');
		window.frames["filterTotal"].location.replace(totalURL + clause);
		initTaintArray();
	}

	setWait(false);
}

function setFrameContent(frameId, content, cssClass){
	var tempFrame = window.frames[frameId];
	if(tempFrame!=null){
		tempFrame.document.open();
		var frameContent = "<html><head><link href='" + CSS_ROOT +"filterFrame.css' type='text/css' rel='stylesheet'></head><body marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' class='"
			+ cssClass
			+ "'>"
			+ content
			+ "<form><input type='hidden' name='count' value='"+content+"'/></form>"
			+ "<script language='JavaScript'>parent.totalSelected('"+content+"')</script>"
			+ "</body></html>";

		tempFrame.document.write(frameContent);
		tempFrame.document.close();	
	}
}

function setInitialValues(value){
	for(i=0; i < appletcount; i++){
		name = appletarray[i];
		if(defaultvalue[i] != null) setFrameContent(name, defaultvalue[i], "elements");
		else setFrameContent(name, value, "elements");
	}
		if(defaultvalue[appletcount] != null) setFrameContent("filterTotal", defaultvalue[appletcount], "elements");
		else setFrameContent("filterTotal", value, "elements");
}

function setSelectedInitialValues(value){
	var changes = false;
	for(i=0; i < appletcount; i++){
		if(appletTaintArray[i]){
			name = appletarray[i];
			setFrameContent(name,value, "elements");
			changes = true;
		}
	}
	if(changes) {
		setFrameContent("filterTotal",value, "total");
	}
}

function totalSelected(count){
	if(getRef('NoResultsWarning')){
		if(count<=0)
			set('NoResultsWarning', 'visible');
		else
			hide('NoResultsWarning');
	}
}

function gotoFanModelListing(){
	var url = HTML_ROOT + 'fan_list/' ;
	switch (TEMPLATE_ID){
		case 'TMP00123':
			url += 'fpc01_';
		break;
		case 'TMP00124':
			url += 'fpc02_';
		break;
		case 'TMP00125':
			url += 'fpc03_';
		break;
		default:
			alert("Error showing Fan Model Listing.  Could not select fan category.");
	}
	switch (s_measure_system){
		case 'I':
			url += 'inch';
		break;
		case 'M':
			url += 'mm';
		break;
		default:
			alert("Error showing Fan Model Listing.  Could not select fan measuring system.");
	}
	url += '.shtml';
	
	location.href=url;
}

function updateForm(from,to){
	to.catalogFilterClause.value = from.catalogFilterClause.value;
	to.Transaction.value = from.Transaction.value;
	to.measuringSystem.value = from.measuringSystem.value;
	to.templateId.value = from.templateId.value;
	to.catalogID.value = from.catalogID.value;
}

function resubmitUpdatedFields(){
	for(var i=0; i < document.forms[0].length; i++){
		obj = document.forms[0].elements[i];

		if (obj.type == "select-one") {
			if(obj.selectedIndex>0){
//alert(obj.name);

obj.onchange();
//eval("document.forms[0]." +obj.name + ".onchange()");
			}
		}
	}
	loadSelectedApplets();
}

