<!--
// JavaScript Document
var bV=parseInt(navigator.appVersion);
var NN4=(document.layers) ? true : false;
var IE4=((document.all)&&(bV>=4))?true:false;

//檢查資料是否全部為數字格式
//檢查電話欄位, 只能用0-9數字
function checkNum(vchkval, vchklen, vchkname) {
	//特別檢查之前先檢查是否符合基本的check
	if (checkdata(vchkval, vchklen, vchkname) == false) return false;
	var bchk = true;
	for (var i = 0; i < vchkval.length; i++) {
		var vstr = vchkval.charAt(i);
		if (isNaN(parseInt(vstr)) == true) {	//非數字
			alert(vchkname + "欄位只允許數字0-9哦～");
			bchk = false;
			break;
		}
	}
	return bchk;
}


//檢查資料是否全部為小數點格式
//只能用0-9 and .數字
function checkFloat(vchkval, vchklen, vchkname) {
	//特別檢查之前先檢查是否符合基本的check
	if (checkdata(vchkval, vchklen, vchkname) == false) return false;
	var bchk = true;
	for (var i = 0; i < vchkval.length; i++) {
		var vstr = vchkval.charAt(i);
		if (vstr != ".") {
			if (isNaN(parseInt(vstr)) == true) {	//非數字
				alert(vchkname + "欄位只允許小數點及數字0-9哦～");
				bchk = false;
				break;
			}
		}
	}
	return bchk;
}


//取得數值，若數值為空的就傳回"0"
function getNumber(mval) {
	if (isNaN(parseInt(mval)) == true)
		return 0;
	else
		return parseInt(mval);
}
function getFloat(mval) {
	if (isNaN(parseFloat(mval)) == true)
		return 0;
	else
		return parseFloat(mval);
}

//檢查日期格式是否正確
function checkdate(chkdate) {
	if (chkdate == "") return false;
	var adate = new Date(chkdate);
	if (isNaN(adate) == true)
		return false;
	else
		return true;
}

/*
compare two date value
if date2 >= date1 return true
if date2 < date1 return false
*/
function compareDate(mdate1, mdate2) {
	if (isNaN(Date.parse(mdate1))) {
		alert("Date1: Invalid date format");
		return false;
	}
	if (isNaN(Date.parse(mdate2))) {
		alert("Date2: Invalid date format");
		return false;
	}
	var dt1 = new Date(mdate1);
	var dt2 = new Date(mdate2);
	if (dt2 >= dt1)
		return true;
	else
		return false;
		
}

//檢查email格式是否正確
function checkmail(chkval) {
	if (chkval.indexOf("@",1) < 3)
		return false;
	else
		return true;
}


//檢查mail格式是否正確 2007/2/14
function cckEmail(vemail) {
	//Dim regEx, Match, Matches
	if (vemail !="") {
		var pat = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
		var regEx = new RegExp(pat);
		//regEx.Pattern = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
		regEx.IgnoreCase = true;
		if (regEx.test(vemail) == true)  
			return true;
		else
			return false;
	} else {
		return false;
	}
}

//檢查email格式是否正確
function checkmail2(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var firstChars=validChars
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom="(" + firstChars + validChars + "*" + ")"
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	// See if "user" is valid
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.")
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("Destination IP address is invalid!")
				return false;
			}
		}
		return true;
	}
	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		//alert("The domain name doesn't seem to be valid.")
		return false;
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		return false;
	}
	if (domArr[domArr.length-1].length==2 && len<3) {
		var errStr="This address ends in two characters, which is a country";
		errStr+=" code.  Country codes must be preceded by ";
		errStr+="a hostname and category (like com, co, pub, pu, etc.)";
		return false;
	}
	if (domArr[domArr.length-1].length==3 && len<2) {
		var errStr="這個EMail沒有填寫主機名稱!";
		return false;
	}
	return true;
}


