﻿function Trim(str)
{
  if(str == null) return "";
  if(str.length == 0) return "";
  var i=0,j=str.length-1,chr;
  for(;i<str.length;i++){
    chr=str.charAt(i);
    if(chr != ' ') break;
  }
  for(;j>-1;j--){
    chr=str.charAt(j);
    if(chr!=' ') break;
  }
  if(i>j) return "";
  return str.substring(i,j+1);
}

function isTitleName(s)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<s.length;i++)
	{
		if (s.charCodeAt(i)>255)
			len+=2;
		else
			len++;
	}
	if (len<1)
	{
		return false;
	}
	if (len>100)
 	{
		return false;
 	}

	for(i=0;i<s.length;i++)
	{
		var c=s.charAt(i);
		if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||(c>='0'&&c<='9')||(s.charCodeAt(i)>255))
		{
			continue;
		}
		else
		{
			return false;
		}
	}
	return true;
}


function include_whitespace(str)
{
	var whitespace=" \n\r\t";
	var current_char, i;
	for (var i=0; i<str.length; i++)
	{
		current_char=str.charAt(i);
		if (whitespace.indexOf(current_char)!=-1)
			return true;
	}
	return false;
}


function isCharsInBag(s, bag)
{  
  var i;

  for (i = 0; i < s.length; i++)
  {   
     
      var c = s.charAt(i);
      if (bag.indexOf(c) == -1) return false;
  }
  return true;
}


function ValidEmail(s) {
    if (include_whitespace(s))
    {
      return false;
    }
    var len = s.length;
    var pos1, pos2, pos3, pos4;
    pos1 = s.indexOf("@");
    pos2 = s.indexOf(".");
    pos3 = s.lastIndexOf("@");
    pos4 = s.lastIndexOf(".");
    if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len)
         || (pos1 == pos2 - 1) || (pos1 == pos2 + 1)
         || ( pos1 != pos3 )  || ( pos4 < pos3 ) )
    {
      return false;
    }
    if ( !isCharsInBag(s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@"))
	{
		return false;
	}
	return true;
}


function IsPass(s)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<s.length;i++)
	{
		len++;
	}
	if (len<6)
 	 {
		return false;
 	 }
 	if (len>20)
 	 {
		return false;
 	 }

	for(i=0;i<s.length;i++)
	{
		var c=s.charAt(i);
		if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||(c>='0'&&c<='9'))
		{
			continue;
		}
		else
		{
			return false;
		}
	}

	return true;
}


function IsUserId(s)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<s.length;i++)
	{
		if (s.charCodeAt(i)>255)
			len+=2;
		else
			len++;
	}
	if (len<6)
 	 {
		return false;
 	 }
 	if (len>20)
 	 {
		return false;
 	 }

	for(i=0;i<s.length;i++)
	{
		var c=s.charAt(i);
		if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||(c>='0'&&c<='9')||(s.charCodeAt(i)>255))
		{
			continue;
		}
		else
		{
			return false;
		}
	}

	return true;
}


//用户只要输入手机号就验证
function IsMobile(s)
{
	var len;
	var i;
	len = s.length;

	if (len<1)
 	 {
		return true;
 	 }
 	 if (isNaN(s) || s.length!=11 || !(s >= "13000000000"  & s < "14000000000" || s >= "15900000000"  & s < "16000000000"))
 	 {
 		return false;
 	 }
	return true;
}

//用户只要输入手机号就验证
function IsQQ(s)
{
	var len;
	var i;
	len = s.length;
	if (len <1)
	{
		return true;
	}
 	if (isNaN(s) || len >11)
 	{
 		return false;
 	}
	return true;
}

function IsPhone(Phone)
{
	var ArryPhone = Phone.split("-")
	var Len = ArryPhone.length;
    if (Len > 3)return false;

	for (var k =0;k <Len;k++)
	{
	if (ArryPhone[k].replace(/\d/gi,"")!="")return false;           
	}
	
	if ((Len > 1)&&(ArryPhone[0].length <1))return false;
	
	if (Len == 1)
	{
		if (!((ArryPhone[0].length > 6)&&(ArryPhone[0].length < 15)))return false;
	} 
	if (Len == 2)
	{
	if (ArryPhone[0].length > 4)
	{
		if (!((ArryPhone[0].length > 6)&&(ArryPhone[0].length < 15)))return false;
		if (ArryPhone[1].length > 4)return false;
	}
	else
	{
		if ((ArryPhone[0].length > 4)||(ArryPhone[0].length < 3 ))return false;
		if (!((ArryPhone[1].length > 6)&&(ArryPhone[1].length < 15)))return false;
	}
	}
	if (Len == 3)
	{
		if ((ArryPhone[0].length > 4)||(ArryPhone[0].length < 3 ))return false;
		if (!((ArryPhone[1].length > 6)&&(ArryPhone[1].length < 15)))return false;
		if (ArryPhone[2].length > 4)return false;
	}
	return true;
}

