/**
 * 可选可输对象
 * 属性：
 *       
 * 说明：在验证时，必须是可选列表中的值，否则不让其通过。
 * @author  zhaosh
 */
 
function SelectOrInputObj(editerObj){
	//定义输入对象
	this.edtObj = editerObj;
	//私有对象
	var ParObj=null;
	var BasObj=null;
}

//公共方法
SelectOrInputObj.prototype.onvalidate=function () {
	//调用BaseObject中的公用函数检查数据合法性
	if(!this.getBaseObj().commonCheck())	return false;

	if(!this.checkvalidate()){
		return false;
	}

	return true;
}
SelectOrInputObj.prototype.checkvalidate=function () {
	var valueFldObj=eval("this.edtObj.form."+this.edtObj.valueFldName);
	if(valueFldObj==undefined || valueFldObj==null){
		alert("["+this.edtObj.prompt + "]没找到存储value值的域---"+this.edtObj.valueFldName+"！");
		return false;
	}
	if(valueFldObj.value=="" && this.edtObj.value==""){
		return true;
	}
	var dataSrcObj=eval("this.edtObj.form."+this.edtObj.dataSrcFldName);
	if(dataSrcObj==undefined || dataSrcObj==null){
		alert("["+this.edtObj.prompt + "]没找到数据源域---"+this.edtObj.dataSrcFldName+"！");
		return false;
	}
	var dataItems=dataSrcObj.options;
	for(var i=0; i<dataItems.length; i++){
		if(dataItems[i].value==valueFldObj.value){
			return true;
		}
	}
	
	alert("["+this.edtObj.prompt + "]中的值在被选值中没找到！");
	return false;
}
SelectOrInputObj.prototype.getParentObj=function (){
	if(this.BasObj==null){
		this.BasObj = new BaseObj(this.edtObj);
	}
	return this.BasObj;
}
SelectOrInputObj.prototype.getBaseObj=function (){
	if(this.BasObj==null){
		this.BasObj = new BaseObj(this.edtObj);
	}
	return this.BasObj;
}

//行为方法
SelectOrInputObj.prototype.onReady=function (){
	//调用ParentObj 的初始化方法
	this.getParentObj().onReady();
	
	var valueFldObj=eval("this.edtObj.form."+this.edtObj.valueFldName);
	if(valueFldObj==undefined || valueFldObj==null){
		alert("["+this.edtObj.prompt + "]没找到存储value值的域---"+this.edtObj.valueFldName+"！");
		return false;
	}
	
	var dataSrcObj=eval("this.edtObj.form."+this.edtObj.dataSrcFldName);
	if(dataSrcObj==undefined || dataSrcObj==null){
		alert("["+this.edtObj.prompt + "]没找到数据源域---"+this.edtObj.dataSrcFldName+"！");
		return false;
	}
	var dataItems=dataSrcObj.options;
	for(var i=0; i<dataItems.length; i++){
		if(dataItems[i].value==valueFldObj.value){
			this.edtObj.value=dataItems[i].text;
			return true;
		}
	}
};
SelectOrInputObj.prototype.eventBand=function (){

}


SelectOrInputObj.prototype.beforeSubmit = function(){
	this.getParentObj().beforeSubmit();
}

/**
 * 当光标跳出可选可输域时所执行的动作
 */
SelectOrInputObj.onBlur=function (curObj){
	var valueFldObj=eval("curObj.form."+curObj.valueFldName);
	if(valueFldObj==undefined || valueFldObj==null){
		alert("["+curObj.prompt + "]没找到存储value值的域---"+this.edtObj.valueFldName+"！");
		return false;
	}
	if(myHelper.getSelectedItem()==null){
		valueFldObj.value="";
		curObj.value="";
	}else{
		var selectedItem=myHelper.getSelectedItem();
		if(curObj.value!=selectedItem.text){
			valueFldObj.value="";
			curObj.value="";
		}else{
			valueFldObj.value=selectedItem.value;
			curObj.value=selectedItem.text;
		}
	}
	myHelper.conceal();
}
