// Dynamic List Script
// Version 3.0
// Last Updated 31/08/07
// This product can be purchased from www.orderhistorysoftware.com


// DO NOT EDIT BELOW THIS LINE
// -------------------------------------------------------------------------


// Main Functions

function PopulateOptions(SelectedOption, DropDownName){
	var NameStart = 0;
	var NameEnd = 0; 
	var OptionNameEnd = 0;
	var thatForm = SelectedOption.form;
	var SelectedOptionValue = SelectedOption.value;
	var OptionLength = thatForm.elements[DropDownName].length;

	// Loops each text character in selected value and finds correct array name
	for (var i=0;i<SelectedOptionValue.length;i++){
		if (SelectedOptionValue.substring(i, i+1)=='['){NameStart = (i+1)};
		if (SelectedOptionValue.substring(i, i+1)==']'){NameEnd = (i)};
	}
	
	ArrayName = SelectedOptionValue.substring(NameStart, NameEnd);
	ArrayName = eval(ArrayName);
	
	if (NameStart>0){
		// Deletes all options in list
		for (var i=0;i<OptionLength;i++){
			thatForm.elements[DropDownName].options[0] = null;
		}	
	
		// Replaces with Array
		for (var i=0;i<ArrayName.length;i++){
			var ArrayOptionValue = ArrayName[i];
			var TempArrayOptionValue = ArrayOptionValue.toLowerCase();

			if (TempArrayOptionValue != PleaseSelect.toLowerCase()){
				
				var ArrayOption = ArrayOptionValue.split(":");
				var OptionText = ArrayOption[0];
				
				// Loops each text character in selected value and finds correct array name
				for (var j=0;j<OptionText.length;j++){
					if (OptionText.substring(j, j+1)==']'){OptionNameEnd = (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 TempOptionText = OptionText.substring(OptionNameEnd, OptionText.length);

						for (var j=0;j<TempOptionText.length;j++){
							if (TempOptionText.substring(j, j+1)==')'){OptionNameEnd = (j+1)};
						}

						if (OptionNameEnd > TempOptionText.length) OptionNameEnd = 0;
						OptionText = TempOptionText.substring(OptionNameEnd, TempOptionText.length);
						
						blnOptionText = true;
					}
				}
				
				if (blnOptionText == false)	OptionText = OptionText.substring(OptionNameEnd, OptionText.length);		
			}else{
				OptionText = PleaseSelect;
				ArrayOptionValue = "";
			}

			// Adds option to drop-down list
			thatForm.elements[DropDownName].options[i] = new Option(OptionText, ArrayOptionValue);
		}
	}

	// Calls price options script
	CalcPrice(thatForm);
}

function checkDisableElement(thatForm, thatValue, ElementName){
	// Checks if value of current form element is nothing
	// then disables or enables form elements
	if (countInstances(thatValue, ":0.00") == 0){
		disableElement(thatForm, ElementName, true);
	}else{
		disableElement(thatForm, ElementName, false);
	}
}

function disableElement(thatForm, ElementName, blnDisabled){
	// Disables or enables form elements
	thatForm.elements[ElementName].disabled = blnDisabled;
}

function countInstances(string, word) {
  var substrings = string.split(word);
  return substrings.length - 1;
}