function IsChar(str)
{
	if(str.length<1)
	{
		return false;
	}
	var t = new RegExp(/^([a-zA-z_]{1})([\w]*)$/).test(str);
	return t;
}


/* 输入框验证 */
function validateForm(theForm) {  // return true if all is well
    var elArr = theForm.elements;  // get all elements of the form into array
    var val;
    for(var i = 0; i < elArr.length; i++) {
        with(elArr[i]) {  // for each element of the form...
            var v = elArr[i].validator;  // get validator, if any
            var cnname = elArr[i].cnname;
            if(!v) {
                continue;  // no validator property, skip
            }
            if(!cnname) {
                continue;
            }

            var n_str = document.getElementById(cnname).innerHTML;

            if (v == "notNull") {  //如果是非空的字符串,要单独处理,通过判断他的长度来判断是否有效
                val = value;
                if (val.length > 0) {
                    continue;
                }
                elArr[i].focus();
                alert("请在“" + n_str + "”项内填入数据！");
                return false;
            } else {
                var thePat = PatternsDict[v];  // 根据v的值选择所需的正则表达式
                var gotIt = thePat.exec(value);  // run it on value of elArr[i]
                //alert(value);
                if(!gotIt) {
                    elArr[i].focus();
                    alert("请输入正确的“" + n_str + "”！");
                    return false;
                }
            }

            if (v == "date") {  // 对于date型的数据做专门处理
                var checkdate = elArr[i].checkdate;
                if (!checkdate) {
                    continue;
                }

                var d = new Date();
                var d_y = d.getFullYear();
                var d_m = (d.getMonth() + 1).toString();
                var d_d = d.getDate().toString();
                var d_now = "" + d_y + ((d_m.length == 1) ? ("0" + d_m) : d_m) + ((d_d.length == 1) ? ("0" + d_d) : d_d);

                val = value;
                var d_val = val.replace(/-/g, "");

                if (checkdate == "now") {
                    if (d_val <= d_now) {
                        alert("“" + n_str + "”必须大于当前日期！");
                        return false;
                    }
                } else {
                    var d_val_c = document.getElementById(checkdate).value.replace(/-/g, "");
                    var n_str_c = document.getElementById(document.getElementById(checkdate).cnname).innerHTML;
                    if (d_val < d_val_c) {
                        alert("“" + n_str + "”不能小于“" + n_str_c + "”！");
                        return false;
                    }
                }
            }

        }  // end with
    }  // end for

    return true;
}


/* 验证用正则表达式 */
var PatternsDict = new Object();

//非空 - notNull
//PatternsDict.notNull = /^(.+\n*)+$/;  // 匹配必须有数据输入