//檢查輸入的資料是否為合法的資料
//chkval : 資料值
//chklen : 檢查字元數， 0只檢查是否為空字串,有設定長度則必須大於設定的長度
//chkname : 欄位標題名稱,錯誤會顯示字串
function checkdata(vchkval, vchklen, vchkname) {
	if (vchkval == "") {
		alert("請填寫" + vchkname + "欄位的資料！");
		return false;
	}
	if (!(isNaN(parseInt(vchklen)))) {
		//基本的字串檢查
		if (vchklen > 0) {
			if (vchkval.length < vchklen) {
				alert(vchkname + "欄位的字數至少須有" + vchklen + "個字！");
				return false;
			}
		} else {	//chklen = 0
			return true;
		}
		//檢查不允許的字串
		var vexp_deny = /script/gi;
		//var vexp_deny= new RegExp(vpt_deny);	//不允許的字串
		var vchk = vexp_deny.test(vchkval);
		//alert("dd2=" + vchk);
		if (vchk == false) {		//沒有符合的才對
			return true;
		} else {
			alert(vchkname + "欄位有不允許的字元哦！");
			return false;
		}		
	} else {
		alert("請填寫" + vchkname + "欄位的資料！");
		return false;
	}
}

//檢查電話欄位, 只能用0-9數字
function checkPhone(vchkval, vchklen, vchkname) {
	//特別檢查之前先檢查是否符合基本的check
	if (checkdata(vchkval, vchklen, vchkname)) {	//符合基本的檢查
		var userPat = /[^\d]/g;
		vchk = false;
		vret = userPat.test(vchkval);
		//alert("a = " + vret);
		if (vret == true) {
			alert(vchkname + "欄位只允許數字0-9哦～");
			return false;
		} else {
			return true;
		}

	} else {
		return false;
	}
}

//檢查身份證號
function IDCheck(mpid) {
    var idchk = false;
    if (mpid.length == 10) {
        var idtable = new Array("A10","B11","C12","D13","E14","F15","G16","H17","J18","K19",
        	"L20","M21","N22","P23","Q24","R25","S26","T27","U28","V29","X30","Y31","W32",
        	"Z33","I34","O35");
        var IDNum = new Array(10);
		for (var ix = 0; ix < 10; ix++) {
            IDNum[ix] = mpid.charAt(ix).toUpperCase();
        }
        for (var ix = 1; ix < 10; ix++) {
            if (IDNum[ix] > "9") return false;	//idchk = false	, after 2th charactor, must be digit 0~9
        }
		var iy = 0;
        for (ix = 0; ix < 26; ix++) {
            if (idtable[ix].charAt(0) == IDNum[0]) {
                iy = ix + 1;
                break;
            }
        }
        if (iy == 0) {
        	return false;	//First charactor must be A~Z
        } else {	//check id
			if (iy == 1)
				iy = 0;
			else
				iy--;
            if ((IDNum[1] == "1") || (IDNum[1] == "2")) {
                var IDc = (parseInt(idtable[iy].charAt(1)) + (9 * parseInt(idtable[iy].charAt(2))) + (8 * parseInt(IDNum[1])) + (7 * parseInt(IDNum[2])) + 
                      (6 * parseInt(IDNum[3])) + (5 * parseInt(IDNum[4])) + (4 * parseInt(IDNum[5])) + (3 * parseInt(IDNum[6])) + (2 * parseInt(IDNum[7])) + parseInt(IDNum[8])) % 10;
				if (IDc == 0) IDc = 10;
                if (parseInt(IDNum[9]) != (10 - IDc))
                	return false;
                else
                	return true;
            } else {
                return false;
            }
        }
    } else {
      return false;	//The length of ID code less than 10
    }
}

//在座標位置顯示新視窗
function showWinOnCursor(m_url, m_winname, m_width, m_height) {
	var cur_x = window.event.screenX;
	var cur_y = window.event.screenY; 
	var max_width = screen.availWidth;
	var max_height = screen.availHeight;
	if ((cur_y + m_height) > max_height) {
		cur_y = cur_y - m_height - 40;	//視窗底部對齊座標位置
	}
	if ((cur_x + m_width) > max_width) {
		cur_x = cur_x - m_width - 20;	//視窗右方對齊座標位置
	}
	var m_parm = "scrollbars=no,width=" + m_width + ",height=" + m_height + ",top=" + cur_y + ",left=" + cur_x;
	//alert(m_parm);
	window.open(m_url, m_winname , m_parm);
}

