﻿String.prototype.Trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//some common Methods
function ge(id){
	return document.getElementById(id);
}

//function of addEventHandle
function addEventHandle(el, eEventList, eHandle){
	var eEvents = eEventList.split(",");
	if (document.attachEvent) {
		for (var i = 0; i < eEvents.length; i++){
			el.attachEvent(eEvents[i], eHandle);
		}
	} else if (document.addEventListener) {
		for (var i = 0; i < eEvents.length; i++){
			el.addEventListener(eEvents[i].replace("on",""), eHandle, true);
		}
	}
}

//class of Validate
function Validate(str, el){
	if (str == null || str == "" || el == null || el == "") { return false; }
	var expression = null;
	switch(el){
		case "UserID":
			expression = /^[a-zA-Z0-9]([\.\-_]?[a-zA-Z0-9]+){2,19}$/;
			break;
		case "Passwd":
			expression = /^[a-zA-Z0-9]([\.\-_]?[a-zA-Z0-9]+){5,19}$/;
			break;
		case "EmceeID":
			expression = /^[Kk]{2}(69)[a-zA-Z0-9]\d{2}$/;
			break;
		case "Email":
			expression = /^[a-zA-Z0-9]([\.\-_]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z0-9]{2,4})$/;
			break;
		case "Tel":
			expression = /^\d{7,12}$/;
			break;
		case "Mobile":
			expression = /^(09)\d{8}$/;
			break;
		case "Date":
			expression = /^(?:([0-9]{4}-(?:(?:0?[1,3-9]|1[0-2])-(?:29|30)|((?:0?[13578]|1[02])-31)))|([0-9]{4}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1\d|2[0-8]))|(((?:(\d\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))-0?2-29)))$/;
			break;
		case "vCode":
			expression = /^[a-zA-z0-9]{4}$/;
			break;
		case "Int":
			expression = /^(-)?\d+$/;
			break;
		case "Numeric":
			expression = /^(-)?\d+(\.\d+)?$/;
			break;
		case "Domain":
			expression = /^([a-zA-z0-9]+((\.)[a-zA-z0-9]+)+|localhost)$/;
			break;
		case "IPv4":
			expression = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/;
			break;
		case "Keyword":
			expression = /^(admin)|^[a-zA-Z]\d{3}$|(網管)|(管理員)|(客服)|(所有人)/;
		    break;
		case "Text":
			expression = /^([^\x00-\xff]|[\w\.\-])+$/;
		    break;
		case "ID":
			expression = /^\d+((,|, )\d+)*$/;
		    break;
		case "Array":
			expression = /^[a-zA-Z0-9\-\u4e00-\u9fa5]+((,|, )[a-zA-Z0-9\-\u4e00-\u9fa5]+)*$/;
		    break;
		case "DBChar":
			expression = /[☆★○●◎◇◆□■△▲〓]/;
		    break;
		default:
			return false;			
	}
	return expression.test(str);
}

//some method
function openwin(file,name,para){
    window.open(file,name,para);
    return (false);
}

function CheckAll(form){
    for (var i = 0;i < form.elements.length;i++){
	    var e = form.elements[i];
	    if (e.name != "chkall"){
    	    e.checked = form.chkall.checked;
    	}
	}
}

function Confirm(form,msg){
    var result = false;
    for (var i = 0;i < form.elements.length;i++){
	    var e = form.elements[i];
	    if (e.name == "ID" && e.checked){
	        result = true;
	        break;
	    }
	}
	if(!result){
	    alert("請選擇至少一條資料！");
	}else{
	    result = confirm(msg);
	}
	return result;
}

function shakewin(n){
    self.focus();
    window.moveTo(3,3);
    window.resizeTo(screen.availWidth-6,screen.availHeight-6);
    if (self.moveBy){
        for (i = 10; i > 0; i--){
            for (j = n; j > 0; j--){
                self.moveBy(0,i);
                self.moveBy(i,0);
                self.moveBy(0,-i);
                self.moveBy(-i,0);
            }
        }
    }
    window.moveTo(0,0);
    window.resizeTo(screen.availWidth,screen.availHeight);
}

function JumpTo(PageNO){
    if(!Validate(PageNO, "Int")){
        alert("頁碼必須為整數！");
        ge("PageNO").focus();
        ge("PageNO").select();
        return (false);
    }
    
    obj = ge("UrlParams");
    if (obj != null){
        var target = obj.value + PageNO;
        self.location = target;
    } else {
        alert("URL参数取值失败！");
    }
    
    return (false);
}
