﻿
// JScript File
/* 调用方法：
  <asp:TextBox ID="TextBox1" runat="server" onkeypress="CheckNumber()"></asp:TextBox>
  <asp:TextBox ID="TextBox1" runat="server" onkeypress="CheckChar()"></asp:TextBox>
*/
//限制文本框只能输入数字
function CheckNumber()
{
  if (event.keyCode < 45 || event.keyCode > 57) 
      event.returnValue = false;
}


function deleteCheck()
{
	if(confirm('Are you sure ?'))
	   return true;
	 else
	   return false;
}
//图片缩放（imageid,width,height）
function ShowImage(ImgD,w,h)
  {
   	var image=new Image(); 
	image.src=ImgD.src;
	if(image.width>0 && image.height>0)
	{ 
		flag=true; 
		if(ImgD.width>=w && ImgD.height>=h)
		{ 
			ImgD.width=w; 
			ImgD.height=h 
		}
		else if(ImgD.width>=w && ImgD.height<h)
		if(ImgD.height < h)
		{ 
			ImgD.width=w;
			ImgD.height=image.height; 
		}
		else if(ImgD.width<w && ImgD.height>=h)
		{
		    ImgD.width=image.width;
			ImgD.height=h; 
		}
		else if(ImgD.width<w && ImgD.height<h)
		{
		   ImgD.width=image.width;
		   ImgD.height=image.height; 
		}
	} 
	else
	{
	    ImgD.width=16; 
		ImgD.height=14;
	}
 } 
  //js获取url参数
  function Init()
    {
       var imgid = document.getElementById("imageid");
       var url = unescape(window.location.href);
       var url_arr=url.split('?');//获取当前页REQUEST集合，并存入数组。
       var arrlen = url_arr.length;
       if(arrlen == 1)
       {
          imgid.width=200;
          imgid.height =100;
       }
   }

   Validator = {
       Require: /.+/,
       Email: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
       Phone: /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
       Mobile: /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
       Url: /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
       IdCard: "this.IsIdCard(value)",
       Currency: /^\d+(\.\d+)?$/,
       Number: /^\d+$/,
       Zip: /^[1-9]\d{5}$/,
       QQ: /^[1-9]\d{4,8}$/,
       Integer: /^[-\+]?\d+$/,
       Double: /^\d+(\.\d+)?$/, //update by wxg 2009521
       English: /^[A-Za-z]+$/,
       Chinese: /^[\u0391-\uFFE5]+$/,
       Username: /^[a-z]\w{3,}$/i,
       //UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
       UnSafe: /^((\w|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
       IsSafe: function(str) { return !this.UnSafe.test(str); },
       SafeString: "this.IsSafe(value)",
       Filter: "this.DoFilter(value, getAttribute('accept'))",
       Limit: "this.limit(value.length,getAttribute('min'),  getAttribute('max'))",
       LimitB: "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
       Date: "this.IsDate(value, getAttribute('format'),getAttribute('min'))", //--加入 日期的大小比较
       DateCn: "this.thisDateCn(value)",
       Repeat: "value == document.getElementsByName(getAttribute('to'))[0].value",
       Range: "getAttribute('min') < (value|0) && (value|0) < getAttribute('max')",
       Compare: "this.compare(value,getAttribute('operator'),getAttribute('to'))",
       Custom: "this.Exec(value, getAttribute('regexp'))",
       Group: "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'),getAttribute('require'))",
       Select3: "this.MustSelected(getAttribute('name'))", //--如果选择框值不大于0,提示选择,add by liaojf(2004-4-4)
       ErrorItem: [document.forms[0]],
       ErrorMessage: ["以下原因导致操作失败：\t\t\t\t"],
       Validate: function(theForm, mode) {
           var obj = theForm || event.srcElement;
           var count = obj.elements.length;
           this.ErrorMessage.length = 1;
           this.ErrorItem.length = 1;
           this.ErrorItem[0] = obj;
           for (var i = 0; i < count; i++) {
               with (obj.elements[i]) {
                   var _dataType = getAttribute("dataType");
                   if (typeof (_dataType) == "object" || typeof (this[_dataType]) == "undefined") continue;
                   this.ClearState(obj.elements[i]);
                   if (getAttribute("require") == "false" && value == "") continue;
                   switch (_dataType) {
                       case "IdCard":
                       case "Date":
                       case "Repeat":
                       case "Range":
                       case "Compare":
                       case "Custom":
                       case "Group":
                       case "DateCn":
                       case "Select3":
                       case "Limit":
                       case "LimitB":
                       case "SafeString":
                       case "QueryStr":
                       case "Filter":
                           if (!eval(this[_dataType])) {
                               this.AddError(i, getAttribute("msg"));
                           }
                           break;
                       default:
                           if (!this[_dataType].test(value)) {
                               this.AddError(i, getAttribute("msg"));
                           }
                           break;
                   }
               }
           }
           if (this.ErrorMessage.length > 1) {
               mode = mode || 1;
               var errCount = this.ErrorItem.length;
               switch (mode) {
                   case 2:
                       for (var i = 1; i < errCount; i++)
                       //this.ErrorItem[i].style.color = "red";
                           this.ErrorItem[i].style.backgroundColor = "#FFFFCC";
                   case 1:
                       alert(this.ErrorMessage.join("\n"));
                       this.ErrorItem[1].focus();
                       break;
                   case 3:
                       for (var i = 1; i < errCount; i++) {
                           try {
                               var span = document.createElement("SPAN");
                               span.id = "__ErrorMessagePanel";
                               span.style.color = "red";
                               this.ErrorItem[i].parentNode.appendChild(span);
                               span.innerHTML = this.ErrorMessage[i].replace(/\d+:/, "*");
                           }
                           catch (e) { alert(e.description); }
                       }
                       this.ErrorItem[1].focus();
                       break;
                   default:
                       alert(this.ErrorMessage.join("\n"));
                       break;
               }
               return false;
           }
           return true;
       },
       limit: function(len, min, max) {
           min = min || 0;
           max = max || Number.MAX_VALUE;
           return min <= len && len <= max;
       },
       LenB: function(str) {
           return str.replace(/[^\x00-\xff]/g, "**").length;
       },
       ClearState: function(elem) {
           with (elem) {
               //			if(style.color == "red")
               //				style.color = "";
               if (style.backgroundColor == "#FFFFCC")
                   style.backgroundColor = "";
               var lastNode = parentNode.childNodes[parentNode.childNodes.length - 1];
               if (lastNode.id == "__ErrorMessagePanel")
                   parentNode.removeChild(lastNode);
           }
       },
       AddError: function(index, str) {
           this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
           this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
       },
       Exec: function(op, reg) {
           return new RegExp(reg, "g").test(op);
       },
       thisDateCn: function(v) {


           if (v != '') {
               psValue = v;
               if (v.indexOf("年") != -1 & v.indexOf("月") != -1 & v.indexOf("日") != -1) {

                   psValue = v.replace("年", "-").replace("月", "-").replace("日", "");

               }

               psValue = psValue.replace("-", "/");
               psValue = psValue.replace("-", "/");
               psValue = psValue.replace(".", "/");
               psValue = psValue.replace(".", "/");
               psValue = psValue.replace("/0", "/");
               psValue = psValue.replace("/0", "/");

               var psValueArray = psValue.split("/");
               if (psValueArray[0].length != 4) {
                   return false
               }

               var oDate = new Date(psValue);

               var strYear = new String(oDate.getFullYear());
               var strMonth = new String(oDate.getMonth() + 1);
               var strDay = new String(oDate.getDate());

               var strTestDate = strYear + "/" + strMonth + "/" + strDay;
               return psValue == strTestDate;
           }
           else {
               return false;
           }


       },
       compare: function(op1, operator, op2) {
           switch (operator) {
               case "NotEqual":
                   return (op1 != op2);
               case "GreaterThan":
                   return (op1 > op2);
               case "GreaterThanEqual":
                   return (op1 >= op2);
               case "LessThan":
                   return (op1 < op2);
               case "LessThanEqual":
                   return (op1 <= op2);
               default:
                   return (op1 == op2);
           }
       },
       MustChecked: function(name, min, max, require) {
           var groups = document.getElementsByName(name);
           if (require == "false") {
               return true
           }

           var hasChecked = 0;
           min = min || 1;
           max = max || groups.length;
           for (var i = groups.length - 1; i >= 0; i--)
               if (groups[i].checked) hasChecked++;
           return min <= hasChecked && hasChecked <= max;
       },
       //--add by liaojf(2004-4-4)
       MustSelected: function(name) {
           var objselect = document.getElementsByName(name);
           var getValue = objselect[0].options[objselect[0].selectedIndex].value;
           var getIntValue = parseInt(getValue);

           if (isNaN(getIntValue))
               return false;
           else {
               if (getIntValue > 0)
                   return true;
               else
                   return false;
           }
       },
       DoFilter: function(input, filter) {
           return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
       },
       IsIdCard: function(number) {
           var date, Ai;
           var verify = "10x98765432";
           var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
           var area = ['', '', '', '', '', '', '', '', '', '', '', '北京', '天津', '河北', '山西', '内蒙古', '', '', '', '', '', '辽宁', '吉林', '黑龙江', '', '', '', '', '', '', '', '上海', '江苏', '浙江', '安微', '福建', '江西', '山东', '', '', '', '河南', '湖北', '湖南', '广东', '广西', '海南', '', '', '', '重庆', '四川', '贵州', '云南', '西藏', '', '', '', '', '', '', '陕西', '甘肃', '青海', '宁夏', '新疆', '', '', '', '', '', '台湾', '', '', '', '', '', '', '', '', '', '香港', '澳门', '', '', '', '', '', '', '', '', '国外'];
           var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
           if (re == null) return false;
           if (re[1] >= area.length || area[re[1]] == "") return false;
           if (re[2].length == 12) {
               Ai = number.substr(0, 17);
               date = [re[9], re[10], re[11]].join("-");
           }
           else {
               Ai = number.substr(0, 6) + "19" + number.substr(6);
               date = ["19" + re[4], re[5], re[6]].join("-");
           }

           if (!this.IsDate(date, getAttribute('format'))) return false;
           var sum = 0;
           for (var i = 0; i <= 16; i++) {
               sum += Ai.charAt(i) * Wi[i];
           }
           Ai += verify.charAt(sum % 11);
           return (number.length == 15 || number.length == 18 && number == Ai);
       },
       IsDate: function(op, formatString) {

           //formatString = formatString || "ymd"||"xToday"||"dToday";
           var m, year, month, day;
           var today1;
           meizzTheYear = new Date().getFullYear();
           meizzTheMonth = new Date().getMonth() + 1;
           today1 = new Date().getDate();
           if (meizzTheMonth < 10) meizzTheMonth = "0" + meizzTheMonth
           if (today1 < 10) today1 = "0" + today1
           today2 = meizzTheYear + "-" + meizzTheMonth + "-" + today1;

           switch (formatString) {
               case "ymd":
                   m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$"));
                   if (m == null) return false;
                   day = m[6];
                   month = m[5] * 1;
                   year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
                   break;
               case "dmy":
                   m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
                   if (m == null) return false;
                   day = m[1];
                   month = m[3] * 1;
                   year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
                   break;
               case "xToday":
                   var today = new Date();
                   if (op == null || op == "") return false;

                   if (op <= today2) {
                       // alert("正确")
                       return true;
                   }
                   break;

               case "dToday":   //大于 		 
                   if (op == null || op == "") return false;
                   if (op >= today2) {
                       // alert("正确")
                       return true;
                   }
                   break;
               default:
                   break;
           }

           if (!parseInt(month)) return false;
           month = month == 0 ? 12 : month;
           var date = new Date(year, month - 1, day);
           return (typeof (date) == "object" && year == date.getFullYear() && month == (date.getMonth() + 1) && day == date.getDate());
           function GetFullYear(y) { return ((y < 30 ? "20" : "19") + y) | 0; }
       }
   }

   //打开非模态对话框,显示在屏幕中间的位置
   function OpenWinCenter(url, height, width) {
       var iTop = (window.screen.availHeight - height) / 2;       //获得窗口的垂直位置;
       var iLeft = (window.screen.availWidth - width) / 2;           //获得窗口的水平位置;
       window.open(url, "", "top=" + iTop + ",left=" + iLeft + ",toolbar=no,location=no, directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + width + ",height=" + height)
   }

   //弹出全屏 wxg
   function fullWinOpen(url) {
       var iTop = (window.screen.availHeight - height) / 2;       //获得窗口的垂直位置;
       var iLeft = (window.screen.availWidth - width) / 2;           //获得窗口的水平位置;
       var height = screen.height      //获得窗口的垂直位置;
       var width = screen.width           //获得窗口的水平位置;
       window.open(url, "", "top=" + iTop + ",left=" + iLeft + ",toolbar=no,location=no, directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + width + ",height=" + height)
   }


   //打开／收缩 
   function ShrinkTr(arr, imgTag) {
       var expandedImgPath = '../images/Icon_Open.gif';
       var contractedImgPath = '../Images/Icon_Close.gif';
       var img = document.getElementById(imgTag);

       for (var i = 0; i < arr.length; i++) {
           var obj = document.getElementById(arr[i]);
           if (obj.style.display == 'none') {
               obj.style.display = 'block';
               img.src = expandedImgPath;

           }
           else {
               obj.style.display = 'none';
               img.src = contractedImgPath;

           }

       }
   }

   //是否选中所有checkbox             
   function chkAll_true() {
       var chkall = document.getElementById("chkAll");
       var chkother = document.getElementsByTagName("input");
       for (var i = 0; i < chkother.length; i++) {
           if (chkother[i].type == 'checkbox') {
               if (chkother[i].id.indexOf('Id') > -1) {
                   if (chkall.checked == true) {
                       chkother[i].checked = true;
                   }
                   else {
                       chkother[i].checked = false;
                   }
               }
           }
       }
   }

   //是否对选中的记录进行删除操作
   function Delete() {
       var msg = "您确实要删除这些记录？";
       var header = "请选择记录！";

       if (arguments.length > 0)
           msg = arguments[0];

       if (arguments.length >= 2)
           header = arguments[1];

       var al = new Array();
       var chkother = document.getElementsByTagName("input");
       for (var i = 0, j = 0; i < chkother.length; i++) {
           if (chkother[i].type == 'checkbox') {
               if (chkother[i].id.indexOf('Id') > -1) {
                   if (chkother[i].checked == true) {
                       al[j] = chkother[i].value;
                       j++;
                   }
               }
           }
       }
       if (al == "") {
           alert(header);
           return false;
       }
       else if (window.confirm(msg)) {

           return true;
       }
       else { return false; }
   }

   //是否选中所有checkbox或是radio(在线调查)
   function CheckSelect() {
       var selectstatu = false;
       if (document.getElementById("rblOptions") != null) {
           for (var i = 0; i < document.form1.rblOptions.length; i++) {

               if (document.form1.rblOptions[i].checked) {
                   selectstatu = true;
               }
           }
       }
       var al = new Array();
       var chkother = document.getElementsByTagName("input");
       for (var i = 0, j = 0; i < chkother.length; i++) {
           if (chkother[i].type == 'checkbox') {
               if (chkother[i].id.indexOf('cblOptions') > -1) {
                   if (chkother[i].checked == true) {
                       selectstatu = true;
                   }
               }
           }
       }
       if (!selectstatu) {
           alert("请选择调查项!");
           return false;
       }
   }
   //JS去空函数
   function trim(str) {
       for (var i = 0; i < str.length && str.charat(i) == " "; i++);
       for (var j = str.length; j > 0 && str.charat(j - 1) == " "; j--);
       if (i > j) return "";
       return str.substring(i, j);
   } 
   


