/*
功能：	根据代码表数组初始化SELECT
参数：	rsel:Select控件；
		raCode:代码表数组（二维数组，分别为值和描述）；
返回值： 无
*/
function initSelect(rsel, raCode) {
	var oSelOpt;
	var i;

	for(i = 0; i < raCode[0].length; i++ ){
		oSelOpt = new Option(raCode[1][i], raCode[0][i]);
		rsel.add(oSelOpt);
	}
}

/*
功能：	根据代码表数组产生并输出SELECT的HTML代码
参数：	rsName:Select控件的名称；
		raCode:代码表数组（二维数组，分别为值和描述）；
		rsWidth:SELECT宽度；
		rsOnChange:OnChange事件中调用的代码；
		rsNullDesc:第一个值的描述（空值的描述）；
返回值： 无
*/
function writeSelect(rsName, raCode, rsWidth, rsOnChange, rsNullDesc) {
	var sOutput;
	var i;
	var oselThis;
	if (!('undefined' == typeof(rsOnChange))) {
		sOutPut = '<select id="' + rsName + '" name="' + rsName + '" onchange="' + rsOnChange + '" ';
	} else {
		sOutPut = '<select id="' + rsName + '" name="' + rsName + '" ';
	}
	//alert(sOutPut);

	if (!('undefined' == typeof(rsWidth)) ) {
		if (rsWidth != '') {
			sOutPut = sOutPut + ' style="width:' + rsWidth + '"';
		}
	}
	sOutPut = sOutPut + ' class="GrayLink_14">';

	//如果输入了第一个值的描述，则将其作为第一个选项（值为0）
	if (4 < writeSelect.arguments.length && (!(typeof(rsNullDesc)=='undefined'))) {
		sOutPut = sOutPut + '<option value="0">' + rsNullDesc + '</option>'
	}
	for(i = 0; i < raCode[0].length; i++ ){
		sOutPut = sOutPut + '<option value="' + raCode[0][i] + '">' + raCode[1][i] + '</option>'
	}
	sOutPut = sOutPut +  '</select>'
	document.write(sOutPut);

	//如果ONCHANGE不为空，则创建SELECT以后触发该事件
	oselThis = getObject(rsName);
	var sEvtStr = oselThis.onchange;
	if(sEvtStr != null) {
		//屏蔽该调用，因为在构造该SELECT后，其ONCHANGE中有可能会调用到尚未建立的对象（比如二级的SELECT对象）
		//oselThis.onchange(); 
	}
}

/*
功能：	根据代码表数组产生并输出SELECT的HTML代码
参数：	rsName:Select控件的名称；
		raCode:代码表数组（二维数组，分别为值和描述）；
		rsSelected:修改时，选中的值
		rsWidth:SELECT宽度；
		rsOnChange:OnChange事件中调用的代码；
		rsNullDesc:第一个值的描述（空值的描述）；
        rsDefaultValue:第一个值的默认值
返回值： 无
*/
function writeSelected(rsName, raCode, rsSelected, rsWidth,rsOnChange, rsNullDesc, className,rsDefaultValue) {
	var sOutput;
	var i;
	var oselThis;
	
	if (!('undefined' == typeof(rsOnChange))) {
		sOutPut = '<select  id="' + rsName + '" name="' + rsName + '" onchange="' + rsOnChange + '"';
	} else {
		sOutPut = '<select  id="' + rsName + '" name="' + rsName + '" ';
	}

	if (!('undefined' == typeof(rsWidth)) ) {
		if (rsWidth != '') {
			sOutPut = sOutPut + ' style="width:' + rsWidth + '"';
		}
	}
	var cls = 'GrayLink_14';
	if('undefined' != typeof(className)){
		cls = className;
	}
	sOutPut = sOutPut + ' class="' + cls + '" >\n';

	//如果输入了第一个值的描述，则将其作为第一个选项（值为0）
	if (5 < writeSelected.arguments.length && (!(typeof(rsNullDesc)=='undefined')) && rsNullDesc != '') {
		if(8 > writeSelected.arguments.length || typeof(rsDefaultValue)=='undefined'){
                rsDefaultValue = ''; 
        }
        sOutPut = sOutPut + '<option value="' + rsDefaultValue + '">' + rsNullDesc + '</option>\n'
	}
	for(i = 0; i < raCode[0].length; i++ ){
	    if(!(typeof(rsSelected)=='undefined') && rsSelected != '' && rsSelected == raCode[0][i] )
	    {
	        sOutPut = sOutPut + '<option value="' + raCode[0][i] + '" selected >' + raCode[1][i] + '</option>\n'  
	    }
	    else
	    {
		    sOutPut = sOutPut + '<option value="' + raCode[0][i] + '">' + raCode[1][i] + '</option>\n'
		}
	}
	sOutPut = sOutPut +  '</select>\n'
	document.write(sOutPut);
	//sOutput = ''
	//如果ONCHANGE不为空，则创建SELECT以后触发该事件
	//oselThis = getObject(rsName);
	//var sEvtStr = oselThis.onchange;
	//if(sEvtStr != null) {
		//屏蔽该调用，因为在构造该SELECT后，其ONCHANGE中有可能会调用到尚未建立的对象（比如二级的SELECT对象）
		//oselThis.onchange(); 
	//}
}

