﻿function getOs() {
    if (navigator.userAgent.indexOf("MSIE") > 0) return 1;
    if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) return 2;
    if (isSafari = navigator.userAgent.indexOf("Safari") > 0) return 3;
    if (isCamino = navigator.userAgent.indexOf("Camino") > 0) return 4;
    if (isMozilla = navigator.userAgent.indexOf("Gecko/") > 0) return 5;
    return 0;
};
function addBookmark(title, url) {
    if (window.sidebar) {
        window.sidebar.addPanel(title, url, "");
    } else if (document.all) {
        window.external.AddFavorite(url, title);
    } else if (window.opera && window.print) {
        return true;
    }
};
function HasKey(keys, key) {
    var has = false;
    for (var i = 0; i < keys.length; i++) {
        if (keys[i] != null && keys[i] == key) {
            has = true;
            break;
        }
    };
    return has;
};

function GetElement(elementId) {
    try {
        return document.getElementById(elementId);
    } catch(err) {
        return null;
    }
};
function ShowElement(elementId) {
    try {
        var ele = document.getElementById(elementId);
        ele.style.display = "block";
        return true;
    } catch(err) {
        return false;
    }
};
function HideElement(elementId) {
    try {
        var ele = document.getElementById(elementId);
        ele.style.display = "none";
        return true;
    } catch(err) {
        return false;
    }
};
function EnableElement(elementId) {
    try {
        var ele = document.getElementById(elementId);
        ele.disabled = false;
        return true;
    } catch(err) {
        return false;
    }
};
function DisableElement(elementId) {
    try {
        var ele = document.getElementById(elementId);
        ele.disabled = true;
        return true;
    } catch(err) {
        return false;
    }
};
function WarnNormal(warnDiv, tipDiv, msg) {
    WarnMsg(warnDiv, tipDiv, msg, 1);
};
function WarnErr(warnDiv, tipDiv, msg) {
    WarnMsg(warnDiv, tipDiv, msg, 2);
};
function WarnRight(warnDiv, tipDiv, msg) {
    WarnMsg(warnDiv, tipDiv, msg, 3);
};
function WarnMsg(warnDiv, tipDiv, msg, errType) {
    GetElement(tipDiv).innerHTML = msg;
    ShowElement(tipDiv);
    switch (errType) {
    case 1:
        GetElement(warnDiv).className = "";
        GetElement(tipDiv).className = "input_gray";
        break;
    case 2:
        GetElement(warnDiv).className = "input_warn";
        GetElement(tipDiv).className = "input_red";
        break;
    case 3:
        GetElement(warnDiv).className = "";
        GetElement(tipDiv).className = "input_green";
        break;
    }
};
function Pass(warnDiv, tipDiv) {
    GetElement(warnDiv).className = "";
    GetElement(tipDiv).innerHTML = "";
    HideElement(tipDiv);
};
String.prototype.Trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
};
String.prototype.LTrim = function() {
    return this.replace(/(^\s*)/g, "");
};
String.prototype.Rtrim = function() {
    return this.replace(/(\s*$)/g, "");
};
function CheckFileExtension(filePath, extList) {
    var dotPos = filePath.lastIndexOf(".");
    if (dotPos < 0) {
        return false;
    };
    var ext = filePath.substr(dotPos + 1, filePath.length - dotPos - 1).toLowerCase();
    var exts = extList.split(",");
    var checkOk = false;
    for (var i = 0; i < exts.length; i++) {
        if (ext == exts[i]) {
            checkOk = true;
            break;
        }
    };
    return checkOk;
};
function HtmlEncode(text) {
    if (text == null || text == "") {
        return "";
    };
    var result = text;
    var regexAmp = new RegExp("&", "g");
    var regexLt = new RegExp("<", "g");
    var regexGt = new RegExp(">", "g");
    var regexNbsp = new RegExp(" ", "g");
    var regexQuot = new RegExp('"', "g");
    var regexRn = new RegExp("\r\n", "g");
    var regexR = new RegExp("\r", "g");
    var regexN = new RegExp("\n", "g");
    result = result.replace(regexAmp, "&amp;");
    result = result.replace(regexLt, "&lt;");
    result = result.replace(regexGt, "&gt;");
    result = result.replace(regexNbsp, "&nbsp;");
    result = result.replace(regexQuot, "&quot;");
    result = result.replace(regexRn, "<br />");
    result = result.replace(regexR, "<br />");
    result = result.replace(regexN, "<br />");
    return result;
};
function HtmlDecode(text) {
    if (text == null || text == "") {
        return "";
    };
    var result = text;
    var regexN = new RegExp("<br />", "g");
    var regexQuot = new RegExp("&quot;", "g");
    var regexNbsp = new RegExp("&nbsp;", "g");
    var regexGt = new RegExp("&gt;", "g");
    var regexLt = new RegExp("&lt;", "g");
    var regexAmp = new RegExp("&amp;", "g");
    result = result.replace(regexN, "\n");
    result = result.replace(regexQuot, '"');
    result = result.replace(regexNbsp, " ");
    result = result.replace(regexGt, ">");
    result = result.replace(regexLt, "<");
    result = result.replace(regexAmp, "&");
    return result;
};
function HtmlDecodeBr(originalHtml) {
    if (originalHtml == null || originalHtml == "") {
        return "";
    };
    var result = "";
    var regexRn = new RegExp("<br />", "g");
    result = originalHtml.replace(regexRn, "\r\n");
    return result;
};
String.prototype.len = GetStringLength;
function GetStringLength() {
    var regex = new RegExp("[^\x00-\xff]", "g");
    return this.replace(regex, "aa").length;
};
function getLength(stringIn) {
    var strLength = 0;
    for (var i = 0; i < stringIn.length; i++) {
        if (stringIn.charCodeAt(i) > 255) {
            strLength += 2;
        } else {
            strLength += 1;
        }
    };
    return strLength;
};
function CutStringLength(str, leng) {
    var newStr = "";
    for (var i = 1; i <= str.length; i++) {
        newStr = str.substr(0, i);
        if (newStr.len() > leng) {
            break;
        }
    };
    return newStr;
};
function CutStringLengthHZ(str, leng) {
    var result = "";
    for (var i = 0; i < str.length; i++) {
        s = str.substr(i, 1);
        if (str.charCodeAt(i) > 255) {
            leng -= 2;
        } else {
            leng -= 1;
        };
        if (leng >= 0) {
            result += s;
        }
    };
    return result;
};
function AddQueryTag(queryString) {
    if (queryString.indexOf("?") < 0) return "?" + queryString;
    else return queryString;
};
function RemoveQueryTag(queryString) {
    if (queryString.indexOf("?") == 0) return queryString.substr(1, queryString.length - 1);
    else return queryString;
};
function GetQuery(queryString, key) {
    var value = "";
    var query = RemoveQueryTag(queryString);
    var querys = query.split("&");
    for (var i = 0; i < querys.length; i++) {
        var keyvalue = querys[i].split("=");
        if (keyvalue[0] == key) {
            value = keyvalue[1];
            break;
        }
    };
    return value;
};
function AddQuery(queryString, key, value) {
    var query = RemoveQuery(queryString, key);
    var querys = query.split("&");
    querys.push(key + "=" + value);
    return AddQueryTag(querys.join("&"));
};
function RemoveQuery(queryString, key) {
    var query = RemoveQueryTag(queryString);
    var querys = query.split("&");
    for (var i = 0; i < querys.length; i++) {
        var keyvalue = querys[i].split("=");
        if (keyvalue[0] == key) {
            querys.splice(i, 1);
            break;
        }
    };
    return AddQueryTag(querys.join("&"));
};
function IsEmpty(eid) {
    //var _searchkey=document.getElementById(eid);
    //var s=_searchkey.value;
    var s = $(eid).value;
    if (s.length == 0) {
        return true;
    };
    var r = s.replace(/ +/g, "");
    if (r.length == 0) {
        return true;
    };
    r = s.replace(/　+/g, " ");
    r = r.replace(/ +/g, " ");
    r = r.replace(/^ /g, "");
    r = r.replace(/ $/g, "");
    // _searchkey.value=r;
    $(eid).value = r;
    return false;
}

