function find(x, xs) {
	var xl  = x.length, xsl = xs.length, sValue = ""

	for (var i=0; i < xsl; i++) {
		if (xs.tagName=="SELECT") 
			sValue = xs[i].text
		else
			sValue = xs[i]
		if (sValue.substring(0,xl).toLowerCase() == x.toLowerCase())
			return sValue;
	}
	return x;
} 


function selopt(obj,name) {
   for(i=0;i<obj.length;i++) {
	if (obj.options[i].text==name) { obj.options[i].selected=true; }
   }
}

function seloptbyvalue(obj,value) {
   for(i=0;i<obj.length;i++) {
	if (obj.options[i].value==value) { obj.options[i].selected=true; }
   }
}


function update(src,selObject) {
	if (src.createTextRange) {
		// Ignore cursor keys
		var sKeys="8;46;37;38;39;40;33;34;35;36;45;46"
		if (sKeys.indexOf(event.keyCode+";")>-1) return
		// Value has changed - do lookup
		if (src.value!=src._value) {
			var r1 = src.createTextRange()
			newValue = find(src.value, selObject)

			if (newValue!=src.value) {
//				src.value=newValue
				var rNew = src.createTextRange()
				r1.setEndPoint("StartToEnd",rNew)
				r1.select()
			}
		}
//		src._value=src.value 
		selopt(selObject,newValue)
	}
}





function selatleastone(selObj,msg) {
  var counter=1;

   for(i=0;i<selObj.length;i++) {
      if (selObj[i].selected==true) {
         counter++;
      }
   }
   if (counter==1) {
		 alert(msg);
		 return false;
   } 
  return true;
}

