
///////////////////////////////////////////////Tree Select List begin //////////////////////////
      
function charNumber(sourcestr,findstr)   {  

  sourcestr=new   String(sourcestr);  
  findstr=new   String(findstr);  
  var   findcount=0;  
  var   startposition=0;  
   
  while   (startposition < sourcestr.length)   {  
  searchstr=sourcestr.indexOf(findstr,startposition);  
  if   (searchstr!=-1)   {  
  findcount=findcount+1;  
  startposition=searchstr+findstr.length;  
  }   else   {  
  break;  
  }  
  }  
  return(findcount);  
  }

function ajaxTreeSelectUpdate(id,className,parentField,valueFieldName,showFieldName,rootCode,whereSet){
	
	var selectObj =document.getElementById(id);
	var isInit=true;
	if(selectObj.selectedIndex>=0){
		rootCode=selectObj.options[selectObj.selectedIndex].value;
		isInit=false;
	}
	var ajaxValue=jsonrpc.treeService.getSubItems(className, parentField,valueFieldName,showFieldName,rootCode,whereSet);
	
	var items=ajaxValue.split('|');
	var lastText="";
	var clickCount=0;
	
	//select before
	var   tmpSelectObj = document.createElement("select");  
	 
	for ( var i=0;i<=selectObj.selectedIndex;i++){
	 var   oOption   =   document.createElement("OPTION");   
		 oOption.value=selectObj.options[i].value; 
		 oOption.text=selectObj.options[i].text;
		 tmpSelectObj.options.add(oOption); 
		 lastText=selectObj.options[i].text;
	}
	
	
	
	if(items.length>0 && !isInit){
	    clickCount=charNumber(lastText,'|');
	    clickCount++;
	    lastText=""
	    	for(var j=0;j<clickCount;j++){
	    		lastText+="| ";
	    	}
		
	}
	var isExists=false;
	//begin to add subitem
	for ( var i=0;ajaxValue!=''&& i<items.length;i++){
		var itemValueArr=items[i].split(',');
		//check is exitst..
			for ( var j=0;j<selectObj.options.length;j++){
					if(selectObj.options[j].value==itemValueArr[0]){
							isExists=true;
						}
				}
		if(isExists){continue;}
		
		var   oOption   =   document.createElement("OPTION");   
		 oOption.value=itemValueArr[0]; 
		 oOption.text=lastText+itemValueArr[1]; 
		 tmpSelectObj.options.add(oOption); 
	
	
	}
	
	//after item.
	for ( var i=selectObj.selectedIndex+1;i<selectObj.options.length;i++){
	 var   oOption   =   document.createElement("OPTION");   
		 oOption.value=selectObj.options[i].value; 
		 oOption.text=selectObj.options[i].text;
		 tmpSelectObj.options.add(oOption); 
	}
	
	
	//get old items.
	selectObj.options.length=0;
	
	
	for ( var i=0;i<tmpSelectObj.options.length;i++){
	 var   oOption   =   document.createElement("OPTION");   
		 oOption.value=tmpSelectObj.options[i].value; 
		 oOption.text=tmpSelectObj.options[i].text;
		 selectObj.options.add(oOption); 
	}
	tmpSelectObj=null;
	
}
	
	function ajaxTreeSelectSetValue(selectObj,valueId){
				var vo =document.getElementById(valueId);
				vo.value=selectObj.options[selectObj.selectedIndex].value;
				return true;
	}
	
	function initAjaxTreeSelectValue(id,className,parentField,valueFieldName,showFieldName,rootCode,whereSet){
	var selectObj =document.getElementById(id);
	var ajaxValue=jsonrpc.treeService.getAllParentItems(className, parentField,valueFieldName,showFieldName,rootCode,whereSet);
	
	var items=ajaxValue.split('|');
	selectObj.options.length=0;
	var lastText='';
		//begin to add sub item.
	for ( var i=0;ajaxValue!=''&& i<items.length;i++){
		var itemValueArr=items[items.length-1-i].split(',');
		var   oOption   =   document.createElement("OPTION");   
		 oOption.value=itemValueArr[0]; 
		 oOption.text=lastText+itemValueArr[1]; 
		 selectObj.options.add(oOption); 
		 lastText+='| ';
	}
		selectObj.options[selectObj.options.length-1].selected='selected';
	
	}
	
	///////////////////////////////////////////////Tree Select List end //////////////////////////
	
	
	//////////////////////////////////////cascade Select begin///////////////////////////////
	
	function updateCascadeSelect(s1,s2,className,parentField,valueFieldName,showFieldName,whereSet){
							var ajaxValue=jsonrpc.treeService.getSubItems(className, parentField,valueFieldName,showFieldName,s1.value,whereSet);
							var toS =document.getElementById(s2);
								if(!toS){return ;}
								toS.options.length=0;
							var allOption = document.createElement("option");   
							allOption.value=''; 
							allOption.text=' '; 
							toS.options.add(allOption);
								 
							var items=ajaxValue.split('|');
							for ( var i=0;ajaxValue!=''&& i<items.length;i++){
							var itemValueArr=items[i].split(',');
							var oOption = document.createElement("option");   
							 oOption.value=itemValueArr[0]; 
							 oOption.text=itemValueArr[1]; 
							 toS.options.add(oOption); 
							}
					}
						
		//////////////////////////////////////cascade Select end///////////////////////////////