/*
功能：	根据代码表数组产生并输出SELECT的HTML代码
参数：	rsName:Select控件的名称；
		raCode:代码表数组（二维数组，分别为值和描述）；
		rsSelected:修改时，选中的值
		rsWidth:SELECT宽度；
		rsOnChange:OnChange事件中调用的代码；
		rsNullDesc:第一个值的描述（空值的描述）；
返回值： 无
*/
function writeSelected1(rsName, raCode, rsSelected, rsWidth,rsOnChange, rsNullDesc) {
	var sOutput;
	var i;
	var oselThis;
	
	if (!('undefined' == typeof(rsOnChange))) {
		sOutPut = '<select ' + 'name="' + rsName + '" onchange="' + rsOnChange + '"';
	} else {
		sOutPut = '<select ' + 'name="' + rsName + '" ';
	}

	if (!('undefined' == typeof(rsWidth)) ) {
		if (rsWidth != '') {
			sOutPut = sOutPut + ' style="width:' + rsWidth + '"';
		}
	}
	sOutPut = sOutPut + ' >\n';

	//如果输入了第一个值的描述，则将其作为第一个选项（值为空）
	if (5 < writeSelected1.arguments.length && (!(typeof(rsNullDesc)=='undefined'))) {
		sOutPut = sOutPut + '<option value="" >' + rsNullDesc + '</option>\n'
	}
	for(i = 0; i < raCode[0].length; i++ ){
	    if(!(typeof(rsSelected)=='undefined') && rsSelected != ""  && rsSelected == raCode[0][i] )
	    {
	        sOutPut = sOutPut + '<option value="' + raCode[0][i] + '" selected >' + raCode[1][i] + '</option>\n'  
	    }
	    else
	    {
		    sOutPut = sOutPut + '<option value="' + raCode[0][i] + '">' + raCode[1][i] + '</option>\n'
		}
	}
	sOutPut = sOutPut +  '</select>\n'
	document.write(sOutPut);

	//如果ONCHANGE不为空，则创建SELECT以后触发该事件
	//oselThis = getObject(rsName);
	//var sEvtStr = oselThis.onchange;
	//if(sEvtStr != null) {
		//屏蔽该调用，因为在构造该SELECT后，其ONCHANGE中有可能会调用到尚未建立的对象（比如二级的SELECT对象）
		//oselThis.onchange(); 
	//}
}

/*
功能：	改变一级选项时设置二级选项的显示
参数：	rsel1:一级Select控件；
		rsel2:二级Select控件；
		raCode1:一级代码表数组（二维数组，分别为值和描述）；
		raCode2:二级代码表数组（三维数组，分别为值、描述以及父类值）；
返回值： 无
*/
function changeSelect(rsel_1, rsel_2, raCode1, raCode2) {
	var nSelectCnt;
	var rsel1 = getObject(rsel_1);
	var rsel2 = getObject(rsel_2);
	//清除原有二级选项内容
	clearSelectOpt(rsel2);
	
	//设置二级SELECT的显示
	setSelectLevel2(rsel2, rsel1.value, raCode2)
}

/*
功能：	按父代码的值设置当前SELECT控件的显示
参数：	rsel:二级Select控件；
		rnParent:父代码值；
		raCode:二级代码表数组（三维数组，分别为值、描述以及父类值）；
返回值： 无
*/
function setSelectLevel2(rsel, rnParent, raCode) {
	var i;
	var oSelOpt;
	//循环取所有二级代码值
	oSelOpt = new Option("选择", "");
	rsel.add(oSelOpt);
	
	if("undefined"!=typeof(raCode[2])){
		for(i = 0; i < raCode[0].length; i++ ){
			//当前代码的父类值与父代码值相同时，插入当前代码值到二级SELECT中
			if (rnParent == raCode[2][i])
			{
				oSelOpt = new Option(raCode[1][i], raCode[0][i]);
				rsel.add(oSelOpt);
			}
		}
	}
}