//在座標位置顯示新視窗, 要傳event 物件才能取到x, y座標
function showWinOnCursorEvent(evt, m_url, m_winname, m_width, m_height) {
	if (IE4) {
		var cur_x = window.event.screenX;
		var cur_y = window.event.screenY; 
	} else {
		var cur_x = evt.screenX;
		var cur_y = evt.screenY;
	}
	var max_width = screen.availWidth;
	var max_height = screen.availHeight;
	if ((cur_y + m_height) > max_height) {
		cur_y = cur_y - m_height - 40;	//視窗底部對齊座標位置
	}
	if ((cur_x + m_width) > max_width) {
		cur_x = cur_x - m_width - 20;	//視窗右方對齊座標位置
	}
	var m_parm = "scrollbars=1, resizable=1, width=" + m_width + ",height=" + m_height + ",top=" + cur_y + ",left=" + cur_x;
	//alert(m_parm);
	window.open(m_url, m_winname , m_parm);
}


//在座標位置顯示新視窗, 要傳event 物件才能取到x, y座標, 加上可傳入開啟相關參數
function showWinOnCursorEventParm(evt, m_url, m_winname, m_width, m_height, vscroll, vresize) {
	if (IE4) {
		var cur_x = window.event.screenX;
		var cur_y = window.event.screenY; 
	} else {
		var cur_x = evt.screenX;
		var cur_y = evt.screenY;
	}
	var max_width = screen.availWidth;
	var max_height = screen.availHeight;
	if ((cur_y + m_height) > max_height) {
		cur_y = cur_y - m_height - 40;	//視窗底部對齊座標位置
	}
	if ((cur_x + m_width) > max_width) {
		cur_x = cur_x - m_width - 20;	//視窗右方對齊座標位置
	}
	var m_parm = "width=" + m_width + ",height=" + m_height + ",top=" + cur_y + ",left=" + cur_x;
	if (parseInt(vscroll) == 1) m_parm += ",scrollbars=" + vscroll;
	if (parseInt(vresize) == 1) m_parm += ",resizable=" + vresize;
	//alert(m_parm);
	window.open(m_url, m_winname , m_parm);
}

//在座標位置顯示新視窗
function PopImage(m_url, m_winname, m_width, m_height) {
	var cur_x = window.event.screenX;
	var cur_y = window.event.screenY; 
	var max_width = screen.availWidth;
	var max_height = screen.availHeight;
	if ((cur_y + m_height) > max_height) {
		cur_y = cur_y - m_height - 40;	//視窗底部對齊座標位置
	}
	if ((cur_x + m_width) > max_width) {
		cur_x = cur_x - m_width - 20;	//視窗右方對齊座標位置
	}
	var m_parm = "scrollbars=no,width=" + m_width + ",height=" + m_height + ",top=" + cur_y + ",left=" + cur_x;
	//alert(m_parm);
	window.open(m_url, m_winname , m_parm);
}

//設定視窗的各種工具列狀態
function setBars(flag) {
	//window.fullscreen = true;
	window.locationbar.visible = flag;
	window.menubar.visible = flag;
	window.scrollbars.visible = flag;
	window.statusbar.visible = flag;
	//window.statusbar = "no"
	//window.toolbar = "no";	//.visible = flag;
	//window.personalbar.visible = flag;
}

//------------------------分類處理-----------------------
//取得大類及小類
var mcate_array = new Array();
var scate_array = new Array();

var init_cate = true;

function mcate_class(vmainid, vname) {
	this.mainid = vmainid;
	this.mainname = vname;
	return(this);
}

function scate_class(vmainid, vsubid, vname) {
	this.mainid = vmainid;
	this.subid = vsubid;	
	this.subname = vname;
	return(this);
}