//（必须填的）ASCII字符 - ascii
PatternsDict.ascii = /^[ -\.\(\)\'\"\`a-zA-Z0-9]+$/;  // 匹配所有可见ASCII码
//（可为空的）ASCII字符 - asciiNull
PatternsDict.asciiNull = /(^[ -\.\(\)\'\"\`a-zA-Z0-9]+$)|(^$)/;  // 匹配所有可见ASCII码

//（必须填的）非负整数 - posInt
PatternsDict.posInt = /^\d+$/;  //匹配正整数和“0”
//（可为空的）非负整数 - posIntNull
PatternsDict.posIntNull = /(^\d+$)|(^$)/;  //匹配正整数和“0”

//（必须填的）正整数 - posIntP
PatternsDict.posIntP = /^[1-9]\d*$/;  //匹配正整数，不包括“0”
//（可为空的）正整数 - posIntPNull
PatternsDict.posIntPNull = /(^[1-9]\d*$)|(^$)/;  //匹配正整数，不包括“0”

//（必须填的）非负数（整数和浮点数） - posNum
PatternsDict.posNum = /^\d+\.?\d+$/;  // 匹配如 123 或 123.334
//（可为空的）非负数（整数和浮点数） - posNumNull
PatternsDict.posNumNull = /(^\d+\.?\d+$)|(^$)/;  // 匹配如 123 或 123.334

//（必须填的）货币价格 - currency
PatternsDict.currency = /(^\d+\.?\d+$)|(^\d{1,3}(,\d{3})*(\.\d+)?$)/;  // 匹配如 123 或 123.334 或 12,123,123.123
//（可为空的）货币价格 - currencyNull
PatternsDict.currencyNull = /((^\d+\.?\d+$)|(^\d{1,3}(,\d{3})*(\.\d+)?$))|(^$)/;  // 匹配如 123 或 123.334 或 12,123,123.123

//（必须填的）时间 - time
PatternsDict.time = /^([0-1]?\d|2[0-3])[:][0-5]\d$/;  // 匹配如 03:00 或 3:00 或 23:59
//（可为空的）时间 - timeNull
PatternsDict.timeNull = /(^([0-1]?\d|2[0-3])[:][0-5]\d$)|(^$)/;  // 匹配如 03:00 或 3:00 或 23:59

//（必须填的）日期 - date
PatternsDict.date = /^[1-2]\d{3}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[0-1])$/;  // 匹配如 2006-11-23 或 2006-1-1 或 2006-01-01
//（可为空的）日期 - dateNull
PatternsDict.dateNull = /(^[1-2]\d{3}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[0-1])$)|(^$)/;  // 匹配如 2006-11-23 或 2006-1-1 或 2006-01-01

//下拉框不能为0 - dropDown
PatternsDict.dropDown = /[^0]/;  //验证是否没有选择列表内容

//（必须填的）姓名 - name
PatternsDict.name = /^.+$/; //匹配所有数据，但不包括换行符
//（可为空的）姓名 - nameNull
PatternsDict.nameNull = /(^.+$)|(^$)/; //匹配所有数据，但不包括换行符

//（必须填的）登录名 - loginName
PatternsDict.loginName = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/; // 匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)
//（可为空的）登录名 - loginNameNull
PatternsDict.loginNameNull = /(^[a-zA-Z][a-zA-Z0-9_]{4,15}$)|(^$)/; // 匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)

//（必须填的）电子邮箱 - email
PatternsDict.email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;  //匹配电子邮箱
//（可为空的）电子邮箱 - emailNull
PatternsDict.emailNull = /(^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$)|(^$)/;  //匹配电子邮箱

//（必须填的）固定电话 - tel
PatternsDict.tel = /(^\d+-?\d+$)|(^\(\d{1,4}\) ?\d+$)/; //目前匹配所有电话，如：13812345678 或 010-12345678 或 (010)12345678 或 (010) 12345678
//（可为空的）固定电话 - telNull
PatternsDict.telNull = /((^\d+-?\d+$)|(^\(\d{1,4}\) ?\d+$))|(^$)/; //目前匹配所有电话，如：13812345678 或 010-12345678 或 (010)12345678 或 (010) 12345678

//（必须填的）所有电话 - phone
PatternsDict.phone = /(^\d+-?\d+$)|(^\(\d{1,4}\) ?\d+$)/; //匹配所有电话，如：13812345678 或 010-12345678 或 (010)12345678 或 (010) 12345678
//（可为空的）所有电话 - phoneNull
PatternsDict.phoneNull = /((^\d+-?\d+$)|(^\(\d{1,4}\) ?\d+$))|(^$)/; //匹配所有电话，如：13812345678 或 010-12345678 或 (010)12345678 或 (010) 12345678

//（必须填的）手机 - mobilePhone
PatternsDict.mobilePhone = /^(13|15)\d{9}$/; //匹配国内手机，如：13812345678 或 15912345678
//（可为空的）手机 - mobilePhoneNull
PatternsDict.mobilePhoneNull = /(^(13|15)\d{9}$)|(^$)/; //匹配国内手机，如：13812345678 或 15912345678

//（必须填的）邮政编码 - zip
PatternsDict.zip = /^\d{6}$/;  // 匹配邮政编码如： 100086
//（可为空的）邮政编码 - zipNull
PatternsDict.zipNull = /(^\d{6}$)|(^$)/;  // 匹配邮政编码如： 100086

//（必须填的）身份证件 - IDNo
PatternsDict.IDNo = /^.+$/; // 匹配所有数据，但不包括换行符
//（可为空的）身份证件 - IDNoNull
PatternsDict.IDNoNull = /(^.+$)|(^$)/; // 匹配所有数据，但不包括换行符

//（必须填的）网址 - URL
PatternsDict.URL = /^[a-zA-z]+:\/\/[^\s]*$/;  // 匹配网址URL
//（可为空的）网址 - URLNull
PatternsDict.URLNull = /(^[a-zA-z]+:\/\/[^\s]*$)|(^$)/;  // 匹配网址URL


/* 显示/隐藏搜索部分 */
function contentSH(contentId){
	if(document.getElementById(contentId).style.display == ""){
		document.getElementById(contentId).style.display = "none";
	}
	else{
		document.getElementById(contentId).style.display = "";	
	}
}


/* 复选框全选/不选 */
function CheckAllItem(theElement, theForm) {
	var elArr = theForm.elements;  // get all elements of the form into array
	if (theElement.checked) {
		for (var i = 0; i < elArr.length; i++) {
			var e = elArr[i];
			if (e.type == "checkbox") {
				e.checked = true;
			}
		}
	} else {
		for (var i = 0; i < elArr.length; i++) {
			var e = elArr[i];
			if (e.type == "checkbox") {
				e.checked = false;
			}
		}
	}
}

