function dynamicSelect (id1, id2, id3) {
	if (document.getElementById && document.getElementsByTagName) {
		var sel1 = document.getElementById(id1);
		var sel2 = document.getElementById(id2);
		var clone = sel2.cloneNode(true);
		var clonedOptions = clone.getElementsByTagName("option");
		refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		sel1.onchange = function() {
			if (id3 != "") {
				document.options[id3].options[0].selected = true 
				document.options[id3].disabled = true;
			}
				
			document.getElementById(id2).disabled = false;
			refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		};
	}
}

function refreshDynamicSelectOptions (sel1, sel2, clonedOptions) {
	while (sel2.options.length) {
		sel2.remove(0);
	}
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" +
	sel1.options[sel1.selectedIndex].title + ")( |$)");
	for (var i = 0; i < clonedOptions.length; i++) {
		if (clonedOptions[i].className.match(pattern1) ||
			clonedOptions[i].className.match(pattern2)) {
			sel2.appendChild(clonedOptions[i].cloneNode(true));
		}
	}
}

function verifyselection(form) 	{
		// result function
		var blnResult = true;
		// temp name form control
		var nameControl = "";
		// array of name of radio form controls
		var arrNameControl = new Array();
		// array of value checked of radio form controls
		var arrValueControl = new Array();
		// flag existence form control in array
		var isExistOnArray = false;

		// loop on all elements of form
		for(i=0; i<form.elements.length; i++) {
			// check type form control
			if(form.elements[i].type=="radio") {
				// save name form control
				nameControl = form.elements[i].name;
				// reset flag existence form control in array
				isExistOnArray = false;
				// loop on all found radio form control
				for(j=0; j<arrNameControl.length; j++){
					// if giving form control is exist in array
					if(arrNameControl[j] == nameControl) {
						// set flag
						isExistOnArray = true;
						// break loop
						break;
					}
				}
				// if giving form control is not exist in array
				if(isExistOnArray == false){
					// set index of array
					j = arrNameControl.length;
					// add new element to arrays
					arrNameControl[j] = nameControl;
					arrValueControl[j] = 0;
				}
				// if giving radio form control is checked
				if(form.elements[i].checked == "1"){
					arrValueControl[j] = 1;
				}
			}
                        if ((form.elements[i].selectedIndex > -1)) {
                                if (form.elements[i].selectedIndex == 0) {
                                        var opttext = form.elements[i].value.toLowerCase();
                                        if (opttext.indexOf('optional') < 0) {        
                                                blnResult = false;
                                                alert('Please select one of the options from the list');
                                                break;
                                        }
                                }
                        }
		}
		// loop on all found radio form control
		if(blnResult==true) {
                        for(j=0; j<arrNameControl.length; j++){
			        // if radio group form control is checked
			        if(arrValueControl[j] != 1) {
				       // set result function
				       blnResult = false;
				       // show error message
				       alert('Please select one of the options from the list');
				       break;
		       	       }
		       }
                }
		// return result function
		return blnResult;
	}