/*--產生select的option選項與設定預設選項	公用函數	 值為1~n
	[u] 產生位置
	[v] 值內容陣列
	[w] 1為順序增量編號(0-n) 2為增量編號(1-n) 0同內容值  其他為以w傳入陣列給值
	[x] 為預設值位置(為順續值)，為文字時找到同值作為預設值
--*/
	function doSelect(u,v,w,x){
	  var i,br=false;
		if(validNum(v) || v.length!=undefined){
		  for(i=0;i<v.length;i++){
			u.options.length = i+1;
			u.options[i].text=v[i];
			switch(w){
			  case 1:
				u.options[i].value = i;
				break;
			  case 0:
				u.options[i].value = v[i];
				break;
			  case 2:
				u.options[i].value = i+1;
				break;
			  default:
				u.options[i].value = w[i];
				break;
			}
		  }
		}else{
		  for(i=0;i<parseFloat(v);i++){
			u.options.length = i+1;
			switch(w){
			  case 0:{
				alert('給定範圍增量值不可使用這個參數！')
				br=true;
				break;}
			  case 1:{
				u.options[i].text=i;
				u.options[i].value = i;
				break;}
			  case 2:{
				u.options[i].text=i+1;
				u.options[i].value = i+1;
				break;}
			  default:{
				u.options[i].text=i;
				u.options[i].value = w[i];
				break}
			}
			if(br){
				break;
			}
		  }
		}
			//--預設值的設定 x為數值時代入options索引，為文字時找到同值作為預設值
		if(validNum(x)){
			for(i=0;i<u.options.length;i++){
				if(u.options[i].value==x){
					u.options[i].selected = true;
					u.selectedIndex = i;
				}
			}
		}else{
			if(x<i && x>0){
				u.options[x].selected = true;
				u.selectedIndex = x;
			}
		}
	}

//--數字驗證函數	公用函數
	function validNum(x){
		return isNaN(parseFloat(x));		//--接受浮點數字 10進位底
	}

//--數字或空白轉換函數	公用函數
	function parseNum(x){
		if(x==''){
			return 0;
		}else{
			return parseFloat(x);		//--接受浮點數字 10進位底
		}
	}

//--日期驗證並格式化函數	公用函數
	function validDateWithFormat(y){
		var x = '', patrn = '/,_-~:\'\"\\|.', z;	//--patrn建立可使用的分隔字元
		//--功能：檢查日期格式並格式化傳回，格式有誤傳回True，正確傳回格式化日期yyyy/mm/dd
		//--分隔字元相容於 /,- 兩種
		y = y.toString(10);

		if(y.length > 10){		//--大於10碼則錯誤
			return true;
		}else{
			for(var i=0;i<patrn.length;i++){
				z = y.indexOf(patrn.charAt(i));
				if(z != -1){
					x = y.split(y.charAt(z));
					break;
				}
			}

			if(x.length == 3){

			}else{
				//--無分隔符號時連續數字日期格式 etc. 19000101,020315等狀況
				x = new Array(3)
				if(y.length == 8){	//--8碼格式
					x[0] = y.substring(0,4);
					x[1] = y.substring(4,6);
					x[2] = y.substring(6,8);
				}else{
					if(y.length == 6){
						x[0] = '20' + y.substring(0,2);	//--公元2000年以後之格式 2碼前加上20
						x[1] = y.substring(2,4);
						x[2] = y.substring(4,6);
					}else{
						return true;
					}
				}
			}

			//--3等分隔符號日期格式解析 yyyy,yy,mm,m,dd,d
			if(!validNum(x[0])){	//--年
				if(!validNum(x[1]) && parseInt(x[1],10) > 0 && parseInt(x[1],10) <= 12){	//--月
					if(!validNum(x[2]) && parseInt(x[2],10) > 0 && parseInt(x[2],10) <= 31)	//--日
						return x.join('/');	//--組合成標準格式
				}else{
					return true;
				}
			}else{
				return true;
			}
		}
	}

/*--產生單選Radio的選項與設定預設選項	公用函數	值為1~n
	[u] 產生位置,使用id駐點,innerHTML產生
	[v] Radio name
	[w] 顯示文字陣列
	[x] 值內容陣列 (1)為順序增量編號(0-n) 2為增量編號(1-n) (0)同內容值  其他為以(w)傳入陣列給值
	[y] 為預設值位置(為順續值),為文字時找尋相同value者
	[z] 直列顯示或是橫列顯示 (v,h)
*/