function IsNumber(pm_number) {
    var pattern = /^[-\+]?\d+$/;
    if (pattern.test(pm_number)) {
        return (true);
    } else {
        pattern = /^[-\+]?\d+[\.]\d+$/;
        if (pattern.test(pm_number)) {
            return (true);
        } else {
            return (false);
        }
    }

}

function ComparaInt(eid1,eid2){ 
	var int1 =  parseInt($(eid1).value);
	var int2 = parseInt($(eid2).value);
	if(int1 > int2 ){
		return false
		}
		else{
		return true;
		}
	}


//Regex验证
//周哲
//创建日期：2006-4-30
//最后修改日期：2006-6-1
//可以直接调用IsMatch，例如：IsMatch("0.45",REGEX_NUMBER_TWOPOINTS)

var REGEX_URL = /^http(s)?:\/\/([\w\u4e00-\u9fa5-]+\.)+[\w\u4e00-\u9fa5-]+((:\d+)?)+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
var REGEX_Email = /^(?!(\.|-|_))(?![a-zA-Z0-9\.\-_]*(\.|-|_)@)[a-zA-Z0-9\.\-_]+@(?!.{64,}\.)(?![\-_])(?![a-zA-Z0-9\-_]*[\-_]\.)[a-zA-Z0-9\-_]+(\.\w+)+$/
var REGEX_NUMBER_INT = /^\d+$/; //整型
var REGEX_NUMBER_TWOPOINTS = /^\d+(?:\.\d{0,2})?$/; //精确到小数点后两位：如1.01
var REGEX_NUMBER_TWOPOINTS_V1 = /^(\d{1,3},?(\d{3},?)*\d{3}(\.\d{0,2})?|\d{1,3}(\.\d{0,2})?|\.\d{1,2}?)$/;
var REGEX_POST = /^\d{6}$/;
var REGEX_VALIDATECODE = /^\d{4}$/;
var REGEX_FILEPATH = /^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/: \ * \ ? "\|<>\. ](([^\\/:\*\?"\ | <>\.]) | ([ ^ \\ / :\ * \ ? "\|<>]*[^\\/:\*\?"\ | <>\.])) ? ))\\) * [ ^ \\ / :\ * \ ? "\|<>\. ](([^\\/:\*\?"\ | <>\.]) | ([ ^ \\ / :\ * \ ? "\|<>]*[^\\/:\*\?"\ | <>\.])) ? $ / ;
var REGEX_PHONE = /(\(\d{3}\)|\d{3}-)?\d{8}/;
var REGEX_IDCARD = /\d{17}[\d|X]|\d{15}/;
var REGEX_MOBILE = /^13\d{9}$/;
var REGEX_INT = /^[-\+]?\d+$/;
var REGEX_USERNAME = /^[a-zA-Z][a-zA-Z0-9_]{2,19}$/; //用户名,必须是3-20个英文
function IsMatch(input, pattern) {
    var matchOk = false;
    var returnValue = pattern.exec(input);
    if (returnValue != null) matchOk = true;
    return matchOk;
}