/*
功能：	清除SELECT内容
参数：	rsel:Select控件；
返回值： 无
*/
function clearSelectOpt(rsel){
	len=rsel.length;
	for (i = 0; i < len; i ++){
		rsel.options[0]=null;
	}
}

function getObject(sIdFlag) {
    var tBtn
	
	tBtn = document.getElementById(sIdFlag);
	return tBtn
}


/*
功能：	根据给定的数值范围产生并输出SELECT的HTML代码
参数：	rsName:Select控件的名称；
		rnStart:开始数值；
		rnEnd:结束数值；
		rsWidth:SELECT宽度；
		rsOnChange:OnChange事件中调用的代码；
		rsNullDesc:第一个值的描述（空值的描述）；
返回值： 无
*/
function writeNumberSelect(rsName, rnStart, rnEnd, rsWidth, rsOnChange, rsNullDesc) {
	var sOutput;
	var i;
	var oselThis;

	//设置onchange事件
	if (!('undefined' == typeof(rsOnChange))) {
		sOutPut = '<select ' + 'name="' + rsName + '" onchange="' + rsOnChange + '"';
	} else {
		sOutPut = '<select ' + 'name="' + rsName + '" ';
	}
	
	//设置宽度
	if (!('undefined' == typeof(rsWidth)) ) {
		if (rsWidth != '') {
			sOutPut = sOutPut + ' style="width:' + rsWidth + '"';
		}
	}

	sOutPut = sOutPut + ' class="text-form1">';

	//如果输入了第一个值的描述，则将其作为第一个选项（值为0）
	if (5 < writeNumberSelect.arguments.length && (!(typeof(rsNullDesc)=='undefined'))) {
		sOutPut = sOutPut + '<option value="0">' + rsNullDesc + '</option>'
	}

	if (rnStart < rnEnd) {
		//从小到大
		for (i=rnStart; i<=rnEnd; i++) {
			sOutPut = sOutPut + '<option value="' + i + '">' + i + '</option>'
		}
	} else {
		//从大到小
		for (i=rnStart; i>=rnEnd; i--) {
			sOutPut = sOutPut + '<option value="' + i + '">' + i + '</option>'
		}
	}
	
	sOutPut = sOutPut +  '</select>'
	document.write(sOutPut);
}


function writeNumberSelected(rsName, rnStart, rnEnd, rsSelected, rsWidth, rsOnChange, rnStartDesc, rnEndDesc) {
	var sOutput;
	var i;
	var oselThis;

	//设置onchange事件
	if (!('undefined' == typeof(rsOnChange))) {
		sOutPut = '<select id ="' + rsName + '" name="' + rsName + '" onchange="' + rsOnChange + '"';
	} else {
		sOutPut = '<select id ="' + rsName + '" name="' + rsName + '" ';
	}
	
	//设置宽度
	if (!('undefined' == typeof(rsWidth)) ) {
		if (rsWidth != '') {
			sOutPut = sOutPut + ' style="width:' + rsWidth + '"';
		}
	}

	sOutPut = sOutPut + ' class="GrayLink_14">';

	//如果输入了第一个值的描述
	inStart = rnStart
	if (5 < writeNumberSelected.arguments.length && (!(typeof(rnStartDesc)=='undefined')) && rnStartDesc != "") {
		sOutPut = sOutPut + '<option value="' + rnStart + '">' + rnStartDesc + '</option>'
		inStart++
	}
	if (inStart < rnEnd) {
		//从小到大
		for (i=inStart; i<rnEnd; i++) {
			sOutPut = sOutPut + '<option value="' + i + '">' + i + '</option>'
		}
	} else {
		//从大到小
		for (i=inStart; i>rnEnd; i--) {
			sOutPut = sOutPut + '<option value="' + i + '">' + i + '</option>'
		}
	}
	//如果输入了最后一个值的描述
	if (6 < writeNumberSelected.arguments.length && (!(typeof(rnEndDesc)=='undefined'))  && rnEndDesc != "") {
		sOutPut = sOutPut + '<option value="' + rnEnd + '">' + rnEndDesc + '</option>'
	}else{
		sOutPut = sOutPut + '<option value="' + rnEnd + '">' + rnEnd + '</option>'
	}
	
	sOutPut = sOutPut +  '</select>'
	document.write(sOutPut);
	if ('undefined' != typeof(rsSelected) && rsSelected != "") {
		var obj = getObject(rsName);
		obj.value = rsSelected;
	}
}