function doRadio(u,v,w,x,y,z){
	var i,str='',info='',chk='';

    //--檢查各項值存在性
	if(u==undefined){
		info+='id顯示radio駐點未定義！\n';
	}
	if(v==undefined){
		info+='Radio name未定義！\n';
	}else{
		if(v==''){
			info+='Radio name未定義！\n';
		}
	}
	if(w==undefined){
		info+='Radio項目文字未定義！\n';
	}
	if(x==undefined){
			info+='Radio項目值未定義！\n';
	}else{
		if(x==''){
			info+='Radio項目值未定義！\n';
		}
	}

  if(info==''){
	if(y==undefined){
		var y=0;
	}
	
    //--判斷直列顯示或是橫列顯示
	if(z==undefined){
		var z='';
	}else{
		if(z=='h'){
			z='<br/>';
		}else{
			z='';
		}			
	}

	//--使用指定增量項目內容值
	  if(!validNum(w)){
		for(i=0;i<parseFloat(w);i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
			str+='<input type="radio" name="'+ u +'" value="'+ i +'">'+ i + z;
		}
	//--判斷value值的給訂方式
	  }else{
		//--判斷value值指定方式
		switch(x){
		  case 1:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ i +'">'+ w[i] + z;
			}
			break;
		  case 0:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ w[i] +'">'+ w[i] + z;
			}
			break;
		  case 2:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ (i+1) +'">'+ w[i] + z;
			}
			break;
		  default:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
				chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ x[i] +'">'+ w[i] + z;
			}
			break;
		}
	  }
				
	u.innerHTML=str;
  }else{
	alert(info);
  }
}

/*--產生Checkbox的選項與設定預設選項	公用函數	值為1~n
	[u] 產生位置,使用id駐點,innerHTML產生
	[v] checkbox name陣列
	[w] 顯示文字陣列
	[x] 值內容陣列 (1)為順序增量編號(0-n) 2為增量編號(1-n) (0)同內容值  其他為以(w)傳入陣列給值
	[y] 為預設值位置(為順續值),為文字時找尋相同value者
	[z] 直列顯示或是橫列顯示 (v,h)
*/

function doCheckbox(u,v,w,x,y,z){
	var i,str='',info='',chk='';

    //--檢查各項值存在性
	if(u==undefined){
		info+='id顯示radio駐點未定義！\n';
	}
	if(v==undefined){
		info+='Radio name未定義！\n';
	}else{
		if(v==''){
			info+='Radio name未定義！\n';
		}
	}
	if(w==undefined){
		info+='Radio項目文字未定義！\n';
	}
	if(x==undefined){
			info+='Radio項目值未定義！\n';
	}else{
		if(x==''){
			info+='Radio項目值未定義！\n';
		}
	}

  if(info==''){
	if(y==undefined){
		var y=0;
	}
	
    //--判斷直列顯示或是橫列顯示
	if(z==undefined){
		var z='';
	}else{
		if(z=='h'){
			z='<br/>';
		}else{
			z='';
		}			
	}

	//--使用指定增量項目內容值
	  if(!validNum(w)){
		for(i=0;i<parseFloat(w);i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
			str+='<input type="radio" name="'+ u +'" value="'+ i +'">'+ i + z;
		}
	//--判斷value值的給訂方式
	  }else{
		//--判斷value值指定方式
		switch(x){
		  case 1:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ i +'">'+ w[i] + z;
			}
			break;
		  case 0:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ w[i] +'">'+ w[i] + z;
			}
			break;
		  case 2:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
					chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ (i+1) +'">'+ w[i] + z;
			}
			break;
		  default:
			for(i=0;i<w.length;i++){
			//--判斷預設值位置
			if(validNum(y)){
				if(x[i]==y){
					chk='checked';
				}
			}else{
				if(i==y){
				chk='checked';
				}
			}
				str+='<input type="radio" name="'+ u +'" value="'+ x[i] +'">'+ w[i] + z;
			}
			break;
		}
	  }
				
	u.innerHTML=str;
  }else{
	alert(info);
  }
}	


//--開啟新視窗並設定位置與大小

		function newin(OpededDoc,title,wd,hg,l,t){
			//--title標題,wd寬,hg高,l橫座標,t直座標
			var viewWin=null;
		        viewWin = window.open('',title, 'titlebar=0,scrollbars=1,width='+wd+',height='+hg+',left='+l+',top='+t);

			if (viewWin!= null){
		                if (viewWin.opener == null){
		                        viewWin.opener = self;
		                }
		                viewWin.location.href = OpededDoc;
		        }
		}