function Match(input, pattern) {
    if (input == null || pattern == null) {
        return false;
    } else {
        switch (pattern.toLowerCase()) {
        case "url":
            return IsMatch(input, REGEX_URL);
            break;
        case "email":
            return IsMatch(input, REGEX_Email);
            break;
        case "twopoints":
            return IsMatch(input, REGEX_NUMBER_TWOPOINTS);
            break;
        case "twopoints_v1":
            return IsMatch(input, REGEX_NUMBER_TWOPOINTS_V1);
            break;
        case "post":
            return IsMatch(input, REGEX_POST);
            break;
        case "validatecode":
            return IsMatch(input, REGEX_VALIDATECODE);
            break;
        case "filepath":
            return IsMatch(input, REGEX_FILEPATH);
            break;
        case "phone":
            return IsMatch(input, REGEX_PHONE);
            break;
        case "idcard":
            return IsMatch(input, REGEX_IDCARD);
            break;
        case "mobile":
            return IsMatch(input, REGEX_MOBILE);
            break;
        case "username":
            return IsMatch(input, REGEX_USERNAME); //这一块似乎没有用,要去掉 username的验证
            break;
        default:
            return false;
        }
    }
}

function CheckUserName(userName) {
    //alert("error");
    var reg_re = new RegExp("[!@#$%\\^&\\*\\(\\)]", "gi");
    var reg_space = new RegExp("[\\s]", "gi");
    var reg_length = new RegExp("^.{2,19}$", "gi");
    var reg_start = new RegExp("^[\\w_]*$", "gi");
    var reg_validate = new RegExp("^([a-z]|[A-Z])[0-9a-zA-Z_]{2,19}$", "g");
    var err = "";
    //alert(userName);
    //alert(reg_re.exec(userName));
    while ((arr = reg_re.exec(userName)) != null) err += arr;
    if (err != "") {
        //alert("error");
        //SetErrorMessage("用户名不能含有" + err.replace(/&/g, "&amp;"));
        return 1;
    } else if (reg_space.test(userName)) {
        //SetErrorMessage("用户名不能含有空格");
        return 1;
    }
    //alert("2");
    if (!reg_length.test(userName)) {
        //SetErrorMessage("用户名的长度为3-20");
        return 3;
    }
    if (!reg_start.test(userName)) {
        //SetErrorMessage("用户名的起始字符必须是英文字母。");	
        return 1;
    }
    //alert("4");
    if (!reg_validate.test(userName)) {
        //alert("2");
        return 2;
    }
    //alert("5");
    return 0;
}

