﻿// JScript 文件


function $(id)
{
    return document.getElementById(id);
}

/**
 * @method isUndefined
 * @param {Any} object
 * @return {Boolean}
 */
function isUndefined( object )
{
	return typeof object == 'undefined';
}


/**
 * @method isString
 * @param {Any} object
 * @return {Boolean}
 */
function isString( object )
{
    return typeof object == 'string';
}


/**
 * @method isElement
 * @param {Any} object
 * @return {Boolean}
 */
function isElement( object )
{
	return object && object.nodeType == 1;
}


/**
 * @method isFunction
 * @param {Any} object
 * @return {Boolean}
 */
function isFunction( object )
{
	return typeof object == 'function';
}


/**
 * @method isObject
 * @param {Any} object
 * @return {Boolean}
 */
function isObject( object )
{
	return typeof object == 'object';
}


/**
 * @method isArray
 * @param {Any} object
 * @return {Boolean}
 */
function isArray( object )
{
	//return object !== null && typeof object == 'object' && 'splice' in object && 'join' in object;
    return Object.prototype.toString.call( object ) === '[object Array]';
}


/**
 * 验证对象是否是数字类型
 * @method isNumber
 * @param {Any} object
 * @return {Boolean}
 */
function isNumber( object )
{
	return typeof object == 'number';
}


/**
 * extend an object
 * @method $extend
 * @param {Object} object the object for extend
 * @param {Object} src the object will copy from
 * @return {Object}
 */
function $extend( object , src )
{
	if( !src ) return object;
	for ( var p in src )
	{
		object[ p ] = src[ p ];
	}
	return object;
}

/**
 * 验证参数是否为空
 * @method isEmpty
 * @param {Object} txtVal 需要验证的参数
 * @return {Boolean}
 */
function isEmpty( txtVal ){
    if(txtVal == null || txtVal == "" || txtVal.indexOf(" ") > -1 || txtVal.length == 0 ){
        return true;
    }
    return false;
}

/**
 * 验证日期格式是否正确
 * @method checkDate
 * @param {Object} date 需要验证的日期
 * @return {Boolean}
 */
function checkDate(date){
    if(isEmpty(date)){
        return false;
    }
    var _date = new RegExp("^[1-2]\\d{3}-(0?[1-9]||1[0-2])-(0?[1-9]||[1-2][1-9]||3[0-1])$");
     if (!_date.test(date)){
        return false;
     }
     return true;
}

/**
 * 验证对象是否是数字
 * @method checkNum
 * @param {Object} num 要验证的数字
 * @return {Boolean}
 */
function checkNum(num){
    if(isEmpty(num)){
        return false;
    }
	if(isNaN(num)){
		return false;	
	}
	return true;
}

/**
 * 验证对象是否是非负整数
 * @method checkNum
 * @param {Object} num 要验证的数字
 * @return {Boolean}
 */
function checkInteger(num){
	var _num =  new RegExp("^-?\\d+$");
	if(!_num.test(num)){
		return false;
	}
	return true;
}

/**
 * 验证对象是否是整数
 * @method checkNum
 * @param {Object} num 要验证的对象
 * @return {Boolean}
 */
function checkInteger(num){
	var _num =  new RegExp("^\\d+$");
	if(!_num.test(num)){
		return false;
	}
	return true;
}


/**
 * 验证对象是否是包含字母跟数字
 * @method checkNum
 * @param {Object} num 要验证的对象
 * @return {Boolean}
 */
function checkIntegerABC(str){
	var _str =  new RegExp("(([0-9]+[a-zA-Z]+[0-9]*)|([a-zA-Z]+[0-9]+[a-zA-Z]*))");
	if(!_str.test(str)){
		return false;
	}
	return true;
}


/**
 * 验证第一个日期是否在第
 * @method checkDate
 * @param {Object} startDate 开始日期
 * @param {Object} endDate 结束日期
 * @return {Boolean}
 */
