// Check the browser
function browserSniffer() {

	this.browserVersion = parseInt(navigator.appVersion);
	this.browserPlatform = navigator.platform;
	this.browserName = navigator.appName;

	this.isOpera = (this.browserName.indexOf('Opera') > -1) ? true : false;
	this.isNavigator = (this.browserName.indexOf('Netscape') > -1) ? true : false;
	this.isExplorer = (this.browserName.indexOf('Explorer') > -1) ? true : false;
	
	this.isMac = (this.browserPlatform.indexOf('Mac') > -1) ? true : false;
	
	this.isFour = (this.browserVersion == 4) ? true : false;
	
	this.isIE3 = ((this.browserVersion == 3) && (this.isExplorer)) ? true : false;
	this.isNS4 = ((this.browserVersion == 4) && (this.isNavigator)) ? true : false;
	this.isNS6 = ((this.browserVersion == 5) && (this.isNavigator)) ? true : false;
}

// Change the value of a field, used in CreateEmail()
function ChangeValue(strFieldName,strNewValue) {

	try {
  		var sniffer = new browserSniffer();
		if (sniffer.isExplorer) {

			objEl = eval('document.forms[0].elements[\'' + strFieldName + '\']' );
			//objEl = eval('document.all.' + strFieldName )	;
			objEl.value = strNewValue;
		} else if (sniffer.isNS6) {
			docObj = document.getElementById(strFieldName);
			docObj.value = strNewValue;
		}
	} catch(e) {}
}


// Relating multiple nested selects with one another
// http://evolt.jeffhowden.com/jeff/code/related_selects.cfm

// Used in toggleDisabled()
function ListFindNoCase(list, value) {

	var returnValue = -1;
	var i = 0;
	var delimiter = ',';
	var _tempArray = new Array();
	if(ListFindNoCase.arguments.length == 3) delimiter = ListFindNoCase.arguments[2];
	list = list.toLowerCase();
	value = value.toLowerCase();
	_tempArray = list.split(delimiter);
	for(i = 0; i < _tempArray.length; i++) {
		if(_tempArray[i] == value) {
			returnValue = i;
			break;
		}
	}
        return returnValue;
};

// Switch a form item between disabled and not, used in setOptions()
function toggleDisabled(form, bDisabled) {
	if(toggleDisabled.arguments.length < 3) return;
	for(var i = 2; i < toggleDisabled.arguments.length; i++) {
		element = form.elements[toggleDisabled.arguments[i]];
		if(element) {
			element.disabled = bDisabled;
			if(ListFindNoCase('input,textarea,select', element.tagName) != -1) {
				if(ListFindNoCase('checkbox,radio,button,submit,reset', element.type) == -1) {
					if(!element.enabledClass && !element.disabled) element.enabledClass = element.className;
					if(!element.disabledClass && element.disabled) element.disabledClass = element.className;
					element.className = (bDisabled) ? element.disabledClass : element.enabledClass;
					if(element.type.toLowerCase() == 'file' && element.reset)
					element.reset();
				}
				if(element.type.toLowerCase() == 'select-one') {
					if(bDisabled) {
						if(element.selectedIndex != -1)
						element.defaultSelected = element.selectedIndex;
						element.selectedIndex = -1;
					}
					else {
						element.selectedIndex = element.defaultSelected;
						element.defaultSelected = element.selectedIndex;
					}
				}
			}
		}
	}
	if(!bDisabled && ListFindNoCase('text,password,textarea,checkbox,radio,select-one,select-multiple,submit,reset,button', form.elements[toggleDisabled.arguments[2]].type) != -1) form.elements[toggleDisabled.arguments[2]].focus();
}


// Set select menu options
function setOptions(oForm, oElement, oOptions) {
	if(!oOptions) oOptions = '';
	oElement.options.selectedIndex = -1;
	oElement.options.length = 0;
	//toggleDisabled(oForm, (oOptions.length <= 1), oElement.id);

	for(var i = 0; i < oOptions.length; i++) {
		oElement.options.length = oElement.options.length + 1;
		for(var j = 0; j < oOptions[i].length; j++)
		oElement.options[i][oOptions[i][j][0]] = oOptions[i][j][1];
	}
	
}




// Addition to above nested list code to preselect a submenu on a page with populated data
function SetIndex(strFieldName,strMenuItem) {
	try {
		var strField = document.getElementById(strFieldName);
		var lenField = strField.length;
		for (var x = 0; x < lenField; x++) {
			var strThisValue = strField.options[strField.selectedIndex+x].text
			var strThisIndex = strField.selectedIndex+x
			if (strThisValue == strMenuItem) {
				strField.selectedIndex = strThisIndex;
			}
		}
	} catch(e) {}
}



// Hiding or Showing select menus based on Material chosen

function DisplayItems(strMaterial) {
	//alert(strMaterial);

  	var sniffer = new browserSniffer();
	//alert(sniffer.isNavigator);
	//alert(sniffer.isExplorer);

	if (strMaterial == 'Cast Steel Grit') {
		if (sniffer.isNavigator) {
			ShowHideItem('HardnessRow','table-row');
		} else {
			ShowHideItem('HardnessRow','block');
		}
		ShowHideItem('ShapeRow','none');
		ShowHideItem('SpecificationRow','none');
	} else if (strMaterial == 'Stainless Steel 302/304' || strMaterial == 'Carbon Steel HRC 45 - 50' || strMaterial == 'Carbon Steel HRC 50 - 55' || strMaterial == 'Carbon Steel HRC 55 - 60') {
		if (sniffer.isNavigator) {
			ShowHideItem('ShapeRow','table-row');
			ShowHideItem('SpecificationRow','table-row');
		} else {
			ShowHideItem('ShapeRow','block');
			ShowHideItem('SpecificationRow','block');
		}
		ShowHideItem('HardnessRow','none');
	} else {
		ShowHideItem('ShapeRow','none');
		ShowHideItem('SpecificationRow','none');
		ShowHideItem('HardnessRow','none');
	}
}

function ShowHideItem(strItemID,strDisplay) {
	var coll = document;
	try{
		var obj = coll.getElementById(strItemID);
		obj.style.display=strDisplay;
	}
	catch(e){}
}
