var $A = Array.from = function(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) {
    return iterable.toArray();
  } else {
    var results = [];
    for (var i = 0; i < iterable.length; i++)
      results.push(iterable[i]);
    return results;
  }
}

Function.prototype.bind = function() {
  var __method = this, args = $A(arguments), object = args.shift();
  return function() {
    return __method.apply(object, args.concat($A(arguments)));
  }
}

Function.prototype.bindAsEventListener = function(object) {
  var __method = this;
  return function(event) {
    return __method.call(object, event || window.event);
  }
}

//根据id取页面对象
function $(element) {
  if (arguments.length > 1) {
    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      elements.push($(arguments[i]));
    return elements;
  }
  element = document.getElementById(element);
  return element;
}

//动态加载JS
function loadscript(server,cb,param)
{
	var sc=document.createElement('script');;
 	sc.type = "text/javascript";
 	sc.src = server;
 	var cb=cb;
 	
	if(document.all){
 		sc.onreadystatechange = function (){
 				
		if(sc.readyState=="loaded" || sc.readyState=="complete"){			
			cb(param);
		}
	}
 	}else{
 		sc.onload=function (){						
			cb(param);
 		}
 		sc.onerror=function (){ 										
			cb(param);
 		}
 	}
 	var oHead = document.getElementsByTagName('head')[0];	
 	oHead.appendChild(sc);
}

//在指定位置出现div，s：内容，l：left，t：top，b：border，fc：字体颜色，bg：背景色
function openToolTip(s,l,t,b,fc,bg){
	var div=document.createElement("div");
	div.id="tool_tip_div";
	div.style.zIndex=99;
	div.style.position="absolute";
	div.style.left=l+"px";
	div.style.top=t+"px";
	if(b){
		div.style.border=b;
	}else{
		div.style.border="1px solid #000000";
	}
	if(fc){
		div.style.color=fc;
	}else{
		div.style.color="#000000";
	}
	if(bg){
		div.style.backgroundColor=bg;
	}else{
		div.style.backgroundColor="#FFFFE0";
	}
	div.style.padding="2px";
	div.innerHTML=s;
	document.body.appendChild(div);
}

function setToolTip(s){
	var div=document.getElementById("tool_tip_div");
	div.innerHTML=s;
}
//关闭div
function closeToolTip(){
	var div=document.getElementById("tool_tip_div");
	document.body.removeChild(div);
}

function pos_element(e,l,t){
	e.style.position="absolute";
	e.style.left=l+"px";
	e.style.top=t+"px";
	e.style.zIndex=99999;
	e.style.display="";
}

function close_element(e){
	e.style.display="none";
}

function check_display(e){
	if(e.style.display=="none"){
		return false;
	}else{
		return true;
	}
}
//取对象的页面left位置
function getOffsetLeft(el){
	var retValue=0;
	//el = el.offsetParent;
	while (el != null) {
        retValue += el["offsetLeft"];
        el = el.offsetParent;
    }
    return retValue;
}

//取对象的页面top位置
function getOffsetTop(el){
	var retValue=0;
	while (el != null) {
        retValue += el["offsetTop"];
        el = el.offsetParent;
    }
    return retValue;
}

//根据name去页面对象
function getNameObj(str){
	var arr = document.getElementsByName(str);
	if(arr!=null && arr.length==0){
		return arr[0];
	}else{
		return arr;
	}
}

//根据tag取页面对象，div，table之类
function getTagObj(str){
	var arr = document.getElementsByTagName(str);
	if(arr!=null && arr.length==0){
		return arr[0];
	}else{
		return arr;
	}
}

//取字符串的长度，中文算2个字符
function getLength(str){
	var length = str.replace(/[^\x00-\xff]/g,"aa").length;
	return length;
}

//截取字符串，中文算2个字符
function subString(str,start,end){
	if(getLength(str)<=end){
		return str;
	}else{
		var count=end-start;
		var reg=/[^\x00-\xff]/g;
		var i=0;
		var sub="";
		while(count>0){
			var temp=str.substring(i,i+1);
			if(count>0){
				sub+=temp;
			}	
			count=count-getLength(temp);
			i++;
		}
		return sub+"...";
	}
}