function checkDateSize(startDate,endDate){
    if(isEmpty(startDate)){
        return false;
    }
    if(isEmpty(endDate)){
        return false;
    }
    if(startDate.split("-")[1] > endDate.split("-")[1]){
        return false;
    }else if(startDate.split("-")[1] == endDate.split("-")[1]){
        if(startDate.split("-")[2] > endDate.split("-")[2]){
           return false;
        }
    }
    return true;
}

/**
 * 截取字符串长度
 * @method checkDate
 * @param {Object} str 原始字符串
 * @param {Object} length 要截取的长度
 * @param {Object} para 要替换截取掉字符串的字符
 * @return {Object} newstr 新字符串
 */
function sutString(str,length,para){
    var len = 0;
    var newstr="";
    var k = 1;
    for(var i=0;i<str.length;i++)   
    {
        if(str.charCodeAt(i)>256)   
        {
            if((len+2)>length){
                k=2;
                return newstr;
            }else{
                newstr+=String.fromCharCode(str.charCodeAt(i));
                len += 2;
            }
        }   
        else   
        {   
            if((len+1)>length){
                k =2;
                return newstr;
            }else{
                newstr+=String.fromCharCode(str.charCodeAt(i));
                len += 1;
            }
        }  
    }
    if(k==2){
        newstr+=para;
    }
    return newstr;
}



/**
 * 获取字符串长度
 * @method checkDate
 * @param {Object} str 字符串
 * @return {Object} len 字符串长度
 */
function getStrLength(str){
    var len=0;
    for(i=0;i<str.length;i++)   
    {   
        if(str.charCodeAt(i)>256)   
        {   
              len += 2;   
        }   
        else   
        {   
            len++;   
        }   
    } 
    return len;
}

/**
 * 验证邮箱
 * @method checkDate
 * @param {Object} txt_email 要验证的邮箱
 * @return {Boolean}
 */
function checkEmail(email){
    if(isEmpty(email)){
        return false;
    }        
    var _email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
//    var _email = new RegExp("/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i");
    if (!_email.test(email)){
        return false;
    }
    return true;
}

/**
 * 验证字符串是否超过指定长度
 * @method checkStrLength
 * @param {Object} str 要验证的字符串
 * @param {Object} lenMin 字符串的最小长度
 * @param {Object} lenMax 字符串的最大长度
 * @return {Boolean}
 */
function checkStrLength(str,lenMin,lenMax){    
    if(isEmpty(str) ){
        return false;
    }
    if(getStrLength(str) < lenMin || getStrLength(str) > lenMax ){
        return false;
    }
    return true;
}

/**
 * 比较2个字符串是否相等
 * @method checkStrEqual
 * @param {Object} str1 要比较的字符串1
 * @param {Object} str2 要比较的字符串2
 * @return {Boolean}
 */
function checkStrEqual(str1,str2){
    if( isEmpty(str1) ){
        return false;
    }
    if( isEmpty(str2) ){
        return false;
    }
    if( str1 != str2 ){
        return false;
    }
    return true;
}


/**
 * 给对象改变样式名称
 * @method checkDate
 * @param {Object} id 对象ID
 * @param {Object} csName css样式名
 */
function setElementStyle(id,cssName){
	$(id).className=csName;
}

/**
 * 文本框获取焦点改变文本框样式
 * @method textOnfocus
 * @param {Object} txt 文本框对象
 */
function textOnfocus(txt){
    txt.style.backgroundColor="#FFFFCC";
    //txt.style.borderColor="#9BB5AC";
}

/**
 * 文本框失去焦点改变文本框样式
 * @method textOnblur
 * @param {Object} txt 文本框对象
 */
function textOnblur(txt){
    txt.style.backgroundColor="#FFFFFF";
    //txt.style.borderColor="#C9C9C9";
}

/**
 * 隐藏对象
 * @method hideObj
 * @param {Object} obj 要隐藏的对象ID
 */
function hideObj(obj){   
    $(obj).style.display="none";
}


function GetCookie(name)//取cookies函数        
{ 
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
     if(arr != null) return unescape(arr[2]); return null; 
}
