/*
JavaScript 常用自訂函式集

注意!!這裡的函式都交叉使用,若刪除任一函式皆可能出錯.

by Neo Wang 2006/12/20
*/

function _e(id){//Element
	return document.getElementById(id);
};

function _n(_name){//Element By Name
	return document.getElementsByName(_name);
};

function _ev(){
	var args = _ev.arguments;	
	if(args.length==1){//呈現
		return _e(args[0]).value;
	}else{//寫入
		_e(args[0]).value=args[1];
	};
};

function _ei(){
	var args = _ei.arguments;	
	if(args.length==1){//呈現
		return _e(args[0]).innerHTML;
	}else{//寫入
		_e(args[0]).innerHTML=args[1];
	};
};

function _es(id){//Element.style
//_e(id)
	return _e(id).style;
};

function _esc(id,_color){//Element.style.color=?  "給予 文字 顏色"
//_e(id),_es(id)
	_es(id).color=_color;
};

function _esbc(id,_color){//Element.style.backgroundColor=?  "給予 背景 顏色"
//_e(id),_es(id)
	_es(id).backgroundColor=_color;
};

function _wn(){
	return window.name
};

function __wn(_name){
	return window.name = _name;
};

function _rT(_x,_y){
	return resizeTo(_x,_y);
};

function _dw(_txt){//document.write  "輸出字串"
	return document.write(_txt);
};

function _br(){
	return "<br />"
};

function _eo(id){//Element.options 使用在" select 選單 "
	return _e(id).options;
};

function _eot(id,num){
	return _eo(id)[num].text
};

function _eov(id,num){
	return _eo(id)[num].value
};

function _eos(id,num){
	return _eo(id)[num].selected
};

function _eol(id){
	return _eo(id).length
};

function _eoDis(){
	var args = _eoDis.arguments;	
	if(args.length==2){//呈現
		return _eo(args[0])[args[1]].disabled;
	}else{//寫入
		_eo(args[0])[args[1]].disabled=args[2];
	};
};

function _eoDis2(id,num){
	if(_eoDis(id,num)){
		_eoDis(id,num,false);
	}else{
		_eoDis(id,num,true);
	};
};

function _eoNS(id){//NowSelected
	for(i=0;i<_eol(id);i++){
		if(_eo(id)[i].selected==true){
			return i ;
			break;
		};
	};
};

function _eoNV(id,_vlaue){//NowValue
	for(i=0;i<_eol(id);i++){
		if(_eov(id,i)==_vlaue){
			return true;
			break;
		};
	};
	return false;
};


function _eoA(from_id,from_num,to_id,to_num){//addOption
	return _eo(to_id)[to_num] = new Option(_eo(from_id)[from_num].text,_eo(from_id)[from_num].value);
};

function _eod(id,num){//del
	return _eo(id)[num] = null;
};

function _eoiS(id,num){//執行選取
	if(_eo(id)[num].selected==true){
		return true;
	}else{
		return false;
	};
};

function _sIt(id){//selectedIndex.text 選取"選單"目前被選取"選項"的文字
//_e(id)
	return _e(id).options[_e(id).selectedIndex].text;
};

function _sIt2(id,num){//selectedIndex.text 選取"選單"目前被選取"選項"的文字
//_e(id)
	return _e(id).options[num].text;
};

function _sIt3(from_id,to_id){//傳回目標與自身選單文字相同的選單編號
	for(i=0;i<_eol(to_id);i++){
		if(_sIt2(to_id,i)==_sIt(from_id)){
			return i ;
			break;
		};
	};
};

function _Selected(id,val){// 在"選單"選取欲"預設"的選項
	for(i=0;i<_eol(id);i++){
		if(_eov(id,i)==val){
			//alert(i)
			_eo(id)[i].selected=true
			//_eos(id,i)=true;
		};
	};
};

function _SelectedAll(id,_type){// 全選
	for(i=0;i<_eol(id);i++){
		if(_type==0){
			_eo(id)[i].selected = true;
		}else{
			if(_eo(id)[i].selected==true){
				_eo(id)[i].selected=false;
			}else{
				_eo(id)[i].selected=true;	
			};
		};
	};
};