//是否为数字 0：不是 1：是
function isDigit(inStr){
	var Digits = "0123456789";
	var temp;
	
	if(isEmpty(inStr)==1)
		return 1;

	for(var i=0;i<inStr.length;i++){
		temp=inStr.substring(i,i+1);
		if (Digits.indexOf(temp)==-1){
			return 0;
		}
	}
	return 1;	
}

//是否为空 1:为空，0：不为空
function isEmpty(inStr){
	for(var i=0;i<inStr.length;i++){
		if(inStr.substring(i,i+1)!=" ")
			return 0;
	}
	return 1;
}

//取前后空格
function trim(inStr){
	if(isEmpty(inStr)==1)
		return "";
	var temp=inStr
	while(temp.indexOf(' ')==0)
		temp=temp.substring(1,temp.length);
	while(temp.lastIndexOf(' ')==temp.length-1)
		temp=temp.substring(0,temp.length-1);
	return temp;
}

//日期格式 yyyymmdd 0：错误，1：正确
function isDate(inStr){
	if(inStr=="")return 1;
	var year;
	var month;
	var day;
	var strDate=trim(inStr);
	if(strDate.length!=8){
		return 0;
	}
	year=strDate.substring(0,4);
	month=strDate.substring(4,6);
	day=strDate.substring(6,8);
	if((isDigit(year)!=1) || (isDigit(month)!=1) || (isDigit(day)!=1) || (year<"1900") || (year>"2100")){
		return 0;
	}
	switch(month){
		case '01':
		case '03':
		case '05':
		case '07':
		case '08':
		case '10':
		case '12':
			if(day<'01'||day>'31')
				return 0;
			break;
		case '04':
		case '06':
		case '09':
		case '11':
			if(day<'01'||day>'30')
				return 0;
			break;
		case '02':
			if(( parseInt(year)%4==0 && parseInt(year)%100!=0 )|| parseInt(year)%400==0){
				if(day<'01'||day>'29')
					return 0;
			}else{
				if(day<'01'||day>'28')
					return 0;
			}					
			break;
		default:
			return 0;
	}
	return 1;
}

//是否为英文字母 0:不是，1:是
function isWord(inStr){
	var validLetters = "abcdefghijkmlnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var temp;
	var strWord=Trim(inStr)	  
	for(var i=0;i<strWord.length;i++){
		temp=strWord.substring(i,i+1);
		if(validLetters.indexOf(temp)==-1){
			return 0;
		}
		if(i>20){
			return -1;
		}	
	}
	return 1;	
}

//检查输入的年份 0:不是，1:是
function isYear(inStr)
{
	var year;
	
	year=trim(inStr);
	if(year.length==0)
		return 1;
	
	if(year.length!=4)	
		return 0;
	
	
	if((isDigit(year)!=1) || (year<"1900") || (year>"2100")){
		return 0;
	}
	return 1;
}

//电子邮件格式 0：不是，1：是
function isEmailFormat(inStr){
	if(inStr.length==0) return 1;
	var atSym=inStr.indexOf('@');
	var period=inStr.lastIndexOf('.');
	var space=inStr.indexOf(' ');
	var length=inStr.length - 1;   
	if ((atSym<1) || (Period<=AtSym+1) || (Period==Length) || (Space!=-1)){  
		return 0;
	}
    return 1;
}

//检查输入的身份证号码
function checkIDCard(ctrl){	       
	if(isEmpty(ctrl)!=1){
		ctrl.value=Trim(ctrl);	
		if((isLengthRight(15,ctrl)!=1)&&(isLengthRight(18,ctrl)!=1)){
			return 0;
		}else if(isLengthRight(15,ctrl)==1){
			if(isDigit(ctrl)!=1){        
				return 0;
			}	
			birthday="19"+(ctrl).substring(6,12);
			if(isDate(birthday)!=1){          
				return 0;
			}
		}else if(isLengthRight(18,ctrl)==1){
			if(isDigit((ctrl).substring(0,17))!=1){        
        		return 0;
      		}      
      		if((isDigit((ctrl).substring(17,18))!=1)&&(isWord((ctrl).substring(17,18))!=1)){        
        		return 0;
      		}      
      		birthday=(ctrl).substring(6,14);      
      		if(isDate(birthday)!=1){
        		return 0;            
			}    	
		}    	
	}
	return 1;     
}