//初始化分類及細項陣列資料, 以第一項為主
//vcateobj_m:大類物件, vscateobj_s:細項物件, v_sidx: 清單開始索引(有的第一項是--請選擇--, 有的是空的)
function initCates(vcateobj_m, vscateobj_s, vmainobjs, vsubobjs, v_sidx) {
	if (typeof(vcateobj_m) == "undefined") {
		init_cate = false;
		return false;
	}	//沒有選項即跳出
	//with(document.fm) {
		var mainnamecnt = vcateobj_m.length -1;		//類別
		var subnamecnt = vscateobj_s.length -1;		//細項
		//vmainobjs = new Array(mainnamecnt);
		//vsubobjs = new Array(subnamecnt);
		for (var i = 1; i <= mainnamecnt; i++) {	//load all value into array
			if (IE4) {
				var vmainname_value = vcateobj_m.options(i).value;
				var vmainname_name = vcateobj_m.options(i).text;
			} else { //nescape..
				var vmainname_value = vcateobj_m.options[i].value;
				var vmainname_name = vcateobj_m.options[i].text;
			}
			var mainnameobj = new mcate_class(vmainname_value, vmainname_name);
			vmainobjs[i-1] = mainnameobj;
		}
		//alert(subnamecnt);
		
		//決定陣列索引要不要扣1
		if (v_sidx > 0)
			st_idx = 1;
		else
			st_idx = 0;
			
		for (var i = v_sidx; i <= subnamecnt; i++) {
			if (IE4) {
				var vlist_value = vscateobj_s.options(i).value;
				var vsubname_name = vscateobj_s.options(i).text;
			} else {
				var vlist_value = vscateobj_s.options[i].value;
				var vsubname_name = vscateobj_s.options[i].text;
			}
			var arytmp = vlist_value.split(":");
			var subnameobj = new scate_class(arytmp[0], arytmp[1], vsubname_name);
			vsubobjs[i - st_idx] = subnameobj;
		}
	//}
	return;
}
//大類改變同時改變小類
function MainCateChange(vcateobj_m, vscateobj_s, vsubobjs, v_sidx) {
	//with(document.fm) {
		var mcnt = vsubobjs.length;
		//決定次項目索引要不要扣1
		if (v_sidx > 0)
			st_idx = 1;
		else
			st_idx = 0;
		for (var i = 0; i < mcnt ;i++) vscateobj_s.remove(st_idx);	//remove all list items
		var mvalue = vcateobj_m.value;
		for (var i= 0; i < mcnt ; i++) {
			var m1 = vsubobjs[i].mainid;
			//alert("mainid1=" + mvalue + ", mainid2=" + m1);
			if (m1 == mvalue) {
				var oOption = document.createElement("OPTION");
				oOption.text = vsubobjs[i].subname;
				oOption.value= vsubobjs[i].subid;
				if (IE4)
					vscateobj_s.add(oOption);
				else
					vscateobj_s.add(oOption, null);
			}
		}
	//}
}

//若已有細類選擇資料，就設定為選取狀態
function MainCateChange2(vcateobj_m, vscateobj_s, vsubobjs, vold_obj, v_sidx) {
	//with(document.fm) {
		var mcnt = vsubobjs.length;
		//alert(mcnt);
		//決定次項目索引要不要扣1
		if (v_sidx > 0)
			st_idx = 1;
		else
			st_idx = 0;
		for (var i = 0; i < mcnt ;i++) vscateobj_s.remove(st_idx);	//remove all list items
		var mainnamecnt = vcateobj_m.length -1;
		for (var i= 0; i < mcnt ; i++) {	//取出subid
			var m1 = vsubobjs[i].mainid;
			if (m1 == vcateobj_m.value) {
				var oOption = document.createElement("OPTION");
				oOption.text = vsubobjs[i].subname;
				oOption.value= vsubobjs[i].subid;
				if (parseInt(vold_obj.value) == vsubobjs[i].subid) oOption.selected = true;
				if (IE4)
					vscateobj_s.add(oOption);
				else
					vscateobj_s.add(oOption, null);
			}
		}	//選取單項完成
	//}
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

-->