function _S(id,_type){//S=Show 是否隱匿?
//_e(id),_es(id)
	if(_type==0){//執行隱匿
		_es(id).visibility="hidden";
		_es(id).position="absolute";
	};
	if(_type==1){
		_es(id).visibility="visible";
		_es(id).position="static";
	};
};

function _S2(){//偶數;id,_type,id,_type,id,_type,id,_type
	var args = _S2.arguments;
	for(i=0;i<args.length;i++){
		_S(args[i],args[i+1]);
	};
};

function _CA(_name,this_checked){//CA=CheckAll "全選" 限 checkbox tag
//_n(name)
	_name = _n(_name);
	for(var i=0;i<_name.length;i++){
		_name[i].checked=this_checked;//看當時的checkbox布林值
	};
};

function _CAi(_name){ //  CA=CheckAll invert "反向全選" 限 checkbox tag  
//_n(name)
	_name = _n(_name);
	for(var i=0;i<_name.length;i++){
		if(_name[i].checked==true){
			_name[i].checked=false;
		}else{
			_name[i].checked=true;
		};
	};
};

function _CAx(_name){//  CA=CheckAll x=取消 "全部取消"  限 checkbox tag  
//_n(name)
	_name = _n(_name);

	_name[0].checked=false;
};


function replace(sostrdv,plsostr,resostr)
{var sostr = " "+sostrdv;var sostr2=plsostr.length;var sostr1=sostr.indexOf(plsostr)+1;return (sostr.indexOf(plsostr)<1)?sostrdv:replace(mid(sostr.substring(0,sostr1-1)+resostr+sostr.substring(sostr1+sostr2-1,sostr.length),2),plsostr,resostr);};

function len(sostrxx){
	return sostrxx.length;
};

function left(sostrcx,sostrlen){
	return sostrcx.substring(0, sostrlen);
};

function right(sostrccx,sostrlen){
	return sostrccx.substring(sostrccx.length-sostrlen,sostrccx.length);
};

function mid(sostr,sostrs,sostre){
	if (isNaN(sostre)==true){return sostr.substring(sostrs-1,sostr.length);}else {return sostr.substring(sostrs-1,sostrs+sostre-1);};
};

function rtrim(sostr){
	for (rxxmx = sostr.length - 1; rxxmx >= 0; rxxmx-- ){if (sostr.charAt(rxxmx) != ' '){break;}}return sostr.substring(0, rxxmx+1);
};

function ltrim(sostr){
	for (rxxmx = 0; rxxmx < sostr.length; rxxmx++){if (sostr.charAt(rxxmx) != ' '){break;}}return sostr.substring(rxxmx, sostr.length);
};

function trim(sostr){
	var getsor = sostr;spstr= ltrim(rtrim(getsor));return spstr;
};

function _eoAllNull(id){
	if(_eo(id).length>0){
		for(i=_eo(id).length; i>=0 ;i--){
			_eo(id)[i]=null;
		};
	};
};
		
function _GLA2(str){
	var count = '2';
	var strD = '_';
	return GetListAt(str,count,strD)
};

function _GLA1(str){
	var count = '1';
	var strD = '_';
	return GetListAt(str,count,strD)
};



/*判斷當前物件是否可見*/ 

function isVisible(obj){
 var visAtt,disAtt;
 try{
  disAtt=obj.style.display;
  visAtt=obj.style.visibility;
 }catch(e){}
 if(disAtt=="none" || visAtt=="hidden")
  return false;
 return true;
}
 
/*判斷當前物件及其父物件是否可見*/ 

function checkPrVis(obj){
 var pr=obj.parentNode;
 do{
  if(pr == undefined || pr == "undefined") return true;
  else{
   if(!isVisible(pr)) return false;
  }
 }while(pr=pr.parentNode);
 return true;
}
 
/* 彈出警告對話方塊，用戶點確定後將游標置於出錯文本框上， 並且將原來輸入內容選中。*/ 

function f_alert(obj,alertInfo)
{
 var caption = obj.getAttribute("eos_displayname");
 if(caption == null)
  caption = "";
 alert(caption + "：" + alertInfo + "！"); 
 obj.select();
 if(isVisible(obj) && checkPrVis(obj))
  obj.focus();
}
