
//=================================================================
//===============================================================
//==公用javascript函数，根据新选中的ParentSelectBox中的项，重新填充填充ChildSelectBox的选项，以使其同ParentSelectBox同步（即，只填充当前Parent下的子项）
//==DepositSelectBox中的项，来自 View (例如：View_PublicGoodsJoinGoodsColorSize,该View提供的值是 父ID+":"+子ID),作为数据缓存，根据当前选中的父项，从这个缓存中找到相关Option,取其 ":"右边的部分填充到子SelectBox中
//===============================================================
//=================================================================

function SynchronizeChildSelectBox(ParentSelectBox,DepositSelectBox,ChildSelectBox,WildCard)  
{
	//------------------------------------
	//--本地变量
	//------------------------------------
	var CurParentID,CurChildID,BufParentID,DepositID;
	var forN,PosDelimiter;
	var InsertItem;

	//------------------------------------
	//--首先缓存旧的 ChildSelectBox 中已被选中的项目，
	//--改变了 ParentSelectBox 后，新的 ChildSelectBox 项目中自动选中哪个？当然最好是以前已被选中的项目
	//--这样，在 Modify 情形，即使刷新页面的时候直接运行了该 JS，也不会冲掉 PostBack 回来的值
	//------------------------------------
	CurChildID=parseInt(ChildSelectBox.options.item(ChildSelectBox.selectedIndex).value);
	
	//------------------------------------
	//--清空ChildSelectBox选择框中的旧选项
	//------------------------------------
	ChildSelectBox.options.length=0;
	
	//------------------------------------
	//--当前选中的父的ID	
	//------------------------------------
	CurParentID=parseInt(ParentSelectBox.options.item(ParentSelectBox.selectedIndex).value);

	//------------------------------------
	//--遍历缓存的 全部 GoodsColorSize记录
	//------------------------------------
	for (forN=0; forN<=DepositSelectBox.options.length-1; forN++)  
	{
		//--------------------------------
		//--1:12 格式的 GoodsColorSizeID (GoodsID:ColorSizeID)
		//--------------------------------
		DepositID=DepositSelectBox.options.item(forN).value;
		
		//--------------------------------
		//--找到 分隔符":"的位置
		//--------------------------------
		PosDelimiter=DepositID.indexOf(":",0);
		
		//--------------------------------
		//--获得GoodsID部分
		//--------------------------------
		BufParentID=parseInt(DepositID.slice(0,PosDelimiter));

		//--------------------------------
		//--当前GoodsID符合GoodsColorSizeID,或者CurGoodsID==0,（说明选择了全部 *）加入
		//--------------------------------
		if(BufParentID==CurParentID || CurParentID==0)
		{
			//--------------------------------
			//--创建将要插入到selectGoodsColorSize中的option对象
			//--------------------------------
			InsertItem=document.createElement("OPTION");
			ChildSelectBox.options.add(InsertItem);
			InsertItem.innerText =DepositSelectBox.options.item(forN).text;
			InsertItem.value=DepositID.slice(PosDelimiter+1,DepositID.length);
			
			//--------------------------------
			//--如果新增的 Item 和先前缓存的旧的 ChildSelectBox 中被选中项目的  value 一致，则选中之 （即：新的 ChildSelectBox 的项目中被选中项目尽可能保持）
			//--------------------------------
			if (InsertItem.value==CurChildID)
			{
				InsertItem.selected=true;
			}
		}
	}

	//--------------------------------
	//--如果需要加一个全选项（*--对应option.Value=0）
	//--注：整个 Portal 系统，有三个地方需要考虑这个 “WildCard” 情形， 这里， PortalSelectBox, PortalSelectDate ，它们对 WildCard 的处理必须一致
	//--即， WildCard 的标志文本为 “*”，其值为0， 在数据库 Query 中，这意味着这个 Query 条件不参与限制
	//--------------------------------
	if (WildCard==true)
	{
		//--------------------------------
		//--创建将要插入到selectGoodsColorSize中的option对象
		//--------------------------------
		InsertItem=document.createElement("OPTION");
		ChildSelectBox.options.add(InsertItem);
		InsertItem.innerText ="*";
		InsertItem.value=0;
	}
}