//常用的较验方法
//检查输入框是否输入了文字,有错误则为true,无错误则false

function Check_Input_IfEmpty(ename, bname, mname, msg) {
    if (IsEmpty(ename)) {
        WarnErr(bname, mname, msg);
        Focus(ename);
        return true;
    } else {
        Pass(bname, mname);
        return false;
    }
}

//当前选中
function Focus(eid) {
    $(eid).focus();
}

function IsInt(input) {
    var patternINT = /^[-\+]?\d+$/;
    if (patternINT.test(input)) {
        if (parseInt(input) < 99999999) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
function CheckLength(eid, l1, l2) {
    if (Trim($(eid).value).length >= l1 && Trim($(eid).value).length <= l2) {
        return true;
    } else {
        return false;
    }
}

//一些常用的方法

function $(eid) {
    return document.getElementById(eid);
}

function Trim(str) {
    return str.replace(/(^\s+)|\s+$/g, "");
}

function CheckDDL(ddl) {
    var p = document.getElementById(ddl);
    if (p.options[p.selectedIndex].value == "-1") {
        return false;
    }
    return true;
}

ie = (document.all) ? true: false
if (ie) {
    function ctrlenter(eventobject) {
        if (event.ctrlKey && window.event.keyCode == 13) {
            this.document.form1.submit();
        }
    }
}

//文本框的背景颜色  此处不再用
function InputEvent(oInput, sType) {
    switch (sType) {
    case "focus":
        oInput.isfocus = true;
        oInput.style.backgroundColor = '#FFFFDD';
    case "mouseover":
        oInput.style.borderColor = '#99E300';
        break;
    case "blur":
        oInput.isfocus = false;
        oInput.style.backgroundColor = "";
    case "mouseout":
        if (!oInput.isfocus) {
            oInput.style.borderColor = '#DDDDDD';
        }
        break;
    }
}
function InputEvent1(oInput, sType) {
    switch (sType) {
    case "focus":
        $(oInput).focus();
        $(oInput).style.backgroundColor = '#ccc';
    case "mouseover":
        $(oInput).style.borderColor = '#99E300';
        break;
    case "blur":
        $(oInput).isfocus = false;
        $(oInput).style.backgroundColor = "";
    case "mouseout":
        if (!oInput.isfocus) {
            $(oInput).style.borderColor = '#DDDDDD';
        }
        break;
    }
}

function AddCopyRight() {
    setTimeout(function AddCopyRight() {
        var text = clipboardData.getData("text");
        if (text) {
            text = text + "\r\n来源【中国快递网】: " + location.href;
            clipboardData.setData("text", text);
        }
    },
    100)
}

function expandoptions(id) {
    var a = document.getElementById(id);
    //alert(a.style.display);
    if (a.style.display == '' || a.style.display == 'block') {
        a.style.display = 'none';
    } else {
        a.style.display = '';
    }
}