// This populateOptions Function populates the given drop-down list
// with the given drop-down array for that option
// Also works with Image Options Script

// Version 1.41

function populateOptions(thatForm, thatSelectedOption, strDropDownName){
	var intArrayNameStart = 0;
	var intArrayNameEnd = 0; 
	var intArrayOptionNameEnd = 0;
	var intOptionLength = thatForm.elements[strDropDownName].length;

	// Loops each text character in selected value and finds correct array name
	for (var i=0;i<thatSelectedOption.length;i++){
		if (thatSelectedOption.substring(i, i+1)=='['){intArrayNameStart = (i+1)};
		if (thatSelectedOption.substring(i, i+1)==']'){intArrayNameEnd = (i)};
	}
	
	strArrayName = thatSelectedOption.substring(intArrayNameStart, intArrayNameEnd);
	strArrayName = eval(strArrayName);
	
	if (intArrayNameStart>0){
		// Deletes all options in list
		for (var i=0;i<intOptionLength;i++){
			thatForm.elements[strDropDownName].options[0] = null;
		}	
	
		// Replaces with Array
		for (var i=0;i<strArrayName.length;i++){
			var strArrayOptionValue = strArrayName[i];
			var strTempArrayOptionValue = strArrayOptionValue.toLowerCase();

			if (strTempArrayOptionValue != strPleaseSelect.toLowerCase()){
				
				var strArrayOption = strArrayOptionValue.split(":");
				var strOptionText = strArrayOption[0];
				
				// Loops each text character in selected value and finds correct array name
				for (var j=0;j<strOptionText.length;j++){
					if (strOptionText.substring(j, j+1)==']'){intArrayOptionNameEnd = (j+1)};
				}
				
				// Check if Image Option Script is working with Dynamic List Script
				// using the blnImageOptions variable
				var blnOptionText = false;
				
				if (typeof blnImageOptions != "undefined") {
					if (blnImageOptions == true){
						var strTempOptionText = strOptionText.substring(intArrayOptionNameEnd, strOptionText.length);

						for (var j=0;j<strTempOptionText.length;j++){
							if (strTempOptionText.substring(j, j+1)==')'){intArrayOptionNameEnd = (j+1)};
						}

						if (intArrayOptionNameEnd > strTempOptionText.length) intArrayOptionNameEnd = 0;
						strOptionText = strTempOptionText.substring(intArrayOptionNameEnd, strTempOptionText.length);
						
						blnOptionText = true;
					}
				}
				
				if (blnOptionText == false)	strOptionText = strOptionText.substring(intArrayOptionNameEnd, strOptionText.length);		
			}else{
				strOptionText = strPleaseSelect;
				strArrayOptionValue = "";
			}

			// Adds option to drop-down list
			thatForm.elements[strDropDownName].options[i] = new Option(strOptionText, strArrayOptionValue);
		}
	}

	// Calls price options script
	mmCalc(thatForm);
}

function checkDisableElement(thatForm, thatValue, strElementName){
	// Checks if value of current form element is nothing
	// then disables or enables form elements
	if (countInstances(thatValue, ":0.00") == 0){
		disableElement(thatForm, strElementName, true);
	}else{
		disableElement(thatForm, strElementName, false);
	}
}

function disableElement(thatForm, strElementName, blnDisabled){
	// Disables or enables form elements
	thatForm.elements[strElementName].disabled = blnDisabled;
}

function countInstances(string, word) {
  var substrings = string.split(word);
  return substrings.length - 1;
}


