// JavaScript Document
//window.onerror = function(){ return true;};
/*
get information:getWindowSize(), findPosX(a),findPosY(a),findScrollX(),findScrollY();
dom handle :gi(elementId),giv(elementId,[arg]),gt(root,elementTag),gn(elementName),getTagValue(root,elementTag),gv(o,[arg]),gh(elementId,[arg]),ShowMessage(Msg),HideMessage(),GetAjax(url, queryString, callback,[arg]),PostAjax(url, queryString, callback,[arg]),loadByAjax(url, queryString, callback),stringToDom:function(str)
event handle :findTarget(ev,node)
string check:chEn(str),chT(str),chEmail(str),getByteLength(str),chIdCard(str),twIdCard(str)
var m=this.getWindowSize();var bodyscrollleft=this.findScrollX();var left =bodyscrollleft+m[0]/2-80;+m[1]/2-20
application/x-www-form-urlencoded
multipart/form-data
text/plain
*/
var Y={/*get information*/getWindowSize:function(){var g=[0,0];if(window.innerWidth){g[0]=window.innerWidth;g[1]=window.innerHeight;}else if(document.documentElement&&document.documentElement.clientWidth){g[0]=document.documentElement.clientWidth;g[1]=document.documentElement.clientHeight;}else{g[0]=document.body.clientWidth;g[1]=document.body.clientHeight;}return g;},findPosX:function(a){var d=0;if(a.getBoundingClientRect)d=a.getBoundingClientRect().left+this.findScrollX();else if(a.offsetParent){do{d+=a.offsetLeft;a=a.offsetParent;}while(a);}else if(a.x)d+=a.x;return d;},findPosY:function(a){var e=0;if(a.getBoundingClientRect)e=a.getBoundingClientRect().top+this.findScrollY();else if(a.offsetParent){do{e+=a.offsetTop;a=a.offsetParent;}while(a);}else if(a.y)e+=a.y;return e;},findScrollX:function(){if(document.documentElement&&document.documentElement.scrollLeft)return document.documentElement.scrollLeft;else{return document.body.scrollLeft;}},findScrollY:function(){if(document.documentElement&&document.documentElement.scrollTop)return document.documentElement.scrollTop;else{return document.body.scrollTop;}},/* dom handle */gi:function(elementId){return document.getElementById(elementId);},giv:function(elementId){if(arguments.length > 1){document.getElementById(elementId).value = arguments[1];}else{return document.getElementById(elementId).value};},gt:function(root,elementTag){return root.getElementsByTagName(elementTag);},gn:function(elementName){return document.getElementsByName(elementName);},getTagValue:function(root,elementTag){var i=this.gt(root,elementTag);if(!i[0]||!i[0].firstChild)return null;else{return i[0].firstChild.nodeValue;}},gv:function(o){var obj =eval('document.' + o); if(arguments.length > 1){obj.value=arguments[1];}else{return obj.value;}},gh:function(elementId){if(arguments.length > 1){document.getElementById(elementId).innerHTML = arguments[1];}else{return document.getElementById(elementId).innerHTML;}},showMessage:function(){this.hideMessage();var Msg='';if(arguments.length > 0)Msg=arguments[0];var bodyscrolltop=this.findScrollY();var vloca = ' right:0px;';if(arguments.length > 1 && arguments[1]==true){var m=this.getWindowSize();var bodyscrollleft=this.findScrollX();var left =bodyscrollleft+m[0]/2-80;vloca='left:'+left+'px;';bodyscrolltop+=m[1]/2-40;}var tipdiv=document.createElement('div');tipdiv.id='tipdiv';tipdiv.style.cssText='background:red; color:white; padding:3px 5px 3px 5px; position:absolute;z-index:30010;'+vloca+' top:'+bodyscrolltop+'px; font:14px tahoma;';tipdiv.innerHTML=Msg;document.body.appendChild(tipdiv);},hideMessage:function(){if(document.getElementById('tipdiv')){var tipdiv=document.getElementById('tipdiv');document.body.removeChild(tipdiv);}},GetAjax:function(url, queryString, callback){var z = url+'?'+queryString;var f;var Msg = ' 讀取中... ';if(arguments.length > 3)Msg = arguments[3];this.showMessage(Msg);if(window.ActiveXObject)f=new ActiveXObject('Microsoft.XMLHTTP');else if(window.XMLHttpRequest)f=new XMLHttpRequest();f.onreadystatechange=function(){if(f.readyState==4){ Y.hideMessage();callback(f);}};try{f.open('GET',z,true);f.send(null);}catch(ex){alert(ex);}},PostAjax:function (url, queryString, callback){var z = url;var f;var Msg = ' 讀取中... ';if(arguments.length > 3)Msg = arguments[3];this.showMessage(Msg);if(window.ActiveXObject)f=new ActiveXObject('Microsoft.XMLHTTP');else if(window.XMLHttpRequest)f=new XMLHttpRequest();f.onreadystatechange=function(){if(f.readyState==4){Y.hideMessage();callback(f);}};try{f.open('POST',z,true);f.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");f.send(queryString);}catch(ex){alert(ex);}},loadByAjax:function(resource,callbackFn){var bodyscrolltop=this.findScrollY();var c=document.createElement('div');c.style.cssText='background:red; color:white; padding:3px 5px 3px 5px; position:absolute; right:0px; top:'+bodyscrolltop+'px;font:12px tahoma;';c.innerHTML=' 讀取中... ';var b;if(window.ActiveXObject)b=new ActiveXObject('Microsoft.XMLHTTP');else if(window.XMLHttpRequest)b=new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){document.body.removeChild(c);callbackFn(b);}};try{document.body.appendChild(c);b.open('GET',resource,true);b.send(null);}catch(ex){alert(ex);}},stringToDom:function(str){var h;if(window.ActiveXObject){h=new ActiveXObject("Microsoft.XMLDOM");h.loadXML(str);}else if(DOMParser){h=new DOMParser().parseFromString(str,"text/xml");}return h;},/* event handle */findTarget:function(ev,node){var target;if(window.event&&window.event.srcElement)target=window.event.srcElement;else if(ev&&ev.target)target=ev.target;while(node&&target&&target.nodeName.toLowerCase()!=node.toLowerCase())target=target.parentNode;return target;},twIdCard:function(str){var ID_Load=str.toUpperCase();if(ID_Load.length !=10){return false;}var ID_Input = new Array(10); for(var i=0;i<10;i++){ID_Input[i]=ID_Load.charAt(i);}var ENGString='ABCDEFGHIJKLMNOPQRSTUVWXYZ';ID_Input[0]=ENGString.indexOf(ID_Input[0]);if (ID_Input[0]==-1){return false;}if(ID_Input[1]!=1&&ID_Input[1]!=2){return false;}var Numstr='1,10,19,28,37,46,55,64,39,73,82,2,11,20,48,29,38,47,56,65,74,83,21,3,12,30';var NumArray=Numstr.split(',');var result=parseInt(NumArray[ID_Input[0]]);for (var i=1;i<10;i++){var NumString='0123456789';ID_Input[i]=NumString.indexOf(ID_Input[i]);if(ID_Input[i]==-1){return false;}else{result+=ID_Input[i]*(9-i);}}result+=1*ID_Input[9];if(result%10!=0){return false;}return true;},/*check english and number*/chEn:function(str){var pattern = /^[\w]+$/;return (pattern.test(str));},chEmail:function(str){var pattern = /(\S)+[@]{1}(\S)+[.]{1}(\w)+/;return (pattern.test(str));},/*tel number*/chTel:function(str){var pattern = /^([\d]|-|#|\(|\)|[\s])*$/;return (pattern.test(str));},/*check Url*/chUrl:function(str){var pattern =/^[A-Za-z]+:\/\/[^\s]*$/;return (pattern.test(str));},getByteLength:function(str){var st=new String(str);return (st.replace(/[^\x00-\xff]/g,"00").length);},/*idcard*/chIdCard:function(str){var pattern =/^([0-9]{15}|[0-9]{18})$/;return (pattern.test(str));}};
/*
Function Name：CheckData
功能描述：檢查欄位資料正確性
傳入參數：
1.ObjName：檢查欄位名稱，Form Name + Object Name
2.ObjLen：檢查長度
3.ObjValue：檢查值
4.AlerMsg：顯示錯誤訊息
5.CheckFlag：檢查方式，
  1:檢查長度(小於)，2:檢查值，3:是否存在某值,4:是否為數字,5:檢查是否有特殊符號,6：檢查長度(大於),7：檢查CheckBox/radio是否有勾選
  8:大於某值,9:小於某值,9:某值是否為數字,11:檢查是中文,12:身分證字號格式,13:檢查是(非中文)英文或數位,14:檢查是電話號碼,15:檢查是Email,16:檢查日期/时间
傳回值：True/False
*/
function CheckData(ObjName,ObjLen,ObjValue,AlertMsg,CheckFlag){
	var i=0,j=0;
	var chstr=new Array("'",";",","," ");
	var blnCheck=true;
	var Obj = eval('document.' + ObjName );
	switch(CheckFlag)
	{
		case '1': if(Obj.value.length < ObjLen){ blnCheck=false; }break;
		case '2': if(Obj.value != ObjValue ){ blnCheck=false; }break;
		case '3': if(Obj.value.indexOf(ObjValue) ==-1){ blnCheck=false; }break;
		case '4': if(isNaN(Number(Obj.value))==true){ blnCheck=false; }break;
		case '5': for(i=0;i<=chstr.length;i++){if(Obj.value.indexOf(chstr[i]) !=-1 ){ blnCheck=false; break;}} break;
		case '6': if( Y.getByteLength(Obj.value)  >  ObjLen){ blnCheck=false; }break;
		case '7': if( typeof(Obj.length) != 'undefined' ){ ObjLen = Obj.length; for(i=0; i < ObjLen; i++){ if(Obj[i].checked ==true){ j++; if(ObjValue == 1)break; } } }else{	ObjLen = 1;	if(Obj.checked==true){j++;}	}
				if(ObjValue > 1){if(j > ObjValue)blnCheck=false;}//表示最多選ObjValue項否則為false
				if(j==0)blnCheck=false;	break;
		case '8': if(Obj.value >  ObjValue ){ blnCheck=false; }break;
		case '9': if(Obj.value  <  ObjValue){ blnCheck=false; }break;
		case '10': if(isNaN(Number(ObjValue))==true){ blnCheck=false;}break;
		case '11': if(Y.chEn(Obj.value)){ blnCheck=false; }break;
		case '12': if(!Y.twIdCard(Obj.value)){ blnCheck=false; }break;
		case '13': if(!Y.chEn(Obj.value)){ blnCheck=false; }break;
		case '14': if(!Y.chTel(Obj.value)){ blnCheck=false; }break;
		case '15': if(!Y.chEmail(Obj.value)){ blnCheck=false; }break;
		case '16': if(!strDateTime(Obj.value)){ blnCheck=false; }break;
		case '17': if(!Y.chUrl(Obj.value)){ blnCheck=false; }break;
	}
	if (blnCheck==false){
		if (AlertMsg != '') { alert(AlertMsg);}
		if(CheckFlag=='7'){	if(ObjLen > 1){Obj[0].focus();}else{Obj.focus();} }
		else{Obj.focus();}
		return false;
	}
	return true;
}
/*
Function Name：ConfirmMsg
功能描述：顯示確認的訊息框，例如是否確定刪除
傳入參數：
1.ErrMsg：確認的訊息
傳回值：True/False
*/
function ConfirmMsg(ErrMsg){
  if(ErrMsg != ''){
	  if(window.confirm(ErrMsg)){return true;}
	  return false;
  }
}
function ConfirmMsg2(ErrMsg,Url){
	if(ErrMsg != ''){
		if(window.confirm(ErrMsg)){ MM_goToURL('parent',Url);	  }
		return false;
	}
}
/*轉址
onclick="MM_goToURL('parent','order10.php');return document.MM_returnValue"
*/
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
/*
Function Name：BrowseImage
功能描述：預覽圖片
傳入參數：
1.ImageFile：圖片名稱(包含路徑)
傳回值：無
*/
function BrowseImage(ImageFile){
	if(ImageFile!=''){
		window.open(ImageFile);
	}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
	var url=selObj.options[selObj.selectedIndex].value;
	if(url.length>1)eval(targ+".location='"+url+"'");
	if (restore) selObj.selectedIndex=0;
}

/*另開視窗*/
function MM_openBrWindow(theURL,winName,features) { //v2.0
  var win = window.open(theURL,winName,features);
  win.focus();
}
/*
Function Name：ShowDay
功能描述：顯示日期
傳入參數：
1.Obj：Form Name+Object Name
傳回值：無
四年一闰，百年不闰，四百年再闰。
*/
function show_days(yid,mid,did){ 
    var x=0;	
	var objy=Y.gi(yid);
	var objm=Y.gi(mid);
	var objd=Y.gi(did);
	var yi=objy.selectedIndex;
	var mi=objm.selectedIndex;
	var di=objd.selectedIndex;
    var ar=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	objd.length = 0;
	if (objm.options[mi].value == 2){
        if( isLeapYear( objy.options[yi].value) == true ){ x=29;}else{ x=28;}
	}else{ x=ar[objm.options[mi].value]; }	
	for (i=1;i<=x;i++) { objd[i-1] = new Option(i, i); }
	objd[di].selected = true;
}
function isLeapYear(wYear)
{
	var leap = false;
	if((wYear % 4) == 0){ leap = true; if((wYear % 100) == 0){ leap = false; if((wYear % 400) == 0)leap = true; } }
	return leap;
}
function strDateTime(str){ 
	var reg1 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
	var reg2 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	var r1 = str.match(reg1); var r2 = str.match(reg2);
	if( r1 == null && r2 == null ){	return false;}
	return true;
}
function drawImage(obj)
{
	var imageobj = new Image();
	imageobj.src = obj.src;
	var width = imageobj.width;
	var height = imageobj.height;
	var w = 0; var h = 0;
	if(width/height > 500/330){
		w = width > 500 ? 500 : width; h = height*w/width;
	}else {
		h = height > 330 ? 330 : height; w = width*h/height;
	}
	obj.width = w; obj.height = h; imageobj = null;
}